From 46372eb472c34a7336a139b0968ea6bb3fb51ec3 Mon Sep 17 00:00:00 2001 From: Shantanu Kotambkar <52007797+skotambkar@users.noreply.github.com> Date: Thu, 2 Sep 2021 14:10:22 -0700 Subject: [PATCH] update api models & endpoints (#1399) * update models * Regenerated API Clients * update models * Regenerated API Clients --- .../09efa2618f094673953f18ed23df1d98.json | 27 + .../2b52a08d89644bcfbcdc27959735d487.json | 22 + .../aws-models/accessanalyzer.2019-11-01.json | 115 +- .../aws-models/acmpca.2017-08-22.json | 46 +- .../aws-models/cloudformation.2010-05-15.json | 405 +- .../aws-models/cloudtrail.2013-11-01.json | 354 +- .../aws-models/codebuild.2016-10-06.json | 6 +- .../computeoptimizer.2019-11-01.json | 2 +- .../aws-models/configservice.2014-11-12.json | 654 +- .../aws-models/ebs.2019-11-02.json | 2 +- .../aws-models/ec2.2016-11-15.json | 75 +- .../aws-models/efs.2015-02-01.json | 135 +- .../aws-models/emr.2009-03-31.json | 143 +- .../aws-models/firehose.2015-08-04.json | 232 +- .../aws-models/fsx.2018-03-01.json | 2777 ++- .../aws-models/iot.2015-05-28.json | 1629 +- .../aws-models/kms.2014-11-01.json | 715 +- .../lexmodelbuildingservice.2017-04-19.json | 4 + .../aws-models/mediatailor.2018-04-23.json | 89 +- .../aws-models/memorydb.2021-01-01.json | 29 +- .../aws-models/polly.2016-06-10.json | 8 + .../aws-models/quicksight.2018-04-01.json | 712 +- .../sdk-codegen/aws-models/s3.2006-03-01.json | 8 +- .../aws-models/s3control.2018-08-20.json | 1071 +- .../aws-models/schemas.2019-12-02.json | 39 + .../aws-models/securityhub.2018-10-26.json | 985 +- .../servicecatalogappregistry.2020-06-24.json | 249 +- .../aws-models/sqs.2012-11-05.json | 10 +- .../aws-models/transfer.2018-11-05.json | 1492 +- .../smithy/aws/go/codegen/endpoints.json | 158 + .../api_op_CreateAccessPreview.go | 4 +- .../api_op_CreateArchiveRule.go | 2 +- .../accessanalyzer/api_op_DeleteAnalyzer.go | 8 +- .../api_op_GetAnalyzedResource.go | 4 +- .../accessanalyzer/api_op_GetArchiveRule.go | 2 +- .../api_op_GetGeneratedPolicy.go | 6 +- service/accessanalyzer/api_op_ListFindings.go | 4 +- .../api_op_StartPolicyGeneration.go | 3 +- .../accessanalyzer/api_op_ValidatePolicy.go | 15 +- service/accessanalyzer/doc.go | 25 +- service/accessanalyzer/types/types.go | 173 +- .../api_op_CreateCertificateAuthority.go | 37 +- .../api_op_UpdateCertificateAuthority.go | 9 +- service/acmpca/deserializers.go | 54 + service/acmpca/doc.go | 15 +- service/acmpca/serializers.go | 24 + service/acmpca/types/types.go | 125 +- service/acmpca/validators.go | 17 + .../cloud9/internal/endpoints/endpoints.go | 2 + .../cloudformation/api_op_CreateChangeSet.go | 32 +- service/cloudformation/api_op_CreateStack.go | 34 +- .../api_op_CreateStackInstances.go | 14 +- .../cloudformation/api_op_CreateStackSet.go | 37 +- .../api_op_DeleteStackInstances.go | 12 +- .../cloudformation/api_op_DeleteStackSet.go | 6 +- .../api_op_DescribeStackInstance.go | 13 +- .../cloudformation/api_op_DescribeStackSet.go | 6 +- .../api_op_DescribeStackSetOperation.go | 6 +- .../api_op_DetectStackSetDrift.go | 6 +- .../cloudformation/api_op_ExecuteChangeSet.go | 4 + .../api_op_GetTemplateSummary.go | 6 +- .../api_op_ListStackInstances.go | 12 +- .../api_op_ListStackSetOperationResults.go | 6 +- .../api_op_ListStackSetOperations.go | 6 +- .../cloudformation/api_op_ListStackSets.go | 25 +- .../api_op_RegisterPublisher.go | 6 +- service/cloudformation/api_op_RegisterType.go | 17 +- .../cloudformation/api_op_RollbackStack.go | 144 + .../api_op_StopStackSetOperation.go | 6 +- service/cloudformation/api_op_UpdateStack.go | 36 +- .../api_op_UpdateStackInstances.go | 15 +- .../cloudformation/api_op_UpdateStackSet.go | 37 +- service/cloudformation/deserializers.go | 157 + service/cloudformation/generated.json | 1 + service/cloudformation/serializers.go | 88 + service/cloudformation/types/enums.go | 14 + service/cloudformation/types/types.go | 39 +- service/cloudformation/validators.go | 39 + service/cloudtrail/api_op_AddTags.go | 9 +- service/cloudtrail/api_op_CreateTrail.go | 18 +- service/cloudtrail/api_op_DeleteTrail.go | 5 +- service/cloudtrail/api_op_DescribeTrails.go | 2 +- .../cloudtrail/api_op_GetEventSelectors.go | 2 +- .../cloudtrail/api_op_GetInsightSelectors.go | 2 +- service/cloudtrail/api_op_GetTrailStatus.go | 38 +- service/cloudtrail/api_op_ListPublicKeys.go | 8 +- service/cloudtrail/api_op_ListTags.go | 2 +- service/cloudtrail/api_op_LookupEvents.go | 30 +- .../cloudtrail/api_op_PutEventSelectors.go | 23 +- .../cloudtrail/api_op_PutInsightSelectors.go | 12 +- service/cloudtrail/api_op_StartLogging.go | 15 +- service/cloudtrail/api_op_StopLogging.go | 23 +- service/cloudtrail/api_op_UpdateTrail.go | 66 +- service/cloudtrail/doc.go | 31 +- service/cloudtrail/types/errors.go | 70 +- service/cloudtrail/types/types.go | 267 +- service/codebuild/types/types.go | 53 +- service/computeoptimizer/types/types.go | 4 +- .../api_op_BatchGetAggregateResourceConfig.go | 4 +- .../api_op_BatchGetResourceConfig.go | 2 +- .../configservice/api_op_DeleteConfigRule.go | 8 +- .../api_op_DeleteConfigurationRecorder.go | 6 +- .../api_op_DeleteConformancePack.go | 8 +- .../api_op_DeleteEvaluationResults.go | 14 +- .../api_op_DeleteOrganizationConfigRule.go | 8 +- ...pi_op_DeleteOrganizationConformancePack.go | 7 +- .../api_op_DeleteRemediationConfiguration.go | 2 +- .../api_op_DeleteRemediationExceptions.go | 10 +- .../api_op_DeleteResourceConfig.go | 2 +- .../configservice/api_op_DeleteStoredQuery.go | 3 +- .../api_op_DeliverConfigSnapshot.go | 2 +- ...escribeAggregateComplianceByConfigRules.go | 9 +- ...beAggregateComplianceByConformancePacks.go | 6 +- ...pi_op_DescribeAggregationAuthorizations.go | 4 +- .../api_op_DescribeComplianceByConfigRule.go | 39 +- .../api_op_DescribeComplianceByResource.go | 58 +- ...i_op_DescribeConfigRuleEvaluationStatus.go | 24 +- .../api_op_DescribeConfigRules.go | 8 +- ...ibeConfigurationAggregatorSourcesStatus.go | 10 +- ...api_op_DescribeConfigurationAggregators.go | 4 +- ...pi_op_DescribeConformancePackCompliance.go | 4 +- .../api_op_DescribeConformancePacks.go | 4 +- ..._DescribeOrganizationConfigRuleStatuses.go | 8 +- .../api_op_DescribeOrganizationConfigRules.go | 6 +- ...ribeOrganizationConformancePackStatuses.go | 6 +- ...op_DescribeOrganizationConformancePacks.go | 4 +- ...i_op_DescribePendingAggregationRequests.go | 4 +- ...pi_op_DescribeRemediationConfigurations.go | 2 +- .../api_op_DescribeRemediationExceptions.go | 16 +- ...i_op_DescribeRemediationExecutionStatus.go | 6 +- .../api_op_DescribeRetentionConfigurations.go | 10 +- ...tAggregateComplianceDetailsByConfigRule.go | 26 +- ...GetAggregateConfigRuleComplianceSummary.go | 8 +- ...gregateConformancePackComplianceSummary.go | 17 +- ...op_GetAggregateDiscoveredResourceCounts.go | 12 +- ...api_op_GetComplianceDetailsByConfigRule.go | 20 +- .../api_op_GetComplianceDetailsByResource.go | 15 +- ...api_op_GetComplianceSummaryByConfigRule.go | 6 +- ...i_op_GetComplianceSummaryByResourceType.go | 6 +- ..._op_GetConformancePackComplianceDetails.go | 8 +- .../api_op_GetDiscoveredResourceCounts.go | 90 +- ...GetOrganizationConfigRuleDetailedStatus.go | 8 +- ...ganizationConformancePackDetailedStatus.go | 8 +- .../api_op_GetResourceConfigHistory.go | 16 +- ...api_op_ListAggregateDiscoveredResources.go | 8 +- .../api_op_ListDiscoveredResources.go | 34 +- .../configservice/api_op_ListStoredQueries.go | 4 +- .../api_op_ListTagsForResource.go | 6 +- service/configservice/api_op_PutConfigRule.go | 40 +- .../api_op_PutConfigurationAggregator.go | 22 +- .../api_op_PutConformancePack.go | 10 +- .../configservice/api_op_PutEvaluations.go | 23 +- .../api_op_PutExternalEvaluation.go | 4 +- .../api_op_PutOrganizationConfigRule.go | 39 +- .../api_op_PutOrganizationConformancePack.go | 43 +- .../api_op_PutRemediationConfigurations.go | 18 +- .../api_op_PutRemediationExceptions.go | 9 +- .../configservice/api_op_PutResourceConfig.go | 30 +- .../api_op_PutRetentionConfiguration.go | 12 +- .../configservice/api_op_PutStoredQuery.go | 5 +- .../api_op_SelectAggregateResourceConfig.go | 21 +- .../api_op_SelectResourceConfig.go | 2 +- .../api_op_StartConfigRulesEvaluation.go | 18 +- .../api_op_StartConfigurationRecorder.go | 6 +- .../api_op_StartRemediationExecution.go | 12 +- .../api_op_StopConfigurationRecorder.go | 4 +- service/configservice/doc.go | 38 +- service/configservice/types/errors.go | 111 +- service/configservice/types/types.go | 1014 +- service/ebs/api_op_StartSnapshot.go | 2 +- service/ec2/api_op_ImportImage.go | 3 + service/ec2/deserializers.go | 26 + service/ec2/serializers.go | 10 + service/ec2/types/enums.go | 19 + service/ec2/types/types.go | 53 +- service/efs/api_op_CreateAccessPoint.go | 7 +- service/efs/api_op_CreateFileSystem.go | 100 +- service/efs/api_op_CreateMountTarget.go | 11 +- service/efs/api_op_DeleteTags.go | 4 +- .../efs/api_op_DescribeAccountPreferences.go | 17 +- service/efs/api_op_DescribeFileSystems.go | 31 +- .../api_op_DescribeLifecycleConfiguration.go | 10 +- service/efs/api_op_PutAccountPreferences.go | 14 +- .../efs/api_op_PutLifecycleConfiguration.go | 43 +- service/efs/api_op_UpdateFileSystem.go | 19 +- service/efs/deserializers.go | 9 + service/efs/doc.go | 10 +- service/efs/serializers.go | 5 + service/efs/types/enums.go | 17 + service/efs/types/errors.go | 24 +- service/efs/types/types.go | 51 +- .../emr/api_op_GetAutoTerminationPolicy.go | 122 + ...pi_op_GetBlockPublicAccessConfiguration.go | 6 +- service/emr/api_op_ListClusters.go | 11 +- service/emr/api_op_ListReleaseLabels.go | 6 +- service/emr/api_op_ListStudios.go | 6 +- .../emr/api_op_PutAutoTerminationPolicy.go | 125 + ...pi_op_PutBlockPublicAccessConfiguration.go | 4 +- .../emr/api_op_RemoveAutoTerminationPolicy.go | 117 + service/emr/api_op_RunJobFlow.go | 22 +- service/emr/api_op_SetVisibleToAllUsers.go | 23 +- service/emr/deserializers.go | 466 + service/emr/generated.json | 3 + service/emr/serializers.go | 203 + service/emr/types/types.go | 61 +- service/emr/validators.go | 117 + service/firehose/api_op_PutRecord.go | 2 +- service/firehose/api_op_PutRecordBatch.go | 2 +- service/firehose/deserializers.go | 94 + service/firehose/serializers.go | 45 + service/firehose/types/enums.go | 16 +- service/firehose/types/types.go | 71 +- .../internal/endpoints/endpoints.go | 8 + .../fsx/api_op_AssociateFileSystemAliases.go | 4 +- service/fsx/api_op_CopyBackup.go | 53 +- service/fsx/api_op_CreateBackup.go | 49 +- .../fsx/api_op_CreateDataRepositoryTask.go | 2 +- service/fsx/api_op_CreateFileSystem.go | 57 +- .../fsx/api_op_CreateFileSystemFromBackup.go | 65 +- .../fsx/api_op_CreateStorageVirtualMachine.go | 199 + service/fsx/api_op_CreateVolume.go | 175 + service/fsx/api_op_CreateVolumeFromBackup.go | 176 + service/fsx/api_op_DeleteBackup.go | 3 +- service/fsx/api_op_DeleteFileSystem.go | 28 +- .../fsx/api_op_DeleteStorageVirtualMachine.go | 168 + service/fsx/api_op_DeleteVolume.go | 176 + service/fsx/api_op_DescribeBackups.go | 37 +- .../fsx/api_op_DescribeDataRepositoryTasks.go | 14 +- .../fsx/api_op_DescribeFileSystemAliases.go | 2 +- service/fsx/api_op_DescribeFileSystems.go | 35 +- .../api_op_DescribeStorageVirtualMachines.go | 226 + service/fsx/api_op_DescribeVolumes.go | 221 + .../api_op_DisassociateFileSystemAliases.go | 2 +- service/fsx/api_op_ListTagsForResource.go | 91 + service/fsx/api_op_UpdateFileSystem.go | 59 +- .../fsx/api_op_UpdateStorageVirtualMachine.go | 171 + service/fsx/api_op_UpdateVolume.go | 167 + service/fsx/deserializers.go | 6141 ++++-- service/fsx/generated.json | 9 + service/fsx/serializers.go | 1388 +- service/fsx/types/enums.go | 303 +- service/fsx/types/errors.go | 77 +- service/fsx/types/types.go | 859 +- service/fsx/validators.go | 404 +- .../iot/api_op_AcceptCertificateTransfer.go | 5 +- service/iot/api_op_AddThingToBillingGroup.go | 5 +- service/iot/api_op_AddThingToThingGroup.go | 5 +- service/iot/api_op_AssociateTargetsWithJob.go | 9 +- service/iot/api_op_AttachPolicy.go | 4 +- service/iot/api_op_AttachPrincipalPolicy.go | 5 +- service/iot/api_op_AttachSecurityProfile.go | 4 +- service/iot/api_op_AttachThingPrincipal.go | 4 +- ...api_op_CancelAuditMitigationActionsTask.go | 5 +- service/iot/api_op_CancelAuditTask.go | 3 + .../iot/api_op_CancelCertificateTransfer.go | 7 +- ...pi_op_CancelDetectMitigationActionsTask.go | 5 +- service/iot/api_op_CancelJob.go | 4 +- service/iot/api_op_CancelJobExecution.go | 5 +- service/iot/api_op_ClearDefaultAuthorizer.go | 5 +- .../iot/api_op_ConfirmTopicRuleDestination.go | 10 +- service/iot/api_op_CreateAuditSuppression.go | 5 +- service/iot/api_op_CreateAuthorizer.go | 7 +- service/iot/api_op_CreateBillingGroup.go | 4 +- .../iot/api_op_CreateCertificateFromCsr.go | 37 +- service/iot/api_op_CreateCustomMetric.go | 8 +- service/iot/api_op_CreateDimension.go | 11 +- .../iot/api_op_CreateDomainConfiguration.go | 15 +- service/iot/api_op_CreateDynamicThingGroup.go | 7 +- service/iot/api_op_CreateFleetMetric.go | 165 + service/iot/api_op_CreateJob.go | 13 +- service/iot/api_op_CreateJobTemplate.go | 4 +- .../iot/api_op_CreateKeysAndCertificate.go | 16 +- service/iot/api_op_CreateMitigationAction.go | 5 +- service/iot/api_op_CreateOTAUpdate.go | 14 +- service/iot/api_op_CreatePolicy.go | 9 +- service/iot/api_op_CreatePolicyVersion.go | 16 +- service/iot/api_op_CreateProvisioningClaim.go | 5 +- .../iot/api_op_CreateProvisioningTemplate.go | 5 +- ...pi_op_CreateProvisioningTemplateVersion.go | 5 +- service/iot/api_op_CreateRoleAlias.go | 7 +- service/iot/api_op_CreateScheduledAudit.go | 5 +- service/iot/api_op_CreateSecurityProfile.go | 5 +- service/iot/api_op_CreateStream.go | 3 + service/iot/api_op_CreateThing.go | 5 +- service/iot/api_op_CreateThingGroup.go | 5 +- service/iot/api_op_CreateThingType.go | 4 +- service/iot/api_op_CreateTopicRule.go | 4 +- .../iot/api_op_CreateTopicRuleDestination.go | 4 +- .../api_op_DeleteAccountAuditConfiguration.go | 4 +- service/iot/api_op_DeleteAuditSuppression.go | 5 +- service/iot/api_op_DeleteAuthorizer.go | 4 +- service/iot/api_op_DeleteBillingGroup.go | 4 +- service/iot/api_op_DeleteCACertificate.go | 5 +- service/iot/api_op_DeleteCertificate.go | 8 +- service/iot/api_op_DeleteCustomMetric.go | 12 +- service/iot/api_op_DeleteDimension.go | 5 +- .../iot/api_op_DeleteDomainConfiguration.go | 5 +- service/iot/api_op_DeleteDynamicThingGroup.go | 5 +- service/iot/api_op_DeleteFleetMetric.go | 123 + service/iot/api_op_DeleteJob.go | 8 +- service/iot/api_op_DeleteJobExecution.go | 8 +- service/iot/api_op_DeleteMitigationAction.go | 5 +- service/iot/api_op_DeleteOTAUpdate.go | 6 +- service/iot/api_op_DeletePolicy.go | 13 +- service/iot/api_op_DeletePolicyVersion.go | 9 +- .../iot/api_op_DeleteProvisioningTemplate.go | 5 +- ...pi_op_DeleteProvisioningTemplateVersion.go | 5 +- service/iot/api_op_DeleteRegistrationCode.go | 5 +- service/iot/api_op_DeleteRoleAlias.go | 4 +- service/iot/api_op_DeleteScheduledAudit.go | 5 +- service/iot/api_op_DeleteSecurityProfile.go | 5 +- service/iot/api_op_DeleteStream.go | 4 +- service/iot/api_op_DeleteThing.go | 5 +- service/iot/api_op_DeleteThingGroup.go | 4 +- service/iot/api_op_DeleteThingType.go | 5 +- service/iot/api_op_DeleteTopicRule.go | 4 +- .../iot/api_op_DeleteTopicRuleDestination.go | 5 +- service/iot/api_op_DeleteV2LoggingLevel.go | 4 +- service/iot/api_op_DeprecateThingType.go | 4 +- ...pi_op_DescribeAccountAuditConfiguration.go | 9 +- service/iot/api_op_DescribeAuditFinding.go | 4 +- service/iot/api_op_DescribeAuditTask.go | 5 +- service/iot/api_op_DescribeAuthorizer.go | 4 +- service/iot/api_op_DescribeBillingGroup.go | 5 +- service/iot/api_op_DescribeCACertificate.go | 5 +- service/iot/api_op_DescribeCertificate.go | 5 +- service/iot/api_op_DescribeCustomMetric.go | 5 +- .../iot/api_op_DescribeDefaultAuthorizer.go | 5 +- ..._op_DescribeDetectMitigationActionsTask.go | 5 +- service/iot/api_op_DescribeDimension.go | 5 +- .../iot/api_op_DescribeDomainConfiguration.go | 5 +- service/iot/api_op_DescribeEndpoint.go | 19 +- .../iot/api_op_DescribeEventConfigurations.go | 5 +- service/iot/api_op_DescribeFleetMetric.go | 164 + service/iot/api_op_DescribeIndex.go | 4 +- service/iot/api_op_DescribeJob.go | 4 +- service/iot/api_op_DescribeJobExecution.go | 5 +- .../iot/api_op_DescribeMitigationAction.go | 8 +- .../api_op_DescribeProvisioningTemplate.go | 5 +- ..._op_DescribeProvisioningTemplateVersion.go | 5 +- service/iot/api_op_DescribeRoleAlias.go | 4 +- service/iot/api_op_DescribeScheduledAudit.go | 5 +- service/iot/api_op_DescribeSecurityProfile.go | 5 +- service/iot/api_op_DescribeStream.go | 5 +- service/iot/api_op_DescribeThing.go | 7 +- service/iot/api_op_DescribeThingGroup.go | 4 +- .../api_op_DescribeThingRegistrationTask.go | 5 +- service/iot/api_op_DescribeThingType.go | 5 +- service/iot/api_op_DetachPolicy.go | 7 +- service/iot/api_op_DetachPrincipalPolicy.go | 7 +- service/iot/api_op_DetachSecurityProfile.go | 4 +- service/iot/api_op_DetachThingPrincipal.go | 5 +- service/iot/api_op_DisableTopicRule.go | 4 +- service/iot/api_op_EnableTopicRule.go | 4 +- ...pi_op_GetBehaviorModelTrainingSummaries.go | 3 + service/iot/api_op_GetBucketsAggregation.go | 147 + service/iot/api_op_GetCardinality.go | 7 +- service/iot/api_op_GetEffectivePolicies.go | 5 +- .../iot/api_op_GetIndexingConfiguration.go | 5 +- service/iot/api_op_GetJobDocument.go | 4 +- service/iot/api_op_GetLoggingOptions.go | 4 +- service/iot/api_op_GetOTAUpdate.go | 4 +- service/iot/api_op_GetPercentiles.go | 7 +- service/iot/api_op_GetPolicy.go | 4 +- service/iot/api_op_GetPolicyVersion.go | 5 +- service/iot/api_op_GetRegistrationCode.go | 5 +- service/iot/api_op_GetStatistics.go | 7 +- service/iot/api_op_GetTopicRule.go | 4 +- service/iot/api_op_GetTopicRuleDestination.go | 5 +- service/iot/api_op_GetV2LoggingOptions.go | 7 +- service/iot/api_op_ListActiveViolations.go | 3 + service/iot/api_op_ListAttachedPolicies.go | 5 +- service/iot/api_op_ListAuditFindings.go | 3 + ...op_ListAuditMitigationActionsExecutions.go | 5 +- .../api_op_ListAuditMitigationActionsTasks.go | 3 + service/iot/api_op_ListAuditSuppressions.go | 5 +- service/iot/api_op_ListAuditTasks.go | 4 +- service/iot/api_op_ListAuthorizers.go | 5 +- service/iot/api_op_ListBillingGroups.go | 5 +- service/iot/api_op_ListCACertificates.go | 11 +- service/iot/api_op_ListCertificates.go | 9 +- service/iot/api_op_ListCertificatesByCA.go | 5 +- service/iot/api_op_ListCustomMetrics.go | 5 +- ...p_ListDetectMitigationActionsExecutions.go | 4 +- ...api_op_ListDetectMitigationActionsTasks.go | 5 +- service/iot/api_op_ListDimensions.go | 5 +- .../iot/api_op_ListDomainConfigurations.go | 5 +- service/iot/api_op_ListFleetMetrics.go | 213 + service/iot/api_op_ListIndices.go | 4 +- service/iot/api_op_ListJobExecutionsForJob.go | 5 +- .../iot/api_op_ListJobExecutionsForThing.go | 9 +- service/iot/api_op_ListJobTemplates.go | 92 +- service/iot/api_op_ListJobs.go | 8 +- service/iot/api_op_ListMitigationActions.go | 3 + service/iot/api_op_ListOTAUpdates.go | 4 +- .../iot/api_op_ListOutgoingCertificates.go | 5 +- service/iot/api_op_ListPolicies.go | 4 +- service/iot/api_op_ListPolicyPrincipals.go | 7 +- service/iot/api_op_ListPolicyVersions.go | 3 + service/iot/api_op_ListPrincipalPolicies.go | 5 +- service/iot/api_op_ListPrincipalThings.go | 4 +- ...api_op_ListProvisioningTemplateVersions.go | 5 +- .../iot/api_op_ListProvisioningTemplates.go | 5 +- service/iot/api_op_ListRoleAliases.go | 5 +- service/iot/api_op_ListScheduledAudits.go | 5 +- service/iot/api_op_ListSecurityProfiles.go | 6 +- .../api_op_ListSecurityProfilesForTarget.go | 3 + service/iot/api_op_ListStreams.go | 5 +- service/iot/api_op_ListTagsForResource.go | 5 +- service/iot/api_op_ListTargetsForPolicy.go | 5 +- .../api_op_ListTargetsForSecurityProfile.go | 5 +- service/iot/api_op_ListThingGroups.go | 5 +- service/iot/api_op_ListThingGroupsForThing.go | 5 +- service/iot/api_op_ListThingPrincipals.go | 4 +- .../iot/api_op_ListThingRegistrationTasks.go | 5 +- service/iot/api_op_ListThingTypes.go | 4 +- service/iot/api_op_ListThings.go | 9 +- .../iot/api_op_ListThingsInBillingGroup.go | 5 +- service/iot/api_op_ListThingsInThingGroup.go | 5 +- .../iot/api_op_ListTopicRuleDestinations.go | 5 +- service/iot/api_op_ListTopicRules.go | 5 +- service/iot/api_op_ListV2LoggingLevels.go | 4 +- service/iot/api_op_ListViolationEvents.go | 5 +- service/iot/api_op_RegisterCACertificate.go | 17 +- service/iot/api_op_RegisterCertificate.go | 7 +- service/iot/api_op_RegisterThing.go | 11 +- .../iot/api_op_RejectCertificateTransfer.go | 6 +- .../iot/api_op_RemoveThingFromBillingGroup.go | 5 +- .../iot/api_op_RemoveThingFromThingGroup.go | 3 + service/iot/api_op_ReplaceTopicRule.go | 5 +- service/iot/api_op_SearchIndex.go | 4 +- service/iot/api_op_SetDefaultAuthorizer.go | 5 +- service/iot/api_op_SetDefaultPolicyVersion.go | 5 +- service/iot/api_op_SetLoggingOptions.go | 4 +- service/iot/api_op_SetV2LoggingLevel.go | 4 +- service/iot/api_op_SetV2LoggingOptions.go | 5 +- .../api_op_StartAuditMitigationActionsTask.go | 5 +- ...api_op_StartDetectMitigationActionsTask.go | 9 +- service/iot/api_op_StartOnDemandAuditTask.go | 5 +- .../iot/api_op_StartThingRegistrationTask.go | 5 +- .../iot/api_op_StopThingRegistrationTask.go | 5 +- service/iot/api_op_TagResource.go | 4 +- service/iot/api_op_TestAuthorization.go | 7 +- service/iot/api_op_TestInvokeAuthorizer.go | 5 +- service/iot/api_op_TransferCertificate.go | 18 +- service/iot/api_op_UntagResource.go | 5 +- .../api_op_UpdateAccountAuditConfiguration.go | 7 +- service/iot/api_op_UpdateAuthorizer.go | 4 +- service/iot/api_op_UpdateBillingGroup.go | 5 +- service/iot/api_op_UpdateCACertificate.go | 5 +- service/iot/api_op_UpdateCertificate.go | 10 +- service/iot/api_op_UpdateCustomMetric.go | 5 +- service/iot/api_op_UpdateDimension.go | 5 +- .../iot/api_op_UpdateDomainConfiguration.go | 5 +- service/iot/api_op_UpdateDynamicThingGroup.go | 7 +- .../iot/api_op_UpdateEventConfigurations.go | 5 +- service/iot/api_op_UpdateFleetMetric.go | 152 + .../iot/api_op_UpdateIndexingConfiguration.go | 5 +- service/iot/api_op_UpdateJob.go | 9 +- service/iot/api_op_UpdateMitigationAction.go | 5 +- .../iot/api_op_UpdateProvisioningTemplate.go | 5 +- service/iot/api_op_UpdateRoleAlias.go | 4 +- service/iot/api_op_UpdateScheduledAudit.go | 4 +- service/iot/api_op_UpdateSecurityProfile.go | 5 +- service/iot/api_op_UpdateStream.go | 3 + service/iot/api_op_UpdateThing.go | 4 +- service/iot/api_op_UpdateThingGroup.go | 4 +- .../iot/api_op_UpdateThingGroupsForThing.go | 5 +- .../iot/api_op_UpdateTopicRuleDestination.go | 5 +- ...api_op_ValidateSecurityProfileBehaviors.go | 5 +- service/iot/deserializers.go | 2740 ++- service/iot/doc.go | 26 +- service/iot/generated.json | 6 + service/iot/serializers.go | 571 + service/iot/types/enums.go | 88 + service/iot/types/types.go | 178 +- service/iot/validators.go | 245 + .../internal/endpoints/endpoints.go | 70 + service/ivs/internal/endpoints/endpoints.go | 5 + service/kms/api_op_CancelKeyDeletion.go | 26 +- service/kms/api_op_ConnectCustomKeyStore.go | 42 +- service/kms/api_op_CreateAlias.go | 59 +- service/kms/api_op_CreateCustomKeyStore.go | 45 +- service/kms/api_op_CreateGrant.go | 135 +- service/kms/api_op_CreateKey.go | 369 +- service/kms/api_op_Decrypt.go | 135 +- service/kms/api_op_DeleteAlias.go | 26 +- service/kms/api_op_DeleteCustomKeyStore.go | 38 +- .../kms/api_op_DeleteImportedKeyMaterial.go | 28 +- service/kms/api_op_DescribeCustomKeyStores.go | 32 +- service/kms/api_op_DescribeKey.go | 89 +- service/kms/api_op_DisableKey.go | 27 +- service/kms/api_op_DisableKeyRotation.go | 30 +- .../kms/api_op_DisconnectCustomKeyStore.go | 20 +- service/kms/api_op_EnableKey.go | 23 +- service/kms/api_op_EnableKeyRotation.go | 32 +- service/kms/api_op_Encrypt.go | 147 +- service/kms/api_op_GenerateDataKey.go | 103 +- service/kms/api_op_GenerateDataKeyPair.go | 108 +- ..._op_GenerateDataKeyPairWithoutPlaintext.go | 92 +- .../api_op_GenerateDataKeyWithoutPlaintext.go | 90 +- service/kms/api_op_GenerateRandom.go | 26 +- service/kms/api_op_GetKeyPolicy.go | 18 +- service/kms/api_op_GetKeyRotationStatus.go | 42 +- service/kms/api_op_GetParametersForImport.go | 51 +- service/kms/api_op_GetPublicKey.go | 98 +- service/kms/api_op_ImportKeyMaterial.go | 76 +- service/kms/api_op_ListAliases.go | 61 +- service/kms/api_op_ListGrants.go | 50 +- service/kms/api_op_ListKeyPolicies.go | 32 +- service/kms/api_op_ListKeys.go | 24 +- service/kms/api_op_ListResourceTags.go | 38 +- service/kms/api_op_ListRetirableGrants.go | 55 +- service/kms/api_op_PutKeyPolicy.go | 75 +- service/kms/api_op_ReEncrypt.go | 207 +- service/kms/api_op_ReplicateKey.go | 198 +- service/kms/api_op_RetireGrant.go | 33 +- service/kms/api_op_RevokeGrant.go | 26 +- service/kms/api_op_ScheduleKeyDeletion.go | 99 +- service/kms/api_op_Sign.go | 99 +- service/kms/api_op_TagResource.go | 46 +- service/kms/api_op_UntagResource.go | 42 +- service/kms/api_op_UpdateAlias.go | 60 +- service/kms/api_op_UpdateCustomKeyStore.go | 40 +- service/kms/api_op_UpdateKeyDescription.go | 26 +- service/kms/api_op_UpdatePrimaryRegion.go | 68 +- service/kms/api_op_Verify.go | 78 +- service/kms/deserializers.go | 18 + service/kms/doc.go | 61 +- service/kms/serializers.go | 5 + service/kms/types/enums.go | 30 + service/kms/types/errors.go | 113 +- service/kms/types/types.go | 296 +- .../lexmodelbuildingservice/types/enums.go | 2 + service/mediatailor/api_op_CreateChannel.go | 16 +- service/mediatailor/api_op_CreateProgram.go | 5 + service/mediatailor/api_op_DescribeChannel.go | 6 +- service/mediatailor/api_op_DescribeProgram.go | 5 + service/mediatailor/api_op_UpdateChannel.go | 6 +- service/mediatailor/deserializers.go | 61 + service/mediatailor/serializers.go | 12 + service/mediatailor/types/enums.go | 22 +- service/mediatailor/types/types.go | 31 +- service/memorydb/api_op_BatchUpdateCluster.go | 2 +- service/memorydb/api_op_CopySnapshot.go | 2 +- service/memorydb/api_op_CreateACL.go | 2 +- service/memorydb/api_op_CreateCluster.go | 11 +- .../memorydb/api_op_CreateParameterGroup.go | 2 +- service/memorydb/api_op_CreateSubnetGroup.go | 2 +- service/memorydb/api_op_CreateUser.go | 2 +- service/memorydb/api_op_DeleteACL.go | 2 +- service/memorydb/api_op_ListTags.go | 2 +- service/memorydb/api_op_TagResource.go | 4 +- service/memorydb/api_op_UpdateSubnetGroup.go | 2 +- service/memorydb/doc.go | 8 +- service/memorydb/types/errors.go | 1 + service/memorydb/types/types.go | 2 +- service/mwaa/internal/endpoints/endpoints.go | 6 + service/polly/internal/endpoints/endpoints.go | 1 + service/polly/types/enums.go | 4 + service/quicksight/api_op_CancelIngestion.go | 2 +- .../api_op_CreateAccountCustomization.go | 44 +- service/quicksight/api_op_CreateAnalysis.go | 6 +- service/quicksight/api_op_CreateDashboard.go | 29 +- service/quicksight/api_op_CreateDataSet.go | 12 +- service/quicksight/api_op_CreateDataSource.go | 28 +- service/quicksight/api_op_CreateGroup.go | 4 +- .../api_op_CreateGroupMembership.go | 4 +- .../api_op_CreateIAMPolicyAssignment.go | 27 +- service/quicksight/api_op_CreateIngestion.go | 2 +- service/quicksight/api_op_CreateNamespace.go | 20 +- service/quicksight/api_op_CreateTemplate.go | 30 +- .../quicksight/api_op_CreateTemplateAlias.go | 2 +- service/quicksight/api_op_CreateTheme.go | 7 +- service/quicksight/api_op_CreateThemeAlias.go | 2 +- .../api_op_DeleteAccountCustomization.go | 8 +- service/quicksight/api_op_DeleteAnalysis.go | 18 +- service/quicksight/api_op_DeleteDashboard.go | 2 +- service/quicksight/api_op_DeleteDataSet.go | 6 +- service/quicksight/api_op_DeleteDataSource.go | 6 +- service/quicksight/api_op_DeleteGroup.go | 4 +- .../api_op_DeleteGroupMembership.go | 4 +- .../api_op_DeleteIAMPolicyAssignment.go | 4 +- service/quicksight/api_op_DeleteNamespace.go | 2 +- service/quicksight/api_op_DeleteTemplate.go | 4 +- .../quicksight/api_op_DeleteTemplateAlias.go | 2 +- service/quicksight/api_op_DeleteTheme.go | 2 +- service/quicksight/api_op_DeleteThemeAlias.go | 2 +- service/quicksight/api_op_DeleteUser.go | 4 +- .../api_op_DeleteUserByPrincipalId.go | 4 +- .../api_op_DescribeAccountCustomization.go | 94 +- .../api_op_DescribeAccountSettings.go | 23 +- service/quicksight/api_op_DescribeAnalysis.go | 4 +- .../api_op_DescribeAnalysisPermissions.go | 6 +- .../quicksight/api_op_DescribeDashboard.go | 2 +- .../api_op_DescribeDashboardPermissions.go | 4 +- service/quicksight/api_op_DescribeDataSet.go | 4 +- .../api_op_DescribeDataSetPermissions.go | 6 +- .../quicksight/api_op_DescribeDataSource.go | 4 +- .../api_op_DescribeDataSourcePermissions.go | 6 +- service/quicksight/api_op_DescribeGroup.go | 4 +- .../api_op_DescribeIAMPolicyAssignment.go | 7 +- .../quicksight/api_op_DescribeIngestion.go | 2 +- .../quicksight/api_op_DescribeNamespace.go | 2 +- service/quicksight/api_op_DescribeTemplate.go | 4 +- .../api_op_DescribeTemplateAlias.go | 2 +- .../api_op_DescribeTemplatePermissions.go | 4 +- service/quicksight/api_op_DescribeTheme.go | 2 +- .../quicksight/api_op_DescribeThemeAlias.go | 2 +- .../api_op_DescribeThemePermissions.go | 2 +- service/quicksight/api_op_DescribeUser.go | 4 +- .../quicksight/api_op_GetDashboardEmbedUrl.go | 45 +- .../quicksight/api_op_GetSessionEmbedUrl.go | 34 +- service/quicksight/api_op_ListAnalyses.go | 4 +- .../api_op_ListDashboardVersions.go | 4 +- service/quicksight/api_op_ListDashboards.go | 6 +- service/quicksight/api_op_ListDataSets.go | 4 +- service/quicksight/api_op_ListDataSources.go | 4 +- .../quicksight/api_op_ListGroupMemberships.go | 4 +- service/quicksight/api_op_ListGroups.go | 4 +- .../api_op_ListIAMPolicyAssignments.go | 6 +- .../api_op_ListIAMPolicyAssignmentsForUser.go | 4 +- service/quicksight/api_op_ListIngestions.go | 2 +- service/quicksight/api_op_ListNamespaces.go | 6 +- .../quicksight/api_op_ListTemplateAliases.go | 2 +- .../quicksight/api_op_ListTemplateVersions.go | 2 +- service/quicksight/api_op_ListTemplates.go | 2 +- service/quicksight/api_op_ListThemeAliases.go | 2 +- .../quicksight/api_op_ListThemeVersions.go | 5 +- service/quicksight/api_op_ListThemes.go | 4 +- service/quicksight/api_op_ListUserGroups.go | 4 +- service/quicksight/api_op_ListUsers.go | 4 +- service/quicksight/api_op_RegisterUser.go | 40 +- service/quicksight/api_op_RestoreAnalysis.go | 2 +- service/quicksight/api_op_SearchAnalyses.go | 4 +- service/quicksight/api_op_SearchDashboards.go | 2 +- service/quicksight/api_op_TagResource.go | 34 +- .../api_op_UpdateAccountCustomization.go | 30 +- .../api_op_UpdateAccountSettings.go | 14 +- service/quicksight/api_op_UpdateAnalysis.go | 10 +- .../api_op_UpdateAnalysisPermissions.go | 4 +- service/quicksight/api_op_UpdateDashboard.go | 16 +- .../api_op_UpdateDashboardPermissions.go | 2 +- .../api_op_UpdateDashboardPublishedVersion.go | 2 +- service/quicksight/api_op_UpdateDataSet.go | 12 +- .../api_op_UpdateDataSetPermissions.go | 6 +- service/quicksight/api_op_UpdateDataSource.go | 21 +- .../api_op_UpdateDataSourcePermissions.go | 6 +- service/quicksight/api_op_UpdateGroup.go | 4 +- .../api_op_UpdateIAMPolicyAssignment.go | 19 +- service/quicksight/api_op_UpdateTemplate.go | 14 +- .../quicksight/api_op_UpdateTemplateAlias.go | 2 +- .../api_op_UpdateTemplatePermissions.go | 2 +- service/quicksight/api_op_UpdateTheme.go | 2 +- service/quicksight/api_op_UpdateThemeAlias.go | 2 +- .../api_op_UpdateThemePermissions.go | 2 +- service/quicksight/api_op_UpdateUser.go | 30 +- service/quicksight/deserializers.go | 154 + service/quicksight/serializers.go | 72 + service/quicksight/types/enums.go | 18 + service/quicksight/types/errors.go | 13 +- service/quicksight/types/types.go | 252 +- .../quicksight/types/types_exported_test.go | 4 + service/quicksight/validators.go | 23 + service/s3/api_op_DeleteObject.go | 3 +- service/s3/api_op_DeleteObjects.go | 4 +- service/s3/api_op_GetObject.go | 11 +- service/s3/api_op_HeadObject.go | 6 +- service/s3control/api_op_CreateAccessPoint.go | 4 +- ...api_op_CreateAccessPointForObjectLambda.go | 3 +- service/s3control/api_op_CreateJob.go | 2 +- .../api_op_CreateMultiRegionAccessPoint.go | 292 + .../s3control/api_op_DeleteBucketPolicy.go | 12 +- .../s3control/api_op_DeleteBucketTagging.go | 2 +- service/s3control/api_op_DeleteJobTagging.go | 2 +- .../api_op_DeleteMultiRegionAccessPoint.go | 289 + .../api_op_DeletePublicAccessBlock.go | 8 +- service/s3control/api_op_DescribeJob.go | 2 +- ...DescribeMultiRegionAccessPointOperation.go | 241 + service/s3control/api_op_GetBucket.go | 28 +- .../api_op_GetBucketLifecycleConfiguration.go | 2 +- service/s3control/api_op_GetBucketPolicy.go | 23 +- service/s3control/api_op_GetBucketTagging.go | 2 +- service/s3control/api_op_GetJobTagging.go | 2 +- .../api_op_GetMultiRegionAccessPoint.go | 245 + .../api_op_GetMultiRegionAccessPointPolicy.go | 236 + ...p_GetMultiRegionAccessPointPolicyStatus.go | 240 + .../s3control/api_op_GetPublicAccessBlock.go | 11 +- service/s3control/api_op_ListAccessPoints.go | 3 +- service/s3control/api_op_ListJobs.go | 6 +- .../api_op_ListMultiRegionAccessPoints.go | 334 + .../s3control/api_op_ListRegionalBuckets.go | 2 +- .../s3control/api_op_PutAccessPointPolicy.go | 4 +- .../api_op_PutBucketLifecycleConfiguration.go | 2 +- service/s3control/api_op_PutBucketPolicy.go | 23 +- service/s3control/api_op_PutBucketTagging.go | 16 +- service/s3control/api_op_PutJobTagging.go | 2 +- .../api_op_PutMultiRegionAccessPointPolicy.go | 279 + .../s3control/api_op_PutPublicAccessBlock.go | 10 +- service/s3control/api_op_UpdateJobPriority.go | 2 +- service/s3control/api_op_UpdateJobStatus.go | 2 +- service/s3control/deserializers.go | 4735 +++-- service/s3control/generated.json | 8 + service/s3control/serializers.go | 750 +- service/s3control/types/enums.go | 46 + service/s3control/types/types.go | 262 + service/s3control/validators.go | 441 + .../internal/endpoints/endpoints.go | 1 + service/schemas/api_op_CreateDiscoverer.go | 8 + service/schemas/api_op_DescribeDiscoverer.go | 4 + service/schemas/api_op_UpdateDiscoverer.go | 8 + service/schemas/deserializers.go | 36 + service/schemas/serializers.go | 10 + service/schemas/types/types.go | 4 + service/securityhub/deserializers.go | 17502 +++++++++------- service/securityhub/serializers.go | 906 + service/securityhub/types/enums.go | 19 + service/securityhub/types/types.go | 626 +- .../api_op_GetApplication.go | 5 + .../api_op_GetAssociatedResource.go | 131 + .../api_op_SyncResource.go | 9 +- .../deserializers.go | 355 + service/servicecatalogappregistry/doc.go | 8 +- .../servicecatalogappregistry/generated.json | 1 + .../servicecatalogappregistry/serializers.go | 76 + .../servicecatalogappregistry/types/enums.go | 26 + .../servicecatalogappregistry/types/types.go | 71 +- .../servicecatalogappregistry/validators.go | 45 + service/sqs/api_op_CreateQueue.go | 68 +- service/sqs/api_op_GetQueueAttributes.go | 65 +- service/sqs/api_op_SetQueueAttributes.go | 71 +- service/sqs/types/enums.go | 2 + .../internal/endpoints/endpoints.go | 11 + service/transfer/api_op_CreateAccess.go | 27 +- service/transfer/api_op_CreateServer.go | 4 + service/transfer/api_op_CreateUser.go | 34 +- service/transfer/api_op_CreateWorkflow.go | 151 + service/transfer/api_op_DeleteSshPublicKey.go | 3 +- service/transfer/api_op_DeleteWorkflow.go | 116 + service/transfer/api_op_DescribeExecution.go | 134 + service/transfer/api_op_DescribeWorkflow.go | 123 + service/transfer/api_op_ListExecutions.go | 249 + service/transfer/api_op_ListWorkflows.go | 214 + .../transfer/api_op_SendWorkflowStepState.go | 136 + .../transfer/api_op_TestIdentityProvider.go | 18 +- service/transfer/api_op_UpdateAccess.go | 24 +- service/transfer/api_op_UpdateServer.go | 4 + service/transfer/api_op_UpdateUser.go | 27 +- service/transfer/deserializers.go | 4611 +++- service/transfer/generated.json | 7 + service/transfer/serializers.go | 1000 +- service/transfer/types/enums.go | 96 + service/transfer/types/errors.go | 2 +- service/transfer/types/types.go | 486 +- service/transfer/validators.go | 410 + 755 files changed, 57675 insertions(+), 20366 deletions(-) create mode 100644 .changelog/09efa2618f094673953f18ed23df1d98.json create mode 100644 .changelog/2b52a08d89644bcfbcdc27959735d487.json create mode 100644 service/cloudformation/api_op_RollbackStack.go create mode 100644 service/emr/api_op_GetAutoTerminationPolicy.go create mode 100644 service/emr/api_op_PutAutoTerminationPolicy.go create mode 100644 service/emr/api_op_RemoveAutoTerminationPolicy.go create mode 100644 service/fsx/api_op_CreateStorageVirtualMachine.go create mode 100644 service/fsx/api_op_CreateVolume.go create mode 100644 service/fsx/api_op_CreateVolumeFromBackup.go create mode 100644 service/fsx/api_op_DeleteStorageVirtualMachine.go create mode 100644 service/fsx/api_op_DeleteVolume.go create mode 100644 service/fsx/api_op_DescribeStorageVirtualMachines.go create mode 100644 service/fsx/api_op_DescribeVolumes.go create mode 100644 service/fsx/api_op_UpdateStorageVirtualMachine.go create mode 100644 service/fsx/api_op_UpdateVolume.go create mode 100644 service/iot/api_op_CreateFleetMetric.go create mode 100644 service/iot/api_op_DeleteFleetMetric.go create mode 100644 service/iot/api_op_DescribeFleetMetric.go create mode 100644 service/iot/api_op_GetBucketsAggregation.go create mode 100644 service/iot/api_op_ListFleetMetrics.go create mode 100644 service/iot/api_op_UpdateFleetMetric.go create mode 100644 service/s3control/api_op_CreateMultiRegionAccessPoint.go create mode 100644 service/s3control/api_op_DeleteMultiRegionAccessPoint.go create mode 100644 service/s3control/api_op_DescribeMultiRegionAccessPointOperation.go create mode 100644 service/s3control/api_op_GetMultiRegionAccessPoint.go create mode 100644 service/s3control/api_op_GetMultiRegionAccessPointPolicy.go create mode 100644 service/s3control/api_op_GetMultiRegionAccessPointPolicyStatus.go create mode 100644 service/s3control/api_op_ListMultiRegionAccessPoints.go create mode 100644 service/s3control/api_op_PutMultiRegionAccessPointPolicy.go create mode 100644 service/servicecatalogappregistry/api_op_GetAssociatedResource.go create mode 100644 service/transfer/api_op_CreateWorkflow.go create mode 100644 service/transfer/api_op_DeleteWorkflow.go create mode 100644 service/transfer/api_op_DescribeExecution.go create mode 100644 service/transfer/api_op_DescribeWorkflow.go create mode 100644 service/transfer/api_op_ListExecutions.go create mode 100644 service/transfer/api_op_ListWorkflows.go create mode 100644 service/transfer/api_op_SendWorkflowStepState.go diff --git a/.changelog/09efa2618f094673953f18ed23df1d98.json b/.changelog/09efa2618f094673953f18ed23df1d98.json new file mode 100644 index 00000000000..51faeb8fe77 --- /dev/null +++ b/.changelog/09efa2618f094673953f18ed23df1d98.json @@ -0,0 +1,27 @@ +{ + "id": "09efa261-8f09-4673-953f-18ed23df1d98", + "type": "feature", + "description": "API client updated", + "modules": [ + "service/cloudformation", + "service/cloudtrail", + "service/codebuild", + "service/computeoptimizer", + "service/configservice", + "service/ec2", + "service/emr", + "service/firehose", + "service/frauddetector", + "service/iot", + "service/iotjobsdataplane", + "service/ivs", + "service/kms", + "service/mediatailor", + "service/memorydb", + "service/polly", + "service/s3", + "service/servicecatalogappregistry", + "service/sqs", + "service/ssmincidents" + ] +} \ No newline at end of file diff --git a/.changelog/2b52a08d89644bcfbcdc27959735d487.json b/.changelog/2b52a08d89644bcfbcdc27959735d487.json new file mode 100644 index 00000000000..ae4a8836b90 --- /dev/null +++ b/.changelog/2b52a08d89644bcfbcdc27959735d487.json @@ -0,0 +1,22 @@ +{ + "id": "2b52a08d-8964-4bcf-bcdc-27959735d487", + "type": "feature", + "description": "API client updated", + "modules": [ + "service/accessanalyzer", + "service/acmpca", + "service/cloud9", + "service/ebs", + "service/efs", + "service/fsx", + "service/lexmodelbuildingservice", + "service/mwaa", + "service/polly", + "service/quicksight", + "service/s3control", + "service/sagemakerruntime", + "service/schemas", + "service/securityhub", + "service/transfer" + ] +} \ No newline at end of file diff --git a/codegen/sdk-codegen/aws-models/accessanalyzer.2019-11-01.json b/codegen/sdk-codegen/aws-models/accessanalyzer.2019-11-01.json index f2a87af9d3f..fe905ed5a2d 100644 --- a/codegen/sdk-codegen/aws-models/accessanalyzer.2019-11-01.json +++ b/codegen/sdk-codegen/aws-models/accessanalyzer.2019-11-01.json @@ -81,7 +81,7 @@ }, "aws.protocols#restJson1": {}, "smithy.api#cors": {}, - "smithy.api#documentation": "

AWS IAM Access Analyzer helps identify potential resource-access risks by enabling you to identify\n any policies that grant access to an external principal. It does this by using logic-based\n reasoning to analyze resource-based policies in your AWS environment. An external\n principal can be another AWS account, a root user, an IAM user or role, a federated\n user, an AWS service, or an anonymous user. You can also use Access Analyzer to preview and\n validate public and cross-account access to your resources before deploying permissions\n changes. This guide describes the AWS IAM Access Analyzer operations that you can call\n programmatically. For general information about Access Analyzer, see AWS IAM Access Analyzer in the IAM User Guide.

\n

To start using Access Analyzer, you first need to create an analyzer.

", + "smithy.api#documentation": "

Identity and Access Management Access Analyzer helps identify potential resource-access risks by enabling you to\n identify any policies that grant access to an external principal. It does this by using\n logic-based reasoning to analyze resource-based policies in your Amazon Web Services environment. An\n external principal can be another Amazon Web Services account, a root user, an IAM user or role, a\n federated user, an Amazon Web Services service, or an anonymous user. You can also use IAM Access Analyzer to\n preview and validate public and cross-account access to your resources before deploying\n permissions changes. This guide describes the Identity and Access Management Access Analyzer operations that you can\n call programmatically. For general information about IAM Access Analyzer, see Identity and Access Management Access Analyzer in the IAM User Guide.

\n

To start using IAM Access Analyzer, you first need to create an analyzer.

", "smithy.api#paginated": { "inputToken": "nextToken", "outputToken": "nextToken", @@ -109,7 +109,7 @@ "com.amazonaws.accessanalyzer#AccessPointArn": { "type": "string", "traits": { - "smithy.api#pattern": "arn:[^:]*:s3:[^:]*:[^:]*:accesspoint/.*$" + "smithy.api#pattern": "^arn:[^:]*:s3:[^:]*:[^:]*:accesspoint/.*$" } }, "com.amazonaws.accessanalyzer#AccessPointPolicy": { @@ -177,7 +177,7 @@ "existingFindingId": { "target": "com.amazonaws.accessanalyzer#FindingId", "traits": { - "smithy.api#documentation": "

The existing ID of the finding in Access Analyzer, provided only for existing findings.

" + "smithy.api#documentation": "

The existing ID of the finding in IAM Access Analyzer, provided only for existing\n findings.

" } }, "existingFindingStatus": { @@ -233,7 +233,7 @@ "changeType": { "target": "com.amazonaws.accessanalyzer#FindingChangeType", "traits": { - "smithy.api#documentation": "

Provides context on how the access preview finding compares to existing access\n identified in Access Analyzer.

\n \n

For example, a Changed finding with preview status Resolved\n and existing status Active indicates the existing Active finding\n would become Resolved as a result of the proposed permissions change.

", + "smithy.api#documentation": "

Provides context on how the access preview finding compares to existing access\n identified in IAM Access Analyzer.

\n \n

For example, a Changed finding with preview status Resolved\n and existing status Active indicates the existing Active finding\n would become Resolved as a result of the proposed permissions change.

", "smithy.api#required": {} } }, @@ -247,7 +247,7 @@ "resourceOwnerAccount": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The AWS account ID that owns the resource. For most AWS resources, the owning\n account is the account in which the resource was created.

", + "smithy.api#documentation": "

The Amazon Web Services account ID that owns the resource. For most Amazon Web Services resources, the owning\n account is the account in which the resource was created.

", "smithy.api#required": {} } }, @@ -386,7 +386,7 @@ "id": { "target": "com.amazonaws.accessanalyzer#AclCanonicalId", "traits": { - "smithy.api#documentation": "

The value specified is the canonical user ID of an AWS account.

" + "smithy.api#documentation": "

The value specified is the canonical user ID of an Amazon Web Services account.

" } }, "uri": { @@ -502,7 +502,7 @@ "resourceOwnerAccount": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The AWS account ID that owns the resource.

", + "smithy.api#documentation": "

The Amazon Web Services account ID that owns the resource.

", "smithy.api#required": {} } }, @@ -530,7 +530,7 @@ "resourceOwnerAccount": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The AWS account ID that owns the resource.

", + "smithy.api#documentation": "

The Amazon Web Services account ID that owns the resource.

", "smithy.api#required": {} } }, @@ -667,14 +667,14 @@ "status": { "target": "com.amazonaws.accessanalyzer#AnalyzerStatus", "traits": { - "smithy.api#documentation": "

The status of the analyzer. An Active analyzer successfully monitors\n supported resources and generates new findings. The analyzer is Disabled when\n a user action, such as removing trusted access for AWS IAM Access Analyzer from AWS Organizations,\n causes the analyzer to stop generating new findings. The status is Creating\n when the analyzer creation is in progress and Failed when the analyzer\n creation has failed.

", + "smithy.api#documentation": "

The status of the analyzer. An Active analyzer successfully monitors\n supported resources and generates new findings. The analyzer is Disabled when\n a user action, such as removing trusted access for Identity and Access Management Access Analyzer from Organizations, causes\n the analyzer to stop generating new findings. The status is Creating when the\n analyzer creation is in progress and Failed when the analyzer creation has\n failed.

", "smithy.api#required": {} } }, "statusReason": { "target": "com.amazonaws.accessanalyzer#StatusReason", "traits": { - "smithy.api#documentation": "

The statusReason provides more details about the current status of the\n analyzer. For example, if the creation for the analyzer fails, a Failed status\n is returned. For an analyzer with organization as the type, this failure can be due to an\n issue with creating the service-linked roles required in the member accounts of the AWS\n organization.

" + "smithy.api#documentation": "

The statusReason provides more details about the current status of the\n analyzer. For example, if the creation for the analyzer fails, a Failed status\n is returned. For an analyzer with organization as the type, this failure can be due to an\n issue with creating the service-linked roles required in the member accounts of the Amazon Web Services\n organization.

" } } }, @@ -878,7 +878,7 @@ "com.amazonaws.accessanalyzer#CloudTrailArn": { "type": "string", "traits": { - "smithy.api#pattern": "arn:[^:]*:cloudtrail:[^:]*:[^:]*:trail/.{1,576}$" + "smithy.api#pattern": "^arn:[^:]*:cloudtrail:[^:]*:[^:]*:trail/.{1,576}$" } }, "com.amazonaws.accessanalyzer#CloudTrailDetails": { @@ -894,21 +894,21 @@ "accessRole": { "target": "com.amazonaws.accessanalyzer#RoleArn", "traits": { - "smithy.api#documentation": "

The ARN of the service role that Access Analyzer uses to access your CloudTrail trail and\n service last accessed information.

", + "smithy.api#documentation": "

The ARN of the service role that IAM Access Analyzer uses to access your CloudTrail trail and\n service last accessed information.

", "smithy.api#required": {} } }, "startTime": { "target": "com.amazonaws.accessanalyzer#Timestamp", "traits": { - "smithy.api#documentation": "

The start of the time range for which Access Analyzer reviews your CloudTrail events. Events\n with a timestamp before this time are not considered to generate a policy.

", + "smithy.api#documentation": "

The start of the time range for which IAM Access Analyzer reviews your CloudTrail events. Events\n with a timestamp before this time are not considered to generate a policy.

", "smithy.api#required": {} } }, "endTime": { "target": "com.amazonaws.accessanalyzer#Timestamp", "traits": { - "smithy.api#documentation": "

The end of the time range for which Access Analyzer reviews your CloudTrail events. Events with\n a timestamp after this time are not considered to generate a policy. If this is not\n included in the request, the default value is the current time.

" + "smithy.api#documentation": "

The end of the time range for which IAM Access Analyzer reviews your CloudTrail events. Events with\n a timestamp after this time are not considered to generate a policy. If this is not\n included in the request, the default value is the current time.

" } } }, @@ -929,14 +929,14 @@ "startTime": { "target": "com.amazonaws.accessanalyzer#Timestamp", "traits": { - "smithy.api#documentation": "

The start of the time range for which Access Analyzer reviews your CloudTrail events. Events\n with a timestamp before this time are not considered to generate a policy.

", + "smithy.api#documentation": "

The start of the time range for which IAM Access Analyzer reviews your CloudTrail events. Events\n with a timestamp before this time are not considered to generate a policy.

", "smithy.api#required": {} } }, "endTime": { "target": "com.amazonaws.accessanalyzer#Timestamp", "traits": { - "smithy.api#documentation": "

The end of the time range for which Access Analyzer reviews your CloudTrail events. Events with\n a timestamp after this time are not considered to generate a policy. If this is not\n included in the request, the default value is the current time.

", + "smithy.api#documentation": "

The end of the time range for which IAM Access Analyzer reviews your CloudTrail events. Events with\n a timestamp after this time are not considered to generate a policy. If this is not\n included in the request, the default value is the current time.

", "smithy.api#required": {} } } @@ -984,7 +984,7 @@ "sqsQueue": { "target": "com.amazonaws.accessanalyzer#SqsQueueConfiguration", "traits": { - "smithy.api#documentation": "

The access control configuration is for an SQS queue.

" + "smithy.api#documentation": "

The access control configuration is for an Amazon SQS queue.

" } } }, @@ -1066,7 +1066,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates an access preview that allows you to preview Access Analyzer findings for your resource\n before deploying resource permissions.

", + "smithy.api#documentation": "

Creates an access preview that allows you to preview IAM Access Analyzer findings for your\n resource before deploying resource permissions.

", "smithy.api#http": { "method": "PUT", "uri": "/access-preview", @@ -1235,7 +1235,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates an archive rule for the specified analyzer. Archive rules automatically archive\n new findings that meet the criteria you define when you create the rule.

\n

To learn about filter keys that you can use to create an archive rule, see Access Analyzer filter keys in the IAM User\n Guide.

", + "smithy.api#documentation": "

Creates an archive rule for the specified analyzer. Archive rules automatically archive\n new findings that meet the criteria you define when you create the rule.

\n

To learn about filter keys that you can use to create an archive rule, see IAM Access Analyzer filter keys in the IAM User Guide.

", "smithy.api#http": { "method": "PUT", "uri": "/analyzer/{analyzerName}/archive-rule", @@ -1336,7 +1336,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes the specified analyzer. When you delete an analyzer, Access Analyzer is disabled for the\n account or organization in the current or specific Region. All findings that were generated\n by the analyzer are deleted. You cannot undo this action.

", + "smithy.api#documentation": "

Deletes the specified analyzer. When you delete an analyzer, IAM Access Analyzer is disabled\n for the account or organization in the current or specific Region. All findings that were\n generated by the analyzer are deleted. You cannot undo this action.

", "smithy.api#http": { "method": "DELETE", "uri": "/analyzer/{analyzerName}", @@ -1521,7 +1521,7 @@ "resourceOwnerAccount": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The AWS account ID that owns the resource.

", + "smithy.api#documentation": "

The Amazon Web Services account ID that owns the resource.

", "smithy.api#required": {} } }, @@ -1597,7 +1597,7 @@ "accessPointArn": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The ARN of the access point that generated the finding.

" + "smithy.api#documentation": "

The ARN of the access point that generated the finding. The ARN format depends on\n whether the ARN represents an access point or a multi-region access point.

" } } }, @@ -1743,7 +1743,7 @@ "resourceOwnerAccount": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The AWS account ID that owns the resource.

", + "smithy.api#documentation": "

The Amazon Web Services account ID that owns the resource.

", "smithy.api#required": {} } }, @@ -1797,7 +1797,7 @@ "isComplete": { "target": "smithy.api#Boolean", "traits": { - "smithy.api#documentation": "

This value is set to true if the generated policy contains all possible actions for a\n service that Access Analyzer identified from the CloudTrail trail that you specified, and\n false otherwise.

" + "smithy.api#documentation": "

This value is set to true if the generated policy contains all possible\n actions for a service that IAM Access Analyzer identified from the CloudTrail trail that you specified,\n and false otherwise.

" } }, "principalArn": { @@ -1972,7 +1972,7 @@ "resource": { "target": "com.amazonaws.accessanalyzer#AnalyzedResource", "traits": { - "smithy.api#documentation": "

An AnalyzedResource object that contains information that Access Analyzer found\n when it analyzed the resource.

" + "smithy.api#documentation": "

An AnalyzedResource object that contains information that IAM Access Analyzer\n found when it analyzed the resource.

" } } }, @@ -2072,7 +2072,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves information about an archive rule.

\n

To learn about filter keys that you can use to create an archive rule, see Access Analyzer filter keys in the IAM User\n Guide.

", + "smithy.api#documentation": "

Retrieves information about an archive rule.

\n

To learn about filter keys that you can use to create an archive rule, see IAM Access Analyzer filter keys in the IAM User Guide.

", "smithy.api#http": { "method": "GET", "uri": "/analyzer/{analyzerName}/archive-rule/{ruleName}", @@ -2245,7 +2245,7 @@ "includeServiceLevelTemplate": { "target": "smithy.api#Boolean", "traits": { - "smithy.api#documentation": "

The level of detail that you want to generate. You can specify whether to generate\n service-level policies.

\n

Access Analyzer uses iam:servicelastaccessed to identify services that have been\n used recently to create this service-level template.

", + "smithy.api#documentation": "

The level of detail that you want to generate. You can specify whether to generate\n service-level policies.

\n

IAM Access Analyzer uses iam:servicelastaccessed to identify services that have\n been used recently to create this service-level template.

", "smithy.api#httpQuery": "includeServiceLevelTemplate" } } @@ -2346,7 +2346,7 @@ "type": "structure", "members": {}, "traits": { - "smithy.api#documentation": "

This configuration sets the Amazon S3 access point network origin to\n Internet.

" + "smithy.api#documentation": "

This configuration sets the network origin for the Amazon S3 access point or multi-region\n access point to Internet.

" } }, "com.amazonaws.accessanalyzer#IssueCode": { @@ -2386,7 +2386,10 @@ } }, "jobError": { - "target": "com.amazonaws.accessanalyzer#JobError" + "target": "com.amazonaws.accessanalyzer#JobError", + "traits": { + "smithy.api#documentation": "

The job error for the policy generation request.

" + } } }, "traits": { @@ -2511,7 +2514,7 @@ "issuingAccount": { "target": "com.amazonaws.accessanalyzer#IssuingAccount", "traits": { - "smithy.api#documentation": "

The AWS account under which the grant was issued. The account is used to propose KMS\n grants issued by accounts other than the owner of the key.

", + "smithy.api#documentation": "

The Amazon Web Services account under which the grant was issued. The account is used to propose\n KMS grants issued by accounts other than the owner of the key.

", "smithy.api#required": {} } } @@ -2621,7 +2624,7 @@ "keyPolicies": { "target": "com.amazonaws.accessanalyzer#KmsKeyPoliciesMap", "traits": { - "smithy.api#documentation": "

Resource policy configuration for the KMS key. The only valid value for the name of the\n key policy is default. For more information, see Default key\n policy.

" + "smithy.api#documentation": "

Resource policy configuration for the KMS key. The only valid value for the name of\n the key policy is default. For more information, see Default key\n policy.

" } }, "grants": { @@ -2632,7 +2635,7 @@ } }, "traits": { - "smithy.api#documentation": "

Proposed access control configuration for a KMS key. You can propose a configuration for\n a new KMS key or an existing KMS key that you own by specifying the key policy and KMS\n grant configuration. If the configuration is for an existing key and you do not specify the\n key policy, the access preview uses the existing policy for the key. If the access preview\n is for a new resource and you do not specify the key policy, then the access preview uses\n the default key policy. The proposed key policy cannot be an empty string. For more\n information, see Default key\n policy. For more information about key policy limits, see Resource\n quotas.

\n

" + "smithy.api#documentation": "

Proposed access control configuration for a KMS key. You can propose a configuration\n for a new KMS key or an existing KMS key that you own by specifying the key policy and\n KMS grant configuration. If the configuration is for an existing key and you do not\n specify the key policy, the access preview uses the existing policy for the key. If the\n access preview is for a new resource and you do not specify the key policy, then the access\n preview uses the default key policy. The proposed key policy cannot be an empty string. For\n more information, see Default key\n policy. For more information about key policy limits, see Resource\n quotas.

\n

" } }, "com.amazonaws.accessanalyzer#KmsKeyPoliciesMap": { @@ -3119,7 +3122,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves a list of findings generated by the specified analyzer.

\n

To learn about filter keys that you can use to retrieve a list of findings, see Access Analyzer filter keys in the IAM User\n Guide.

", + "smithy.api#documentation": "

Retrieves a list of findings generated by the specified analyzer.

\n

To learn about filter keys that you can use to retrieve a list of findings, see IAM Access Analyzer filter keys in the IAM User Guide.

", "smithy.api#http": { "method": "POST", "uri": "/finding", @@ -3432,12 +3435,12 @@ "internetConfiguration": { "target": "com.amazonaws.accessanalyzer#InternetConfiguration", "traits": { - "smithy.api#documentation": "

The configuration for the Amazon S3 access point with an Internet origin.

" + "smithy.api#documentation": "

The configuration for the Amazon S3 access point or multi-region access point with an\n Internet origin.

" } } }, "traits": { - "smithy.api#documentation": "

The proposed InternetConfiguration or VpcConfiguration to\n apply to the Amazon S3 Access point. You can make the access point accessible from the internet,\n or you can specify that all requests made through that access point must originate from a\n specific virtual private cloud (VPC). You can specify only one type of network\n configuration. For more information, see Creating access\n points.

" + "smithy.api#documentation": "

The proposed InternetConfiguration or VpcConfiguration to\n apply to the Amazon S3 access point. VpcConfiguration does not apply to\n multi-region access points. You can make the access point accessible from the internet, or\n you can specify that all requests made through that access point must originate from a\n specific virtual private cloud (VPC). You can specify only one type of network\n configuration. For more information, see Creating access\n points.

" } }, "com.amazonaws.accessanalyzer#OrderBy": { @@ -3613,7 +3616,7 @@ "com.amazonaws.accessanalyzer#PrincipalArn": { "type": "string", "traits": { - "smithy.api#pattern": "arn:[^:]*:iam::[^:]*:(role|user)/.{1,576}$" + "smithy.api#pattern": "^arn:[^:]*:iam::[^:]*:(role|user)/.{1,576}$" } }, "com.amazonaws.accessanalyzer#PrincipalMap": { @@ -3657,7 +3660,7 @@ "com.amazonaws.accessanalyzer#ResourceArn": { "type": "string", "traits": { - "smithy.api#pattern": "arn:[^:]*:[^:]*:[^:]*:[^:]*:.*$" + "smithy.api#pattern": "^arn:[^:]*:[^:]*:[^:]*:[^:]*:.*$" } }, "com.amazonaws.accessanalyzer#ResourceNotFoundException": { @@ -3731,7 +3734,7 @@ "com.amazonaws.accessanalyzer#RoleArn": { "type": "string", "traits": { - "smithy.api#pattern": "arn:[^:]*:iam::[^:]*:role/.{1,576}$" + "smithy.api#pattern": "^arn:[^:]*:iam::[^:]*:role/.{1,576}$" } }, "com.amazonaws.accessanalyzer#S3AccessPointConfiguration": { @@ -3740,24 +3743,24 @@ "accessPointPolicy": { "target": "com.amazonaws.accessanalyzer#AccessPointPolicy", "traits": { - "smithy.api#documentation": "

The access point policy.

" + "smithy.api#documentation": "

The access point or multi-region access point policy.

" } }, "publicAccessBlock": { "target": "com.amazonaws.accessanalyzer#S3PublicAccessBlockConfiguration", "traits": { - "smithy.api#documentation": "

The proposed S3PublicAccessBlock configuration to apply to this Amazon S3 Access\n Point.

" + "smithy.api#documentation": "

The proposed S3PublicAccessBlock configuration to apply to this Amazon S3 access\n point or multi-region access point.

" } }, "networkOrigin": { "target": "com.amazonaws.accessanalyzer#NetworkOriginConfiguration", "traits": { - "smithy.api#documentation": "

The proposed Internet and VpcConfiguration to apply to this\n Amazon S3 access point. If the access preview is for a new resource and neither is specified,\n the access preview uses Internet for the network origin. If the access preview\n is for an existing resource and neither is specified, the access preview uses the exiting\n network origin.

" + "smithy.api#documentation": "

The proposed Internet and VpcConfiguration to apply to this\n Amazon S3 access point. VpcConfiguration does not apply to multi-region access\n points. If the access preview is for a new resource and neither is specified, the access\n preview uses Internet for the network origin. If the access preview is for an\n existing resource and neither is specified, the access preview uses the exiting network\n origin.

" } } }, "traits": { - "smithy.api#documentation": "

The configuration for an Amazon S3 access point for the bucket. You can propose up to 10\n access points per bucket. If the proposed Amazon S3 access point configuration is for an\n existing bucket, the access preview uses the proposed access point configuration in place\n of the existing access points. To propose an access point without a policy, you can provide\n an empty string as the access point policy. For more information, see Creating access points. For more information about access point policy limits,\n see Access points\n restrictions and limitations.

" + "smithy.api#documentation": "

The configuration for an Amazon S3 access point or multi-region access point for the bucket.\n You can propose up to 10 access points or multi-region access points per bucket. If the\n proposed Amazon S3 access point configuration is for an existing bucket, the access preview uses\n the proposed access point configuration in place of the existing access points. To propose\n an access point without a policy, you can provide an empty string as the access point\n policy. For more information, see Creating access points. For more information about access point policy limits,\n see Access points\n restrictions and limitations.

" } }, "com.amazonaws.accessanalyzer#S3AccessPointConfigurationsMap": { @@ -3821,12 +3824,12 @@ "accessPoints": { "target": "com.amazonaws.accessanalyzer#S3AccessPointConfigurationsMap", "traits": { - "smithy.api#documentation": "

The configuration of Amazon S3 access points for the bucket.

" + "smithy.api#documentation": "

The configuration of Amazon S3 access points or multi-region access points for the bucket.\n You can propose up to 10 new access points per bucket.

" } } }, "traits": { - "smithy.api#documentation": "

Proposed access control configuration for an Amazon S3 bucket. You can propose a\n configuration for a new Amazon S3 bucket or an existing Amazon S3 bucket that you own by specifying\n the Amazon S3 bucket policy, bucket ACLs, bucket BPA settings, and Amazon S3 access points attached\n to the bucket. If the configuration is for an existing Amazon S3 bucket and you do not specify\n the Amazon S3 bucket policy, the access preview uses the existing policy attached to the bucket.\n If the access preview is for a new resource and you do not specify the Amazon S3 bucket policy,\n the access preview assumes a bucket without a policy. To propose deletion of an existing\n bucket policy, you can specify an empty string. For more information about bucket policy\n limits, see Bucket Policy\n Examples.

" + "smithy.api#documentation": "

Proposed access control configuration for an Amazon S3 bucket. You can propose a\n configuration for a new Amazon S3 bucket or an existing Amazon S3 bucket that you own by specifying\n the Amazon S3 bucket policy, bucket ACLs, bucket BPA settings, Amazon S3 access points, and\n multi-region access points attached to the bucket. If the configuration is for an existing\n Amazon S3 bucket and you do not specify the Amazon S3 bucket policy, the access preview uses the\n existing policy attached to the bucket. If the access preview is for a new resource and you\n do not specify the Amazon S3 bucket policy, the access preview assumes a bucket without a\n policy. To propose deletion of an existing bucket policy, you can specify an empty string.\n For more information about bucket policy limits, see Bucket Policy\n Examples.

" } }, "com.amazonaws.accessanalyzer#S3BucketPolicy": { @@ -3851,7 +3854,7 @@ } }, "traits": { - "smithy.api#documentation": "

The PublicAccessBlock configuration to apply to this Amazon S3 bucket. If the\n proposed configuration is for an existing Amazon S3 bucket and the configuration is not\n specified, the access preview uses the existing setting. If the proposed configuration is\n for a new bucket and the configuration is not specified, the access preview uses\n false. If the proposed configuration is for a new access point and the\n access point BPA configuration is not specified, the access preview uses true.\n For more information, see PublicAccessBlockConfiguration.

" + "smithy.api#documentation": "

The PublicAccessBlock configuration to apply to this Amazon S3 bucket. If the\n proposed configuration is for an existing Amazon S3 bucket and the configuration is not\n specified, the access preview uses the existing setting. If the proposed configuration is\n for a new bucket and the configuration is not specified, the access preview uses\n false. If the proposed configuration is for a new access point or\n multi-region access point and the access point BPA configuration is not specified, the\n access preview uses true. For more information, see PublicAccessBlockConfiguration.

" } }, "com.amazonaws.accessanalyzer#SecretsManagerSecretConfiguration": { @@ -3860,7 +3863,7 @@ "kmsKeyId": { "target": "com.amazonaws.accessanalyzer#SecretsManagerSecretKmsId", "traits": { - "smithy.api#documentation": "

The proposed ARN, key ID, or alias of the AWS KMS customer master key (CMK).

" + "smithy.api#documentation": "

The proposed ARN, key ID, or alias of the KMS customer master key (CMK).

" } }, "secretPolicy": { @@ -3871,7 +3874,7 @@ } }, "traits": { - "smithy.api#documentation": "

The configuration for a Secrets Manager secret. For more information, see CreateSecret.

\n

You can propose a configuration for a new secret or an existing secret that you own by\n specifying the secret policy and optional KMS encryption key. If the configuration is for\n an existing secret and you do not specify the secret policy, the access preview uses the\n existing policy for the secret. If the access preview is for a new resource and you do not\n specify the policy, the access preview assumes a secret without a policy. To propose\n deletion of an existing policy, you can specify an empty string. If the proposed\n configuration is for a new secret and you do not specify the KMS key ID, the access preview\n uses the default CMK of the AWS account. If you specify an empty string for the KMS key\n ID, the access preview uses the default CMK of the AWS account. For more information\n about secret policy limits, see Quotas for AWS Secrets\n Manager..

" + "smithy.api#documentation": "

The configuration for a Secrets Manager secret. For more information, see CreateSecret.

\n

You can propose a configuration for a new secret or an existing secret that you own by\n specifying the secret policy and optional KMS encryption key. If the configuration is for\n an existing secret and you do not specify the secret policy, the access preview uses the\n existing policy for the secret. If the access preview is for a new resource and you do not\n specify the policy, the access preview assumes a secret without a policy. To propose\n deletion of an existing policy, you can specify an empty string. If the proposed\n configuration is for a new secret and you do not specify the KMS key ID, the access\n preview uses the default CMK of the Amazon Web Services account. If you specify an empty string for the\n KMS key ID, the access preview uses the default CMK of the Amazon Web Services account. For more\n information about secret policy limits, see Quotas for\n Secrets Manager..

" } }, "com.amazonaws.accessanalyzer#SecretsManagerSecretKmsId": { @@ -3964,12 +3967,12 @@ "queuePolicy": { "target": "com.amazonaws.accessanalyzer#SqsQueuePolicy", "traits": { - "smithy.api#documentation": "

The proposed resource policy for the SQS queue.

" + "smithy.api#documentation": "

The proposed resource policy for the Amazon SQS queue.

" } } }, "traits": { - "smithy.api#documentation": "

The proposed access control configuration for an SQS queue. You can propose a\n configuration for a new SQS queue or an existing SQS queue that you own by specifying the\n SQS policy. If the configuration is for an existing SQS queue and you do not specify the\n SQS policy, the access preview uses the existing SQS policy for the queue. If the access\n preview is for a new resource and you do not specify the policy, the access preview assumes\n an SQS queue without a policy. To propose deletion of an existing SQS queue policy, you can\n specify an empty string for the SQS policy. For more information about SQS policy limits,\n see Quotas related\n to policies.

" + "smithy.api#documentation": "

The proposed access control configuration for an Amazon SQS queue. You can propose a\n configuration for a new Amazon SQS queue or an existing Amazon SQS queue that you own by specifying\n the Amazon SQS policy. If the configuration is for an existing Amazon SQS queue and you do not\n specify the Amazon SQS policy, the access preview uses the existing Amazon SQS policy for the queue.\n If the access preview is for a new resource and you do not specify the policy, the access\n preview assumes an Amazon SQS queue without a policy. To propose deletion of an existing Amazon SQS\n queue policy, you can specify an empty string for the Amazon SQS policy. For more information\n about Amazon SQS policy limits, see Quotas related\n to policies.

" } }, "com.amazonaws.accessanalyzer#SqsQueuePolicy": { @@ -4032,7 +4035,7 @@ "clientToken": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, the subsequent retries with the\n same client token return the result from the original successful request and they have no\n additional effect.

\n

If you do not specify a client token, one is automatically generated by the AWS\n SDK.

", + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, the subsequent retries with the\n same client token return the result from the original successful request and they have no\n additional effect.

\n

If you do not specify a client token, one is automatically generated by the Amazon Web Services\n SDK.

", "smithy.api#idempotencyToken": {} } } @@ -4115,7 +4118,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides more details about the current status of the analyzer. For example, if the\n creation for the analyzer fails, a Failed status is returned. For an analyzer\n with organization as the type, this failure can be due to an issue with creating the\n service-linked roles required in the member accounts of the AWS organization.

" + "smithy.api#documentation": "

Provides more details about the current status of the analyzer. For example, if the\n creation for the analyzer fails, a Failed status is returned. For an analyzer\n with organization as the type, this failure can be due to an issue with creating the\n service-linked roles required in the member accounts of the Amazon Web Services organization.

" } }, "com.amazonaws.accessanalyzer#Substring": { @@ -4274,7 +4277,7 @@ "allRegions": { "target": "smithy.api#Boolean", "traits": { - "smithy.api#documentation": "

Possible values are true or false. If set to\n true, Access Analyzer retrieves CloudTrail data from all regions to analyze and\n generate a policy.

" + "smithy.api#documentation": "

Possible values are true or false. If set to\n true, IAM Access Analyzer retrieves CloudTrail data from all regions to analyze and\n generate a policy.

" } } }, @@ -4307,7 +4310,7 @@ "allRegions": { "target": "smithy.api#Boolean", "traits": { - "smithy.api#documentation": "

Possible values are true or false. If set to\n true, Access Analyzer retrieves CloudTrail data from all regions to analyze and\n generate a policy.

" + "smithy.api#documentation": "

Possible values are true or false. If set to\n true, IAM Access Analyzer retrieves CloudTrail data from all regions to analyze and\n generate a policy.

" } } }, @@ -4685,7 +4688,7 @@ "policyType": { "target": "com.amazonaws.accessanalyzer#PolicyType", "traits": { - "smithy.api#documentation": "

The type of policy to validate. Identity policies grant permissions to IAM principals.\n Identity policies include managed and inline policies for IAM roles, users, and groups.\n They also include service-control policies (SCPs) that are attached to an AWS\n organization, organizational unit (OU), or an account.

\n

Resource policies grant permissions on AWS resources. Resource policies include trust\n policies for IAM roles and bucket policies for S3 buckets. You can provide a generic input\n such as identity policy or resource policy or a specific input such as managed policy or S3\n bucket policy.

", + "smithy.api#documentation": "

The type of policy to validate. Identity policies grant permissions to IAM principals.\n Identity policies include managed and inline policies for IAM roles, users, and groups.\n They also include service-control policies (SCPs) that are attached to an Amazon Web Services\n organization, organizational unit (OU), or an account.

\n

Resource policies grant permissions on Amazon Web Services resources. Resource policies include trust\n policies for IAM roles and bucket policies for Amazon S3 buckets. You can provide a generic\n input such as identity policy or resource policy or a specific input such as managed policy\n or Amazon S3 bucket policy.

", "smithy.api#required": {} } } @@ -4697,7 +4700,7 @@ "findings": { "target": "com.amazonaws.accessanalyzer#ValidatePolicyFindingList", "traits": { - "smithy.api#documentation": "

The list of findings in a policy returned by Access Analyzer based on its suite of policy\n checks.

", + "smithy.api#documentation": "

The list of findings in a policy returned by IAM Access Analyzer based on its suite of policy\n checks.

", "smithy.api#required": {} } }, @@ -4813,7 +4816,7 @@ } }, "traits": { - "smithy.api#documentation": "

The proposed virtual private cloud (VPC) configuration for the Amazon S3 access point. For\n more information, see VpcConfiguration.\n

" + "smithy.api#documentation": "

The proposed virtual private cloud (VPC) configuration for the Amazon S3 access point. VPC\n configuration does not apply to multi-region access points. For more information, see\n VpcConfiguration.

" } }, "com.amazonaws.accessanalyzer#VpcId": { diff --git a/codegen/sdk-codegen/aws-models/acmpca.2017-08-22.json b/codegen/sdk-codegen/aws-models/acmpca.2017-08-22.json index 25d511022c1..0474ba06f9e 100644 --- a/codegen/sdk-codegen/aws-models/acmpca.2017-08-22.json +++ b/codegen/sdk-codegen/aws-models/acmpca.2017-08-22.json @@ -115,7 +115,7 @@ "name": "acm-pca" }, "aws.protocols#awsJson1_1": {}, - "smithy.api#documentation": "

This is the ACM Private CA API Reference. It provides descriptions,\n\t\t\tsyntax, and usage examples for each of the actions and data types involved in creating\n\t\t\tand managing private certificate authorities (CA) for your organization.

\n\t\t

The documentation for each action shows the Query API request parameters and the XML\n\t\t\tresponse. Alternatively, you can use one of the AWS SDKs to access an API that's\n\t\t\ttailored to the programming language or platform that you're using. For more\n\t\t\tinformation, see AWS\n\t\t\tSDKs.

\n\t\t \n\t\t\t

Each ACM Private CA API action has a quota that determines the number of times the action\n\t\t\t\tcan be called per second. For more information, see API Rate Quotas in ACM Private CA\n\t\t\t\tin the ACM Private CA user guide.

\n\t\t
", + "smithy.api#documentation": "

This is the ACM Private CA API Reference. It provides descriptions,\n\t\t\tsyntax, and usage examples for each of the actions and data types involved in creating\n\t\t\tand managing private certificate authorities (CA) for your organization.

\n\t\t

The documentation for each action shows the Query API request parameters and the XML\n\t\t\tresponse. Alternatively, you can use one of the AWS SDKs to access an API that's\n\t\t\ttailored to the programming language or platform that you're using. For more\n\t\t\tinformation, see AWS\n\t\t\tSDKs.

\n\t\t

Each ACM Private CA API operation has a quota that determines the number of times the operation\n\t\t\tcan be called per second. ACM Private CA throttles API requests at different rates depending\n\t\t\ton the operation. Throttling means that ACM Private CA rejects an otherwise valid request\n\t\t\tbecause the request exceeds the operation's quota for the number of requests per second.\n\t\t\tWhen a request is throttled, ACM Private CA returns a ThrottlingException error. ACM Private CA does not guarantee a minimum request\n\t\t\trate for APIs.

\n\n\t\t

To see an up-to-date list of your ACM Private CA quotas, or to request a quota increase,\n\t\t\tlog into your AWS account and visit the Service Quotas\n\t\t\tconsole.

", "smithy.api#title": "AWS Certificate Manager Private Certificate Authority" } }, @@ -491,7 +491,7 @@ "RevocationConfiguration": { "target": "com.amazonaws.acmpca#RevocationConfiguration", "traits": { - "smithy.api#documentation": "

Information about the certificate revocation list (CRL) created and maintained by your\n\t\t\tprivate CA.

" + "smithy.api#documentation": "

Information about the Online Certificate Status Protocol (OCSP) configuration or \n\t\t\tcertificate revocation list (CRL) created and maintained by your private CA.

" } }, "RestorableUntil": { @@ -689,7 +689,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a root or subordinate private certificate authority (CA). You must specify the\n\t\t\tCA configuration, the certificate revocation list (CRL) configuration, the CA type, and\n\t\t\tan optional idempotency token to avoid accidental creation of multiple CAs. The CA\n\t\t\tconfiguration specifies the name of the algorithm and key size to be used to create the\n\t\t\tCA private key, the type of signing algorithm that the CA uses, and X.500 subject\n\t\t\tinformation. The CRL configuration specifies the CRL expiration period in days (the\n\t\t\tvalidity period of the CRL), the Amazon S3 bucket that will contain the CRL, and a CNAME\n\t\t\talias for the S3 bucket that is included in certificates issued by the CA. If\n\t\t\tsuccessful, this action returns the Amazon Resource Name (ARN) of the CA.

\n\t\t

ACM Private CA assets that are stored in Amazon S3 can be protected with encryption. \n For more information, see Encrypting Your\n\t\t\tCRLs.

\n \n

Both PCA and the IAM principal must have permission to write to\n the S3 bucket that you specify. If the IAM principal making the call\n does not have permission to write to the bucket, then an exception is\n thrown. For more information, see Configure\n Access to ACM Private CA.

\n
", + "smithy.api#documentation": "

Creates a root or subordinate private certificate authority (CA). You must specify the\n\t\t\tCA configuration, an optional configuration for Online Certificate Status Protocol (OCSP) \n\t\t\tand/or a certificate revocation list (CRL), the CA type, and\n\t\t\tan optional idempotency token to avoid accidental creation of multiple CAs. The CA\n\t\t\tconfiguration specifies the name of the algorithm and key size to be used to create the\n\t\t\tCA private key, the type of signing algorithm that the CA uses, and X.500 subject\n\t\t\tinformation. The OCSP configuration can optionally specify a custom URL for the OCSP responder.\n\t\t\tThe CRL configuration specifies the CRL expiration period in days (the\n\t\t\tvalidity period of the CRL), the Amazon S3 bucket that will contain the CRL, and a CNAME\n\t\t\talias for the S3 bucket that is included in certificates issued by the CA. If\n\t\t\tsuccessful, this action returns the Amazon Resource Name (ARN) of the CA.

\n\t\t

ACM Private CA assets that are stored in Amazon S3 can be protected with encryption. \n For more information, see Encrypting Your\n\t\t\tCRLs.

\n \n

Both PCA and the IAM principal must have permission to write to\n the S3 bucket that you specify. If the IAM principal making the call\n does not have permission to write to the bucket, then an exception is\n thrown. For more information, see Configure\n Access to ACM Private CA.

\n
", "smithy.api#idempotent": {} } }, @@ -782,7 +782,7 @@ "RevocationConfiguration": { "target": "com.amazonaws.acmpca#RevocationConfiguration", "traits": { - "smithy.api#documentation": "

Contains a Boolean value that you can use to enable a certification revocation list\n\t\t\t(CRL) for the CA, the name of the S3 bucket to which ACM Private CA will write the CRL, and an\n\t\t\toptional CNAME alias that you can use to hide the name of your bucket in the CRL Distribution Points extension of your CA certificate. For\n\t\t\tmore information, see the CrlConfiguration structure.\n\t\t

" + "smithy.api#documentation": "

Contains information to enable Online Certificate Status Protocol (OCSP) support, \n\t\t\tto enable a certificate revocation list (CRL), to enable both, or to enable neither. The\n\t\t\tdefault is for both certificate validation mechanisms to be disabled. For more\n\t\t\tinformation, see the OcspConfiguration and CrlConfiguration types.

" } }, "CertificateAuthorityType": { @@ -911,7 +911,7 @@ "S3BucketName": { "target": "com.amazonaws.acmpca#String3To255", "traits": { - "smithy.api#documentation": "

Name of the S3 bucket that contains the CRL. If you do not provide a value for the\n\t\t\t\tCustomCname argument, the name of your S3 bucket\n\t\t\tis placed into the CRL Distribution Points extension of\n\t\t\tthe issued certificate. You can change the name of your bucket by calling the UpdateCertificateAuthority action. You must specify a \n\t\t\tbucket policy that\n\t\t\tallows ACM Private CA to write the CRL to your bucket.

" + "smithy.api#documentation": "

Name of the S3 bucket that contains the CRL. If you do not provide a value for the\n\t\t\t\tCustomCname argument, the name of your S3 bucket\n\t\t\tis placed into the CRL Distribution Points extension of\n\t\t\tthe issued certificate. You can change the name of your bucket by calling the UpdateCertificateAuthority operation. You must specify a bucket\n\t\t\t\tpolicy that allows ACM Private CA to write the CRL to your bucket.

" } }, "S3ObjectAcl": { @@ -922,7 +922,7 @@ } }, "traits": { - "smithy.api#documentation": "

Contains configuration information for a certificate revocation list (CRL). Your\n\t\t\tprivate certificate authority (CA) creates base CRLs. Delta CRLs are not supported. You\n\t\t\tcan enable CRLs for your new or an existing private CA by setting the Enabled parameter to true. Your private CA\n\t\t\twrites CRLs to an S3 bucket that you specify in the S3BucketName parameter. You can hide the name of your bucket by\n\t\t\tspecifying a value for the CustomCname parameter. Your\n\t\t\tprivate CA copies the CNAME or the S3 bucket name to the CRL\n\t\t\t\tDistribution Points extension of each certificate it issues. Your S3\n\t\t\tbucket policy must give write permission to ACM Private CA.

\n\t\t

ACM Private CA assets that are stored in Amazon S3 can be protected with encryption. \n For more information, see Encrypting Your\n\t\t\tCRLs.

\n\t\t

Your private CA uses the value in the ExpirationInDays parameter to calculate the nextUpdate field in the CRL. The CRL is refreshed at 1/2 the age of next\n\t\t\tupdate or when a certificate is revoked. When a certificate is revoked, it is recorded\n\t\t\tin the next CRL that is generated and in the next audit report. Only time valid\n\t\t\tcertificates are listed in the CRL. Expired certificates are not included.

\n\t\t

CRLs contain the following fields:

\n\t\t \n\t\t

Certificate revocation lists created by ACM Private CA are DER-encoded. You can use the\n\t\t\tfollowing OpenSSL command to list a CRL.

\n\t\t

\n openssl crl -inform DER -text -in crl_path\n\t\t\t-noout\n

" + "smithy.api#documentation": "

Contains configuration information for a certificate revocation list (CRL). Your\n\t\t\tprivate certificate authority (CA) creates base CRLs. Delta CRLs are not supported. You\n\t\t\tcan enable CRLs for your new or an existing private CA by setting the Enabled parameter to true. Your private CA\n\t\t\twrites CRLs to an S3 bucket that you specify in the S3BucketName parameter. You can hide the name of your bucket by\n\t\t\tspecifying a value for the CustomCname parameter. Your\n\t\t\tprivate CA copies the CNAME or the S3 bucket name to the CRL\n\t\t\t\tDistribution Points extension of each certificate it issues. Your S3\n\t\t\tbucket policy must give write permission to ACM Private CA.

\n\t\t

ACM Private CA assets that are stored in Amazon S3 can be protected with encryption. \n For more information, see Encrypting Your\n\t\t\tCRLs.

\n\t\t

Your private CA uses the value in the ExpirationInDays\n\t\t\tparameter to calculate the nextUpdate field in the CRL.\n\t\t\tThe CRL is refreshed at 1/2 the age of next update or when a certificate is revoked.\n\t\t\tWhen a certificate is revoked, it is recorded in the next CRL that is generated and in\n\t\t\tthe next audit report. Only time valid certificates are listed in the CRL. Expired\n\t\t\tcertificates are not included.

\n\t\t\n\t\t

A CRL is typically updated approximately 30 minutes after a certificate \n\tis revoked. If for any reason a CRL update fails, ACM Private CA makes further attempts \n\tevery 15 minutes.

\n\t\t\n\t\t

CRLs contain the following fields:

\n\t\t \n\t\t

Certificate revocation lists created by ACM Private CA are DER-encoded. You can use the\n\t\t\tfollowing OpenSSL command to list a CRL.

\n\t\t

\n openssl crl -inform DER -text -in crl_path\n\t\t\t-noout\n

\n\t\t

For more information, see Planning a certificate revocation list (CRL) \n\t\t\tin the AWS Certificate Manager Private Certificate Authority (PCA) User Guide\n

" } }, "com.amazonaws.acmpca#CsrBlob": { @@ -2350,6 +2350,28 @@ } } }, + "com.amazonaws.acmpca#OcspConfiguration": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.acmpca#Boolean", + "traits": { + "smithy.api#box": {}, + "smithy.api#documentation": "

Flag enabling use of the Online Certificate Status Protocol (OCSP) for validating\n\t\t\tcertificate revocation status.

", + "smithy.api#required": {} + } + }, + "OcspCustomCname": { + "target": "com.amazonaws.acmpca#String253", + "traits": { + "smithy.api#documentation": "

By default, ACM Private CA injects an AWS domain into certificates being validated by the\n\t\t\tOnline Certificate Status Protocol (OCSP). A customer can alternatively use this object\n\t\t\tto define a CNAME specifying a customized OCSP domain.

\n\t\t

Note: The value of the CNAME must not include a protocol prefix such as \"http://\" or\n\t\t\t\"https://\".

\n\t\t

For more information, see Customizing Online Certificate \n\t\t\tStatus Protocol (OCSP) in the AWS Certificate Manager Private Certificate Authority (PCA) User\n\t\t\t\tGuide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information to enable and configure Online Certificate Status Protocol (OCSP) for\n\t\t\tvalidating certificate revocation status.

\n\t\t

When you revoke a certificate, OCSP responses may take up to 60 minutes \n\tto reflect the new status.

" + } + }, "com.amazonaws.acmpca#OtherName": { "type": "structure", "members": { @@ -2701,12 +2723,18 @@ "CrlConfiguration": { "target": "com.amazonaws.acmpca#CrlConfiguration", "traits": { - "smithy.api#documentation": "

Configuration of the certificate revocation list (CRL), if any, maintained by your\n\t\t\tprivate CA.

" + "smithy.api#documentation": "

Configuration of the certificate revocation list (CRL), if any, maintained by your private\n\t\t\tCA. A CRL is typically updated approximately 30 minutes after a certificate \n\tis revoked. If for any reason a CRL update fails, ACM Private CA makes further attempts \n\tevery 15 minutes.

" + } + }, + "OcspConfiguration": { + "target": "com.amazonaws.acmpca#OcspConfiguration", + "traits": { + "smithy.api#documentation": "

Configuration of Online Certificate Status Protocol (OCSP) support, if any, maintained by\n\t\t\tyour private CA. When you revoke a certificate, OCSP responses may take up to 60 minutes \n\tto reflect the new status.

" } } }, "traits": { - "smithy.api#documentation": "

Certificate revocation information used by the CreateCertificateAuthority and UpdateCertificateAuthority actions. Your private certificate authority (CA)\n\t\t\tcan create and maintain a certificate revocation list (CRL). A CRL contains information\n\t\t\tabout certificates revoked by your CA. For more information, see RevokeCertificate.

" + "smithy.api#documentation": "

Certificate revocation information used by the CreateCertificateAuthority and UpdateCertificateAuthority actions. Your private certificate authority (CA)\n\t\t\tcan configure Online Certificate Status Protocol (OCSP) support and/or maintain a\n\t\t\tcertificate revocation list (CRL). OCSP returns validation information about\n\t\t\tcertificates as requested by clients, and a CRL contains an updated list of certificates\n\t\t\trevoked by your CA. For more information, see RevokeCertificate and Setting up a\n\t\t\t\tcertificate revocation method in the AWS Certificate Manager Private Certificate Authority (PCA) User\n\t\t\t\tGuide.

" } }, "com.amazonaws.acmpca#RevocationReason": { @@ -3166,7 +3194,7 @@ "RevocationConfiguration": { "target": "com.amazonaws.acmpca#RevocationConfiguration", "traits": { - "smithy.api#documentation": "

Revocation information for your private CA.

" + "smithy.api#documentation": "

Contains information to enable Online Certificate Status Protocol (OCSP) support, \n\t\t\tto enable a certificate revocation list (CRL), to enable both, or to enable neither. If\n\t\t\tthis parameter is not supplied, existing capibilites remain unchanged. For more\n\t\t\tinformation, see the OcspConfiguration and CrlConfiguration types.

" } }, "Status": { diff --git a/codegen/sdk-codegen/aws-models/cloudformation.2010-05-15.json b/codegen/sdk-codegen/aws-models/cloudformation.2010-05-15.json index 15ac8ba1bc2..f2a74ba004d 100644 --- a/codegen/sdk-codegen/aws-models/cloudformation.2010-05-15.json +++ b/codegen/sdk-codegen/aws-models/cloudformation.2010-05-15.json @@ -47,7 +47,7 @@ "Status": { "target": "com.amazonaws.cloudformation#AccountGateStatus", "traits": { - "smithy.api#documentation": "

The status of the account gate function.

\n " + "smithy.api#documentation": "

The status of the account gate function.

\n " } }, "StatusReason": { @@ -58,7 +58,7 @@ } }, "traits": { - "smithy.api#documentation": "

Structure that contains the results of the account gate function which CloudFormation invokes, if present, before proceeding with a stack set operation in an\n account and Region.

\n

For each account and Region, CloudFormation lets you specify a Lamdba\n function that encapsulates any requirements that must be met before CloudFormation\n can proceed with a stack set operation in that account and Region. CloudFormation\n invokes the function each time a stack set operation is requested for that account and\n Region; if the function returns FAILED, CloudFormation cancels the\n operation in that account and Region, and sets the stack set operation result status for\n that account and Region to FAILED.

\n

For more information, see Configuring a\n target account gate.

" + "smithy.api#documentation": "

Structure that contains the results of the account gate function which\n CloudFormation invokes, if present, before proceeding with a stack set operation in an\n account and Region.

\n

For each account and Region, CloudFormation lets you specify a Lamdba function\n that encapsulates any requirements that must be met before CloudFormation can proceed with\n a stack set operation in that account and Region. CloudFormation invokes the function each\n time a stack set operation is requested for that account and Region; if the function\n returns FAILED, CloudFormation cancels the operation in that account and\n Region, and sets the stack set operation result status for that account and Region to\n FAILED.

\n

For more information, see Configuring a\n target account gate.

" } }, "com.amazonaws.cloudformation#AccountGateStatus": { @@ -439,7 +439,7 @@ "ClientRequestToken": { "target": "com.amazonaws.cloudformation#ClientRequestToken", "traits": { - "smithy.api#documentation": "

A unique identifier for this CancelUpdateStack request. Specify this\n token if you plan to retry requests so that CloudFormation knows that you're not\n attempting to cancel an update on a stack with the same name. You might retry\n CancelUpdateStack requests to ensure that CloudFormation\n successfully received them.

" + "smithy.api#documentation": "

A unique identifier for this CancelUpdateStack request. Specify this\n token if you plan to retry requests so that CloudFormation knows that you're not\n attempting to cancel an update on a stack with the same name. You might retry\n CancelUpdateStack requests to ensure that CloudFormation successfully\n received them.

" } } }, @@ -507,13 +507,13 @@ "Type": { "target": "com.amazonaws.cloudformation#ChangeType", "traits": { - "smithy.api#documentation": "

The type of entity that CloudFormation changes. Currently, the only entity\n type is Resource.

" + "smithy.api#documentation": "

The type of entity that CloudFormation changes. Currently, the only entity type\n is Resource.

" } }, "ResourceChange": { "target": "com.amazonaws.cloudformation#ResourceChange", "traits": { - "smithy.api#documentation": "

A ResourceChange structure that describes the resource and action that\n CloudFormation will perform.

" + "smithy.api#documentation": "

A ResourceChange structure that describes the resource and action that\n CloudFormation will perform.

" } } }, @@ -967,6 +967,9 @@ { "target": "com.amazonaws.cloudformation#RegisterType" }, + { + "target": "com.amazonaws.cloudformation#RollbackStack" + }, { "target": "com.amazonaws.cloudformation#SetStackPolicy" }, @@ -1013,7 +1016,7 @@ "name": "cloudformation" }, "aws.protocols#awsQuery": {}, - "smithy.api#documentation": "AWS CloudFormation\n

CloudFormation allows you to create and manage Amazon Web Services\n infrastructure deployments predictably and repeatedly. You can use CloudFormation\n to leverage Amazon Web Services products, such as Amazon Elastic Compute Cloud, Amazon\n Elastic Block Store, Amazon Simple Notification Service, Elastic Load Balancing, and Auto\n Scaling to build highly-reliable, highly scalable, cost-effective applications without\n creating or configuring the underlying Amazon Web Services infrastructure.

\n

With CloudFormation, you declare all of your resources and dependencies in a\n template file. The template defines a collection of resources as a single unit called a\n stack. CloudFormation creates and deletes all member resources of the stack\n together and manages all dependencies between the resources for you.

\n

For more information about CloudFormation, see the CloudFormation Product Page.

\n

CloudFormation makes use of other Amazon Web Services products. If you need\n additional technical information about a specific Amazon Web Services product, you can find\n the product's technical documentation at \n docs.aws.amazon.com\n .

", + "smithy.api#documentation": "AWS CloudFormation\n

CloudFormation allows you to create and manage Amazon Web Services infrastructure deployments\n predictably and repeatedly. You can use CloudFormation to leverage Amazon Web Services products, such\n as Amazon Elastic Compute Cloud, Amazon Elastic Block Store, Amazon Simple Notification\n Service, Elastic Load Balancing, and Auto Scaling to build highly-reliable, highly\n scalable, cost-effective applications without creating or configuring the underlying Amazon Web Services\n infrastructure.

\n

With CloudFormation, you declare all of your resources and dependencies in a\n template file. The template defines a collection of resources as a single unit called a\n stack. CloudFormation creates and deletes all member resources of the stack together\n and manages all dependencies between the resources for you.

\n

For more information about CloudFormation, see the CloudFormation Product Page.

\n

CloudFormation makes use of other Amazon Web Services products. If you need additional\n technical information about a specific Amazon Web Services product, you can find the product's technical\n documentation at \n docs.aws.amazon.com\n .

", "smithy.api#title": "AWS CloudFormation", "smithy.api#xmlNamespace": { "uri": "http://cloudformation.amazonaws.com/doc/2010-05-15/" @@ -1054,7 +1057,7 @@ } ], "traits": { - "smithy.api#documentation": "

For a specified stack that is in the UPDATE_ROLLBACK_FAILED state,\n continues rolling it back to the UPDATE_ROLLBACK_COMPLETE state. Depending on\n the cause of the failure, you can manually fix the error and continue the rollback. By continuing the rollback, you can\n return your stack to a working state (the UPDATE_ROLLBACK_COMPLETE state), and\n then try to update the stack again.

\n

A stack goes into the UPDATE_ROLLBACK_FAILED state when CloudFormation cannot roll back all changes after a failed stack update. For example,\n you might have a stack that is rolling back to an old database instance that was deleted\n outside of CloudFormation. Because CloudFormation doesn't know the database\n was deleted, it assumes that the database instance still exists and attempts to roll back\n to it, causing the update rollback to fail.

" + "smithy.api#documentation": "

For a specified stack that is in the UPDATE_ROLLBACK_FAILED state,\n continues rolling it back to the UPDATE_ROLLBACK_COMPLETE state. Depending on\n the cause of the failure, you can manually fix the error and continue the rollback. By continuing the rollback, you can\n return your stack to a working state (the UPDATE_ROLLBACK_COMPLETE state), and\n then try to update the stack again.

\n

A stack goes into the UPDATE_ROLLBACK_FAILED state when\n CloudFormation cannot roll back all changes after a failed stack update. For example, you\n might have a stack that is rolling back to an old database instance that was deleted\n outside of CloudFormation. Because CloudFormation doesn't know the database was\n deleted, it assumes that the database instance still exists and attempts to roll back to\n it, causing the update rollback to fail.

" } }, "com.amazonaws.cloudformation#ContinueUpdateRollbackInput": { @@ -1070,19 +1073,19 @@ "RoleARN": { "target": "com.amazonaws.cloudformation#RoleARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role that CloudFormation assumes to roll back the stack. CloudFormation uses the role's\n credentials to make calls on your behalf. CloudFormation always uses this role for\n all future operations on the stack. As long as users have permission to operate on the\n stack, CloudFormation uses this role even if the users don't have permission to\n pass it. Ensure that the role grants least privilege.

\n

If you don't specify a value, CloudFormation uses the role that was\n previously associated with the stack. If no role is available, CloudFormation uses\n a temporary session that is generated from your user credentials.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role\n that CloudFormation assumes to roll back the stack. CloudFormation uses the role's\n credentials to make calls on your behalf. CloudFormation always uses this role for all\n future operations on the stack. As long as users have permission to operate on the stack,\n CloudFormation uses this role even if the users don't have permission to pass it.\n Ensure that the role grants least privilege.

\n

If you don't specify a value, CloudFormation uses the role that was previously\n associated with the stack. If no role is available, CloudFormation uses a temporary\n session that is generated from your user credentials.

" } }, "ResourcesToSkip": { "target": "com.amazonaws.cloudformation#ResourcesToSkip", "traits": { - "smithy.api#documentation": "

A list of the logical IDs of the resources that CloudFormation skips during\n the continue update rollback operation. You can specify only resources that are in the\n UPDATE_FAILED state because a rollback failed. You can't specify resources\n that are in the UPDATE_FAILED state for other reasons, for example, because an\n update was cancelled. To check why a resource update failed, use the DescribeStackResources action, and view the resource status reason.

\n \n

Specify this property to skip rolling back resources that CloudFormation\n can't successfully roll back. We recommend that you troubleshoot resources before skipping them. CloudFormation sets\n the status of the specified resources to UPDATE_COMPLETE and continues to\n roll back the stack. After the rollback is complete, the state of the skipped resources\n will be inconsistent with the state of the resources in the stack template. Before\n performing another stack update, you must update the stack or resources to be consistent\n with each other. If you don't, subsequent stack updates might fail, and the stack will\n become unrecoverable.

\n
\n

Specify the minimum number of resources required to successfully roll back your\n stack. For example, a failed resource update might cause dependent resources to fail. In\n this case, it might not be necessary to skip the dependent resources.

\n

To skip resources that are part of nested stacks, use the following format:\n NestedStackName.ResourceLogicalID. If you want to specify the logical ID of\n a stack resource (Type: AWS::CloudFormation::Stack) in the\n ResourcesToSkip list, then its corresponding embedded stack must be in one\n of the following states: DELETE_IN_PROGRESS, DELETE_COMPLETE, or\n DELETE_FAILED.

\n \n

Don't confuse a child stack's name with its corresponding logical ID defined in\n the parent stack. For an example of a continue update rollback operation with nested\n stacks, see Using ResourcesToSkip to recover a nested stacks hierarchy.

\n
" + "smithy.api#documentation": "

A list of the logical IDs of the resources that CloudFormation skips during the\n continue update rollback operation. You can specify only resources that are in the\n UPDATE_FAILED state because a rollback failed. You can't specify resources\n that are in the UPDATE_FAILED state for other reasons, for example, because an\n update was cancelled. To check why a resource update failed, use the DescribeStackResources action, and view the resource status reason.

\n \n

Specify this property to skip rolling back resources that CloudFormation\n can't successfully roll back. We recommend that you troubleshoot resources before skipping them. CloudFormation sets\n the status of the specified resources to UPDATE_COMPLETE and continues to\n roll back the stack. After the rollback is complete, the state of the skipped resources\n will be inconsistent with the state of the resources in the stack template. Before\n performing another stack update, you must update the stack or resources to be consistent\n with each other. If you don't, subsequent stack updates might fail, and the stack will\n become unrecoverable.

\n
\n

Specify the minimum number of resources required to successfully roll back your stack.\n For example, a failed resource update might cause dependent resources to fail. In this\n case, it might not be necessary to skip the dependent resources.

\n

To skip resources that are part of nested stacks, use the following format:\n NestedStackName.ResourceLogicalID. If you want to specify the logical ID of\n a stack resource (Type: AWS::CloudFormation::Stack) in the\n ResourcesToSkip list, then its corresponding embedded stack must be in one\n of the following states: DELETE_IN_PROGRESS, DELETE_COMPLETE, or\n DELETE_FAILED.

\n \n

Don't confuse a child stack's name with its corresponding logical ID defined in the\n parent stack. For an example of a continue update rollback operation with nested stacks,\n see Using ResourcesToSkip to recover a nested stacks hierarchy.

\n
" } }, "ClientRequestToken": { "target": "com.amazonaws.cloudformation#ClientRequestToken", "traits": { - "smithy.api#documentation": "

A unique identifier for this ContinueUpdateRollback request. Specify\n this token if you plan to retry requests so that CloudFormationknows that you're\n not attempting to continue the rollback to a stack with the same name. You might retry\n ContinueUpdateRollback requests to ensure that CloudFormation\n successfully received them.

" + "smithy.api#documentation": "

A unique identifier for this ContinueUpdateRollback request. Specify\n this token if you plan to retry requests so that CloudFormationknows that you're not\n attempting to continue the rollback to a stack with the same name. You might retry\n ContinueUpdateRollback requests to ensure that CloudFormation\n successfully received them.

" } } }, @@ -1117,7 +1120,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a list of changes that will be applied to a stack so that you can review the\n changes before executing them. You can create a change set for a stack that doesn't exist\n or an existing stack. If you create a change set for a stack that doesn't exist, the change\n set shows all of the resources that CloudFormation will create. If you create a\n change set for an existing stack, CloudFormation compares the stack's information\n with the information that you submit in the change set and lists the differences. Use\n change sets to understand which resources CloudFormation will create or change, and\n how it will change resources in an existing stack, before you create or update a\n stack.

\n

To create a change set for a stack that doesn't exist, for the\n ChangeSetType parameter, specify CREATE. To create a change\n set for an existing stack, specify UPDATE for the ChangeSetType\n parameter. To create a change set for an import operation, specify IMPORT for\n the ChangeSetType parameter. After the CreateChangeSet call\n successfully completes, CloudFormation starts creating the change set. To check the\n status of the change set or to review it, use the DescribeChangeSet\n action.

\n

When you are satisfied with the changes the change set will make, execute the change\n set by using the ExecuteChangeSet action. CloudFormation doesn't\n make changes until you execute the change set.

\n

To create a change set for the entire stack hierachy, set\n IncludeNestedStacks to True.

" + "smithy.api#documentation": "

Creates a list of changes that will be applied to a stack so that you can review the\n changes before executing them. You can create a change set for a stack that doesn't exist\n or an existing stack. If you create a change set for a stack that doesn't exist, the change\n set shows all of the resources that CloudFormation will create. If you create a change\n set for an existing stack, CloudFormation compares the stack's information with the\n information that you submit in the change set and lists the differences. Use change sets to\n understand which resources CloudFormation will create or change, and how it will change\n resources in an existing stack, before you create or update a stack.

\n

To create a change set for a stack that doesn't exist, for the\n ChangeSetType parameter, specify CREATE. To create a change\n set for an existing stack, specify UPDATE for the ChangeSetType\n parameter. To create a change set for an import operation, specify IMPORT for\n the ChangeSetType parameter. After the CreateChangeSet call\n successfully completes, CloudFormation starts creating the change set. To check the\n status of the change set or to review it, use the DescribeChangeSet\n action.

\n

When you are satisfied with the changes the change set will make, execute the change\n set by using the ExecuteChangeSet action. CloudFormation doesn't make\n changes until you execute the change set.

\n

To create a change set for the entire stack hierachy, set\n IncludeNestedStacks to True.

" } }, "com.amazonaws.cloudformation#CreateChangeSetInput": { @@ -1126,20 +1129,20 @@ "StackName": { "target": "com.amazonaws.cloudformation#StackNameOrId", "traits": { - "smithy.api#documentation": "

The name or the unique ID of the stack for which you are creating a change set.\n CloudFormation generates the change set by comparing this stack's information\n with the information that you submit, such as a modified template or different parameter\n input values.

", + "smithy.api#documentation": "

The name or the unique ID of the stack for which you are creating a change set.\n CloudFormation generates the change set by comparing this stack's information with the\n information that you submit, such as a modified template or different parameter input\n values.

", "smithy.api#required": {} } }, "TemplateBody": { "target": "com.amazonaws.cloudformation#TemplateBody", "traits": { - "smithy.api#documentation": "

A structure that contains the body of the revised template, with a minimum length of\n 1 byte and a maximum length of 51,200 bytes. CloudFormation generates the change\n set by comparing this template with the template of the stack that you specified.

\n

Conditional: You must specify only TemplateBody or\n TemplateURL.

" + "smithy.api#documentation": "

A structure that contains the body of the revised template, with a minimum length of\n 1 byte and a maximum length of 51,200 bytes. CloudFormation generates the change set by\n comparing this template with the template of the stack that you specified.

\n

Conditional: You must specify only TemplateBody or\n TemplateURL.

" } }, "TemplateURL": { "target": "com.amazonaws.cloudformation#TemplateURL", "traits": { - "smithy.api#documentation": "

The location of the file that contains the revised template. The URL must point to a\n template (max size: 460,800 bytes) that is located in an S3 bucket or a Systems Manager\n document. CloudFormation generates the change set by comparing this template with\n the stack that you specified.

\n

Conditional: You must specify only TemplateBody or\n TemplateURL.

" + "smithy.api#documentation": "

The location of the file that contains the revised template. The URL must point to a\n template (max size: 460,800 bytes) that is located in an S3 bucket or a Systems Manager\n document. CloudFormation generates the change set by comparing this template with the\n stack that you specified.

\n

Conditional: You must specify only TemplateBody or\n TemplateURL.

" } }, "UsePreviousTemplate": { @@ -1157,19 +1160,19 @@ "Capabilities": { "target": "com.amazonaws.cloudformation#Capabilities", "traits": { - "smithy.api#documentation": "

In some cases, you must explicitly acknowledge that your stack template contains certain\n capabilities in order for CloudFormation to create the stack.

\n " + "smithy.api#documentation": "

In some cases, you must explicitly acknowledge that your stack template contains certain\n capabilities in order for CloudFormation to create the stack.

\n " } }, "ResourceTypes": { "target": "com.amazonaws.cloudformation#ResourceTypes", "traits": { - "smithy.api#documentation": "

The template resource types that you have permissions to work with if you execute\n this change set, such as AWS::EC2::Instance, AWS::EC2::*, or\n Custom::MyCustomInstance.

\n

If the list of resource types doesn't include a resource type that you're updating,\n the stack update fails. By default, CloudFormation grants permissions to all\n resource types. Identity and Access Management (IAM) uses this parameter for condition keys in IAM\n policies for CloudFormation. For more information, see Controlling Access with\n Identity and Access Management in the CloudFormation User Guide.

" + "smithy.api#documentation": "

The template resource types that you have permissions to work with if you execute\n this change set, such as AWS::EC2::Instance, AWS::EC2::*, or\n Custom::MyCustomInstance.

\n

If the list of resource types doesn't include a resource type that you're updating,\n the stack update fails. By default, CloudFormation grants permissions to all resource\n types. Identity and Access Management (IAM) uses this parameter for condition keys in\n IAM policies for CloudFormation. For more information, see Controlling Access with\n Identity and Access Management in the CloudFormation User\n Guide.

" } }, "RoleARN": { "target": "com.amazonaws.cloudformation#RoleARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role that CloudFormation assumes when executing the change set. CloudFormation uses the\n role's credentials to make calls on your behalf. CloudFormation uses this role for\n all future operations on the stack. As long as users have permission to operate on the\n stack, CloudFormation uses this role even if the users don't have permission to\n pass it. Ensure that the role grants least privilege.

\n

If you don't specify a value, CloudFormation uses the role that was\n previously associated with the stack. If no role is available, CloudFormation uses\n a temporary session that is generated from your user credentials.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role\n that CloudFormation assumes when executing the change set. CloudFormation uses the\n role's credentials to make calls on your behalf. CloudFormation uses this role for all\n future operations on the stack. As long as users have permission to operate on the stack,\n CloudFormation uses this role even if the users don't have permission to pass it.\n Ensure that the role grants least privilege.

\n

If you don't specify a value, CloudFormation uses the role that was previously\n associated with the stack. If no role is available, CloudFormation uses a temporary\n session that is generated from your user credentials.

" } }, "RollbackConfiguration": { @@ -1200,7 +1203,7 @@ "ClientToken": { "target": "com.amazonaws.cloudformation#ClientToken", "traits": { - "smithy.api#documentation": "

A unique identifier for this CreateChangeSet request. Specify this token\n if you plan to retry requests so that CloudFormation knows that you're not\n attempting to create another change set with the same name. You might retry\n CreateChangeSet requests to ensure that CloudFormation successfully\n received them.

" + "smithy.api#documentation": "

A unique identifier for this CreateChangeSet request. Specify this token\n if you plan to retry requests so that CloudFormation knows that you're not attempting\n to create another change set with the same name. You might retry\n CreateChangeSet requests to ensure that CloudFormation successfully\n received them.

" } }, "Description": { @@ -1212,7 +1215,7 @@ "ChangeSetType": { "target": "com.amazonaws.cloudformation#ChangeSetType", "traits": { - "smithy.api#documentation": "

The type of change set operation. To create a change set for a new stack, specify\n CREATE. To create a change set for an existing stack, specify\n UPDATE. To create a change set for an import operation, specify\n IMPORT.

\n

If you create a change set for a new stack, CloudFormation creates a stack\n with a unique stack ID, but no template or resources. The stack will be in the \n REVIEW_IN_PROGRESS\n state until you execute the change\n set.

\n

By default, CloudFormation specifies UPDATE. You can't use the\n UPDATE type to create a change set for a new stack or the\n CREATE type to create a change set for an existing stack.

" + "smithy.api#documentation": "

The type of change set operation. To create a change set for a new stack, specify\n CREATE. To create a change set for an existing stack, specify\n UPDATE. To create a change set for an import operation, specify\n IMPORT.

\n

If you create a change set for a new stack, CloudFormation creates a stack with a\n unique stack ID, but no template or resources. The stack will be in the \n REVIEW_IN_PROGRESS\n state until you execute the change\n set.

\n

By default, CloudFormation specifies UPDATE. You can't use the\n UPDATE type to create a change set for a new stack or the\n CREATE type to create a change set for an existing stack.

" } }, "ResourcesToImport": { @@ -1284,7 +1287,7 @@ "StackName": { "target": "com.amazonaws.cloudformation#StackName", "traits": { - "smithy.api#documentation": "

The name that is associated with the stack. The name must be unique in the Region in\n which you are creating the stack.

\n \n

A stack name can contain only alphanumeric characters (case sensitive) and\n hyphens. It must start with an alphabetic character and cannot be longer than 128\n characters.

\n
", + "smithy.api#documentation": "

The name that is associated with the stack. The name must be unique in the Region in\n which you are creating the stack.

\n \n

A stack name can contain only alphanumeric characters (case sensitive) and hyphens.\n It must start with an alphabetical character and cannot be longer than 128\n characters.

\n
", "smithy.api#required": {} } }, @@ -1333,19 +1336,19 @@ "Capabilities": { "target": "com.amazonaws.cloudformation#Capabilities", "traits": { - "smithy.api#documentation": "

In some cases, you must explicitly acknowledge that your stack template contains certain\n capabilities in order for CloudFormation to create the stack.

\n " + "smithy.api#documentation": "

In some cases, you must explicitly acknowledge that your stack template contains certain\n capabilities in order for CloudFormation to create the stack.

\n " } }, "ResourceTypes": { "target": "com.amazonaws.cloudformation#ResourceTypes", "traits": { - "smithy.api#documentation": "

The template resource types that you have permissions to work with for this create\n stack action, such as AWS::EC2::Instance, AWS::EC2::*, or\n Custom::MyCustomInstance. Use the following syntax to describe template\n resource types: AWS::* (for all Amazon Web Services resources),\n Custom::* (for all custom resources),\n Custom::logical_ID\n (for a specific custom resource),\n AWS::service_name::* (for all resources of a\n particular Amazon Web Services service), and\n AWS::service_name::resource_logical_ID\n (for a specific Amazon Web Services resource).

\n

If the list of resource types doesn't include a resource that you're creating, the\n stack creation fails. By default, CloudFormation grants permissions to all resource\n types. Identity and Access Management (IAM) uses this parameter for CloudFormation-specific\n condition keys in IAM policies. For more information, see Controlling Access with\n Identity and Access Management.

" + "smithy.api#documentation": "

The template resource types that you have permissions to work with for this create\n stack action, such as AWS::EC2::Instance, AWS::EC2::*, or\n Custom::MyCustomInstance. Use the following syntax to describe template\n resource types: AWS::* (for all Amazon Web Services resources),\n Custom::* (for all custom resources),\n Custom::logical_ID\n (for a specific custom resource),\n AWS::service_name::* (for all resources of a\n particular Amazon Web Services service), and\n AWS::service_name::resource_logical_ID\n (for a specific Amazon Web Services resource).

\n

If the list of resource types doesn't include a resource that you're creating, the\n stack creation fails. By default, CloudFormation grants permissions to all resource\n types. Identity and Access Management (IAM) uses this parameter for CloudFormation-specific condition keys in IAM policies. For more information, see Controlling Access with Identity and Access Management.

" } }, "RoleARN": { "target": "com.amazonaws.cloudformation#RoleARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role that CloudFormation assumes to create the stack. CloudFormation uses the role's\n credentials to make calls on your behalf. CloudFormation always uses this role for\n all future operations on the stack. As long as users have permission to operate on the\n stack, CloudFormation uses this role even if the users don't have permission to\n pass it. Ensure that the role grants least privilege.

\n

If you don't specify a value, CloudFormation uses the role that was\n previously associated with the stack. If no role is available, CloudFormation uses\n a temporary session that is generated from your user credentials.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role\n that CloudFormation assumes to create the stack. CloudFormation uses the role's\n credentials to make calls on your behalf. CloudFormation always uses this role for all\n future operations on the stack. As long as users have permission to operate on the stack,\n CloudFormation uses this role even if the users don't have permission to pass it.\n Ensure that the role grants least privilege.

\n

If you don't specify a value, CloudFormation uses the role that was previously\n associated with the stack. If no role is available, CloudFormation uses a temporary\n session that is generated from your user credentials.

" } }, "OnFailure": { @@ -1357,13 +1360,13 @@ "StackPolicyBody": { "target": "com.amazonaws.cloudformation#StackPolicyBody", "traits": { - "smithy.api#documentation": "

Structure containing the stack policy body. For more information, go to Prevent Updates\n to Stack Resources in the CloudFormation User\n Guide. You can specify either the StackPolicyBody or the\n StackPolicyURL parameter, but not both.

" + "smithy.api#documentation": "

Structure containing the stack policy body. For more information, go to Prevent Updates\n to Stack Resources in the CloudFormation User Guide.\n You can specify either the StackPolicyBody or the StackPolicyURL\n parameter, but not both.

" } }, "StackPolicyURL": { "target": "com.amazonaws.cloudformation#StackPolicyURL", "traits": { - "smithy.api#documentation": "

Location of a file containing the stack policy. The URL must point to a policy\n (maximum size: 16 KB) located in an S3 bucket in the same Region as the stack. You can\n specify either the StackPolicyBody or the StackPolicyURL\n parameter, but not both.

" + "smithy.api#documentation": "

Location of a file containing the stack policy. The URL must point to a policy\n (maximum size: 16 KB) located in an S3 bucket in the same\n Region as the stack. You can specify either the StackPolicyBody or the\n StackPolicyURL parameter, but not both.

" } }, "Tags": { @@ -1375,13 +1378,13 @@ "ClientRequestToken": { "target": "com.amazonaws.cloudformation#ClientRequestToken", "traits": { - "smithy.api#documentation": "

A unique identifier for this CreateStack request. Specify this token if\n you plan to retry requests so that CloudFormation knows that you're not attempting\n to create a stack with the same name. You might retry CreateStack requests to\n ensure that CloudFormation successfully received them.

\n

All events triggered by a given stack operation are assigned the same client request\n token, which you can use to track operations. For example, if you execute a\n CreateStack operation with the token token1, then all the\n StackEvents generated by that operation will have\n ClientRequestToken set as token1.

\n

In the console, stack operations display the client request token on the Events tab.\n Stack operations that are initiated from the console use the token format\n Console-StackOperation-ID, which helps you easily identify the\n stack operation . For example, if you create a stack using the console, each stack event\n would be assigned the same token in the following format:\n Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.

" + "smithy.api#documentation": "

A unique identifier for this CreateStack request. Specify this token if\n you plan to retry requests so that CloudFormation knows that you're not attempting to\n create a stack with the same name. You might retry CreateStack requests to\n ensure that CloudFormation successfully received them.

\n

All events triggered by a given stack operation are assigned the same client request\n token, which you can use to track operations. For example, if you execute a\n CreateStack operation with the token token1, then all the\n StackEvents generated by that operation will have\n ClientRequestToken set as token1.

\n

In the console, stack operations display the client request token on the Events tab.\n Stack operations that are initiated from the console use the token format\n Console-StackOperation-ID, which helps you easily identify the\n stack operation . For example, if you create a stack using the console, each stack event\n would be assigned the same token in the following format:\n Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.

" } }, "EnableTerminationProtection": { "target": "com.amazonaws.cloudformation#EnableTerminationProtection", "traits": { - "smithy.api#documentation": "

Whether to enable termination protection on the specified stack. If a user attempts\n to delete a stack with termination protection enabled, the operation fails and the stack\n remains unchanged. For more information, see Protecting a Stack From Being\n Deleted in the CloudFormation User Guide. Termination protection is\n disabled on stacks by default.

\n

For nested stacks,\n termination protection is set on the root stack and cannot be changed directly on the\n nested stack.

" + "smithy.api#documentation": "

Whether to enable termination protection on the specified stack. If a user attempts to\n delete a stack with termination protection enabled, the operation fails and the stack\n remains unchanged. For more information, see Protecting a Stack From Being\n Deleted in the CloudFormation User Guide. Termination protection is\n disabled on stacks by default.

\n

For nested stacks,\n termination protection is set on the root stack and cannot be changed directly on the\n nested stack.

" } } }, @@ -1418,7 +1421,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates stack instances for the specified accounts, within the specified Regions. A\n stack instance refers to a stack in a specific account and Region. You must specify at\n least one value for either Accounts or DeploymentTargets, and you\n must specify at least one value for Regions.

" + "smithy.api#documentation": "

Creates stack instances for the specified accounts, within the specified Regions. A\n stack instance refers to a stack in a specific account and Region. You must specify at least one value for either Accounts or DeploymentTargets, and you must specify at least one value for Regions.

" } }, "com.amazonaws.cloudformation#CreateStackInstancesInput": { @@ -1434,7 +1437,7 @@ "Accounts": { "target": "com.amazonaws.cloudformation#AccountList", "traits": { - "smithy.api#documentation": "

[Self-managed permissions] The names of one or more accounts that\n you want to create stack instances in the specified Region(s) for.

\n

You can specify Accounts or DeploymentTargets, but not\n both.

" + "smithy.api#documentation": "

[Self-managed permissions] The names of one or more Amazon Web Services accounts that you want to create stack instances in the\n specified Region(s) for.

\n

You can specify Accounts or DeploymentTargets, but not both.

" } }, "DeploymentTargets": { @@ -1446,33 +1449,33 @@ "Regions": { "target": "com.amazonaws.cloudformation#RegionList", "traits": { - "smithy.api#documentation": "

The names of one or more Regions where you want to create stack instances using the\n specified accounts.

", + "smithy.api#documentation": "

The names of one or more Regions where you want to create stack instances using the\n specified Amazon Web Services accounts.

", "smithy.api#required": {} } }, "ParameterOverrides": { "target": "com.amazonaws.cloudformation#Parameters", "traits": { - "smithy.api#documentation": "

A list of stack set parameters whose values you want to override in the selected\n stack instances.

\n

Any overridden parameter values will be applied to all stack instances in the\n specified accounts and Regions. When specifying parameters and their values, be aware of\n how CloudFormation sets parameter values during stack instance\n operations:

\n \n

During stack set updates, any parameter values overridden for a stack instance are\n not updated, but retain their overridden value.

\n

You can only override the parameter values that are specified in\n the stack set; to add or delete a parameter itself, use UpdateStackSet to update the stack set template.

" + "smithy.api#documentation": "

A list of stack set parameters whose values you want to override in the selected\n stack instances.

\n

Any overridden parameter values will be applied to all stack instances in the\n specified accounts and Regions. When specifying parameters and their values, be aware of\n how CloudFormation sets parameter values during stack instance operations:

\n \n

During stack set updates, any parameter values overridden for a stack instance are\n not updated, but retain their overridden value.

\n

You can only override the parameter values that are specified in\n the stack set; to add or delete a parameter itself, use UpdateStackSet to update the stack set template.

" } }, "OperationPreferences": { "target": "com.amazonaws.cloudformation#StackSetOperationPreferences", "traits": { - "smithy.api#documentation": "

Preferences for how CloudFormation performs this stack set\n operation.

" + "smithy.api#documentation": "

Preferences for how CloudFormation performs this stack set operation.

" } }, "OperationId": { "target": "com.amazonaws.cloudformation#ClientRequestToken", "traits": { - "smithy.api#documentation": "

The unique identifier for this stack set operation.

\n

The operation ID also functions as an idempotency token, to ensure that CloudFormation performs the stack set operation only once, even if you retry the request\n multiple times. You might retry stack set operation requests to ensure that CloudFormation successfully received them.

\n

If you don't specify an operation ID, the SDK generates one automatically.

\n

Repeating this stack set operation with a new operation ID retries all stack\n instances whose status is OUTDATED.

", + "smithy.api#documentation": "

The unique identifier for this stack set operation.

\n

The operation ID also functions as an idempotency token, to ensure that\n CloudFormation performs the stack set operation only once, even if you retry the request\n multiple times. You might retry stack set operation requests to ensure that\n CloudFormation successfully received them.

\n

If you don't specify an operation ID, the SDK generates one\n automatically.

\n

Repeating this stack set operation with a new operation ID retries all stack instances\n whose status is OUTDATED.

", "smithy.api#idempotencyToken": {} } }, "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account\n administrator in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for stack sets with\n self-managed permissions.

\n " + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account.

\n

By default, SELF is specified. Use SELF for stack sets with self-managed permissions.

\n " } } } @@ -1562,19 +1565,19 @@ "Parameters": { "target": "com.amazonaws.cloudformation#Parameters", "traits": { - "smithy.api#documentation": "

The input parameters for the stack set template.

" + "smithy.api#documentation": "

The input parameters for the stack set template.

" } }, "Capabilities": { "target": "com.amazonaws.cloudformation#Capabilities", "traits": { - "smithy.api#documentation": "

In some cases, you must explicitly acknowledge that your stack set template contains\n certain capabilities in order for CloudFormation to create the stack set and related stack\n instances.

\n " + "smithy.api#documentation": "

In some cases, you must explicitly acknowledge that your stack set template contains\n certain capabilities in order for CloudFormation to create the stack set and related stack\n instances.

\n " } }, "Tags": { "target": "com.amazonaws.cloudformation#Tags", "traits": { - "smithy.api#documentation": "

The key-value pairs to associate with this stack set and the stacks created from it.\n CloudFormation also propagates these tags to supported resources that are\n created in the stacks. A maximum number of 50 tags can be specified.

\n

If you specify tags as part of a CreateStackSet action, CloudFormation checks to see if you have the required IAM permission to tag resources.\n If you don't, the entire CreateStackSet action fails with an access\n denied error, and the stack set is not created.

" + "smithy.api#documentation": "

The key-value pairs to associate with this stack set and the stacks created from it.\n CloudFormation also propagates these tags to supported resources that are created in\n the stacks. A maximum number of 50 tags can be specified.

\n

If you specify tags as part of a CreateStackSet action,\n CloudFormation checks to see if you have the required IAM permission to tag resources. If\n you don't, the entire CreateStackSet action fails with an access\n denied error, and the stack set is not created.

" } }, "AdministrationRoleARN": { @@ -1604,13 +1607,13 @@ "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account\n administrator in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for stack sets with\n self-managed permissions.

\n \n

Stack sets with service-managed permissions are created in the management account,\n including stack sets that are created by delegated administrators.

" + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account\n administrator in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for stack sets with\n self-managed permissions.

\n \n

Stack sets with service-managed permissions are created in the management account,\n including stack sets that are created by delegated administrators.

" } }, "ClientRequestToken": { "target": "com.amazonaws.cloudformation#ClientRequestToken", "traits": { - "smithy.api#documentation": "

A unique identifier for this CreateStackSet request. Specify this token\n if you plan to retry requests so that CloudFormation knows that you're not\n attempting to create another stack set with the same name. You might retry\n CreateStackSet requests to ensure that CloudFormation successfully\n received them.

\n

If you don't specify an operation ID, the SDK generates one automatically.\n

", + "smithy.api#documentation": "

A unique identifier for this CreateStackSet request. Specify this token\n if you plan to retry requests so that CloudFormation knows that you're not attempting\n to create another stack set with the same name. You might retry CreateStackSet\n requests to ensure that CloudFormation successfully received them.

\n

If you don't specify an operation ID, the SDK generates one\n automatically.

", "smithy.api#idempotencyToken": {} } } @@ -1767,19 +1770,19 @@ "RetainResources": { "target": "com.amazonaws.cloudformation#RetainResources", "traits": { - "smithy.api#documentation": "

For stacks in the DELETE_FAILED state, a list of resource logical IDs\n that are associated with the resources you want to retain. During deletion, CloudFormation deletes the stack but does not delete the retained resources.

\n

Retaining resources is useful when you cannot delete a resource, such as a non-empty\n S3 bucket, but you want to delete the stack.

" + "smithy.api#documentation": "

For stacks in the DELETE_FAILED state, a list of resource logical IDs\n that are associated with the resources you want to retain. During deletion,\n CloudFormation deletes the stack but does not delete the retained resources.

\n

Retaining resources is useful when you cannot delete a resource, such as a non-empty\n S3 bucket, but you want to delete the stack.

" } }, "RoleARN": { "target": "com.amazonaws.cloudformation#RoleARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role that CloudFormation assumes to delete the stack. CloudFormation uses the role's\n credentials to make calls on your behalf.

\n

If you don't specify a value, CloudFormation uses the role that was\n previously associated with the stack. If no role is available, CloudFormation uses\n a temporary session that is generated from your user credentials.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role\n that CloudFormation assumes to delete the stack. CloudFormation uses the role's\n credentials to make calls on your behalf.

\n

If you don't specify a value, CloudFormation uses the role that was previously\n associated with the stack. If no role is available, CloudFormation uses a temporary\n session that is generated from your user credentials.

" } }, "ClientRequestToken": { "target": "com.amazonaws.cloudformation#ClientRequestToken", "traits": { - "smithy.api#documentation": "

A unique identifier for this DeleteStack request. Specify this token if\n you plan to retry requests so that CloudFormation knows that you're not attempting\n to delete a stack with the same name. You might retry DeleteStack requests to\n ensure that CloudFormation successfully received them.

\n

All events triggered by a given stack operation are assigned the same client request\n token, which you can use to track operations. For example, if you execute a\n CreateStack operation with the token token1, then all the\n StackEvents generated by that operation will have\n ClientRequestToken set as token1.

\n

In the console, stack operations display the client request token on the Events tab.\n Stack operations that are initiated from the console use the token format\n Console-StackOperation-ID, which helps you easily identify the\n stack operation . For example, if you create a stack using the console, each stack event\n would be assigned the same token in the following format:\n Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.

" + "smithy.api#documentation": "

A unique identifier for this DeleteStack request. Specify this token if\n you plan to retry requests so that CloudFormation knows that you're not attempting to\n delete a stack with the same name. You might retry DeleteStack requests to\n ensure that CloudFormation successfully received them.

\n

All events triggered by a given stack operation are assigned the same client request\n token, which you can use to track operations. For example, if you execute a\n CreateStack operation with the token token1, then all the\n StackEvents generated by that operation will have\n ClientRequestToken set as token1.

\n

In the console, stack operations display the client request token on the Events tab.\n Stack operations that are initiated from the console use the token format\n Console-StackOperation-ID, which helps you easily identify the\n stack operation . For example, if you create a stack using the console, each stack event\n would be assigned the same token in the following format:\n Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.

" } } }, @@ -1813,7 +1816,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes stack instances for the specified accounts, in the specified Regions.

" + "smithy.api#documentation": "

Deletes stack instances for the specified accounts, in the specified Regions.

" } }, "com.amazonaws.cloudformation#DeleteStackInstancesInput": { @@ -1829,7 +1832,7 @@ "Accounts": { "target": "com.amazonaws.cloudformation#AccountList", "traits": { - "smithy.api#documentation": "

[Self-managed permissions] The names of the accounts that you want\n to delete stack instances for.

\n

You can specify Accounts or DeploymentTargets, but not\n both.

" + "smithy.api#documentation": "

[Self-managed permissions] The names of the Amazon Web Services accounts that you want to delete stack instances for.

\n

You can specify Accounts or DeploymentTargets, but not both.

" } }, "DeploymentTargets": { @@ -1841,14 +1844,14 @@ "Regions": { "target": "com.amazonaws.cloudformation#RegionList", "traits": { - "smithy.api#documentation": "

The Regions where you want to delete stack set instances.

", + "smithy.api#documentation": "

The Regions where you want to delete stack set instances.

", "smithy.api#required": {} } }, "OperationPreferences": { "target": "com.amazonaws.cloudformation#StackSetOperationPreferences", "traits": { - "smithy.api#documentation": "

Preferences for how CloudFormation performs this stack set\n operation.

" + "smithy.api#documentation": "

Preferences for how CloudFormation performs this stack set operation.

" } }, "RetainStacks": { @@ -1861,14 +1864,14 @@ "OperationId": { "target": "com.amazonaws.cloudformation#ClientRequestToken", "traits": { - "smithy.api#documentation": "

The unique identifier for this stack set operation.

\n

If you don't specify an operation ID, the SDK generates one automatically.

\n

The operation ID also functions as an idempotency token, to ensure that CloudFormation performs the stack set operation only once, even if you retry the request\n multiple times. You can retry stack set operation requests to ensure that CloudFormation successfully received them.

\n

Repeating this stack set operation with a new operation ID retries all stack\n instances whose status is OUTDATED.

", + "smithy.api#documentation": "

The unique identifier for this stack set operation.

\n

If you don't specify an operation ID, the SDK generates one\n automatically.

\n

The operation ID also functions as an idempotency token, to ensure that\n CloudFormation performs the stack set operation only once, even if you retry the request\n multiple times. You can retry stack set operation requests to ensure that\n CloudFormation successfully received them.

\n

Repeating this stack set operation with a new operation ID retries all stack instances\n whose status is OUTDATED.

", "smithy.api#idempotencyToken": {} } }, "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account\n administrator in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for stack sets with\n self-managed permissions.

\n " + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account\n administrator in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for stack sets with\n self-managed permissions.

\n " } } } @@ -1901,7 +1904,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a stack set. Before you can delete a stack set, all of its member stack\n instances must be deleted. For more information about how to do this, see DeleteStackInstances.

" + "smithy.api#documentation": "

Deletes a stack set. Before you can delete a stack set, all of its member stack\n instances must be deleted. For more information about how to do this, see DeleteStackInstances.

" } }, "com.amazonaws.cloudformation#DeleteStackSetInput": { @@ -1917,7 +1920,7 @@ "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account\n administrator in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for stack sets with\n self-managed permissions.

\n " + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account\n administrator in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for stack sets with\n self-managed permissions.

\n " } } } @@ -1935,7 +1938,7 @@ "Accounts": { "target": "com.amazonaws.cloudformation#AccountList", "traits": { - "smithy.api#documentation": "

The names of one or more accounts for which you want to deploy stack\n set updates.

" + "smithy.api#documentation": "

The names of one or more Amazon Web Services accounts for which you want to deploy stack\n set updates.

" } }, "AccountsUrl": { @@ -2033,7 +2036,7 @@ "target": "com.amazonaws.cloudformation#DescribeAccountLimitsOutput" }, "traits": { - "smithy.api#documentation": "

Retrieves your account's CloudFormation limits, such as the maximum number of\n stacks that you can create in your account. For more information about account limits, see\n CloudFormation Limits in the CloudFormation User\n Guide.

", + "smithy.api#documentation": "

Retrieves your account's CloudFormation limits, such as the maximum number of\n stacks that you can create in your account. For more information about account limits, see\n CloudFormation\n Limits in the CloudFormation User Guide.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -2061,7 +2064,7 @@ "AccountLimits": { "target": "com.amazonaws.cloudformation#AccountLimitList", "traits": { - "smithy.api#documentation": "

An account limit structure that contain a list of CloudFormation account\n limits and their values.

" + "smithy.api#documentation": "

An account limit structure that contain a list of CloudFormation account limits\n and their values.

" } }, "NextToken": { @@ -2089,7 +2092,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the inputs for the change set and a list of changes that CloudFormation will make if you execute the change set. For more information, see Updating Stacks Using Change Sets in the CloudFormation User\n Guide.

", + "smithy.api#documentation": "

Returns the inputs for the change set and a list of changes that CloudFormation\n will make if you execute the change set. For more information, see Updating Stacks Using Change Sets in the CloudFormation User\n Guide.

", "smithy.api#suppress": [ "WaitableTraitInvalidErrorType" ], @@ -2246,7 +2249,7 @@ "Changes": { "target": "com.amazonaws.cloudformation#Changes", "traits": { - "smithy.api#documentation": "

A list of Change structures that describes the resources CloudFormation changes if you execute the change set.

" + "smithy.api#documentation": "

A list of Change structures that describes the resources\n CloudFormation changes if you execute the change set.

" } }, "NextToken": { @@ -2354,7 +2357,7 @@ "StackDriftDetectionId": { "target": "com.amazonaws.cloudformation#StackDriftDetectionId", "traits": { - "smithy.api#documentation": "

The ID of the drift detection results of this operation.

\n

CloudFormation generates new results, with a new drift detection ID, each time this operation\n is run. However, the number of drift results CloudFormation retains for any given stack, and for how\n long, may vary.

", + "smithy.api#documentation": "

The ID of the drift detection results of this operation.

\n

CloudFormation generates new results, with a new drift detection ID, each time this operation is\n run. However, the number of drift results CloudFormation retains for any given stack, and for how\n long, may vary.

", "smithy.api#required": {} } } @@ -2373,14 +2376,14 @@ "StackDriftDetectionId": { "target": "com.amazonaws.cloudformation#StackDriftDetectionId", "traits": { - "smithy.api#documentation": "

The ID of the drift detection results of this operation.

\n

CloudFormation generates new results, with a new drift detection ID, each time this operation\n is run. However, the number of reports CloudFormation retains for any given stack, and for how long,\n may vary.

", + "smithy.api#documentation": "

The ID of the drift detection results of this operation.

\n

CloudFormation generates new results, with a new drift detection ID, each time this operation\n is run. However, the number of reports CloudFormation retains for any given stack, and for how long,\n may vary.

", "smithy.api#required": {} } }, "StackDriftStatus": { "target": "com.amazonaws.cloudformation#StackDriftStatus", "traits": { - "smithy.api#documentation": "

Status of the stack's actual configuration compared to its expected configuration.

\n " + "smithy.api#documentation": "

Status of the stack's actual configuration compared to its expected\n configuration.

\n " } }, "DetectionStatus": { @@ -2485,7 +2488,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the stack instance that's associated with the specified stack set, account, and Region.

\n

For a list of stack instances that are associated with a specific stack set, use\n ListStackInstances.

" + "smithy.api#documentation": "

Returns the stack instance that's associated with the specified stack set, Amazon Web Services account, and Region.

\n

For a list of stack instances that are associated with a specific stack set, use\n ListStackInstances.

" } }, "com.amazonaws.cloudformation#DescribeStackInstanceInput": { @@ -2501,7 +2504,7 @@ "StackInstanceAccount": { "target": "com.amazonaws.cloudformation#Account", "traits": { - "smithy.api#documentation": "

The ID of an account that's associated with this stack\n instance.

", + "smithy.api#documentation": "

The ID of an Amazon Web Services account that's associated with this stack instance.

", "smithy.api#required": {} } }, @@ -2515,7 +2518,7 @@ "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account\n administrator in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for stack sets with\n self-managed permissions.

\n " + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account\n administrator in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for stack sets with\n self-managed permissions.

\n " } } } @@ -2726,7 +2729,7 @@ "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account\n administrator in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for stack sets with\n self-managed permissions.

\n " + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account\n administrator in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for stack sets with\n self-managed permissions.

\n " } } } @@ -2771,7 +2774,7 @@ "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account\n administrator in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for stack sets with\n self-managed permissions.

\n " + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account\n administrator in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for stack sets with\n self-managed permissions.

\n " } } } @@ -3550,7 +3553,7 @@ "StackName": { "target": "com.amazonaws.cloudformation#StackNameOrId", "traits": { - "smithy.api#documentation": "

The name of the stack for which you want to detect drift.

", + "smithy.api#documentation": "

The name of the stack for which you want to detect drift.

", "smithy.api#required": {} } }, @@ -3568,7 +3571,7 @@ "StackDriftDetectionId": { "target": "com.amazonaws.cloudformation#StackDriftDetectionId", "traits": { - "smithy.api#documentation": "

The ID of the drift detection results of this operation.

\n

CloudFormation generates new results, with a new drift detection ID, each time this operation\n is run. However, the number of drift results CloudFormation retains for any given stack, and for how\n long, may vary.

", + "smithy.api#documentation": "

The ID of the drift detection results of this operation.

\n

CloudFormation generates new results, with a new drift detection ID, each time this operation is\n run. However, the number of drift results CloudFormation retains for any given stack, and for how\n long, may vary.

", "smithy.api#required": {} } } @@ -3663,7 +3666,7 @@ "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account\n administrator in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for stack sets with\n self-managed permissions.

\n " + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account\n administrator in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for stack sets with\n self-managed permissions.

\n " } } } @@ -3745,7 +3748,7 @@ "target": "com.amazonaws.cloudformation#EstimateTemplateCostOutput" }, "traits": { - "smithy.api#documentation": "

Returns the estimated monthly cost of a template. The return value is an Amazon Web Services Simple Monthly Calculator URL with a query string that describes the\n resources required to run the template.

" + "smithy.api#documentation": "

Returns the estimated monthly cost of a template. The return value is an Amazon Web Services Simple\n Monthly Calculator URL with a query string that describes the resources required to run the\n template.

" } }, "com.amazonaws.cloudformation#EstimateTemplateCostInput": { @@ -3760,7 +3763,7 @@ "TemplateURL": { "target": "com.amazonaws.cloudformation#TemplateURL", "traits": { - "smithy.api#documentation": "

Location of file containing the template body. The URL must point to a template that\n is located in an Amazon S3 bucket or a Systems Manager document. For more information, go\n to Template Anatomy\n in the CloudFormation User Guide.

\n

Conditional: You must pass TemplateURL or TemplateBody. If\n both are passed, only TemplateBody is used.

" + "smithy.api#documentation": "

Location of file containing the template body. The URL must point to a template that\n is located in an Amazon S3 bucket or a Systems Manager document. For more information, go to\n Template Anatomy\n in the CloudFormation User Guide.

\n

Conditional: You must pass TemplateURL or TemplateBody. If\n both are passed, only TemplateBody is used.

" } }, "Parameters": { @@ -3780,7 +3783,7 @@ "Url": { "target": "com.amazonaws.cloudformation#Url", "traits": { - "smithy.api#documentation": "

An Amazon Web Services Simple Monthly Calculator URL with a query string that\n describes the resources required to run the template.

" + "smithy.api#documentation": "

An Amazon Web Services Simple Monthly Calculator URL with a query string that describes the resources\n required to run the template.

" } } }, @@ -3829,7 +3832,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates a stack using the input information that was provided when the specified\n change set was created. After the call successfully completes, CloudFormation\n starts updating the stack. Use the DescribeStacks action to view the\n status of the update.

\n

When you execute a change set, CloudFormation deletes all other change sets\n associated with the stack because they aren't valid for the updated stack.

\n

If a stack policy is associated with the stack, CloudFormation enforces the\n policy during the update. You can't specify a temporary stack policy that overrides the\n current policy.

\n

To create a change set for the entire stack hierachy, IncludeNestedStacks\n must have been set to True.

" + "smithy.api#documentation": "

Updates a stack using the input information that was provided when the specified\n change set was created. After the call successfully completes, CloudFormation starts\n updating the stack. Use the DescribeStacks action to view the status of\n the update.

\n

When you execute a change set, CloudFormation deletes all other change sets\n associated with the stack because they aren't valid for the updated stack.

\n

If a stack policy is associated with the stack, CloudFormation enforces the\n policy during the update. You can't specify a temporary stack policy that overrides the\n current policy.

\n

To create a change set for the entire stack hierachy, IncludeNestedStacks\n must have been set to True.

" } }, "com.amazonaws.cloudformation#ExecuteChangeSetInput": { @@ -3851,7 +3854,13 @@ "ClientRequestToken": { "target": "com.amazonaws.cloudformation#ClientRequestToken", "traits": { - "smithy.api#documentation": "

A unique identifier for this ExecuteChangeSet request. Specify this\n token if you plan to retry requests so that CloudFormation knows that you're not\n attempting to execute a change set to update a stack with the same name. You might retry\n ExecuteChangeSet requests to ensure that CloudFormation\n successfully received them.

" + "smithy.api#documentation": "

A unique identifier for this ExecuteChangeSet request. Specify this\n token if you plan to retry requests so that CloudFormation knows that you're not\n attempting to execute a change set to update a stack with the same name. You might retry\n ExecuteChangeSet requests to ensure that CloudFormation successfully\n received them.

" + } + }, + "DisableRollback": { + "target": "com.amazonaws.cloudformation#DisableRollback", + "traits": { + "smithy.api#documentation": "

Preserves the state of previously provisioned resources when an operation fails.

\n

Default: True\n

" } } }, @@ -4027,7 +4036,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the template body for a specified stack. You can get the template for running\n or deleted stacks.

\n

For deleted stacks, GetTemplate returns the template for up to 90 days after the\n stack has been deleted.

\n \n

If the template does not exist, a ValidationError is returned.\n

\n
" + "smithy.api#documentation": "

Returns the template body for a specified stack. You can get the template for running\n or deleted stacks.

\n

For deleted stacks, GetTemplate returns the template for up to 90 days after the\n stack has been deleted.

\n \n

If the template does not exist, a ValidationError is returned.

\n
" } }, "com.amazonaws.cloudformation#GetTemplateInput": { @@ -4042,13 +4051,13 @@ "ChangeSetName": { "target": "com.amazonaws.cloudformation#ChangeSetNameOrId", "traits": { - "smithy.api#documentation": "

The name or Amazon Resource Name (ARN) of a change set for which CloudFormation returns the associated template. If you specify a name, you must also specify the\n StackName.

" + "smithy.api#documentation": "

The name or Amazon Resource Name (ARN) of a change set for which CloudFormation\n returns the associated template. If you specify a name, you must also specify the\n StackName.

" } }, "TemplateStage": { "target": "com.amazonaws.cloudformation#TemplateStage", "traits": { - "smithy.api#documentation": "

For templates that include transforms, the stage of the template that CloudFormation returns. To get the user-submitted template, specify\n Original. To get the template after CloudFormation has processed\n all transforms, specify Processed.

\n

If the template doesn't include transforms, Original and\n Processed return the same template. By default, CloudFormation\n specifies Processed.

" + "smithy.api#documentation": "

For templates that include transforms, the stage of the template that CloudFormation returns. To get the user-submitted template, specify\n Original. To get the template after CloudFormation has processed\n all transforms, specify Processed.

\n

If the template doesn't include transforms, Original and\n Processed return the same template. By default, CloudFormation\n specifies Processed.

" } } }, @@ -4068,7 +4077,7 @@ "StagesAvailable": { "target": "com.amazonaws.cloudformation#StageList", "traits": { - "smithy.api#documentation": "

The stage of the template that you can retrieve. For stacks, the\n Original and Processed templates are always available. For\n change sets, the Original template is always available. After CloudFormation finishes creating the change set, the Processed template\n becomes available.

" + "smithy.api#documentation": "

The stage of the template that you can retrieve. For stacks, the\n Original and Processed templates are always available. For\n change sets, the Original template is always available. After\n CloudFormation finishes creating the change set, the Processed template\n becomes available.

" } } }, @@ -4123,7 +4132,7 @@ "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account\n administrator in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for stack sets with\n self-managed permissions.

\n " + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account\n administrator in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for stack sets with\n self-managed permissions.

\n " } } }, @@ -4167,7 +4176,7 @@ "Version": { "target": "com.amazonaws.cloudformation#Version", "traits": { - "smithy.api#documentation": "

The Amazon Web Services template format version, which identifies the capabilities of\n the template.

" + "smithy.api#documentation": "

The Amazon Web Services template format version, which identifies the capabilities of the\n template.

" } }, "Metadata": { @@ -4185,7 +4194,7 @@ "ResourceIdentifierSummaries": { "target": "com.amazonaws.cloudformation#ResourceIdentifierSummaries", "traits": { - "smithy.api#documentation": "

A list of resource identifier summaries that describe the target resources of an import\n operation and the properties you can provide during the import to identify the target\n resources. For example, BucketName is a possible identifier property for an\n AWS::S3::Bucket resource.

" + "smithy.api#documentation": "

A list of resource identifier summaries that describe the target resources of an import\n operation and the properties you can provide during the import to identify the target\n resources. For example, BucketName is a possible identifier property for an\n AWS::S3::Bucket resource.

" } } }, @@ -4515,7 +4524,7 @@ "target": "com.amazonaws.cloudformation#ListChangeSetsOutput" }, "traits": { - "smithy.api#documentation": "

Returns the ID and status of each active change set for a stack. For example, CloudFormation lists change sets that are in the CREATE_IN_PROGRESS or\n CREATE_PENDING state.

", + "smithy.api#documentation": "

Returns the ID and status of each active change set for a stack. For example,\n CloudFormation lists change sets that are in the CREATE_IN_PROGRESS or\n CREATE_PENDING state.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -4573,7 +4582,7 @@ "target": "com.amazonaws.cloudformation#ListExportsOutput" }, "traits": { - "smithy.api#documentation": "

Lists all exported output values in the account and Region in which you call this\n action. Use this action to see the exported output values that you can import into other\n stacks. To import values, use the \n Fn::ImportValue\n function.

\n

For more information, see \n CloudFormation Export Stack Output Values.

", + "smithy.api#documentation": "

Lists all exported output values in the account and Region in which you call this\n action. Use this action to see the exported output values that you can import into other\n stacks. To import values, use the \n Fn::ImportValue\n function.

\n

For more information, see \n CloudFormation Export Stack Output Values.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -4618,7 +4627,7 @@ "target": "com.amazonaws.cloudformation#ListImportsOutput" }, "traits": { - "smithy.api#documentation": "

Lists all stacks that are importing an exported output value. To modify or remove an\n exported output value, first use this action to see which stacks are using it. To see the\n exported output values in your account, see ListExports.

\n

For more information about importing an exported output value, see the \n Fn::ImportValue\n function.

", + "smithy.api#documentation": "

Lists all stacks that are importing an exported output value. To modify or remove an\n exported output value, first use this action to see which stacks are using it. To see the\n exported output values in your account, see ListExports.

\n

For more information about importing an exported output value, see the \n Fn::ImportValue\n function.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -4632,14 +4641,14 @@ "ExportName": { "target": "com.amazonaws.cloudformation#ExportName", "traits": { - "smithy.api#documentation": "

The name of the exported output value. CloudFormation returns the stack names\n that are importing this value.

", + "smithy.api#documentation": "

The name of the exported output value. CloudFormation returns the stack names\n that are importing this value.

", "smithy.api#required": {} } }, "NextToken": { "target": "com.amazonaws.cloudformation#NextToken", "traits": { - "smithy.api#documentation": "

A string (provided by the ListImports response output) that\n identifies the next page of stacks that are importing the specified exported output value.\n

" + "smithy.api#documentation": "

A string (provided by the ListImports response output) that identifies\n the next page of stacks that are importing the specified exported output value.

" } } } @@ -4650,7 +4659,7 @@ "Imports": { "target": "com.amazonaws.cloudformation#Imports", "traits": { - "smithy.api#documentation": "

A list of stack names that are importing the specified exported output value.\n

" + "smithy.api#documentation": "

A list of stack names that are importing the specified exported output value.

" } }, "NextToken": { @@ -4675,7 +4684,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns summary information about stack instances that are associated with the\n specified stack set. You can filter for stack instances that are associated with a specific\n account name or Region, or that have a specific status.

", + "smithy.api#documentation": "

Returns summary information about stack instances that are associated with the\n specified stack set. You can filter for stack instances that are associated with a specific\n Amazon Web Services account name or Region, or that have a specific status.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -4715,7 +4724,7 @@ "StackInstanceAccount": { "target": "com.amazonaws.cloudformation#Account", "traits": { - "smithy.api#documentation": "

The name of the account that you want to list stack instances\n for.

" + "smithy.api#documentation": "

The name of the Amazon Web Services account that you want to list stack instances for.

" } }, "StackInstanceRegion": { @@ -4727,7 +4736,7 @@ "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account\n administrator in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for stack sets with\n self-managed permissions.

\n " + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account\n administrator in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for stack sets with\n self-managed permissions.

\n " } } } @@ -4865,7 +4874,7 @@ "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account\n administrator in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for stack sets with\n self-managed permissions.

\n " + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account\n administrator in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for stack sets with\n self-managed permissions.

\n " } } } @@ -4935,7 +4944,7 @@ "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account\n administrator in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for stack sets with\n self-managed permissions.

\n " + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account\n administrator in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for stack sets with\n self-managed permissions.

\n " } } } @@ -4966,7 +4975,7 @@ "target": "com.amazonaws.cloudformation#ListStackSetsOutput" }, "traits": { - "smithy.api#documentation": "

Returns summary information about stack sets that are associated with the\n user.

\n ", + "smithy.api#documentation": "

Returns summary information about stack sets that are associated with the\n user.

\n ", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -4999,7 +5008,7 @@ "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account\n administrator in the management account or as a delegated administrator in a member\n account.

\n

By default, SELF is specified. Use SELF for stack sets with\n self-managed permissions.

\n " + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account\n administrator in the management account or as a delegated administrator in a member\n account.

\n

By default, SELF is specified. Use SELF for stack sets with\n self-managed permissions.

\n " } } } @@ -5684,7 +5693,7 @@ "ParameterKey": { "target": "com.amazonaws.cloudformation#ParameterKey", "traits": { - "smithy.api#documentation": "

The key associated with the parameter. If you don't specify a key and value for a\n particular parameter, CloudFormation uses the default value that is specified in\n your template.

" + "smithy.api#documentation": "

The key associated with the parameter. If you don't specify a key and value for a\n particular parameter, CloudFormation uses the default value that is specified in your\n template.

" } }, "ParameterValue": { @@ -5721,7 +5730,7 @@ } }, "traits": { - "smithy.api#documentation": "

A set of criteria that CloudFormation uses to validate parameter values.\n Although other constraints might be defined in the stack template, CloudFormation\n returns only the AllowedValues property.

" + "smithy.api#documentation": "

A set of criteria that CloudFormation uses to validate parameter values. Although\n other constraints might be defined in the stack template, CloudFormation returns only\n the AllowedValues property.

" } }, "com.amazonaws.cloudformation#ParameterDeclaration": { @@ -5748,7 +5757,7 @@ "NoEcho": { "target": "com.amazonaws.cloudformation#NoEcho", "traits": { - "smithy.api#documentation": "

Flag that indicates whether the parameter value is shown as plain text in logs and in\n the Management Console.

" + "smithy.api#documentation": "

Flag that indicates whether the parameter value is shown as plain text in logs and in\n the Amazon Web Services Management Console.

" } }, "Description": { @@ -6157,7 +6166,7 @@ } ], "traits": { - "smithy.api#documentation": "

Registers your account as a publisher of public extensions in the CloudFormation\n registry. Public extensions are available for use by all CloudFormation users. This\n publisher ID applies to your account in all Regions.

\n

For information on requirements for registering as a public extension publisher, see\n Registering your account to publish CloudFormation\n extensions in the CloudFormation CLI User Guide.

\n

", + "smithy.api#documentation": "

Registers your account as a publisher of public extensions in the CloudFormation\n registry. Public extensions are available for use by all CloudFormation users. This\n publisher ID applies to your account in all Amazon Web Services Regions.

\n

For information on requirements for registering as a public extension publisher, see\n Registering your account to publish CloudFormation\n extensions in the CloudFormation CLI User Guide.

\n

", "smithy.api#idempotent": {} } }, @@ -6203,7 +6212,7 @@ } ], "traits": { - "smithy.api#documentation": "

Registers an extension with the CloudFormation service. Registering an\n extension makes it available for use in CloudFormation templates in your account, and includes:

\n \n

For more information on how to develop extensions and ready them for registeration, see\n Creating Resource\n Providers in the CloudFormation CLI User\n Guide.

\n

You can have a maximum of 50 resource extension versions registered at a time. This\n maximum is per account and per region. Use DeregisterType to deregister specific extension versions if necessary.

\n

Once you have initiated a registration request using \n RegisterType\n , you can use \n DescribeTypeRegistration\n to\n monitor the progress of the registration request.

\n

Once you have registered a private extension in your account and region, use SetTypeConfiguration to specify configuration properties for the extension. For\n more information, see Configuring extensions at the account level in the CloudFormation\n User Guide.

", + "smithy.api#documentation": "

Registers an extension with the CloudFormation service. Registering an\n extension makes it available for use in CloudFormation templates in your Amazon Web Services account, and includes:

\n \n

For more information on how to develop extensions and ready them for registeration, see\n Creating Resource\n Providers in the CloudFormation CLI User\n Guide.

\n

You can have a maximum of 50 resource extension versions registered at a time. This\n maximum is per account and per region. Use DeregisterType to deregister specific extension versions if necessary.

\n

Once you have initiated a registration request using \n RegisterType\n , you can use \n DescribeTypeRegistration\n to\n monitor the progress of the registration request.

\n

Once you have registered a private extension in your account and region, use SetTypeConfiguration to specify configuration properties for the extension. For\n more information, see Configuring extensions at the account level in the CloudFormation\n User Guide.

", "smithy.api#idempotent": {} } }, @@ -6434,7 +6443,7 @@ "Action": { "target": "com.amazonaws.cloudformation#ChangeAction", "traits": { - "smithy.api#documentation": "

The action that CloudFormation takes on the resource, such as\n Add (adds a new resource), Modify (changes a resource),\n Remove (deletes a resource), Import (imports a resource), or\n Dynamic (exact action for the resource cannot be determined).

" + "smithy.api#documentation": "

The action that CloudFormation takes on the resource, such as Add\n (adds a new resource), Modify (changes a resource), Remove\n (deletes a resource), Import (imports a resource), or Dynamic\n (exact action for the resource cannot be determined).

" } }, "LogicalResourceId": { @@ -6458,7 +6467,7 @@ "Replacement": { "target": "com.amazonaws.cloudformation#Replacement", "traits": { - "smithy.api#documentation": "

For the Modify action, indicates whether CloudFormation will\n replace the resource by creating a new one and deleting the old one. This value depends on\n the value of the RequiresRecreation property in the\n ResourceTargetDefinition structure. For example, if the\n RequiresRecreation field is Always and the\n Evaluation field is Static, Replacement is\n True. If the RequiresRecreation field is Always\n and the Evaluation field is Dynamic, Replacement is\n Conditionally.

\n

If you have multiple changes with different RequiresRecreation values,\n the Replacement value depends on the change with the most impact. A\n RequiresRecreation value of Always has the most impact,\n followed by Conditionally, and then Never.

" + "smithy.api#documentation": "

For the Modify action, indicates whether CloudFormation will replace\n the resource by creating a new one and deleting the old one. This value depends on the\n value of the RequiresRecreation property in the\n ResourceTargetDefinition structure. For example, if the\n RequiresRecreation field is Always and the\n Evaluation field is Static, Replacement is\n True. If the RequiresRecreation field is Always\n and the Evaluation field is Dynamic, Replacement is\n Conditionally.

\n

If you have multiple changes with different RequiresRecreation values,\n the Replacement value depends on the change with the most impact. A\n RequiresRecreation value of Always has the most impact,\n followed by Conditionally, and then Never.

" } }, "Scope": { @@ -6470,7 +6479,7 @@ "Details": { "target": "com.amazonaws.cloudformation#ResourceChangeDetails", "traits": { - "smithy.api#documentation": "

For the Modify action, a list of ResourceChangeDetail\n structures that describes the changes that CloudFormation will make to the\n resource.

" + "smithy.api#documentation": "

For the Modify action, a list of ResourceChangeDetail\n structures that describes the changes that CloudFormation will make to the resource.\n

" } }, "ChangeSetId": { @@ -6487,7 +6496,7 @@ } }, "traits": { - "smithy.api#documentation": "

The ResourceChange structure describes the resource and the action that\n CloudFormation will perform on it if you execute this change set.

" + "smithy.api#documentation": "

The ResourceChange structure describes the resource and the action that\n CloudFormation will perform on it if you execute this change set.

" } }, "com.amazonaws.cloudformation#ResourceChangeDetail": { @@ -6496,19 +6505,19 @@ "Target": { "target": "com.amazonaws.cloudformation#ResourceTargetDefinition", "traits": { - "smithy.api#documentation": "

A ResourceTargetDefinition structure that describes the field that\n CloudFormation will change and whether the resource will be recreated.

" + "smithy.api#documentation": "

A ResourceTargetDefinition structure that describes the field that\n CloudFormation will change and whether the resource will be recreated.

" } }, "Evaluation": { "target": "com.amazonaws.cloudformation#EvaluationType", "traits": { - "smithy.api#documentation": "

Indicates whether CloudFormation can determine the target value, and whether\n the target value will change before you execute a change set.

\n

For Static evaluations, CloudFormation can determine that the\n target value will change, and its value. For example, if you directly modify the\n InstanceType property of an EC2 instance, CloudFormation knows that\n this property value will change, and its value, so this is a Static\n evaluation.

\n

For Dynamic evaluations, cannot determine the target value because it\n depends on the result of an intrinsic function, such as a Ref or\n Fn::GetAtt intrinsic function, when the stack is updated. For example, if\n your template includes a reference to a resource that is conditionally recreated, the value\n of the reference (the physical ID of the resource) might change, depending on if the\n resource is recreated. If the resource is recreated, it will have a new physical ID, so all\n references to that resource will also be updated.

" + "smithy.api#documentation": "

Indicates whether CloudFormation can determine the target value, and whether the\n target value will change before you execute a change set.

\n

For Static evaluations, CloudFormation can determine that the target\n value will change, and its value. For example, if you directly modify the\n InstanceType property of an EC2 instance, CloudFormation knows that\n this property value will change, and its value, so this is a Static\n evaluation.

\n

For Dynamic evaluations, cannot determine the target value because it\n depends on the result of an intrinsic function, such as a Ref or\n Fn::GetAtt intrinsic function, when the stack is updated. For example, if\n your template includes a reference to a resource that is conditionally recreated, the value\n of the reference (the physical ID of the resource) might change, depending on if the\n resource is recreated. If the resource is recreated, it will have a new physical ID, so all\n references to that resource will also be updated.

" } }, "ChangeSource": { "target": "com.amazonaws.cloudformation#ChangeSource", "traits": { - "smithy.api#documentation": "

The group to which the CausingEntity value belongs. There are five\n entity groups:

\n " + "smithy.api#documentation": "

The group to which the CausingEntity value belongs. There are five\n entity groups:

\n " } }, "CausingEntity": { @@ -6519,7 +6528,7 @@ } }, "traits": { - "smithy.api#documentation": "

For a resource with Modify as the action, the\n ResourceChange structure describes the changes CloudFormation will\n make to that resource.

" + "smithy.api#documentation": "

For a resource with Modify as the action, the\n ResourceChange structure describes the changes CloudFormation will make\n to that resource.

" } }, "com.amazonaws.cloudformation#ResourceChangeDetails": { @@ -6702,6 +6711,30 @@ { "value": "IMPORT_ROLLBACK_COMPLETE", "name": "IMPORT_ROLLBACK_COMPLETE" + }, + { + "value": "UPDATE_ROLLBACK_IN_PROGRESS", + "name": "UPDATE_ROLLBACK_IN_PROGRESS" + }, + { + "value": "UPDATE_ROLLBACK_COMPLETE", + "name": "UPDATE_ROLLBACK_COMPLETE" + }, + { + "value": "UPDATE_ROLLBACK_FAILED", + "name": "UPDATE_ROLLBACK_FAILED" + }, + { + "value": "ROLLBACK_IN_PROGRESS", + "name": "ROLLBACK_IN_PROGRESS" + }, + { + "value": "ROLLBACK_COMPLETE", + "name": "ROLLBACK_COMPLETE" + }, + { + "value": "ROLLBACK_FAILED", + "name": "ROLLBACK_FAILED" } ] } @@ -6855,7 +6888,7 @@ "MonitoringTimeInMinutes": { "target": "com.amazonaws.cloudformation#MonitoringTimeInMinutes", "traits": { - "smithy.api#documentation": "

The amount of time, in minutes, during which CloudFormation should monitor\n all the rollback triggers after the stack creation or update operation deploys all\n necessary resources.

\n

The default is 0 minutes.

\n

If you specify a monitoring period but do not specify any rollback triggers, CloudFormation still waits the specified period of time before cleaning up old\n resources after update operations. You can use this monitoring period to perform any manual\n stack validation desired, and manually cancel the stack creation or update (using CancelUpdateStack, for example) as necessary.

\n

If you specify 0 for this parameter, CloudFormation still monitors the\n specified rollback triggers during stack creation and update operations. Then, for update\n operations, it begins disposing of old resources immediately once the operation\n completes.

" + "smithy.api#documentation": "

The amount of time, in minutes, during which CloudFormation should monitor all the\n rollback triggers after the stack creation or update operation deploys all necessary\n resources.

\n

The default is 0 minutes.

\n

If you specify a monitoring period but do not specify any rollback triggers,\n CloudFormation still waits the specified period of time before cleaning up old resources\n after update operations. You can use this monitoring period to perform any manual stack\n validation desired, and manually cancel the stack creation or update (using CancelUpdateStack, for example) as necessary.

\n

If you specify 0 for this parameter, CloudFormation still monitors the specified\n rollback triggers during stack creation and update operations. Then, for update operations,\n it begins disposing of old resources immediately once the operation completes.

" } } }, @@ -6863,6 +6896,58 @@ "smithy.api#documentation": "

Structure containing the rollback triggers for CloudFormation to monitor during stack creation\n and updating operations, and for the specified monitoring period afterwards.

\n

Rollback triggers enable you to have CloudFormation monitor the state of your application\n during stack creation and updating, and to roll back that operation if the application\n breaches the threshold of any of the alarms you've specified. For more information, see\n Monitor and Roll Back Stack\n Operations.

" } }, + "com.amazonaws.cloudformation#RollbackStack": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudformation#RollbackStackInput" + }, + "output": { + "target": "com.amazonaws.cloudformation#RollbackStackOutput" + }, + "errors": [ + { + "target": "com.amazonaws.cloudformation#TokenAlreadyExistsException" + } + ], + "traits": { + "smithy.api#documentation": "

When specifying RollbackStack, you preserve the state of previously provisioned resources when an operation fails. You can check the status of the stack through the DescribeStacks API.

\n

Rolls back the specified stack to the last known stable state from CREATE_FAILED or UPDATE_FAILED stack statuses.

\n

This operation will delete a stack if it doesn't contain a last known stable state. A last known stable state includes any status in a *_COMPLETE. This includes the following stack statuses.

\n " + } + }, + "com.amazonaws.cloudformation#RollbackStackInput": { + "type": "structure", + "members": { + "StackName": { + "target": "com.amazonaws.cloudformation#StackNameOrId", + "traits": { + "smithy.api#documentation": "

The name that is associated with the stack.

", + "smithy.api#required": {} + } + }, + "RoleARN": { + "target": "com.amazonaws.cloudformation#RoleARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Identity and Access Management role that CloudFormation assumes to rollback the stack.

" + } + }, + "ClientRequestToken": { + "target": "com.amazonaws.cloudformation#ClientRequestToken", + "traits": { + "smithy.api#documentation": "

A unique identifier for this RollbackStack request.

" + } + } + } + }, + "com.amazonaws.cloudformation#RollbackStackOutput": { + "type": "structure", + "members": { + "StackId": { + "target": "com.amazonaws.cloudformation#StackId", + "traits": { + "smithy.api#documentation": "

Unique identifier of the stack.

" + } + } + } + }, "com.amazonaws.cloudformation#RollbackTrigger": { "type": "structure", "members": { @@ -6944,13 +7029,13 @@ "StackPolicyBody": { "target": "com.amazonaws.cloudformation#StackPolicyBody", "traits": { - "smithy.api#documentation": "

Structure containing the stack policy body. For more information, go to Prevent Updates\n to Stack Resources in the CloudFormation User Guide. You can specify\n either the StackPolicyBody or the StackPolicyURL parameter, but\n not both.

" + "smithy.api#documentation": "

Structure containing the stack policy body. For more information, go to Prevent Updates\n to Stack Resources in the CloudFormation User Guide. You can specify either\n the StackPolicyBody or the StackPolicyURL parameter, but not\n both.

" } }, "StackPolicyURL": { "target": "com.amazonaws.cloudformation#StackPolicyURL", "traits": { - "smithy.api#documentation": "

Location of a file containing the stack policy. The URL must point to a policy\n (maximum size: 16 KB) located in an S3 bucket in the same Region as the stack. You can\n specify either the StackPolicyBody or the StackPolicyURL\n parameter, but not both.

" + "smithy.api#documentation": "

Location of a file containing the stack policy. The URL must point to a policy\n (maximum size: 16 KB) located in an S3 bucket in the same\n Region as the stack. You can specify either the StackPolicyBody or the\n StackPolicyURL parameter, but not both.

" } } }, @@ -7085,7 +7170,7 @@ "target": "com.amazonaws.cloudformation#SignalResourceInput" }, "traits": { - "smithy.api#documentation": "

Sends a signal to the specified resource with a success or failure status. You can\n use the SignalResource API in conjunction with a creation policy or update policy. CloudFormation doesn't proceed with a stack creation or update until resources receive\n the required number of signals or the timeout period is exceeded. The SignalResource API is\n useful in cases where you want to send signals from anywhere other than an Amazon EC2\n instance.

" + "smithy.api#documentation": "

Sends a signal to the specified resource with a success or failure status. You can\n use the SignalResource API in conjunction with a creation policy or update policy.\n CloudFormation doesn't proceed with a stack creation or update until resources receive the\n required number of signals or the timeout period is exceeded. The SignalResource API is\n useful in cases where you want to send signals from anywhere other than an Amazon EC2\n instance.

" } }, "com.amazonaws.cloudformation#SignalResourceInput": { @@ -7115,7 +7200,7 @@ "Status": { "target": "com.amazonaws.cloudformation#ResourceSignalStatus", "traits": { - "smithy.api#documentation": "

The status of the signal, which is either success or failure. A failure signal causes\n CloudFormation to immediately fail the stack creation or update.

", + "smithy.api#documentation": "

The status of the signal, which is either success or failure. A failure signal causes\n CloudFormation to immediately fail the stack creation or update.

", "smithy.api#required": {} } } @@ -7229,7 +7314,7 @@ "RoleARN": { "target": "com.amazonaws.cloudformation#RoleARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role that is\n associated with the stack. During a stack operation, CloudFormation uses this\n role's credentials to make calls on your behalf.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role\n that is associated with the stack. During a stack operation, CloudFormation uses this\n role's credentials to make calls on your behalf.

" } }, "Tags": { @@ -7402,7 +7487,7 @@ "ResourceType": { "target": "com.amazonaws.cloudformation#ResourceType", "traits": { - "smithy.api#documentation": "

Type of resource. (For more information, go to Amazon Web Services Resource Types Reference in the CloudFormation User\n Guide.)

" + "smithy.api#documentation": "

Type of resource. (For more information, go to Amazon Web Services\n Resource Types Reference in the CloudFormation User Guide.)

" } }, "Timestamp": { @@ -7433,7 +7518,7 @@ "ClientRequestToken": { "target": "com.amazonaws.cloudformation#ClientRequestToken", "traits": { - "smithy.api#documentation": "

The token passed to the operation that generated this event.

\n

All events triggered by a given stack operation are assigned the same client request\n token, which you can use to track operations. For example, if you execute a\n CreateStack operation with the token token1, then all the\n StackEvents generated by that operation will have\n ClientRequestToken set as token1.

\n

In the console, stack operations display the client request token on the Events tab.\n Stack operations that are initiated from the console use the token format\n Console-StackOperation-ID, which helps you easily identify the\n stack operation . For example, if you create a stack using the console, each stack event\n would be assigned the same token in the following format:\n Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.

" + "smithy.api#documentation": "

The token passed to the operation that generated this event.

\n

All events triggered by a given stack operation are assigned the same client request\n token, which you can use to track operations. For example, if you execute a\n CreateStack operation with the token token1, then all the\n StackEvents generated by that operation will have\n ClientRequestToken set as token1.

\n

In the console, stack operations display the client request token on the Events tab.\n Stack operations that are initiated from the console use the token format\n Console-StackOperation-ID, which helps you easily identify the\n stack operation . For example, if you create a stack using the console, each stack event\n would be assigned the same token in the following format:\n Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.

" } } }, @@ -7468,13 +7553,13 @@ "Region": { "target": "com.amazonaws.cloudformation#Region", "traits": { - "smithy.api#documentation": "

The name of the Region that the stack instance is associated\n with.

" + "smithy.api#documentation": "

The name of the Amazon Web Services Region that the stack instance is associated with.

" } }, "Account": { "target": "com.amazonaws.cloudformation#Account", "traits": { - "smithy.api#documentation": "

[Self-managed permissions] The name of the account that the stack\n instance is associated with.

" + "smithy.api#documentation": "

[Self-managed permissions] The name of the Amazon Web Services account that the stack instance is associated with.

" } }, "StackId": { @@ -7527,7 +7612,7 @@ } }, "traits": { - "smithy.api#documentation": "

An CloudFormation stack, in a specific account and Region, that's part of a\n stack set operation. A stack instance is a reference to an attempted or actual stack in a\n given account within a given Region. A stack instance can exist without a stack—for\n example, if the stack couldn't be created for some reason. A stack instance is associated\n with only one stack set. Each stack instance contains the ID of its associated stack set,\n as well as the ID of the actual stack and the stack status.

" + "smithy.api#documentation": "

An CloudFormation stack, in a specific account and Region, that's part of a stack\n set operation. A stack instance is a reference to an attempted or actual stack in a given\n account within a given Region. A stack instance can exist without a stack—for example, if\n the stack couldn't be created for some reason. A stack instance is associated with only one\n stack set. Each stack instance contains the ID of its associated stack set, as well as the\n ID of the actual stack and the stack status.

" } }, "com.amazonaws.cloudformation#StackInstanceComprehensiveStatus": { @@ -7681,13 +7766,13 @@ "Region": { "target": "com.amazonaws.cloudformation#Region", "traits": { - "smithy.api#documentation": "

The name of the Region that the stack instance is associated\n with.

" + "smithy.api#documentation": "

The name of the Amazon Web Services Region that the stack instance is associated with.

" } }, "Account": { "target": "com.amazonaws.cloudformation#Account", "traits": { - "smithy.api#documentation": "

[Self-managed permissions] The name of the account that the stack\n instance is associated with.

" + "smithy.api#documentation": "

[Self-managed permissions] The name of the Amazon Web Services account that the stack instance is associated with.

" } }, "StackId": { @@ -7833,7 +7918,7 @@ "ResourceType": { "target": "com.amazonaws.cloudformation#ResourceType", "traits": { - "smithy.api#documentation": "

Type of resource. (For more information, go to Amazon Web Services Resource Types Reference in the CloudFormation User\n Guide.)

", + "smithy.api#documentation": "

Type of resource. (For more information, go to Amazon Web Services\n Resource Types Reference in the CloudFormation User Guide.)

", "smithy.api#required": {} } }, @@ -7911,7 +7996,7 @@ "ResourceType": { "target": "com.amazonaws.cloudformation#ResourceType", "traits": { - "smithy.api#documentation": "

Type of resource. ((For more information, go to Amazon Web Services Resource Types Reference in the CloudFormation User\n Guide.)

", + "smithy.api#documentation": "

Type of resource. ((For more information, go to Amazon Web Services\n Resource Types Reference in the CloudFormation User Guide.)

", "smithy.api#required": {} } }, @@ -8151,7 +8236,7 @@ "ResourceType": { "target": "com.amazonaws.cloudformation#ResourceType", "traits": { - "smithy.api#documentation": "

Type of resource. (For more information, go to Amazon Web Services Resource Types Reference in the CloudFormation User\n Guide.)

", + "smithy.api#documentation": "

Type of resource. (For more information, go to Amazon Web Services\n Resource Types Reference in the CloudFormation User Guide.)

", "smithy.api#required": {} } }, @@ -8240,7 +8325,7 @@ "Capabilities": { "target": "com.amazonaws.cloudformation#Capabilities", "traits": { - "smithy.api#documentation": "

The capabilities that are allowed in the stack set. Some stack set templates might\n include resources that can affect permissions in your account—for\n example, by creating new Identity and Access Management (IAM) users. For more information, see\n Acknowledging IAM Resources in CloudFormation Templates.\n

" + "smithy.api#documentation": "

The capabilities that are allowed in the stack set. Some stack set templates might\n include resources that can affect permissions in your Amazon Web Services account—for example, by creating\n new Identity and Access Management (IAM) users. For more information, see Acknowledging IAM Resources in CloudFormation Templates.\n

" } }, "Tags": { @@ -8293,7 +8378,7 @@ } }, "traits": { - "smithy.api#documentation": "

A structure that contains information about a stack set. A stack set enables you to\n provision stacks into accounts and across Regions by using a single\n CloudFormation template. In the stack set, you specify the template to use, as\n well as any parameters and capabilities that the template requires.

" + "smithy.api#documentation": "

A structure that contains information about a stack set. A stack set enables you to\n provision stacks into Amazon Web Services accounts and across Regions by using a single CloudFormation\n template. In the stack set, you specify the template to use, as well as any parameters and\n capabilities that the template requires.

" } }, "com.amazonaws.cloudformation#StackSetARN": { @@ -8471,7 +8556,7 @@ "Status": { "target": "com.amazonaws.cloudformation#StackSetOperationStatus", "traits": { - "smithy.api#documentation": "

The status of the operation.

\n " + "smithy.api#documentation": "

The status of the operation.

\n " } }, "OperationPreferences": { @@ -8501,7 +8586,7 @@ "CreationTimestamp": { "target": "com.amazonaws.cloudformation#Timestamp", "traits": { - "smithy.api#documentation": "

The time at which the operation was initiated. Note that the creation times for the\n stack set operation might differ from the creation time of the individual stacks\n themselves. This is because CloudFormation needs to perform preparatory work for\n the operation, such as dispatching the work to the requested Regions, before actually\n creating the first stacks.

" + "smithy.api#documentation": "

The time at which the operation was initiated. Note that the creation times for the\n stack set operation might differ from the creation time of the individual stacks\n themselves. This is because CloudFormation needs to perform preparatory work for the\n operation, such as dispatching the work to the requested Regions, before actually creating\n the first stacks.

" } }, "EndTimestamp": { @@ -8568,25 +8653,25 @@ "FailureToleranceCount": { "target": "com.amazonaws.cloudformation#FailureToleranceCount", "traits": { - "smithy.api#documentation": "

The number of accounts, per Region, for which this operation can fail before CloudFormation stops the operation in that Region. If the operation is stopped in a\n Region, CloudFormation doesn't attempt the operation in any subsequent\n Regions.

\n

Conditional: You must specify either FailureToleranceCount or\n FailureTolerancePercentage (but not both).

\n

By default, 0 is specified.

" + "smithy.api#documentation": "

The number of accounts, per Region, for which this operation can fail before\n CloudFormation stops the operation in that Region. If the operation is stopped in a Region,\n CloudFormation doesn't attempt the operation in any subsequent Regions.

\n

Conditional: You must specify either FailureToleranceCount or\n FailureTolerancePercentage (but not both).

\n

By default, 0 is specified.

" } }, "FailureTolerancePercentage": { "target": "com.amazonaws.cloudformation#FailureTolerancePercentage", "traits": { - "smithy.api#documentation": "

The percentage of accounts, per Region, for which this stack operation can fail\n before CloudFormation stops the operation in that Region. If the operation is\n stopped in a Region, CloudFormation doesn't attempt the operation in any subsequent\n Regions.

\n

When calculating the number of accounts based on the specified percentage, CloudFormation rounds down to the next whole number.

\n

Conditional: You must specify either FailureToleranceCount or\n FailureTolerancePercentage, but not both.

\n

By default, 0 is specified.

" + "smithy.api#documentation": "

The percentage of accounts, per Region, for which this stack operation can fail\n before CloudFormation stops the operation in that Region. If the operation is stopped\n in a Region, CloudFormation doesn't attempt the operation in any subsequent\n Regions.

\n

When calculating the number of accounts based on the specified percentage,\n CloudFormation rounds down to the next whole number.

\n

Conditional: You must specify either FailureToleranceCount or\n FailureTolerancePercentage, but not both.

\n

By default, 0 is specified.

" } }, "MaxConcurrentCount": { "target": "com.amazonaws.cloudformation#MaxConcurrentCount", "traits": { - "smithy.api#documentation": "

The maximum number of accounts in which to perform this operation at one time. This\n is dependent on the value of FailureToleranceCount.\n MaxConcurrentCount is at most one more than the\n FailureToleranceCount.

\n

Note that this setting lets you specify the maximum for\n operations. For large deployments, under certain circumstances the actual number of\n accounts acted upon concurrently may be lower due to service throttling.

\n

Conditional: You must specify either MaxConcurrentCount or\n MaxConcurrentPercentage, but not both.

\n

By default, 1 is specified.

" + "smithy.api#documentation": "

The maximum number of accounts in which to perform this operation at one time. This\n is dependent on the value of\n FailureToleranceCount. MaxConcurrentCount is at most one more\n than the FailureToleranceCount.

\n

Note that this setting lets you specify the maximum for\n operations. For large deployments, under certain circumstances the actual number of\n accounts acted upon concurrently may be lower due to service throttling.

\n

Conditional: You must specify either MaxConcurrentCount or\n MaxConcurrentPercentage, but not both.

\n

By default, 1 is specified.

" } }, "MaxConcurrentPercentage": { "target": "com.amazonaws.cloudformation#MaxConcurrentPercentage", "traits": { - "smithy.api#documentation": "

The maximum percentage of accounts in which to perform this operation at one\n time.

\n

When calculating the number of accounts based on the specified percentage, CloudFormation rounds down to the next whole number. This is true except in cases where\n rounding down would result is zero. In this case, CloudFormation sets the number\n as one instead.

\n

Note that this setting lets you specify the maximum for\n operations. For large deployments, under certain circumstances the actual number of\n accounts acted upon concurrently may be lower due to service throttling.

\n

Conditional: You must specify either MaxConcurrentCount or\n MaxConcurrentPercentage, but not both.

\n

By default, 1 is specified.

" + "smithy.api#documentation": "

The maximum percentage of accounts in which to perform this operation at one\n time.

\n

When calculating the number of accounts based on the specified percentage,\n CloudFormation rounds down to the next whole number. This is true except in cases where\n rounding down would result is zero. In this case, CloudFormation sets the number as one\n instead.

\n

Note that this setting lets you specify the maximum for\n operations. For large deployments, under certain circumstances the actual number of\n accounts acted upon concurrently may be lower due to service throttling.

\n

Conditional: You must specify either MaxConcurrentCount or\n MaxConcurrentPercentage, but not both.

\n

By default, 1 is specified.

" } } }, @@ -8633,13 +8718,13 @@ "Account": { "target": "com.amazonaws.cloudformation#Account", "traits": { - "smithy.api#documentation": "

[Self-managed permissions] The name of the account for this\n operation result.

" + "smithy.api#documentation": "

[Self-managed permissions] The name of the Amazon Web Services account for this operation result.

" } }, "Region": { "target": "com.amazonaws.cloudformation#Region", "traits": { - "smithy.api#documentation": "

The name of the Region for this operation result.

" + "smithy.api#documentation": "

The name of the Amazon Web Services Region for this operation result.

" } }, "Status": { @@ -8726,13 +8811,13 @@ "Status": { "target": "com.amazonaws.cloudformation#StackSetOperationStatus", "traits": { - "smithy.api#documentation": "

The overall status of the operation.

\n " + "smithy.api#documentation": "

The overall status of the operation.

\n " } }, "CreationTimestamp": { "target": "com.amazonaws.cloudformation#Timestamp", "traits": { - "smithy.api#documentation": "

The time at which the operation was initiated. Note that the creation times for the\n stack set operation might differ from the creation time of the individual stacks\n themselves. This is because CloudFormation needs to perform preparatory work for\n the operation, such as dispatching the work to the requested Regions, before actually\n creating the first stacks.

" + "smithy.api#documentation": "

The time at which the operation was initiated. Note that the creation times for the\n stack set operation might differ from the creation time of the individual stacks\n themselves. This is because CloudFormation needs to perform preparatory work for the\n operation, such as dispatching the work to the requested Regions, before actually creating\n the first stacks.

" } }, "EndTimestamp": { @@ -8875,6 +8960,10 @@ "value": "UPDATE_COMPLETE", "name": "UPDATE_COMPLETE" }, + { + "value": "UPDATE_FAILED", + "name": "UPDATE_FAILED" + }, { "value": "UPDATE_ROLLBACK_IN_PROGRESS", "name": "UPDATE_ROLLBACK_IN_PROGRESS" @@ -9091,7 +9180,7 @@ "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account\n administrator in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for stack sets with\n self-managed permissions.

\n " + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account\n administrator in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for stack sets with\n self-managed permissions.

\n " } } } @@ -9122,7 +9211,7 @@ "Key": { "target": "com.amazonaws.cloudformation#TagKey", "traits": { - "smithy.api#documentation": "

\n Required. A string used to identify this tag. You can specify a\n maximum of 128 characters for a tag key. Tags owned by Amazon Web Services (Amazon Web Services) have the reserved prefix: aws:.

", + "smithy.api#documentation": "

\n Required. A string used to identify this tag. You can specify a\n maximum of 128 characters for a tag key. Tags owned by Amazon Web Services (Amazon Web Services) have the\n reserved prefix: aws:.

", "smithy.api#required": {} } }, @@ -9861,7 +9950,7 @@ "TemplateURL": { "target": "com.amazonaws.cloudformation#TemplateURL", "traits": { - "smithy.api#documentation": "

Location of file containing the template body. The URL must point to a template that\n is located in an Amazon S3 bucket or a Systems Manager document. For more information, go\n to Template Anatomy\n in the CloudFormation User Guide.

\n

Conditional: You must specify only one of the following parameters:\n TemplateBody, TemplateURL, or set the\n UsePreviousTemplate to true.

" + "smithy.api#documentation": "

Location of file containing the template body. The URL must point to a template that\n is located in an Amazon S3 bucket or a Systems Manager document. For more information, go to\n Template Anatomy\n in the CloudFormation User Guide.

\n

Conditional: You must specify only one of the following parameters:\n TemplateBody, TemplateURL, or set the\n UsePreviousTemplate to true.

" } }, "UsePreviousTemplate": { @@ -9879,7 +9968,7 @@ "StackPolicyDuringUpdateURL": { "target": "com.amazonaws.cloudformation#StackPolicyDuringUpdateURL", "traits": { - "smithy.api#documentation": "

Location of a file containing the temporary overriding stack policy. The URL must\n point to a policy (max size: 16KB) located in an S3 bucket in the same Region as the stack.\n You can specify either the StackPolicyDuringUpdateBody or the\n StackPolicyDuringUpdateURL parameter, but not both.

\n

If you want to update protected resources, specify a temporary overriding stack\n policy during this update. If you do not specify a stack policy, the current policy that is\n associated with the stack will be used.

" + "smithy.api#documentation": "

Location of a file containing the temporary overriding stack policy. The URL must\n point to a policy (max size: 16KB) located in an S3 bucket in\n the same Region as the stack. You can specify either the\n StackPolicyDuringUpdateBody or the StackPolicyDuringUpdateURL\n parameter, but not both.

\n

If you want to update protected resources, specify a temporary overriding stack\n policy during this update. If you do not specify a stack policy, the current policy that is\n associated with the stack will be used.

" } }, "Parameters": { @@ -9891,19 +9980,19 @@ "Capabilities": { "target": "com.amazonaws.cloudformation#Capabilities", "traits": { - "smithy.api#documentation": "

In some cases, you must explicitly acknowledge that your stack template contains certain\n capabilities in order for CloudFormation to update the stack.

\n " + "smithy.api#documentation": "

In some cases, you must explicitly acknowledge that your stack template contains certain\n capabilities in order for CloudFormation to update the stack.

\n " } }, "ResourceTypes": { "target": "com.amazonaws.cloudformation#ResourceTypes", "traits": { - "smithy.api#documentation": "

The template resource types that you have permissions to work with for this update\n stack action, such as AWS::EC2::Instance, AWS::EC2::*, or\n Custom::MyCustomInstance.

\n

If the list of resource types doesn't include a resource that you're updating, the\n stack update fails. By default, CloudFormation grants permissions to all resource\n types. Identity and Access Management (IAM) uses this parameter for CloudFormation-specific\n condition keys in IAM policies. For more information, see Controlling Access with\n Identity and Access Management.

" + "smithy.api#documentation": "

The template resource types that you have permissions to work with for this update\n stack action, such as AWS::EC2::Instance, AWS::EC2::*, or\n Custom::MyCustomInstance.

\n

If the list of resource types doesn't include a resource that you're updating, the\n stack update fails. By default, CloudFormation grants permissions to all resource\n types. Identity and Access Management (IAM) uses this parameter for CloudFormation-specific condition keys in IAM policies. For more information, see Controlling Access with Identity and Access Management.

" } }, "RoleARN": { "target": "com.amazonaws.cloudformation#RoleARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role that CloudFormation assumes to update the stack. CloudFormation uses the role's\n credentials to make calls on your behalf. CloudFormation always uses this role for\n all future operations on the stack. As long as users have permission to operate on the\n stack, CloudFormation uses this role even if the users don't have permission to\n pass it. Ensure that the role grants least privilege.

\n

If you don't specify a value, CloudFormation uses the role that was\n previously associated with the stack. If no role is available, CloudFormation uses\n a temporary session that is generated from your user credentials.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role\n that CloudFormation assumes to update the stack. CloudFormation uses the role's\n credentials to make calls on your behalf. CloudFormation always uses this role for all\n future operations on the stack. As long as users have permission to operate on the stack,\n CloudFormation uses this role even if the users don't have permission to pass it.\n Ensure that the role grants least privilege.

\n

If you don't specify a value, CloudFormation uses the role that was previously\n associated with the stack. If no role is available, CloudFormation uses a temporary\n session that is generated from your user credentials.

" } }, "RollbackConfiguration": { @@ -9921,25 +10010,31 @@ "StackPolicyURL": { "target": "com.amazonaws.cloudformation#StackPolicyURL", "traits": { - "smithy.api#documentation": "

Location of a file containing the updated stack policy. The URL must point to a\n policy (max size: 16KB) located in an S3 bucket in the same Region as the stack. You can\n specify either the StackPolicyBody or the StackPolicyURL\n parameter, but not both.

\n

You might update the stack policy, for example, in order to protect a new resource\n that you created during a stack update. If you do not specify a stack policy, the current\n policy that is associated with the stack is unchanged.

" + "smithy.api#documentation": "

Location of a file containing the updated stack policy. The URL must point to a\n policy (max size: 16KB) located in an S3 bucket in the same\n Region as the stack. You can specify either the StackPolicyBody or the\n StackPolicyURL parameter, but not both.

\n

You might update the stack policy, for example, in order to protect a new resource\n that you created during a stack update. If you do not specify a stack policy, the current\n policy that is associated with the stack is unchanged.

" } }, "NotificationARNs": { "target": "com.amazonaws.cloudformation#NotificationARNs", "traits": { - "smithy.api#documentation": "

Amazon Simple Notification Service topic Amazon Resource Names (ARNs) that CloudFormation associates with the stack. Specify an empty list to remove all\n notification topics.

" + "smithy.api#documentation": "

Amazon Simple Notification Service topic Amazon Resource Names (ARNs) that\n CloudFormation associates with the stack. Specify an empty list to remove all notification\n topics.

" } }, "Tags": { "target": "com.amazonaws.cloudformation#Tags", "traits": { - "smithy.api#documentation": "

Key-value pairs to associate with this stack. CloudFormation also propagates\n these tags to supported resources in the stack. You can specify a maximum number of 50\n tags.

\n

If you don't specify this parameter, CloudFormation doesn't modify the\n stack's tags. If you specify an empty value, CloudFormation removes all associated\n tags.

" + "smithy.api#documentation": "

Key-value pairs to associate with this stack. CloudFormation also propagates\n these tags to supported resources in the stack. You can specify a maximum number of 50\n tags.

\n

If you don't specify this parameter, CloudFormation doesn't modify the stack's\n tags. If you specify an empty value, CloudFormation removes all associated\n tags.

" + } + }, + "DisableRollback": { + "target": "com.amazonaws.cloudformation#DisableRollback", + "traits": { + "smithy.api#documentation": "

Preserve the state of previously provisioned resources when an operation fails.

\n

Default: False\n

" } }, "ClientRequestToken": { "target": "com.amazonaws.cloudformation#ClientRequestToken", "traits": { - "smithy.api#documentation": "

A unique identifier for this UpdateStack request. Specify this token if\n you plan to retry requests so that CloudFormation knows that you're not attempting\n to update a stack with the same name. You might retry UpdateStack requests to\n ensure that CloudFormation successfully received them.

\n

All events triggered by a given stack operation are assigned the same client request\n token, which you can use to track operations. For example, if you execute a\n CreateStack operation with the token token1, then all the\n StackEvents generated by that operation will have\n ClientRequestToken set as token1.

\n

In the console, stack operations display the client request token on the Events tab.\n Stack operations that are initiated from the console use the token format\n Console-StackOperation-ID, which helps you easily identify the\n stack operation . For example, if you create a stack using the console, each stack event\n would be assigned the same token in the following format:\n Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.

" + "smithy.api#documentation": "

A unique identifier for this UpdateStack request. Specify this token if\n you plan to retry requests so that CloudFormation knows that you're not attempting to\n update a stack with the same name. You might retry UpdateStack requests to\n ensure that CloudFormation successfully received them.

\n

All events triggered by a given stack operation are assigned the same client request\n token, which you can use to track operations. For example, if you execute a\n CreateStack operation with the token token1, then all the\n StackEvents generated by that operation will have\n ClientRequestToken set as token1.

\n

In the console, stack operations display the client request token on the Events tab.\n Stack operations that are initiated from the console use the token format\n Console-StackOperation-ID, which helps you easily identify the\n stack operation . For example, if you create a stack using the console, each stack event\n would be assigned the same token in the following format:\n Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.

" } } }, @@ -9992,7 +10087,7 @@ "Accounts": { "target": "com.amazonaws.cloudformation#AccountList", "traits": { - "smithy.api#documentation": "

[Self-managed permissions] The names of one or more accounts for\n which you want to update parameter values for stack instances. The overridden parameter\n values will be applied to all stack instances in the specified accounts and\n Regions.

\n

You can specify Accounts or DeploymentTargets, but not\n both.

" + "smithy.api#documentation": "

[Self-managed permissions] The names of one or more Amazon Web Services accounts for which you want to update parameter values\n for stack instances. The overridden parameter values will be applied to all stack instances\n in the specified accounts and Regions.

\n

You can specify Accounts or DeploymentTargets, but not both.

" } }, "DeploymentTargets": { @@ -10011,26 +10106,26 @@ "ParameterOverrides": { "target": "com.amazonaws.cloudformation#Parameters", "traits": { - "smithy.api#documentation": "

A list of input parameters whose values you want to update for the specified stack\n instances.

\n

Any overridden parameter values will be applied to all stack instances in the\n specified accounts and Regions. When specifying parameters and their values, be aware of\n how CloudFormation sets parameter values during stack instance update\n operations:

\n \n

During stack set updates, any parameter values overridden for a stack instance are\n not updated, but retain their overridden value.

\n

You can only override the parameter values that are specified in\n the stack set; to add or delete a parameter itself, use UpdateStackSet to\n update the stack set template. If you add a parameter to a template, before you can\n override the parameter value specified in the stack set you must first use UpdateStackSet to update all stack instances with the updated template and\n parameter value specified in the stack set. Once a stack instance has been updated with the\n new parameter, you can then override the parameter value using\n UpdateStackInstances.

" + "smithy.api#documentation": "

A list of input parameters whose values you want to update for the specified stack\n instances.

\n

Any overridden parameter values will be applied to all stack instances in the\n specified accounts and Regions. When specifying parameters and their values, be aware of\n how CloudFormation sets parameter values during stack instance update\n operations:

\n \n

During stack set updates, any parameter values overridden for a stack instance are\n not updated, but retain their overridden value.

\n

You can only override the parameter values that are specified in\n the stack set; to add or delete a parameter itself, use UpdateStackSet to\n update the stack set template. If you add a parameter to a template, before you can\n override the parameter value specified in the stack set you must first use UpdateStackSet to update all stack instances with the updated template and\n parameter value specified in the stack set. Once a stack instance has been updated with the\n new parameter, you can then override the parameter value using\n UpdateStackInstances.

" } }, "OperationPreferences": { "target": "com.amazonaws.cloudformation#StackSetOperationPreferences", "traits": { - "smithy.api#documentation": "

Preferences for how CloudFormation performs this stack set\n operation.

" + "smithy.api#documentation": "

Preferences for how CloudFormation performs this stack set operation.

" } }, "OperationId": { "target": "com.amazonaws.cloudformation#ClientRequestToken", "traits": { - "smithy.api#documentation": "

The unique identifier for this stack set operation.

\n

The operation ID also functions as an idempotency token, to ensure that CloudFormation performs the stack set operation only once, even if you retry the request\n multiple times. You might retry stack set operation requests to ensure that CloudFormation successfully received them.

\n

If you don't specify an operation ID, the SDK generates one automatically.\n

", + "smithy.api#documentation": "

The unique identifier for this stack set operation.

\n

The operation ID also functions as an idempotency token, to ensure that\n CloudFormation performs the stack set operation only once, even if you retry the request\n multiple times. You might retry stack set operation requests to ensure that\n CloudFormation successfully received them.

\n

If you don't specify an operation ID, the SDK generates one automatically.\n

", "smithy.api#idempotencyToken": {} } }, "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account\n administrator in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for stack sets with\n self-managed permissions.

\n " + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account\n administrator in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for stack sets with\n self-managed permissions.

\n " } } } @@ -10135,19 +10230,19 @@ "Capabilities": { "target": "com.amazonaws.cloudformation#Capabilities", "traits": { - "smithy.api#documentation": "

In some cases, you must explicitly acknowledge that your stack template contains certain\n capabilities in order for CloudFormation to update the stack set and its associated stack\n instances.

\n " + "smithy.api#documentation": "

In some cases, you must explicitly acknowledge that your stack template contains certain\n capabilities in order for CloudFormation to update the stack set and its associated stack\n instances.

\n " } }, "Tags": { "target": "com.amazonaws.cloudformation#Tags", "traits": { - "smithy.api#documentation": "

The key-value pairs to associate with this stack set and the stacks created from it.\n CloudFormation also propagates these tags to supported resources that are\n created in the stacks. You can specify a maximum number of 50 tags.

\n

If you specify tags for this parameter, those tags replace any list of tags that are\n currently associated with this stack set. This means:

\n \n

If you specify new tags as part of an UpdateStackSet action, CloudFormation checks to see if you have the required IAM permission to tag resources.\n If you omit tags that are currently associated with the stack set from the list of tags you\n specify, CloudFormation assumes that you want to remove those tags from the stack\n set, and checks to see if you have permission to untag resources. If you don't have the\n necessary permission(s), the entire UpdateStackSet action fails with an\n access denied error, and the stack set is not updated.

" + "smithy.api#documentation": "

The key-value pairs to associate with this stack set and the stacks created from it.\n CloudFormation also propagates these tags to supported resources that are created in\n the stacks. You can specify a maximum number of 50 tags.

\n

If you specify tags for this parameter, those tags replace any list of tags that are\n currently associated with this stack set. This means:

\n \n

If you specify new tags as part of an UpdateStackSet action,\n CloudFormation checks to see if you have the required IAM permission to tag resources. If\n you omit tags that are currently associated with the stack set from the list of tags you\n specify, CloudFormation assumes that you want to remove those tags from the stack set,\n and checks to see if you have permission to untag resources. If you don't have the\n necessary permission(s), the entire UpdateStackSet action fails with an\n access denied error, and the stack set is not updated.

" } }, "OperationPreferences": { "target": "com.amazonaws.cloudformation#StackSetOperationPreferences", "traits": { - "smithy.api#documentation": "

Preferences for how CloudFormation performs this stack set\n operation.

" + "smithy.api#documentation": "

Preferences for how CloudFormation performs this stack set operation.

" } }, "AdministrationRoleARN": { @@ -10183,7 +10278,7 @@ "OperationId": { "target": "com.amazonaws.cloudformation#ClientRequestToken", "traits": { - "smithy.api#documentation": "

The unique ID for this stack set operation.

\n

The operation ID also functions as an idempotency token, to ensure that CloudFormation performs the stack set operation only once, even if you retry the request\n multiple times. You might retry stack set operation requests to ensure that CloudFormation successfully received them.

\n

If you don't specify an operation ID, CloudFormation generates one\n automatically.

\n

Repeating this stack set operation with a new operation ID retries all stack\n instances whose status is OUTDATED.

", + "smithy.api#documentation": "

The unique ID for this stack set operation.

\n

The operation ID also functions as an idempotency token, to ensure that\n CloudFormation performs the stack set operation only once, even if you retry the request\n multiple times. You might retry stack set operation requests to ensure that\n CloudFormation successfully received them.

\n

If you don't specify an operation ID, CloudFormation generates one\n automatically.

\n

Repeating this stack set operation with a new operation ID retries all stack\n instances whose status is OUTDATED.

", "smithy.api#idempotencyToken": {} } }, @@ -10202,7 +10297,7 @@ "CallAs": { "target": "com.amazonaws.cloudformation#CallAs", "traits": { - "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account\n administrator in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for stack sets with\n self-managed permissions.

\n " + "smithy.api#documentation": "

[Service-managed permissions] Specifies whether you are acting as an account\n administrator in the organization's management account or as a delegated administrator in a\n member account.

\n

By default, SELF is specified. Use SELF for stack sets with\n self-managed permissions.

\n " } } } @@ -10227,7 +10322,7 @@ "target": "com.amazonaws.cloudformation#UpdateTerminationProtectionOutput" }, "traits": { - "smithy.api#documentation": "

Updates termination protection for the specified stack. If a user attempts to delete\n a stack with termination protection enabled, the operation fails and the stack remains\n unchanged. For more information, see Protecting a\n Stack From Being Deleted in the CloudFormation User Guide.

\n

For nested\n stacks, termination protection is set on the root stack and cannot be changed\n directly on the nested stack.

" + "smithy.api#documentation": "

Updates termination protection for the specified stack. If a user attempts to delete\n a stack with termination protection enabled, the operation fails and the stack remains\n unchanged. For more information, see Protecting a\n Stack From Being Deleted in the CloudFormation User Guide.

\n

For nested\n stacks, termination protection is set on the root stack and cannot be changed\n directly on the nested stack.

" } }, "com.amazonaws.cloudformation#UpdateTerminationProtectionInput": { @@ -10284,7 +10379,7 @@ "target": "com.amazonaws.cloudformation#ValidateTemplateOutput" }, "traits": { - "smithy.api#documentation": "

Validates a specified template. CloudFormation first checks if the template\n is valid JSON. If it isn't, CloudFormation checks if the template is valid YAML. If\n both these checks fail, CloudFormation returns a template validation\n error.

" + "smithy.api#documentation": "

Validates a specified template. CloudFormation first checks if the template is\n valid JSON. If it isn't, CloudFormation checks if the template is valid YAML. If both\n these checks fail, CloudFormation returns a template validation error.

" } }, "com.amazonaws.cloudformation#ValidateTemplateInput": { diff --git a/codegen/sdk-codegen/aws-models/cloudtrail.2013-11-01.json b/codegen/sdk-codegen/aws-models/cloudtrail.2013-11-01.json index 2800e0561cf..73a5c9f6656 100644 --- a/codegen/sdk-codegen/aws-models/cloudtrail.2013-11-01.json +++ b/codegen/sdk-codegen/aws-models/cloudtrail.2013-11-01.json @@ -67,7 +67,7 @@ } ], "traits": { - "smithy.api#documentation": "

Adds one or more tags to a trail, up to a limit of 50. Overwrites an existing tag's value when a new value is specified for an existing tag key. \n Tag key names must be unique for a trail; you cannot have two keys with the same name but different values. \n If you specify a key without a value, the tag will be created with the specified key and a value of null. \n You can tag a trail that applies to all AWS Regions only from the Region in which the trail was created (also known as its home region).

", + "smithy.api#documentation": "

Adds one or more tags to a trail, up to a limit of 50. Overwrites an existing tag's value when a new value is specified for an existing tag key. \n Tag key names must be unique for a trail; you cannot have two keys with the same name but different values. \n If you specify a key without a value, the tag will be created with the specified key and a value of null. \n You can tag a trail that applies to all Amazon Web Services Regions only from the Region in which the trail was created (also known as its home region).

", "smithy.api#idempotent": {} } }, @@ -84,7 +84,7 @@ "TagsList": { "target": "com.amazonaws.cloudtrail#TagsList", "traits": { - "smithy.api#documentation": "

Contains a list of CloudTrail tags, up to a limit of 50

" + "smithy.api#documentation": "

Contains a list of tags, up to a limit of 50

" } } }, @@ -96,7 +96,7 @@ "type": "structure", "members": {}, "traits": { - "smithy.api#documentation": "

Returns the objects or data listed below if successful. Otherwise, returns an error.

" + "smithy.api#documentation": "

Returns the objects or data if successful. Otherwise, returns an error.

" } }, "com.amazonaws.cloudtrail#AdvancedEventSelector": { @@ -117,7 +117,7 @@ } }, "traits": { - "smithy.api#documentation": "

Advanced event selectors let you create fine-grained selectors for the following AWS\n CloudTrail event record fields. They help you control costs by logging only those events\n that are important to you. For more information about advanced event selectors, see Logging data events for trails in the AWS\n CloudTrail User Guide.

\n \n

You cannot apply both event selectors and advanced event selectors to a trail.

" + "smithy.api#documentation": "

Advanced event selectors let you create fine-grained selectors for the following CloudTrail \n event record fields. They help you control costs by logging only those events\n that are important to you. For more information about advanced event selectors, see Logging data events for trails in the CloudTrail User Guide.

\n \n

You cannot apply both event selectors and advanced event selectors to a trail.

" } }, "com.amazonaws.cloudtrail#AdvancedEventSelectors": { @@ -132,26 +132,26 @@ "Field": { "target": "com.amazonaws.cloudtrail#SelectorField", "traits": { - "smithy.api#documentation": "

\n A field in an event record on which to filter events to be logged. Supported fields include readOnly, eventCategory, \n eventSource (for management events), eventName, resources.type, and resources.ARN.\n

\n ", + "smithy.api#documentation": "

\n A field in an event record on which to filter events to be logged. Supported fields include readOnly, eventCategory, \n eventSource (for management events), eventName, resources.type, and resources.ARN.\n

\n ", "smithy.api#required": {} } }, "Equals": { "target": "com.amazonaws.cloudtrail#Operator", "traits": { - "smithy.api#documentation": "

\n An operator that includes events that match the exact value of the event record field specified as the value of Field. This is the only valid operator \n that you can use with the readOnly, eventCategory, and resources.type fields.\n

" + "smithy.api#documentation": "

An operator that includes events that match the exact value of the event record field\n specified as the value of Field. This is the only valid operator that you can\n use with the readOnly, eventCategory, and\n resources.type fields.

" } }, "StartsWith": { "target": "com.amazonaws.cloudtrail#Operator", "traits": { - "smithy.api#documentation": "

\n An operator that includes events that match the first few characters of the event record field specified as the value of Field.\n

" + "smithy.api#documentation": "

An operator that includes events that match the first few characters of the event record\n field specified as the value of Field.

" } }, "EndsWith": { "target": "com.amazonaws.cloudtrail#Operator", "traits": { - "smithy.api#documentation": "

\n An operator that includes events that match the last few characters of the event record field specified as the value of Field.\n

" + "smithy.api#documentation": "

An operator that includes events that match the last few characters of the event record\n field specified as the value of Field.

" } }, "NotEquals": { @@ -208,7 +208,11 @@ } }, "traits": { - "smithy.api#documentation": "

This exception is thrown when an operation is called with an invalid trail ARN. The format of a trail ARN is:

\n

\n arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail\n

", + "aws.protocols#awsQueryError": { + "code": "CloudTrailARNInvalid", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

This exception is thrown when an operation is called with a trail ARN that is not valid. The following is the format of a trail ARN.

\n

\n arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail\n

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -224,7 +228,11 @@ } }, "traits": { - "smithy.api#documentation": "

This exception is thrown when trusted access has not been enabled between AWS CloudTrail and AWS Organizations. For more information, \n see Enabling Trusted Access with Other AWS Services\n and Prepare For Creating a Trail For Your Organization.

", + "aws.protocols#awsQueryError": { + "code": "CloudTrailAccessNotEnabled", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

This exception is thrown when trusted access has not been enabled between CloudTrail and Organizations. For more information, \n see Enabling Trusted Access with Other Amazon Web Services Services\n and Prepare For Creating a Trail For Your Organization.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -240,7 +248,11 @@ } }, "traits": { - "smithy.api#documentation": "

This exception is thrown when a call results in the InvalidClientTokenId error code. This can occur when you are creating or updating a trail to send notifications to an Amazon SNS topic that \n is in a suspended AWS account.

", + "aws.protocols#awsQueryError": { + "code": "CloudTrailInvalidClientTokenId", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

This exception is thrown when a call results in the InvalidClientTokenId error code. \n This can occur when you are creating or updating a trail to send notifications to an Amazon SNS topic that \n is in a suspended Amazon Web Services account.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -316,7 +328,7 @@ "name": "cloudtrail" }, "aws.protocols#awsJson1_1": {}, - "smithy.api#documentation": "AWS CloudTrail\n

This is the CloudTrail API Reference. It provides descriptions of actions, data types, common parameters, and common errors for CloudTrail.

\n

CloudTrail is a web service that records AWS API calls for your AWS account and delivers log files to an Amazon S3 bucket. The recorded information includes the identity of the user, the start time of the AWS API call, the source IP address, the request parameters, and the response elements returned by the service.

\n \n \n

As an alternative to the API,\n you can use one of the AWS SDKs, which consist of libraries and sample code for various\n programming languages and platforms (Java, Ruby, .NET, iOS, Android, etc.). The SDKs\n provide a convenient way to create programmatic access to AWSCloudTrail. For example, the SDKs\n take care of cryptographically signing requests, managing errors, and retrying requests\n automatically. For information about the AWS SDKs, including how to download and install\n them, see the Tools for Amazon Web Services\n page.

\n
\n

See the AWS CloudTrail User Guide for information about the data that is included with each AWS API call listed in the log files.

", + "smithy.api#documentation": "CloudTrail\n

This is the CloudTrail API Reference. It provides descriptions of actions, data types, common parameters, and common errors for CloudTrail.

\n

CloudTrail is a web service that records Amazon Web Services API calls for your Amazon Web Services account and delivers log files to an Amazon S3 bucket. \n The recorded information includes the identity of the user, the start time of the Amazon Web Services API call, the source IP address, the request parameters, and the response elements returned by the service.

\n \n \n

As an alternative to the API,\n you can use one of the Amazon Web Services SDKs, which consist of libraries and sample code for various\n programming languages and platforms (Java, Ruby, .NET, iOS, Android, etc.). The SDKs\n provide programmatic access to CloudTrail. For example, the SDKs\n handle cryptographically signing requests, managing errors, and retrying requests\n automatically. For more information about the Amazon Web Services SDKs, including how to download and install\n them, see Tools to Build on Amazon Web Services.

\n
\n

See the CloudTrail User \n Guide for information about the data that is included with each Amazon Web Services API call listed in the log files.

", "smithy.api#title": "AWS CloudTrail", "smithy.api#xmlNamespace": { "uri": "http://cloudtrail.amazonaws.com/doc/2013-11-01/" @@ -334,6 +346,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "CloudWatchLogsDeliveryUnavailable", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

Cannot set a CloudWatch Logs delivery for this region.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -350,6 +366,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "ConflictException", + "httpResponseCode": 409 + }, "smithy.api#documentation": "

This exception is thrown when the specified resource is not ready for an operation. \n This can occur when you try to run an operation on a trail before CloudTrail has time to fully load the trail. \n If this exception occurs, wait a few minutes, and then try the operation again.

", "smithy.api#error": "client", "smithy.api#httpError": 409 @@ -450,7 +470,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a trail that specifies the settings for delivery of log data to an Amazon S3 bucket.

", + "smithy.api#documentation": "

Creates a trail that specifies the settings for delivery of log data to an Amazon S3 bucket. \n

", "smithy.api#idempotent": {} } }, @@ -460,7 +480,7 @@ "Name": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

Specifies the name of the trail. The name must meet the following requirements:

\n ", + "smithy.api#documentation": "

Specifies the name of the trail. The name must meet the following requirements:

\n ", "smithy.api#required": {} } }, @@ -498,13 +518,13 @@ "EnableLogFileValidation": { "target": "com.amazonaws.cloudtrail#Boolean", "traits": { - "smithy.api#documentation": "

Specifies whether log file integrity validation is enabled. The default is false.

\n \n

When you disable log file integrity validation, the chain of digest files is broken after one hour. CloudTrail will not create digest files for log files that were delivered during a period in which log file integrity validation was disabled. For example, if you enable log file integrity validation at noon on January 1, disable it at noon on January 2, and re-enable it at noon on January 10, digest files will not be created for the log files delivered from noon on January 2 to noon on January 10. The same applies whenever you stop CloudTrail logging or delete a trail.

\n
" + "smithy.api#documentation": "

Specifies whether log file integrity validation is enabled. The default is false.

\n \n

When you disable log file integrity validation, the chain of digest files is broken after one hour. CloudTrail does \n not create digest files for log files that were delivered during a period in which log file integrity validation was disabled. \n For example, if you enable log file integrity validation at noon on January 1, disable it at noon on January 2, and re-enable \n it at noon on January 10, digest files will not be created for the log files delivered from noon on January 2 to noon on \n January 10. The same applies whenever you stop CloudTrail logging or delete a trail.

\n
" } }, "CloudWatchLogsLogGroupArn": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

Specifies a log group name using an Amazon Resource Name (ARN), a unique identifier that represents the log group \n to which CloudTrail logs will be delivered. Not required unless you specify CloudWatchLogsRoleArn.

" + "smithy.api#documentation": "

Specifies a log group name using an Amazon Resource Name (ARN), a unique identifier that represents the log group \n to which CloudTrail logs will be delivered. Not required unless you specify CloudWatchLogsRoleArn.

" } }, "CloudWatchLogsRoleArn": { @@ -516,13 +536,13 @@ "KmsKeyId": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

Specifies the KMS key ID to use to encrypt the logs delivered by CloudTrail. The\n value can be an alias name prefixed by \"alias/\", a fully specified ARN to an alias, a fully\n specified ARN to a key, or a globally unique identifier.

\n

Examples:

\n " + "smithy.api#documentation": "

Specifies the KMS key ID to use to encrypt the logs delivered by CloudTrail. The\n value can be an alias name prefixed by \"alias/\", a fully specified ARN to an alias, a fully\n specified ARN to a key, or a globally unique identifier.

\n

CloudTrail also supports KMS multi-Region keys. For more information about multi-Region keys,\n see Using multi-Region keys in the Key Management Service Developer Guide.

\n

Examples:

\n " } }, "IsOrganizationTrail": { "target": "com.amazonaws.cloudtrail#Boolean", "traits": { - "smithy.api#documentation": "

Specifies whether the trail is created for all accounts in an organization in AWS Organizations, or only for the current AWS account. \n The default is false, and cannot be true unless the call is made on behalf of an AWS account that is the master account for an organization in \n AWS Organizations.

" + "smithy.api#documentation": "

Specifies whether the trail is created for all accounts in an organization in Organizations, or only for the current Amazon Web Services account. \n The default is false, and cannot be true unless the call is made on behalf of an Amazon Web Services account that is the management account for an organization in \n Organizations.

" } }, "TagsList": { @@ -606,7 +626,7 @@ "KmsKeyId": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

Specifies the KMS key ID that encrypts the logs delivered by CloudTrail. The value is a fully specified ARN to a KMS key in the format:

\n

\n arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012\n

" + "smithy.api#documentation": "

Specifies the KMS key ID that encrypts the logs delivered by CloudTrail. \n The value is a fully specified ARN to a KMS key in the following format.

\n

\n arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012\n

" } }, "IsOrganizationTrail": { @@ -626,18 +646,18 @@ "Type": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

The resource type in which you want to log data events. You can specify\n AWS::S3::Object, AWS::Lambda::Function, or\n AWS::DynamoDB::Table resources.

\n

The AWS::S3Outposts::Object, AWS::ManagedBlockchain::Node, and\n AWS::S3ObjectLambda::AccessPoint resource types are not valid in basic\n event selectors. To log data events on these resource types, use advanced event\n selectors.

" + "smithy.api#documentation": "

The resource type in which you want to log data events. You can specify\n AWS::S3::Object, AWS::Lambda::Function, or\n AWS::DynamoDB::Table resources.

\n

The AWS::S3Outposts::Object, AWS::ManagedBlockchain::Node, \n AWS::S3ObjectLambda::AccessPoint, and AWS::EC2::Snapshot resource types are not valid in basic\n event selectors. To log data events on these resource types, use advanced event\n selectors.

" } }, "Values": { "target": "com.amazonaws.cloudtrail#DataResourceValues", "traits": { - "smithy.api#documentation": "

An array of Amazon Resource Name (ARN) strings or partial ARN strings for the specified objects.

\n " + "smithy.api#documentation": "

An array of Amazon Resource Name (ARN) strings or partial ARN strings for the specified objects.

\n " } } }, "traits": { - "smithy.api#documentation": "

The Amazon S3 buckets, AWS Lambda functions, or Amazon DynamoDB tables that you specify\n in your event selectors for your trail to log data events. Data events provide information\n about the resource operations performed on or within a resource itself. These are also\n known as data plane operations. You can specify up to 250 data resources for a\n trail.

\n \n

The total number of allowed data resources is 250. This number can be distributed between 1 and 5 event selectors, \n but the total cannot exceed 250 across all selectors.

\n

If you are using advanced event selectors, the maximum total number of values for\n all conditions, across all advanced event selectors for the trail, is 500.

\n
\n

The following example demonstrates how logging works when you configure logging of all data events\n for an S3 bucket named bucket-1. In this example, the CloudTrail user specified an empty prefix, \n and the option to log both Read and Write data events.

\n
    \n
  1. \n

    A user uploads an image file to bucket-1.

    \n
  2. \n
  3. \n

    The PutObject API operation is an Amazon S3 object-level API. \n It is recorded as a data event in CloudTrail. Because the CloudTrail user specified an S3 bucket\n with an empty prefix, events that occur on any object in that bucket are logged. The trail processes and logs the\n event.

    \n
  4. \n
  5. \n

    A user uploads an object to an Amazon S3 bucket named\n arn:aws:s3:::bucket-2.

    \n
  6. \n
  7. \n

    The PutObject API operation occurred for an object in an S3 bucket that the CloudTrail\n user didn't specify for the trail. The trail doesn’t log the event.

    \n
  8. \n
\n

The following example demonstrates how logging works when you configure logging of AWS Lambda data events for a \n Lambda function named MyLambdaFunction, but not for all AWS Lambda functions.

\n
    \n
  1. \n

    A user runs a script that includes a call to the MyLambdaFunction function and the\n MyOtherLambdaFunction function.

    \n
  2. \n
  3. \n

    The Invoke API operation on MyLambdaFunction is an AWS Lambda API. \n It is recorded as a data event in CloudTrail. Because the CloudTrail user specified logging data events for\n MyLambdaFunction, any invocations of that function are logged. The trail processes and logs the event.

    \n
  4. \n
  5. \n

    The Invoke API operation on MyOtherLambdaFunction is an AWS Lambda API. \n Because the CloudTrail user did not specify logging data events for all Lambda functions,\n the Invoke operation for MyOtherLambdaFunction does not match the function specified for the trail. \n The trail doesn’t log the event.

    \n
  6. \n
" + "smithy.api#documentation": "

The Amazon S3 buckets, Lambda functions, or Amazon DynamoDB tables that you specify\n in your event selectors for your trail to log data events. Data events provide information\n about the resource operations performed on or within a resource itself. These are also\n known as data plane operations. You can specify up to 250 data resources for a\n trail.

\n \n

The total number of allowed data resources is 250. This number can be distributed between 1 and 5 event selectors, \n but the total cannot exceed 250 across all selectors.

\n

If you are using advanced event selectors, the maximum total number of values for\n all conditions, across all advanced event selectors for the trail, is 500.

\n
\n

The following example demonstrates how logging works when you configure logging of all data events\n for an S3 bucket named bucket-1. In this example, the CloudTrail user specified an empty prefix, \n and the option to log both Read and Write data events.

\n
    \n
  1. \n

    A user uploads an image file to bucket-1.

    \n
  2. \n
  3. \n

    The PutObject API operation is an Amazon S3 object-level API. \n It is recorded as a data event in CloudTrail. Because the CloudTrail user specified an S3 bucket\n with an empty prefix, events that occur on any object in that bucket are logged. The trail processes and logs the\n event.

    \n
  4. \n
  5. \n

    A user uploads an object to an Amazon S3 bucket named\n arn:aws:s3:::bucket-2.

    \n
  6. \n
  7. \n

    The PutObject API operation occurred for an object in an S3 bucket that the CloudTrail\n user didn't specify for the trail. The trail doesn’t log the event.

    \n
  8. \n
\n

The following example demonstrates how logging works when you configure logging of Lambda data events for a \n Lambda function named MyLambdaFunction, but not for all Lambda functions.

\n
    \n
  1. \n

    A user runs a script that includes a call to the MyLambdaFunction function and the\n MyOtherLambdaFunction function.

    \n
  2. \n
  3. \n

    The Invoke API operation on MyLambdaFunction is an Lambda API. \n It is recorded as a data event in CloudTrail. Because the CloudTrail user specified logging data events for\n MyLambdaFunction, any invocations of that function are logged. The trail processes and logs the event.

    \n
  4. \n
  5. \n

    The Invoke API operation on MyOtherLambdaFunction is an Lambda API. \n Because the CloudTrail user did not specify logging data events for all Lambda functions,\n the Invoke operation for MyOtherLambdaFunction does not match the function specified for the trail. \n The trail doesn’t log the event.

    \n
  6. \n
" } }, "com.amazonaws.cloudtrail#DataResourceValues": { @@ -700,7 +720,7 @@ "Name": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

Specifies the name or the CloudTrail ARN of the trail to be deleted. The format of a\n trail ARN is:\n arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail\n

", + "smithy.api#documentation": "

Specifies the name or the CloudTrail ARN of the trail to be deleted. The following is the format of a\n trail ARN.\n arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail\n

", "smithy.api#required": {} } } @@ -766,7 +786,7 @@ "trailList": { "target": "com.amazonaws.cloudtrail#TrailList", "traits": { - "smithy.api#documentation": "

The list of trail objects. Trail objects with string values are only returned if values for the objects exist in a trail's configuration. \n For example, SNSTopicName and SNSTopicARN are only returned in results if a trail is configured to send SNS notifications. Similarly, \n KMSKeyId only appears in results if a trail's log files are encrypted with AWS KMS-managed keys.

" + "smithy.api#documentation": "

The list of trail objects. Trail objects with string values are only returned if values for the objects exist in a trail's configuration. \n For example, SNSTopicName and SNSTopicARN are only returned in results if a trail is configured to send SNS notifications. Similarly, \n KMSKeyId only appears in results if a trail's log files are encrypted with KMS customer managed keys.

" } } }, @@ -801,7 +821,7 @@ "AccessKeyId": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

The AWS access key ID that was used to sign the request. If the request was made \n with temporary security credentials, this is the access key ID of the temporary credentials.

" + "smithy.api#documentation": "

The Amazon Web Services access key ID that was used to sign the request. If the request was made \n with temporary security credentials, this is the access key ID of the temporary credentials.

" } }, "EventTime": { @@ -813,7 +833,7 @@ "EventSource": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

The AWS service that the request was made to.

" + "smithy.api#documentation": "

The Amazon Web Services service to which the request was made.

" } }, "Username": { @@ -862,19 +882,19 @@ "IncludeManagementEvents": { "target": "com.amazonaws.cloudtrail#Boolean", "traits": { - "smithy.api#documentation": "

Specify if you want your event selector to include management events for your trail.

\n

\n For more information, see Management Events in the AWS CloudTrail User Guide.

\n \n

By default, the value is true.

\n

The first copy of management events is free. You are charged for additional copies of management \n events that you are logging on any subsequent trail in the same region. For more information about \n CloudTrail pricing, see AWS CloudTrail Pricing.

" + "smithy.api#documentation": "

Specify if you want your event selector to include management events for your trail.

\n

\n For more information, see Management Events in the CloudTrail User Guide.

\n \n

By default, the value is true.

\n

The first copy of management events is free. You are charged for additional copies of management \n events that you are logging on any subsequent trail in the same region. For more information about \n CloudTrail pricing, see CloudTrail Pricing.

" } }, "DataResources": { "target": "com.amazonaws.cloudtrail#DataResources", "traits": { - "smithy.api#documentation": "

CloudTrail supports data event logging for Amazon S3 objects and AWS Lambda functions\n with basic event selectors. You can specify up to 250 resources for an individual event\n selector, but the total number of data resources cannot exceed 250 across all event\n selectors in a trail. This limit does not apply if you configure resource logging for all\n data events.

\n

For more information, see Data Events and Limits in AWS CloudTrail \n in the AWS CloudTrail User Guide.

" + "smithy.api#documentation": "

CloudTrail supports data event logging for Amazon S3 objects, Lambda functions, \n and Amazon DynamoDB tables \n with basic event selectors. You can specify up to 250 resources for an individual event\n selector, but the total number of data resources cannot exceed 250 across all event\n selectors in a trail. This limit does not apply if you configure resource logging for all\n data events.

\n

For more information, see Data Events and Limits in CloudTrail \n in the CloudTrail User Guide.

" } }, "ExcludeManagementEventSources": { "target": "com.amazonaws.cloudtrail#ExcludeManagementEventSources", "traits": { - "smithy.api#documentation": "

An optional list of service event sources from which you do not want management events to be logged on your trail. In this release, the list can be empty (disables the filter), or it can filter out AWS Key Management Service events by \n containing \"kms.amazonaws.com\". By default, ExcludeManagementEventSources is empty, and AWS KMS events are included in events that are logged to your trail.

" + "smithy.api#documentation": "

An optional list of service event sources from which you do not want management events to be logged on your trail. In this release, the list can be empty (disables the filter), \n or it can filter out Key Management Service or Amazon RDS Data API events by \n containing kms.amazonaws.com or rdsdata.amazonaws.com. By default, ExcludeManagementEventSources is empty, and KMS and \n Amazon RDS Data API events are logged to your trail.

" } } }, @@ -923,7 +943,7 @@ } ], "traits": { - "smithy.api#documentation": "

Describes the settings for the event selectors that you configured for your trail.\n The information returned for your event selectors includes the following:

\n \n

For more information, see Logging Data and Management Events for Trails\n in the AWS CloudTrail User Guide.

", + "smithy.api#documentation": "

Describes the settings for the event selectors that you configured for your trail.\n The information returned for your event selectors includes the following:

\n \n

For more information, see Logging Data and Management Events for Trails\n in the CloudTrail User Guide.

", "smithy.api#idempotent": {} } }, @@ -988,7 +1008,7 @@ } ], "traits": { - "smithy.api#documentation": "

Describes the settings for the Insights event selectors that you configured for your trail. GetInsightSelectors shows \n if CloudTrail Insights event logging is enabled on the trail, and if it is, which insight types are enabled. \n If you run GetInsightSelectors on a trail that does not have Insights events enabled, the operation throws the exception\n InsightNotEnabledException\n

\n

For more information, see Logging CloudTrail Insights Events for Trails\n in the AWS CloudTrail User Guide.

", + "smithy.api#documentation": "

Describes the settings for the Insights event selectors that you configured for your trail. GetInsightSelectors shows \n if CloudTrail Insights event logging is enabled on the trail, and if it is, which insight types are enabled. \n If you run GetInsightSelectors on a trail that does not have Insights events enabled, the operation throws the exception\n InsightNotEnabledException\n

\n

For more information, see Logging CloudTrail Insights Events for Trails\n in the CloudTrail User Guide.

", "smithy.api#idempotent": {} } }, @@ -1101,7 +1121,7 @@ "Name": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

Specifies the name or the CloudTrail ARN of the trail for which you are requesting status. To get the status of a shadow trail (a replication of the trail in another region), you must specify its ARN. The format of a trail ARN is:

\n

\n arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail\n

", + "smithy.api#documentation": "

Specifies the name or the CloudTrail ARN of the trail for which you are requesting status. To get the status of a \n shadow trail (a replication of the trail in another region), you must specify its ARN. The following is the format of a trail ARN.

\n

\n arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail\n

", "smithy.api#required": {} } } @@ -1116,13 +1136,13 @@ "IsLogging": { "target": "com.amazonaws.cloudtrail#Boolean", "traits": { - "smithy.api#documentation": "

Whether the CloudTrail is currently logging AWS API calls.

" + "smithy.api#documentation": "

Whether the CloudTrail trail is currently logging Amazon Web Services API calls.

" } }, "LatestDeliveryError": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

Displays any Amazon S3 error that CloudTrail encountered when attempting to deliver log files\n to the designated bucket. For more information see the topic Error\n Responses in the Amazon S3 API Reference.

\n \n

This error occurs only when there is a problem with the destination S3 bucket and will\n not occur for timeouts. To resolve the issue, create a new bucket and call\n UpdateTrail to specify the new bucket, or fix the existing objects so that\n CloudTrail can again write to the bucket.

\n
" + "smithy.api#documentation": "

Displays any Amazon S3 error that CloudTrail encountered when attempting to deliver log files\n to the designated bucket. For more information, see Error\n Responses in the Amazon S3 API Reference.

\n \n

This error occurs only when there is a problem with the destination S3 bucket, and does\n not occur for requests that time out. To resolve the issue, create a new bucket, and then call\n UpdateTrail to specify the new bucket; or fix the existing objects so that\n CloudTrail can again write to the bucket.

\n
" } }, "LatestNotificationError": { @@ -1146,13 +1166,13 @@ "StartLoggingTime": { "target": "com.amazonaws.cloudtrail#Date", "traits": { - "smithy.api#documentation": "

Specifies the most recent date and time when CloudTrail started recording API calls for an AWS account.

" + "smithy.api#documentation": "

Specifies the most recent date and time when CloudTrail started recording API calls for an Amazon Web Services account.

" } }, "StopLoggingTime": { "target": "com.amazonaws.cloudtrail#Date", "traits": { - "smithy.api#documentation": "

Specifies the most recent date and time when CloudTrail stopped recording API calls for an AWS account.

" + "smithy.api#documentation": "

Specifies the most recent date and time when CloudTrail stopped recording API calls for an Amazon Web Services account.

" } }, "LatestCloudWatchLogsDeliveryError": { @@ -1176,7 +1196,7 @@ "LatestDigestDeliveryError": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

Displays any Amazon S3 error that CloudTrail encountered when attempting to deliver a digest\n file to the designated bucket. For more information see the topic Error\n Responses in the Amazon S3 API Reference.

\n \n

This error occurs only when there is a problem with the destination S3 bucket and will\n not occur for timeouts. To resolve the issue, create a new bucket and call\n UpdateTrail to specify the new bucket, or fix the existing objects so that\n CloudTrail can again write to the bucket.

\n
" + "smithy.api#documentation": "

Displays any Amazon S3 error that CloudTrail encountered when attempting to deliver a digest\n file to the designated bucket. For more information, see Error\n Responses in the Amazon S3 API Reference.

\n \n

This error occurs only when there is a problem with the destination S3 bucket, and does\n not occur for requests that time out. To resolve the issue, create a new bucket, and then call\n UpdateTrail to specify the new bucket; or fix the existing objects so that\n CloudTrail can again write to the bucket.

\n
" } }, "LatestDeliveryAttemptTime": { @@ -1231,6 +1251,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "InsightNotEnabled", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

If you run GetInsightSelectors on a trail that does not have Insights events enabled, the operation throws the exception InsightNotEnabledException.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -1242,7 +1266,7 @@ "InsightType": { "target": "com.amazonaws.cloudtrail#InsightType", "traits": { - "smithy.api#documentation": "

The type of insights to log on a trail. In this release, only ApiCallRateInsight is supported as an insight type.

" + "smithy.api#documentation": "

The type of Insights events to log on a trail. The valid Insights type in this release is ApiCallRateInsight.

" } } }, @@ -1278,6 +1302,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "InsufficientDependencyServiceAccessPermission", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

This exception is thrown when the IAM user or role that is used to create the organization trail is lacking one or more required permissions for \n creating an organization trail in a required service. For more information, see \n Prepare For Creating a Trail For Your Organization.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -1294,6 +1322,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "InsufficientEncryptionPolicy", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

This exception is thrown when the policy on the S3 bucket or KMS key is not sufficient.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -1310,6 +1342,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "InsufficientS3BucketPolicy", + "httpResponseCode": 403 + }, "smithy.api#documentation": "

This exception is thrown when the policy on the S3 bucket is not sufficient.

", "smithy.api#error": "client", "smithy.api#httpError": 403 @@ -1326,7 +1362,11 @@ } }, "traits": { - "smithy.api#documentation": "

This exception is thrown when the policy on the SNS topic is not sufficient.

", + "aws.protocols#awsQueryError": { + "code": "InsufficientSnsTopicPolicy", + "httpResponseCode": 403 + }, + "smithy.api#documentation": "

This exception is thrown when the policy on the Amazon SNS topic is not sufficient.

", "smithy.api#error": "client", "smithy.api#httpError": 403 } @@ -1342,7 +1382,11 @@ } }, "traits": { - "smithy.api#documentation": "

This exception is thrown when the provided CloudWatch log group is not valid.

", + "aws.protocols#awsQueryError": { + "code": "InvalidCloudWatchLogsLogGroupArn", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

This exception is thrown when the provided CloudWatch Logs log group is not valid.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -1358,6 +1402,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidCloudWatchLogsRoleArn", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

This exception is thrown when the provided role is not valid.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -1374,6 +1422,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidEventCategory", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

Occurs if an event category that is not valid is specified as a value of EventCategory.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -1390,7 +1442,11 @@ } }, "traits": { - "smithy.api#documentation": "

This exception is thrown when the PutEventSelectors operation is called with a number of event \n selectors, advanced event selectors, or data resources that is not valid. The combination of event selectors or advanced event selectors and \n data resources is not valid. A trail can have up to 5 event selectors. If a trail uses advanced event selectors, a maximum \n of 500 total values for all conditions in all advanced event selectors is allowed. A trail is limited to 250 data resources. These data resources can be distributed across event selectors, but the overall total cannot exceed 250.

\n

You can:

\n ", + "aws.protocols#awsQueryError": { + "code": "InvalidEventSelectors", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

This exception is thrown when the PutEventSelectors operation is called with a number of event \n selectors, advanced event selectors, or data resources that is not valid. The combination of event selectors or advanced event selectors and \n data resources is not valid. A trail can have up to 5 event selectors. If a trail uses advanced event selectors, a maximum \n of 500 total values for all conditions in all advanced event selectors is allowed. A trail is limited to 250 data resources. These data resources can be distributed across event selectors, but the overall total cannot exceed 250.

\n

You can:

\n ", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -1406,6 +1462,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidHomeRegion", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

This exception is thrown when an operation is called on a trail from a region other than the region in which the trail was created.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -1422,6 +1482,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidInsightSelectors", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

The formatting or syntax of the InsightSelectors JSON statement in your PutInsightSelectors or GetInsightSelectors request \n is not valid, or the specified insight type in the InsightSelectors statement is not a valid insight type.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -1438,7 +1502,11 @@ } }, "traits": { - "smithy.api#documentation": "

This exception is thrown when the KMS key ARN is invalid.

", + "aws.protocols#awsQueryError": { + "code": "InvalidKmsKeyId", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

This exception is thrown when the KMS key ARN is not valid.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -1454,7 +1522,11 @@ } }, "traits": { - "smithy.api#documentation": "

Occurs when an invalid lookup attribute is specified.

", + "aws.protocols#awsQueryError": { + "code": "InvalidLookupAttributes", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

Occurs when a lookup attribute is specified that is not valid.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -1470,7 +1542,11 @@ } }, "traits": { - "smithy.api#documentation": "

This exception is thrown if the limit specified is invalid.

", + "aws.protocols#awsQueryError": { + "code": "InvalidMaxResults", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

This exception is thrown if the limit specified is not valid.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -1486,7 +1562,11 @@ } }, "traits": { - "smithy.api#documentation": "

Invalid token or token that was previously used in a request with different parameters. This exception is thrown if the token is invalid.

", + "aws.protocols#awsQueryError": { + "code": "InvalidNextToken", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

A token that is not valid, or a token that was previously used in a request with different parameters. This exception is thrown if the token is not valid.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -1502,6 +1582,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidParameterCombinationError", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

This exception is thrown when the combination of parameters provided is not valid.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -1518,6 +1602,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidS3BucketName", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

This exception is thrown when the provided S3 bucket name is not valid.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -1534,6 +1622,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidS3Prefix", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

This exception is thrown when the provided S3 prefix is not valid.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -1550,6 +1642,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidSnsTopicName", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

This exception is thrown when the provided SNS topic name is not valid.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -1566,6 +1662,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidTagParameter", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

This exception is thrown when the specified tag key or values are not valid. \n It can also occur if there are duplicate tags or too many tags on the resource.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -1582,7 +1682,11 @@ } }, "traits": { - "smithy.api#documentation": "

Occurs if the timestamp values are invalid. Either the start time occurs after the end time or the time range is outside the range of possible values.

", + "aws.protocols#awsQueryError": { + "code": "InvalidTimeRange", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

Occurs if the timestamp values are not valid. Either the start time occurs after the end time, or the time range is outside the range of possible values.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -1598,6 +1702,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidToken", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

Reserved for future use.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -1614,7 +1722,11 @@ } }, "traits": { - "smithy.api#documentation": "

This exception is thrown when the provided trail name is not valid. Trail names must meet the following requirements:

\n ", + "aws.protocols#awsQueryError": { + "code": "InvalidTrailName", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

This exception is thrown when the provided trail name is not valid. Trail names must meet the following requirements:

\n ", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -1630,6 +1742,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "KmsException", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

This exception is thrown when there is an issue with the specified KMS key and the trail can’t be updated.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -1646,6 +1762,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "KmsKeyDisabled", + "httpResponseCode": 400 + }, "smithy.api#deprecated": {}, "smithy.api#documentation": "

This exception is no longer in use.

", "smithy.api#error": "client", @@ -1663,7 +1783,11 @@ } }, "traits": { - "smithy.api#documentation": "

This exception is thrown when the AWS KMS key does not exist, when the S3 bucket and the\n AWS KMS key are not in the same region, or when the AWS KMS key associated with the SNS\n topic either does not exist or is not in the same region.

", + "aws.protocols#awsQueryError": { + "code": "KmsKeyNotFound", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

This exception is thrown when the KMS key does not exist, when the S3 bucket and the\n KMS key are not in the same region, or when the KMS key associated with the Amazon SNS\n topic either does not exist or is not in the same region.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -1691,7 +1815,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns all public keys whose private keys were used to sign the digest files within the specified time range. The public key is needed to validate digest files that were signed with its corresponding private key.

\n \n

CloudTrail uses different private/public key pairs per region. Each digest file is signed with a private key unique to its region. Therefore, when you validate a digest file from a particular region, you must look in the same region for its corresponding public key.

\n
", + "smithy.api#documentation": "

Returns all public keys whose private keys were used to sign the digest files within the specified time range. The public key is needed to validate digest files that were signed with its corresponding private key.

\n \n

CloudTrail uses different private and public key pairs per region. Each digest file is signed with a private key \n unique to its region. When you validate a digest file from a specific region, you must look in the same region for its \n corresponding public key.

\n
", "smithy.api#idempotent": {}, "smithy.api#paginated": { "inputToken": "NextToken", @@ -1706,13 +1830,13 @@ "StartTime": { "target": "com.amazonaws.cloudtrail#Date", "traits": { - "smithy.api#documentation": "

Optionally specifies, in UTC, the start of the time range to look up public keys for CloudTrail digest files. If not specified, the current time is used, and the current public key is returned.

" + "smithy.api#documentation": "

Optionally specifies, in UTC, the start of the time range to look up public keys for CloudTrail digest files. \n If not specified, the current time is used, and the current public key is returned.

" } }, "EndTime": { "target": "com.amazonaws.cloudtrail#Date", "traits": { - "smithy.api#documentation": "

Optionally specifies, in UTC, the end of the time range to look up public keys for CloudTrail digest files. If not specified, the current time is used.

" + "smithy.api#documentation": "

Optionally specifies, in UTC, the end of the time range to look up public keys for CloudTrail digest files. If not \n specified, the current time is used.

" } }, "NextToken": { @@ -1793,7 +1917,7 @@ "ResourceIdList": { "target": "com.amazonaws.cloudtrail#ResourceIdList", "traits": { - "smithy.api#documentation": "

Specifies a list of trail ARNs whose tags will be listed. The list has a limit of 20 ARNs. The format of a trail ARN is:

\n

\n arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail\n

", + "smithy.api#documentation": "

Specifies a list of trail ARNs whose tags will be listed. The list has a limit of 20 ARNs. The following is the format of \n a trail ARN.

\n

\n arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail\n

", "smithy.api#required": {} } }, @@ -1981,7 +2105,7 @@ } ], "traits": { - "smithy.api#documentation": "

Looks up management events or \n CloudTrail Insights events that are captured by CloudTrail. \n You can look up events that occurred in a region within the last 90 days. Lookup supports the following attributes for management events:

\n \n

Lookup supports the following attributes for Insights events:

\n \n

All attributes are optional. The default number of results returned is 50, with a\n maximum of 50 possible. The response includes a token that you can use to get the next page\n of results.

\n \n

The rate of lookup requests is limited to two per second, per account, per region. If this\n limit is exceeded, a throttling error occurs.

\n
", + "smithy.api#documentation": "

Looks up management events or \n CloudTrail Insights events that are captured by CloudTrail. \n You can look up events that occurred in a region within the last 90 days. Lookup supports the following attributes for management events:

\n \n

Lookup supports the following attributes for Insights events:

\n \n

All attributes are optional. The default number of results returned is 50, with a\n maximum of 50 possible. The response includes a token that you can use to get the next page\n of results.

\n \n

The rate of lookup requests is limited to two per second, per account, per region. If this\n limit is exceeded, a throttling error occurs.

\n
", "smithy.api#idempotent": {}, "smithy.api#paginated": { "inputToken": "NextToken", @@ -2076,6 +2200,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "MaximumNumberOfTrailsExceeded", + "httpResponseCode": 403 + }, "smithy.api#documentation": "

This exception is thrown when the maximum number of trails is reached.

", "smithy.api#error": "client", "smithy.api#httpError": 403 @@ -2095,7 +2223,11 @@ } }, "traits": { - "smithy.api#documentation": "

This exception is thrown when the AWS account making the request to create or update an organization trail is not the master account for an \n organization in AWS Organizations. For more information, see \n Prepare For Creating a Trail For Your Organization.

", + "aws.protocols#awsQueryError": { + "code": "NotOrganizationMasterAccount", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

This exception is thrown when the Amazon Web Services account making the request to create or update an organization trail is not the management account for an \n organization in Organizations. For more information, see \n Prepare For Creating a Trail For Your Organization.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -2111,6 +2243,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "OperationNotPermitted", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

This exception is thrown when the requested operation is not permitted.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -2148,7 +2284,11 @@ } }, "traits": { - "smithy.api#documentation": "

This exception is thrown when AWS Organizations is not configured to support all features. All features must be enabled in AWS Organization to support\n creating an organization trail. For more information, see \n Prepare For Creating a Trail For Your Organization.

", + "aws.protocols#awsQueryError": { + "code": "OrganizationNotInAllFeaturesMode", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

This exception is thrown when Organizations is not configured to support all features. All features must be enabled in Organizations to support\n creating an organization trail. For more information, see \n Prepare For Creating a Trail For Your Organization.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -2164,7 +2304,11 @@ } }, "traits": { - "smithy.api#documentation": "

This exception is thrown when the request is made from an AWS account that is not a member of an organization. \n To make this request, sign in using the credentials of an account that belongs to an organization.

", + "aws.protocols#awsQueryError": { + "code": "OrganizationsNotInUse", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

This exception is thrown when the request is made from an Amazon Web Services account that is not a member of an organization. \n To make this request, sign in using the credentials of an account that belongs to an organization.

", "smithy.api#error": "client", "smithy.api#httpError": 404 } @@ -2242,7 +2386,7 @@ } ], "traits": { - "smithy.api#documentation": "

Configures an event selector or advanced event selectors for your trail. \n Use event selectors or advanced event selectors to specify management and data event settings for your trail. By\n default, trails created without specific event selectors are configured to log all read and \n write management events, and no data events.

\n

When an event occurs in your account, CloudTrail\n evaluates the event selectors or advanced event selectors in all trails. For each trail, if the event matches \n any event selector, the trail processes and logs the event. If the event doesn't match any event\n selector, the trail doesn't log the event.

\n

Example

\n
    \n
  1. \n

    You create an event selector for a trail and specify that you want\n write-only events.

    \n
  2. \n
  3. \n

    The EC2 GetConsoleOutput and RunInstances API\n operations occur in your account.

    \n
  4. \n
  5. \n

    CloudTrail evaluates whether the events match your event\n selectors.

    \n
  6. \n
  7. \n

    The RunInstances is a write-only event and it matches your\n event selector. The trail logs the event.

    \n
  8. \n
  9. \n

    The GetConsoleOutput is a read-only event that doesn't\n match your event selector. The trail doesn't log the event.\n

    \n
  10. \n
\n

The PutEventSelectors operation must be called from the region in which\n the trail was created; otherwise, an InvalidHomeRegionException exception is\n thrown.

\n

You can configure up to five event selectors for each trail. For more information, see Logging data and management events for trails\n and Quotas in AWS CloudTrail \n in the AWS CloudTrail User Guide.

\n

You can add advanced event selectors, and conditions for your advanced \n event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. \n You can use either AdvancedEventSelectors or EventSelectors, but not both. If you apply AdvancedEventSelectors \n to a trail, any existing EventSelectors are overwritten. For more information about \n advanced event selectors, see \n Logging \n data events for trails in the AWS CloudTrail User Guide.

", + "smithy.api#documentation": "

Configures an event selector or advanced event selectors for your trail. \n Use event selectors or advanced event selectors to specify management and data event settings for your trail. By\n default, trails created without specific event selectors are configured to log all read and \n write management events, and no data events.

\n

When an event occurs in your account, CloudTrail\n evaluates the event selectors or advanced event selectors in all trails. For each trail, if the event matches \n any event selector, the trail processes and logs the event. If the event doesn't match any event\n selector, the trail doesn't log the event.

\n

Example

\n
    \n
  1. \n

    You create an event selector for a trail and specify that you want\n write-only events.

    \n
  2. \n
  3. \n

    The EC2 GetConsoleOutput and RunInstances API\n operations occur in your account.

    \n
  4. \n
  5. \n

    CloudTrail evaluates whether the events match your event\n selectors.

    \n
  6. \n
  7. \n

    The RunInstances is a write-only event and it matches your\n event selector. The trail logs the event.

    \n
  8. \n
  9. \n

    The GetConsoleOutput is a read-only event that doesn't\n match your event selector. The trail doesn't log the event.\n

    \n
  10. \n
\n

The PutEventSelectors operation must be called from the region in which\n the trail was created; otherwise, an InvalidHomeRegionException exception is\n thrown.

\n

You can configure up to five event selectors for each trail. For more information, see Logging data and management events for trails\n and Quotas in CloudTrail \n in the CloudTrail User Guide.

\n

You can add advanced event selectors, and conditions for your advanced \n event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. \n You can use either AdvancedEventSelectors or EventSelectors, but not both. If you apply AdvancedEventSelectors \n to a trail, any existing EventSelectors are overwritten. For more information about \n advanced event selectors, see \n Logging \n data events for trails in the CloudTrail User Guide.

", "smithy.api#idempotent": {} } }, @@ -2252,7 +2396,7 @@ "TrailName": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

Specifies the name of the trail or trail ARN. If you specify a trail name, the\n string must meet the following requirements:

\n \n

If you specify a trail ARN, it must be in the format:

\n

\n arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail\n

", + "smithy.api#documentation": "

Specifies the name of the trail or trail ARN. If you specify a trail name, the\n string must meet the following requirements:

\n \n

If you specify a trail ARN, it must be in the following format.

\n

\n arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail\n

", "smithy.api#required": {} } }, @@ -2265,7 +2409,7 @@ "AdvancedEventSelectors": { "target": "com.amazonaws.cloudtrail#AdvancedEventSelectors", "traits": { - "smithy.api#documentation": "

\n Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions for your advanced \n event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. \n You can use either AdvancedEventSelectors or EventSelectors, but not both. If you apply AdvancedEventSelectors \n to a trail, any existing EventSelectors are overwritten. For more information about \n advanced event selectors, see \n Logging \n data events for trails in the AWS CloudTrail User Guide.\n

" + "smithy.api#documentation": "

\n Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions for your advanced \n event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. \n You can use either AdvancedEventSelectors or EventSelectors, but not both. If you apply AdvancedEventSelectors \n to a trail, any existing EventSelectors are overwritten. For more information about \n advanced event selectors, see \n Logging \n data events for trails in the CloudTrail User Guide.\n

" } } } @@ -2276,7 +2420,7 @@ "TrailARN": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

Specifies the ARN of the trail that was updated with event selectors. The format of a trail ARN\n is:

\n

\n arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail\n

" + "smithy.api#documentation": "

Specifies the ARN of the trail that was updated with event selectors. The following is the format of a trail ARN.

\n

\n arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail\n

" } }, "EventSelectors": { @@ -2337,7 +2481,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lets you enable Insights event logging by specifying the Insights\n selectors that you want to enable on an existing trail. You also use\n PutInsightSelectors to turn off Insights event logging, by passing an empty list of insight types. \n In this release, only ApiCallRateInsight is supported as an Insights selector.

", + "smithy.api#documentation": "

Lets you enable Insights event logging by specifying the Insights\n selectors that you want to enable on an existing trail. You also use\n PutInsightSelectors to turn off Insights event logging, by passing an empty list of insight types. \n The valid Insights event type in this release is ApiCallRateInsight.

", "smithy.api#idempotent": {} } }, @@ -2354,7 +2498,7 @@ "InsightSelectors": { "target": "com.amazonaws.cloudtrail#InsightSelectors", "traits": { - "smithy.api#documentation": "

A JSON string that contains the insight types you want to log on a trail. In this release, only ApiCallRateInsight is supported as an insight type.

", + "smithy.api#documentation": "

A JSON string that contains the Insights types that you want to log on a trail. The valid Insights type in this release is ApiCallRateInsight.

", "smithy.api#required": {} } } @@ -2372,7 +2516,7 @@ "InsightSelectors": { "target": "com.amazonaws.cloudtrail#InsightSelectors", "traits": { - "smithy.api#documentation": "

A JSON string that contains the insight types you want to log on a trail. In this release, only ApiCallRateInsight is supported as an insight type.

" + "smithy.api#documentation": "

A JSON string that contains the Insights event types that you want to log on a trail. The valid Insights type in this release is ApiCallRateInsight.

" } } } @@ -2469,7 +2613,7 @@ "ResourceType": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

The type of a resource referenced by the event returned. When the resource type cannot be\n determined, null is returned. Some examples of resource types are: Instance for EC2,\n Trail for CloudTrail, DBInstance for RDS, and AccessKey for IAM.\n To learn more about how to look up and filter events by the resource types supported for a service, see Filtering CloudTrail Events.

" + "smithy.api#documentation": "

The type of a resource referenced by the event returned. When the resource type cannot be\n determined, null is returned. Some examples of resource types are: Instance for EC2,\n Trail for CloudTrail, DBInstance for Amazon RDS, and AccessKey for IAM.\n To learn more about how to look up and filter events by the resource types supported for a service, see Filtering CloudTrail Events.

" } }, "ResourceName": { @@ -2509,6 +2653,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "ResourceNotFound", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

This exception is thrown when the specified resource is not found.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -2551,6 +2699,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "ResourceTypeNotSupported", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

This exception is thrown when the specified resource type is not supported by CloudTrail.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -2567,6 +2719,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "S3BucketDoesNotExist", + "httpResponseCode": 404 + }, "smithy.api#documentation": "

This exception is thrown when the specified S3 bucket does not exist.

", "smithy.api#error": "client", "smithy.api#httpError": 404 @@ -2624,7 +2780,7 @@ } ], "traits": { - "smithy.api#documentation": "

Starts the recording of AWS API calls and log file delivery for a trail. For a trail that is enabled in all regions, this operation must be called from the region in which the trail was created. This operation cannot be called on the shadow trails (replicated trails in other regions) of a trail that is enabled in all regions.

", + "smithy.api#documentation": "

Starts the recording of Amazon Web Services API calls and log file delivery for a trail. For a trail that is enabled in all regions, this operation must be called from the region in which the trail was created. This operation cannot be called on the shadow trails (replicated trails in other regions) of a trail that is enabled in all regions.

", "smithy.api#idempotent": {} } }, @@ -2634,13 +2790,13 @@ "Name": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

Specifies the name or the CloudTrail ARN of the trail for which CloudTrail logs AWS API calls. The format of a trail ARN is:

\n

\n arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail\n

", + "smithy.api#documentation": "

Specifies the name or the CloudTrail ARN of the trail for which CloudTrail logs Amazon Web Services API calls. \n The following is the format of a trail ARN.

\n

\n arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail\n

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

The request to CloudTrail to start logging AWS API calls for an account.

" + "smithy.api#documentation": "

The request to CloudTrail to start logging Amazon Web Services API calls for an account.

" } }, "com.amazonaws.cloudtrail#StartLoggingResponse": { @@ -2682,7 +2838,7 @@ } ], "traits": { - "smithy.api#documentation": "

Suspends the recording of AWS API calls and log file delivery for the specified trail.\n Under most circumstances, there is no need to use this action. You can update a trail\n without stopping it first. This action is the only way to stop recording. For a trail\n enabled in all regions, this operation must be called from the region in which the trail\n was created, or an InvalidHomeRegionException will occur. This operation\n cannot be called on the shadow trails (replicated trails in other regions) of a trail\n enabled in all regions.

", + "smithy.api#documentation": "

Suspends the recording of Amazon Web Services API calls and log file delivery for the specified trail.\n Under most circumstances, there is no need to use this action. You can update a trail\n without stopping it first. This action is the only way to stop recording. For a trail\n enabled in all regions, this operation must be called from the region in which the trail\n was created, or an InvalidHomeRegionException will occur. This operation\n cannot be called on the shadow trails (replicated trails in other regions) of a trail\n enabled in all regions.

", "smithy.api#idempotent": {} } }, @@ -2692,13 +2848,13 @@ "Name": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

Specifies the name or the CloudTrail ARN of the trail for which CloudTrail will stop logging AWS API calls. The format of a trail ARN is:

\n

\n arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail\n

", + "smithy.api#documentation": "

Specifies the name or the CloudTrail ARN of the trail for which CloudTrail will stop logging Amazon Web Services \n API calls. The following is the format of a trail ARN.

\n

\n arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail\n

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

Passes the request to CloudTrail to stop logging AWS API calls for the specified account.

" + "smithy.api#documentation": "

Passes the request to CloudTrail to stop logging Amazon Web Services API calls for the specified account.

" } }, "com.amazonaws.cloudtrail#StopLoggingResponse": { @@ -2717,7 +2873,7 @@ "Key": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

The key in a key-value pair. The key must be must be no longer than 128 Unicode characters. The key must be unique for the resource to which it applies.

", + "smithy.api#documentation": "

The key in a key-value pair. The key must be must be no longer than 128 Unicode characters. \n The key must be unique for the resource to which it applies.

", "smithy.api#required": {} } }, @@ -2743,6 +2899,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "TagsLimitExceeded", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

The number of tags per trail has exceeded the permitted amount. Currently, the limit is 50.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -2775,7 +2935,7 @@ "S3KeyPrefix": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

Specifies the Amazon S3 key prefix that comes after the name of the bucket you have designated\n for log file delivery. For more information, see Finding Your CloudTrail Log Files.The maximum length is 200 characters.

" + "smithy.api#documentation": "

Specifies the Amazon S3 key prefix that comes after the name of the bucket you have designated\n for log file delivery. For more information, see Finding Your CloudTrail Log Files. \n The maximum length is 200 characters.

" } }, "SnsTopicName": { @@ -2788,13 +2948,13 @@ "SnsTopicARN": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

Specifies the ARN of the Amazon SNS topic that CloudTrail uses to send notifications\n when log files are delivered. The format of a topic ARN is:

\n

\n arn:aws:sns:us-east-2:123456789012:MyTopic\n

" + "smithy.api#documentation": "

Specifies the ARN of the Amazon SNS topic that CloudTrail uses to send notifications\n when log files are delivered. The following is the format of a topic ARN.

\n

\n arn:aws:sns:us-east-2:123456789012:MyTopic\n

" } }, "IncludeGlobalServiceEvents": { "target": "com.amazonaws.cloudtrail#Boolean", "traits": { - "smithy.api#documentation": "

Set to True to include AWS API calls from AWS global services such as IAM.\n Otherwise, False.

" + "smithy.api#documentation": "

Set to True to include Amazon Web Services API calls from Amazon Web Services global services such as IAM.\n Otherwise, False.

" } }, "IsMultiRegionTrail": { @@ -2812,7 +2972,7 @@ "TrailARN": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

Specifies the ARN of the trail. The format of a trail ARN is:

\n

\n arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail\n

" + "smithy.api#documentation": "

Specifies the ARN of the trail. The following is the format of a trail ARN.

\n

\n arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail\n

" } }, "LogFileValidationEnabled": { @@ -2836,7 +2996,7 @@ "KmsKeyId": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

Specifies the KMS key ID that encrypts the logs delivered by CloudTrail. The value is a fully specified ARN to a KMS key in the format:

\n

\n arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012\n

" + "smithy.api#documentation": "

Specifies the KMS key ID that encrypts the logs delivered by CloudTrail. \n The value is a fully specified ARN to a KMS key in the following format.

\n

\n arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012\n

" } }, "HasCustomEventSelectors": { @@ -2873,6 +3033,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "TrailAlreadyExists", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

This exception is thrown when the specified trail already exists.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -2896,7 +3060,7 @@ "HomeRegion": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

The AWS region in which a trail was created.

" + "smithy.api#documentation": "

The Amazon Web Services Region in which a trail was created.

" } } }, @@ -2927,6 +3091,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "TrailNotFound", + "httpResponseCode": 404 + }, "smithy.api#documentation": "

This exception is thrown when the trail with the given name is not found.

", "smithy.api#error": "client", "smithy.api#httpError": 404 @@ -2943,6 +3111,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "TrailNotProvided", + "httpResponseCode": 404 + }, "smithy.api#documentation": "

This exception is no longer in use.

", "smithy.api#error": "client", "smithy.api#httpError": 404 @@ -2965,6 +3137,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "UnsupportedOperation", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

This exception is thrown when the requested operation is not supported.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -3065,7 +3241,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates the settings that specify delivery of log files. Changes to a trail do not require\n stopping the CloudTrail service. Use this action to designate an existing bucket for log\n delivery. If the existing bucket has previously been a target for CloudTrail log files,\n an IAM policy exists for the bucket. UpdateTrail must be called from the\n region in which the trail was created; otherwise, an\n InvalidHomeRegionException is thrown.

", + "smithy.api#documentation": "

Updates trail settings that control what events you are logging, and how to handle log files. Changes to a trail do not require\n stopping the CloudTrail service. Use this action to designate an existing bucket for log\n delivery. If the existing bucket has previously been a target for CloudTrail log files,\n an IAM policy exists for the bucket. UpdateTrail must be called from the\n region in which the trail was created; otherwise, an\n InvalidHomeRegionException is thrown.

", "smithy.api#idempotent": {} } }, @@ -3075,7 +3251,7 @@ "Name": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

Specifies the name of the trail or trail ARN. If Name is a trail name, the\n string must meet the following requirements:

\n \n

If Name is a trail ARN, it must be in the format:

\n

\n arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail\n

", + "smithy.api#documentation": "

Specifies the name of the trail or trail ARN. If Name is a trail name, the\n string must meet the following requirements:

\n \n

If Name is a trail ARN, it must be in the following format.

\n

\n arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail\n

", "smithy.api#required": {} } }, @@ -3112,13 +3288,13 @@ "EnableLogFileValidation": { "target": "com.amazonaws.cloudtrail#Boolean", "traits": { - "smithy.api#documentation": "

Specifies whether log file validation is enabled. The default is false.

\n \n

When you disable log file integrity validation, the chain of digest files is broken after one hour. CloudTrail will not create digest files for log files that were delivered during a period in which log file integrity validation was disabled. For example, if you enable log file integrity validation at noon on January 1, disable it at noon on January 2, and re-enable it at noon on January 10, digest files will not be created for the log files delivered from noon on January 2 to noon on January 10. The same applies whenever you stop CloudTrail logging or delete a trail.

\n
" + "smithy.api#documentation": "

Specifies whether log file validation is enabled. The default is false.

\n \n

When you disable log file integrity validation, the chain of digest files is broken after one hour. CloudTrail \n does not create digest files for log files that were delivered during a period in which log file integrity validation \n was disabled. For example, if you enable log file integrity validation at noon on January 1, disable it at noon on \n January 2, and re-enable it at noon on January 10, digest files will not be created for the log files delivered from noon \n on January 2 to noon on January 10. The same applies whenever you stop CloudTrail logging or delete a trail.

\n
" } }, "CloudWatchLogsLogGroupArn": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

Specifies a log group name using an Amazon Resource Name (ARN), a unique identifier that represents the log group to which CloudTrail logs will be delivered. Not required unless you specify CloudWatchLogsRoleArn.

" + "smithy.api#documentation": "

Specifies a log group name using an Amazon Resource Name (ARN), a unique identifier that represents the log group to which CloudTrail logs are delivered. Not required unless you specify CloudWatchLogsRoleArn.

" } }, "CloudWatchLogsRoleArn": { @@ -3130,13 +3306,13 @@ "KmsKeyId": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

Specifies the KMS key ID to use to encrypt the logs delivered by CloudTrail. The\n value can be an alias name prefixed by \"alias/\", a fully specified ARN to an alias, a fully\n specified ARN to a key, or a globally unique identifier.

\n

Examples:

\n " + "smithy.api#documentation": "

Specifies the KMS key ID to use to encrypt the logs delivered by CloudTrail. The\n value can be an alias name prefixed by \"alias/\", a fully specified ARN to an alias, a fully\n specified ARN to a key, or a globally unique identifier.

\n

CloudTrail also supports KMS multi-Region keys. For more information about multi-Region keys,\n see Using multi-Region keys in the Key Management Service Developer Guide.

\n

Examples:

\n " } }, "IsOrganizationTrail": { "target": "com.amazonaws.cloudtrail#Boolean", "traits": { - "smithy.api#documentation": "

Specifies whether the trail is applied to all accounts in an organization in AWS Organizations, or only for the current AWS account. \n The default is false, and cannot be true unless the call is made on behalf of an AWS account that is the master account for an organization in \n AWS Organizations. If the trail is not an organization trail and this is set to true, the trail will be created in all AWS accounts that belong\n to the organization. If the trail is an organization trail and this is set to false, the trail will remain in the current AWS account but be \n deleted from all member accounts in the organization.

" + "smithy.api#documentation": "

Specifies whether the trail is applied to all accounts in an organization in Organizations, or only for the current Amazon Web Services account. \n The default is false, and cannot be true unless the call is made on behalf of an Amazon Web Services account that is the management account for an organization in \n Organizations. If the trail is not an organization trail and this is set to true, the trail will be created in all Amazon Web Services accounts that belong\n to the organization. If the trail is an organization trail and this is set to false, the trail will remain in the current Amazon Web Services account but be \n deleted from all member accounts in the organization.

" } } }, @@ -3162,20 +3338,20 @@ "S3KeyPrefix": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

Specifies the Amazon S3 key prefix that comes after the name of the bucket you have designated\n for log file delivery. For more information, see Finding Your CloudTrail Log Files.

" + "smithy.api#documentation": "

Specifies the Amazon S3 key prefix that comes after the name of the bucket you have designated\n for log file delivery. \n For more information, see Finding Your IAM Log Files.

" } }, "SnsTopicName": { "target": "com.amazonaws.cloudtrail#String", "traits": { "smithy.api#deprecated": {}, - "smithy.api#documentation": "

This field is no longer in use. Use SnsTopicARN.

" + "smithy.api#documentation": "

This field is no longer in use. Use UpdateTrailResponse$SnsTopicARN.

" } }, "SnsTopicARN": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

Specifies the ARN of the Amazon SNS topic that CloudTrail uses to send notifications\n when log files are delivered. The format of a topic ARN is:

\n

\n arn:aws:sns:us-east-2:123456789012:MyTopic\n

" + "smithy.api#documentation": "

Specifies the ARN of the Amazon SNS topic that CloudTrail uses to send notifications\n when log files are delivered. The following is the format of a topic ARN.

\n

\n arn:aws:sns:us-east-2:123456789012:MyTopic\n

" } }, "IncludeGlobalServiceEvents": { @@ -3193,7 +3369,7 @@ "TrailARN": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

Specifies the ARN of the trail that was updated. The format of a trail ARN\n is:

\n

\n arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail\n

" + "smithy.api#documentation": "

Specifies the ARN of the trail that was updated. The following is the format of a trail ARN.

\n

\n arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail\n

" } }, "LogFileValidationEnabled": { @@ -3205,7 +3381,7 @@ "CloudWatchLogsLogGroupArn": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

Specifies the Amazon Resource Name (ARN) of the log group to which CloudTrail logs will be delivered.

" + "smithy.api#documentation": "

Specifies the Amazon Resource Name (ARN) of the log group to which CloudTrail logs are delivered.

" } }, "CloudWatchLogsRoleArn": { @@ -3217,7 +3393,7 @@ "KmsKeyId": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

Specifies the KMS key ID that encrypts the logs delivered by CloudTrail. The value is a fully specified ARN to a KMS key in the format:

\n \n

\n arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012\n

" + "smithy.api#documentation": "

Specifies the KMS key ID that encrypts the logs delivered by CloudTrail. The value is a fully specified ARN to a KMS key in the following format.

\n \n

\n arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012\n

" } }, "IsOrganizationTrail": { diff --git a/codegen/sdk-codegen/aws-models/codebuild.2016-10-06.json b/codegen/sdk-codegen/aws-models/codebuild.2016-10-06.json index 4374ff59b7f..9069fb04dbf 100644 --- a/codegen/sdk-codegen/aws-models/codebuild.2016-10-06.json +++ b/codegen/sdk-codegen/aws-models/codebuild.2016-10-06.json @@ -895,7 +895,7 @@ "phaseStatus": { "target": "com.amazonaws.codebuild#StatusType", "traits": { - "smithy.api#documentation": "

The current status of the batch build phase. Valid values include:

\n
\n
FAILED
\n
\n

The build phase failed.

\n
\n
FAULT
\n
\n

The build phase faulted.

\n
\n
IN_PROGRESS
\n
\n

The build phase is still in progress.

\n
\n
QUEUED
\n
\n

The build has been submitted and is queued behind other submitted\n builds.

\n
\n
STOPPED
\n
\n

The build phase stopped.

\n
\n
SUCCEEDED
\n
\n

The build phase succeeded.

\n
\n
TIMED_OUT
\n
\n

The build phase timed out.

\n
\n
" + "smithy.api#documentation": "

The current status of the batch build phase. Valid values include:

\n
\n
FAILED
\n
\n

The build phase failed.

\n
\n
FAULT
\n
\n

The build phase faulted.

\n
\n
IN_PROGRESS
\n
\n

The build phase is still in progress.

\n
\n
STOPPED
\n
\n

The build phase stopped.

\n
\n
SUCCEEDED
\n
\n

The build phase succeeded.

\n
\n
TIMED_OUT
\n
\n

The build phase timed out.

\n
\n
" } }, "startTime": { @@ -1062,13 +1062,13 @@ "phaseType": { "target": "com.amazonaws.codebuild#BuildPhaseType", "traits": { - "smithy.api#documentation": "

The name of the build phase. Valid values include:

\n " + "smithy.api#documentation": "

The name of the build phase. Valid values include:

\n
\n
BUILD
\n
\n

Core build activities typically occur in this build phase.

\n
\n
COMPLETED
\n
\n

The build has been completed.

\n
\n
DOWNLOAD_SOURCE
\n
\n

Source code is being downloaded in this build phase.

\n
\n
FINALIZING
\n
\n

The build process is completing in this build phase.

\n
\n
INSTALL
\n
\n

Installation activities typically occur in this build phase.

\n
\n
POST_BUILD
\n
\n

Post-build activities typically occur in this build phase.

\n
\n
PRE_BUILD
\n
\n

Pre-build activities typically occur in this build phase.

\n
\n
PROVISIONING
\n
\n

The build environment is being set up.

\n
\n
QUEUED
\n
\n

The build has been submitted and is queued behind other submitted\n builds.

\n
\n
SUBMITTED
\n
\n

The build has been submitted.

\n
\n
UPLOAD_ARTIFACTS
\n
\n

Build output artifacts are being uploaded to the output location.

\n
\n
" } }, "phaseStatus": { "target": "com.amazonaws.codebuild#StatusType", "traits": { - "smithy.api#documentation": "

The current status of the build phase. Valid values include:

\n
\n
FAILED
\n
\n

The build phase failed.

\n
\n
FAULT
\n
\n

The build phase faulted.

\n
\n
IN_PROGRESS
\n
\n

The build phase is still in progress.

\n
\n
QUEUED
\n
\n

The build has been submitted and is queued behind other submitted\n builds.

\n
\n
STOPPED
\n
\n

The build phase stopped.

\n
\n
SUCCEEDED
\n
\n

The build phase succeeded.

\n
\n
TIMED_OUT
\n
\n

The build phase timed out.

\n
\n
" + "smithy.api#documentation": "

The current status of the build phase. Valid values include:

\n
\n
FAILED
\n
\n

The build phase failed.

\n
\n
FAULT
\n
\n

The build phase faulted.

\n
\n
IN_PROGRESS
\n
\n

The build phase is still in progress.

\n
\n
STOPPED
\n
\n

The build phase stopped.

\n
\n
SUCCEEDED
\n
\n

The build phase succeeded.

\n
\n
TIMED_OUT
\n
\n

The build phase timed out.

\n
\n
" } }, "startTime": { diff --git a/codegen/sdk-codegen/aws-models/computeoptimizer.2019-11-01.json b/codegen/sdk-codegen/aws-models/computeoptimizer.2019-11-01.json index d52fcee0213..c82e32c79d9 100644 --- a/codegen/sdk-codegen/aws-models/computeoptimizer.2019-11-01.json +++ b/codegen/sdk-codegen/aws-models/computeoptimizer.2019-11-01.json @@ -2609,7 +2609,7 @@ "platformDifferences": { "target": "com.amazonaws.computeoptimizer#PlatformDifferences", "traits": { - "smithy.api#documentation": "

Describes the configuration differences between the current instance and the\n recommended instance type. You should consider the configuration differences before\n migrating your workloads from the current instance to the recommended instance type. The\n Change the instance type guide for Linux and Change the instance type\n guide for Windows provide general guidance for getting started with an\n instance migration.

\n\n

Platform differences include:

\n\n " + "smithy.api#documentation": "

Describes the configuration differences between the current instance and the\n recommended instance type. You should consider the configuration differences before\n migrating your workloads from the current instance to the recommended instance type. The\n Change the instance type guide for Linux and Change the instance type\n guide for Windows provide general guidance for getting started with an\n instance migration.

\n\n

Platform differences include:

\n\n " } }, "performanceRisk": { diff --git a/codegen/sdk-codegen/aws-models/configservice.2014-11-12.json b/codegen/sdk-codegen/aws-models/configservice.2014-11-12.json index 48cfffc737d..a4cc0da461e 100644 --- a/codegen/sdk-codegen/aws-models/configservice.2014-11-12.json +++ b/codegen/sdk-codegen/aws-models/configservice.2014-11-12.json @@ -45,7 +45,7 @@ "AllAwsRegions": { "target": "com.amazonaws.configservice#Boolean", "traits": { - "smithy.api#documentation": "

If true, aggregate existing AWS Config regions and future\n\t\t\tregions.

" + "smithy.api#documentation": "

If true, aggregate existing Config regions and future\n\t\t\tregions.

" } }, "AwsRegions": { @@ -94,13 +94,13 @@ "ConfigRuleName": { "target": "com.amazonaws.configservice#ConfigRuleName", "traits": { - "smithy.api#documentation": "

The name of the AWS Config rule.

" + "smithy.api#documentation": "

The name of the Config rule.

" } }, "Compliance": { "target": "com.amazonaws.configservice#Compliance", "traits": { - "smithy.api#documentation": "

Indicates whether an AWS resource or AWS Config rule is\n\t\t\tcompliant and provides the number of contributors that affect the\n\t\t\tcompliance.

" + "smithy.api#documentation": "

Indicates whether an Amazon Web Services resource or Config rule is\n\t\t\tcompliant and provides the number of contributors that affect the\n\t\t\tcompliance.

" } }, "AccountId": { @@ -117,7 +117,7 @@ } }, "traits": { - "smithy.api#documentation": "

Indicates whether an AWS Config rule is compliant based on\n\t\t\taccount ID, region, compliance, and rule name.

\n\t\t

A rule is compliant if all of the resources that the rule\n\t\t\tevaluated comply with it. It is noncompliant if any of these\n\t\t\tresources do not comply.

" + "smithy.api#documentation": "

Indicates whether an Config rule is compliant based on\n\t\t\taccount ID, region, compliance, and rule name.

\n\t\t

A rule is compliant if all of the resources that the rule\n\t\t\tevaluated comply with it. It is noncompliant if any of these\n\t\t\tresources do not comply.

" } }, "com.amazonaws.configservice#AggregateComplianceByConfigRuleList": { @@ -144,13 +144,13 @@ "AccountId": { "target": "com.amazonaws.configservice#AccountId", "traits": { - "smithy.api#documentation": "

The 12-digit AWS account ID of the source account.

" + "smithy.api#documentation": "

The 12-digit Amazon Web Services account ID of the source account.

" } }, "AwsRegion": { "target": "com.amazonaws.configservice#AwsRegion", "traits": { - "smithy.api#documentation": "

The source AWS Region from where the data is aggregated.

" + "smithy.api#documentation": "

The source Amazon Web Services Region from where the data is aggregated.

" } } }, @@ -176,7 +176,7 @@ "ComplianceSummary": { "target": "com.amazonaws.configservice#ComplianceSummary", "traits": { - "smithy.api#documentation": "

The number of compliant and noncompliant AWS Config\n\t\t\trules.

" + "smithy.api#documentation": "

The number of compliant and noncompliant Config\n\t\t\trules.

" } } }, @@ -202,13 +202,13 @@ "CompliantRuleCount": { "target": "com.amazonaws.configservice#Integer", "traits": { - "smithy.api#documentation": "

The number of compliant AWS Config Rules.

" + "smithy.api#documentation": "

The number of compliant Config Rules.

" } }, "NonCompliantRuleCount": { "target": "com.amazonaws.configservice#Integer", "traits": { - "smithy.api#documentation": "

The number of noncompliant AWS Config Rules.

" + "smithy.api#documentation": "

The number of noncompliant Config Rules.

" } }, "TotalRuleCount": { @@ -260,13 +260,13 @@ "AccountId": { "target": "com.amazonaws.configservice#AccountId", "traits": { - "smithy.api#documentation": "

The 12-digit AWS account ID of the source account.

" + "smithy.api#documentation": "

The 12-digit Amazon Web Services account ID of the source account.

" } }, "AwsRegion": { "target": "com.amazonaws.configservice#AwsRegion", "traits": { - "smithy.api#documentation": "

The source AWS Region from where the data is aggregated.

" + "smithy.api#documentation": "

The source Amazon Web Services Region from where the data is aggregated.

" } } }, @@ -286,7 +286,7 @@ "GroupName": { "target": "com.amazonaws.configservice#StringWithCharLimit256", "traits": { - "smithy.api#documentation": "

Groups the result based on AWS Account ID or AWS Region.

" + "smithy.api#documentation": "

Groups the result based on Amazon Web Services account ID or Amazon Web Services Region.

" } } }, @@ -300,13 +300,13 @@ "AccountId": { "target": "com.amazonaws.configservice#AccountId", "traits": { - "smithy.api#documentation": "

The 12-digit AWS account ID of the source account.

" + "smithy.api#documentation": "

The 12-digit Amazon Web Services account ID of the source account.

" } }, "AwsRegion": { "target": "com.amazonaws.configservice#AwsRegion", "traits": { - "smithy.api#documentation": "

The source AWS Region from where the data is aggregated.

" + "smithy.api#documentation": "

The source Amazon Web Services Region from where the data is aggregated.

" } } }, @@ -347,19 +347,19 @@ "ComplianceType": { "target": "com.amazonaws.configservice#ComplianceType", "traits": { - "smithy.api#documentation": "

The resource compliance status.

\n\t\t

For the AggregationEvaluationResult data type, AWS\n\t\t\tConfig supports only the COMPLIANT and\n\t\t\t\tNON_COMPLIANT. AWS Config does not support the\n\t\t\t\tNOT_APPLICABLE and INSUFFICIENT_DATA\n\t\t\tvalue.

" + "smithy.api#documentation": "

The resource compliance status.

\n\t\t

For the AggregationEvaluationResult data type, Config supports only the COMPLIANT and\n\t\t\t\tNON_COMPLIANT. Config does not support the\n\t\t\t\tNOT_APPLICABLE and INSUFFICIENT_DATA\n\t\t\tvalue.

" } }, "ResultRecordedTime": { "target": "com.amazonaws.configservice#Date", "traits": { - "smithy.api#documentation": "

The time when AWS Config recorded the aggregate evaluation\n\t\t\tresult.

" + "smithy.api#documentation": "

The time when Config recorded the aggregate evaluation\n\t\t\tresult.

" } }, "ConfigRuleInvokedTime": { "target": "com.amazonaws.configservice#Date", "traits": { - "smithy.api#documentation": "

The time when the AWS Config rule evaluated the AWS\n\t\t\tresource.

" + "smithy.api#documentation": "

The time when the Config rule evaluated the Amazon Web Services\n\t\t\tresource.

" } }, "Annotation": { @@ -382,7 +382,7 @@ } }, "traits": { - "smithy.api#documentation": "

The details of an AWS Config evaluation for an account ID and\n\t\t\tregion in an aggregator. Provides the AWS resource that was\n\t\t\tevaluated, the compliance of the resource, related time stamps, and\n\t\t\tsupplementary information.

" + "smithy.api#documentation": "

The details of an Config evaluation for an account ID and\n\t\t\tregion in an aggregator. Provides the Amazon Web Services resource that was\n\t\t\tevaluated, the compliance of the resource, related time stamps, and\n\t\t\tsupplementary information.

" } }, "com.amazonaws.configservice#AggregateEvaluationResultList": { @@ -411,26 +411,26 @@ "ResourceId": { "target": "com.amazonaws.configservice#ResourceId", "traits": { - "smithy.api#documentation": "

The ID of the AWS resource.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services resource.

", "smithy.api#required": {} } }, "ResourceType": { "target": "com.amazonaws.configservice#ResourceType", "traits": { - "smithy.api#documentation": "

The type of the AWS resource.

", + "smithy.api#documentation": "

The type of the Amazon Web Services resource.

", "smithy.api#required": {} } }, "ResourceName": { "target": "com.amazonaws.configservice#ResourceName", "traits": { - "smithy.api#documentation": "

The name of the AWS resource.

" + "smithy.api#documentation": "

The name of the Amazon Web Services resource.

" } } }, "traits": { - "smithy.api#documentation": "

The details that identify a resource that is collected by AWS Config aggregator, including the resource type, ID, (if available) the custom resource name, the source account, and source region.

" + "smithy.api#documentation": "

The details that identify a resource that is collected by Config aggregator, including the resource type, ID, (if available) the custom resource name, the source account, and source region.

" } }, "com.amazonaws.configservice#AggregatedSourceStatus": { @@ -469,7 +469,7 @@ "LastErrorCode": { "target": "com.amazonaws.configservice#String", "traits": { - "smithy.api#documentation": "

The error code that AWS Config returned when the source account\n\t\t\taggregation last failed.

" + "smithy.api#documentation": "

The error code that Config returned when the source account\n\t\t\taggregation last failed.

" } }, "LastErrorMessage": { @@ -648,7 +648,7 @@ "accountId": { "target": "com.amazonaws.configservice#AccountId", "traits": { - "smithy.api#documentation": "

The 12-digit AWS account ID associated with the resource.

" + "smithy.api#documentation": "

The 12-digit Amazon Web Services account ID associated with the resource.

" } }, "configurationItemCaptureTime": { @@ -678,7 +678,7 @@ "resourceType": { "target": "com.amazonaws.configservice#ResourceType", "traits": { - "smithy.api#documentation": "

The type of AWS resource.

" + "smithy.api#documentation": "

The type of Amazon Web Services resource.

" } }, "resourceId": { @@ -720,7 +720,7 @@ "supplementaryConfiguration": { "target": "com.amazonaws.configservice#SupplementaryConfiguration", "traits": { - "smithy.api#documentation": "

Configuration attributes that AWS Config returns for certain\n\t\t\tresource types to supplement the information returned for the\n\t\t\tconfiguration parameter.

" + "smithy.api#documentation": "

Configuration attributes that Config returns for certain\n\t\t\tresource types to supplement the information returned for the\n\t\t\tconfiguration parameter.

" } } }, @@ -760,7 +760,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the current configuration items for resources that are present in your AWS Config aggregator. The operation also returns a list of resources that are not processed in the current request. \n\t\t\tIf there are no unprocessed resources, the operation returns an empty unprocessedResourceIdentifiers list.

\n\t\t\n\t\t \n \n " + "smithy.api#documentation": "

Returns the current configuration items for resources that are present in your Config aggregator. The operation also returns a list of resources that are not processed in the current request. \n\t\t\tIf there are no unprocessed resources, the operation returns an empty unprocessedResourceIdentifiers list.

\n\t\t\n\t\t \n \n " } }, "com.amazonaws.configservice#BatchGetAggregateResourceConfigRequest": { @@ -816,7 +816,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the current configuration for one or more requested\n\t\t\tresources. The operation also returns a list of resources that are\n\t\t\tnot processed in the current request. If there are no unprocessed\n\t\t\tresources, the operation returns an empty unprocessedResourceKeys\n\t\t\tlist.

\n\t\t \n\t\t\t \n\t\t " + "smithy.api#documentation": "

Returns the BaseConfigurationItem for one or more requested resources.\n\t\t\tThe operation also returns a list of resources that are\n\t\t\tnot processed in the current request. If there are no unprocessed\n\t\t\tresources, the operation returns an empty unprocessedResourceKeys\n\t\t\tlist.

\n\t\t \n\t\t\t \n\t\t " } }, "com.amazonaws.configservice#BatchGetResourceConfigRequest": { @@ -881,18 +881,18 @@ "ComplianceType": { "target": "com.amazonaws.configservice#ComplianceType", "traits": { - "smithy.api#documentation": "

Indicates whether an AWS resource or AWS Config rule is\n\t\t\tcompliant.

\n\t\t

A resource is compliant if it complies with all of the AWS\n\t\t\tConfig rules that evaluate it. A resource is noncompliant if it does\n\t\t\tnot comply with one or more of these rules.

\n\t\t

A rule is compliant if all of the resources that the rule\n\t\t\tevaluates comply with it. A rule is noncompliant if any of these\n\t\t\tresources do not comply.

\n\t\t

AWS Config returns the INSUFFICIENT_DATA value\n\t\t\twhen no evaluation results are available for the AWS resource or AWS\n\t\t\tConfig rule.

\n\t\t

For the Compliance data type, AWS Config supports\n\t\t\tonly COMPLIANT, NON_COMPLIANT, and\n\t\t\t\tINSUFFICIENT_DATA values. AWS Config does not\n\t\t\tsupport the NOT_APPLICABLE value for the\n\t\t\t\tCompliance data type.

" + "smithy.api#documentation": "

Indicates whether an Amazon Web Services resource or Config rule is\n\t\t\tcompliant.

\n\t\t

A resource is compliant if it complies with all of the Config rules that evaluate it. A resource is noncompliant if it does\n\t\t\tnot comply with one or more of these rules.

\n\t\t

A rule is compliant if all of the resources that the rule\n\t\t\tevaluates comply with it. A rule is noncompliant if any of these\n\t\t\tresources do not comply.

\n\t\t

Config returns the INSUFFICIENT_DATA value\n\t\t\twhen no evaluation results are available for the Amazon Web Services resource or Config rule.

\n\t\t

For the Compliance data type, Config supports\n\t\t\tonly COMPLIANT, NON_COMPLIANT, and\n\t\t\t\tINSUFFICIENT_DATA values. Config does not\n\t\t\tsupport the NOT_APPLICABLE value for the\n\t\t\t\tCompliance data type.

" } }, "ComplianceContributorCount": { "target": "com.amazonaws.configservice#ComplianceContributorCount", "traits": { - "smithy.api#documentation": "

The number of AWS resources or AWS Config rules that cause a\n\t\t\tresult of NON_COMPLIANT, up to a maximum\n\t\t\tnumber.

" + "smithy.api#documentation": "

The number of Amazon Web Services resources or Config rules that cause a\n\t\t\tresult of NON_COMPLIANT, up to a maximum\n\t\t\tnumber.

" } } }, "traits": { - "smithy.api#documentation": "

Indicates whether an AWS resource or AWS Config rule is\n\t\t\tcompliant and provides the number of contributors that affect the\n\t\t\tcompliance.

" + "smithy.api#documentation": "

Indicates whether an Amazon Web Services resource or Config rule is\n\t\t\tcompliant and provides the number of contributors that affect the\n\t\t\tcompliance.

" } }, "com.amazonaws.configservice#ComplianceByConfigRule": { @@ -901,18 +901,18 @@ "ConfigRuleName": { "target": "com.amazonaws.configservice#StringWithCharLimit64", "traits": { - "smithy.api#documentation": "

The name of the AWS Config rule.

" + "smithy.api#documentation": "

The name of the Config rule.

" } }, "Compliance": { "target": "com.amazonaws.configservice#Compliance", "traits": { - "smithy.api#documentation": "

Indicates whether the AWS Config rule is compliant.

" + "smithy.api#documentation": "

Indicates whether the Config rule is compliant.

" } } }, "traits": { - "smithy.api#documentation": "

Indicates whether an AWS Config rule is compliant. A rule is\n\t\t\tcompliant if all of the resources that the rule evaluated comply\n\t\t\twith it. A rule is noncompliant if any of these resources do not\n\t\t\tcomply.

" + "smithy.api#documentation": "

Indicates whether an Config rule is compliant. A rule is\n\t\t\tcompliant if all of the resources that the rule evaluated comply\n\t\t\twith it. A rule is noncompliant if any of these resources do not\n\t\t\tcomply.

" } }, "com.amazonaws.configservice#ComplianceByConfigRules": { @@ -927,24 +927,24 @@ "ResourceType": { "target": "com.amazonaws.configservice#StringWithCharLimit256", "traits": { - "smithy.api#documentation": "

The type of the AWS resource that was evaluated.

" + "smithy.api#documentation": "

The type of the Amazon Web Services resource that was evaluated.

" } }, "ResourceId": { "target": "com.amazonaws.configservice#BaseResourceId", "traits": { - "smithy.api#documentation": "

The ID of the AWS resource that was evaluated.

" + "smithy.api#documentation": "

The ID of the Amazon Web Services resource that was evaluated.

" } }, "Compliance": { "target": "com.amazonaws.configservice#Compliance", "traits": { - "smithy.api#documentation": "

Indicates whether the AWS resource complies with all of the AWS\n\t\t\tConfig rules that evaluated it.

" + "smithy.api#documentation": "

Indicates whether the Amazon Web Services resource complies with all of the Config rules that evaluated it.

" } } }, "traits": { - "smithy.api#documentation": "

Indicates whether an AWS resource that is evaluated according\n\t\t\tto one or more AWS Config rules is compliant. A resource is\n\t\t\tcompliant if it complies with all of the rules that evaluate it. A\n\t\t\tresource is noncompliant if it does not comply with one or more of\n\t\t\tthese rules.

" + "smithy.api#documentation": "

Indicates whether an Amazon Web Services resource that is evaluated according\n\t\t\tto one or more Config rules is compliant. A resource is\n\t\t\tcompliant if it complies with all of the rules that evaluate it. A\n\t\t\tresource is noncompliant if it does not comply with one or more of\n\t\t\tthese rules.

" } }, "com.amazonaws.configservice#ComplianceByResources": { @@ -959,7 +959,7 @@ "CappedCount": { "target": "com.amazonaws.configservice#Integer", "traits": { - "smithy.api#documentation": "

The number of AWS resources or AWS Config rules responsible for\n\t\t\tthe current compliance of the item.

" + "smithy.api#documentation": "

The number of Amazon Web Services resources or Config rules responsible for\n\t\t\tthe current compliance of the item.

" } }, "CapExceeded": { @@ -970,7 +970,7 @@ } }, "traits": { - "smithy.api#documentation": "

The number of AWS resources or AWS Config rules responsible for\n\t\t\tthe current compliance of the item, up to a maximum\n\t\t\tnumber.

" + "smithy.api#documentation": "

The number of Amazon Web Services resources or Config rules responsible for\n\t\t\tthe current compliance of the item, up to a maximum\n\t\t\tnumber.

" } }, "com.amazonaws.configservice#ComplianceResourceTypes": { @@ -997,24 +997,24 @@ "CompliantResourceCount": { "target": "com.amazonaws.configservice#ComplianceContributorCount", "traits": { - "smithy.api#documentation": "

The number of AWS Config rules or AWS resources that are\n\t\t\tcompliant, up to a maximum of 25 for rules and 100 for\n\t\t\tresources.

" + "smithy.api#documentation": "

The number of Config rules or Amazon Web Services resources that are\n\t\t\tcompliant, up to a maximum of 25 for rules and 100 for\n\t\t\tresources.

" } }, "NonCompliantResourceCount": { "target": "com.amazonaws.configservice#ComplianceContributorCount", "traits": { - "smithy.api#documentation": "

The number of AWS Config rules or AWS resources that are\n\t\t\tnoncompliant, up to a maximum of 25 for rules and 100 for\n\t\t\tresources.

" + "smithy.api#documentation": "

The number of Config rules or Amazon Web Services resources that are\n\t\t\tnoncompliant, up to a maximum of 25 for rules and 100 for\n\t\t\tresources.

" } }, "ComplianceSummaryTimestamp": { "target": "com.amazonaws.configservice#Date", "traits": { - "smithy.api#documentation": "

The time that AWS Config created the compliance\n\t\t\tsummary.

" + "smithy.api#documentation": "

The time that Config created the compliance\n\t\t\tsummary.

" } } }, "traits": { - "smithy.api#documentation": "

The number of AWS Config rules or AWS resources that are\n\t\t\tcompliant and noncompliant.

" + "smithy.api#documentation": "

The number of Config rules or Amazon Web Services resources that are\n\t\t\tcompliant and noncompliant.

" } }, "com.amazonaws.configservice#ComplianceSummaryByResourceType": { @@ -1023,18 +1023,18 @@ "ResourceType": { "target": "com.amazonaws.configservice#StringWithCharLimit256", "traits": { - "smithy.api#documentation": "

The type of AWS resource.

" + "smithy.api#documentation": "

The type of Amazon Web Services resource.

" } }, "ComplianceSummary": { "target": "com.amazonaws.configservice#ComplianceSummary", "traits": { - "smithy.api#documentation": "

The number of AWS resources that are compliant or noncompliant,\n\t\t\tup to a maximum of 100 for each.

" + "smithy.api#documentation": "

The number of Amazon Web Services resources that are compliant or noncompliant,\n\t\t\tup to a maximum of 100 for each.

" } } }, "traits": { - "smithy.api#documentation": "

The number of AWS resources of a specific type that are\n\t\t\tcompliant or noncompliant, up to a maximum of 100 for\n\t\t\teach.

" + "smithy.api#documentation": "

The number of Amazon Web Services resources of a specific type that are\n\t\t\tcompliant or noncompliant, up to a maximum of 100 for\n\t\t\teach.

" } }, "com.amazonaws.configservice#ComplianceType": { @@ -1122,25 +1122,25 @@ "ConfigRuleName": { "target": "com.amazonaws.configservice#ConfigRuleName", "traits": { - "smithy.api#documentation": "

The name that you assign to the AWS Config rule. The name is\n\t\t\trequired if you are adding a new rule.

" + "smithy.api#documentation": "

The name that you assign to the Config rule. The name is\n\t\t\trequired if you are adding a new rule.

" } }, "ConfigRuleArn": { "target": "com.amazonaws.configservice#StringWithCharLimit256", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the AWS Config\n\t\t\trule.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Config\n\t\t\trule.

" } }, "ConfigRuleId": { "target": "com.amazonaws.configservice#StringWithCharLimit64", "traits": { - "smithy.api#documentation": "

The ID of the AWS Config rule.

" + "smithy.api#documentation": "

The ID of the Config rule.

" } }, "Description": { "target": "com.amazonaws.configservice#EmptiableStringWithCharLimit256", "traits": { - "smithy.api#documentation": "

The description that you provide for the AWS Config\n\t\t\trule.

" + "smithy.api#documentation": "

The description that you provide for the Config\n\t\t\trule.

" } }, "Scope": { @@ -1152,26 +1152,26 @@ "Source": { "target": "com.amazonaws.configservice#Source", "traits": { - "smithy.api#documentation": "

Provides the rule owner (AWS or customer), the rule identifier,\n\t\t\tand the notifications that cause the function to evaluate your AWS\n\t\t\tresources.

", + "smithy.api#documentation": "

Provides the rule owner (Amazon Web Services or customer), the rule identifier,\n\t\t\tand the notifications that cause the function to evaluate your Amazon Web Services\n\t\t\tresources.

", "smithy.api#required": {} } }, "InputParameters": { "target": "com.amazonaws.configservice#StringWithCharLimit1024", "traits": { - "smithy.api#documentation": "

A string, in JSON format, that is passed to the AWS Config rule\n\t\t\tLambda function.

" + "smithy.api#documentation": "

A string, in JSON format, that is passed to the Config rule\n\t\t\tLambda function.

" } }, "MaximumExecutionFrequency": { "target": "com.amazonaws.configservice#MaximumExecutionFrequency", "traits": { - "smithy.api#documentation": "

The maximum frequency with which AWS Config runs evaluations\n\t\t\tfor a rule. You can specify a value for\n\t\t\t\tMaximumExecutionFrequency when:

\n\t\t \n\n\n\n\t\t \n\t\t\t

By default, rules with a periodic trigger are evaluated\n\t\t\t\tevery 24 hours. To change the frequency, specify a valid value\n\t\t\t\tfor the MaximumExecutionFrequency\n\t\t\t\tparameter.

\n\t\t
" + "smithy.api#documentation": "

The maximum frequency with which Config runs evaluations\n\t\t\tfor a rule. You can specify a value for\n\t\t\t\tMaximumExecutionFrequency when:

\n\t\t \n\n\n\n\t\t \n\t\t\t

By default, rules with a periodic trigger are evaluated\n\t\t\t\tevery 24 hours. To change the frequency, specify a valid value\n\t\t\t\tfor the MaximumExecutionFrequency\n\t\t\t\tparameter.

\n\t\t
" } }, "ConfigRuleState": { "target": "com.amazonaws.configservice#ConfigRuleState", "traits": { - "smithy.api#documentation": "

Indicates whether the AWS Config rule is active or is currently\n\t\t\tbeing deleted by AWS Config. It can also indicate the evaluation\n\t\t\tstatus for the AWS Config rule.

\n\n\t\t

AWS Config sets the state of the rule to\n\t\t\t\tEVALUATING temporarily after you use the\n\t\t\t\tStartConfigRulesEvaluation request to evaluate your\n\t\t\tresources against the AWS Config rule.

\n\n\t\t

AWS Config sets the state of the rule to\n\t\t\t\tDELETING_RESULTS temporarily after you use the\n\t\t\t\tDeleteEvaluationResults request to delete the\n\t\t\tcurrent evaluation results for the AWS Config rule.

\n\n\t\t

AWS Config temporarily sets the state of a rule to\n\t\t\t\tDELETING after you use the\n\t\t\t\tDeleteConfigRule request to delete the rule. After\n\t\t\tAWS Config deletes the rule, the rule and all of its evaluations are\n\t\t\terased and are no longer available.

" + "smithy.api#documentation": "

Indicates whether the Config rule is active or is currently\n\t\t\tbeing deleted by Config. It can also indicate the evaluation\n\t\t\tstatus for the Config rule.

\n\n\t\t

Config sets the state of the rule to\n\t\t\t\tEVALUATING temporarily after you use the\n\t\t\t\tStartConfigRulesEvaluation request to evaluate your\n\t\t\tresources against the Config rule.

\n\n\t\t

Config sets the state of the rule to\n\t\t\t\tDELETING_RESULTS temporarily after you use the\n\t\t\t\tDeleteEvaluationResults request to delete the\n\t\t\tcurrent evaluation results for the Config rule.

\n\n\t\t

Config temporarily sets the state of a rule to\n\t\t\t\tDELETING after you use the\n\t\t\t\tDeleteConfigRule request to delete the rule. After\n\t\t\tConfig deletes the rule, the rule and all of its evaluations are\n\t\t\terased and are no longer available.

" } }, "CreatedBy": { @@ -1182,7 +1182,7 @@ } }, "traits": { - "smithy.api#documentation": "

An AWS Config rule represents an AWS Lambda function that you\n\t\t\tcreate for a custom rule or a predefined function for an AWS managed\n\t\t\trule. The function evaluates configuration items to assess whether\n\t\t\tyour AWS resources comply with your desired configurations. This\n\t\t\tfunction can run when AWS Config detects a configuration change to\n\t\t\tan AWS resource and at a periodic frequency that you choose (for\n\t\t\texample, every 24 hours).

\n\n\t\t \n\t\t\t

You can use the AWS CLI and AWS SDKs if you want to create\n\t\t\t\ta rule that triggers evaluations for your resources when AWS\n\t\t\t\tConfig delivers the configuration snapshot. For more\n\t\t\t\tinformation, see ConfigSnapshotDeliveryProperties.

\n\t\t
\n\t\t

For more information about developing and using AWS Config\n\t\t\trules, see Evaluating AWS Resource Configurations with AWS Config\n\t\t\tin the AWS Config Developer Guide.

" + "smithy.api#documentation": "

An Config rule represents an Lambda function that you\n\t\t\tcreate for a custom rule or a predefined function for an Config managed\n\t\t\trule. The function evaluates configuration items to assess whether\n\t\t\tyour Amazon Web Services resources comply with your desired configurations. This\n\t\t\tfunction can run when Config detects a configuration change to\n\t\t\tan Amazon Web Services resource and at a periodic frequency that you choose (for\n\t\t\texample, every 24 hours).

\n\n\t\t \n\t\t\t

You can use the Amazon Web Services CLI and Amazon Web Services SDKs if you want to create\n\t\t\t\ta rule that triggers evaluations for your resources when Config delivers the configuration snapshot. For more\n\t\t\t\tinformation, see ConfigSnapshotDeliveryProperties.

\n\t\t
\n\t\t

For more information about developing and using Config\n\t\t\trules, see Evaluating Amazon Web Services resource Configurations with Config\n\t\t\tin the Config Developer Guide.

" } }, "com.amazonaws.configservice#ConfigRuleComplianceFilters": { @@ -1191,13 +1191,13 @@ "ConfigRuleName": { "target": "com.amazonaws.configservice#ConfigRuleName", "traits": { - "smithy.api#documentation": "

The name of the AWS Config rule.

" + "smithy.api#documentation": "

The name of the Config rule.

" } }, "ComplianceType": { "target": "com.amazonaws.configservice#ComplianceType", "traits": { - "smithy.api#documentation": "

The rule compliance status.

\n\t\t

For the ConfigRuleComplianceFilters data type, AWS\n\t\t\tConfig supports only COMPLIANT and\n\t\t\t\tNON_COMPLIANT. AWS Config does not support the\n\t\t\t\tNOT_APPLICABLE and the\n\t\t\t\tINSUFFICIENT_DATA values.

" + "smithy.api#documentation": "

The rule compliance status.

\n\t\t

For the ConfigRuleComplianceFilters data type, Config supports only COMPLIANT and\n\t\t\t\tNON_COMPLIANT. Config does not support the\n\t\t\t\tNOT_APPLICABLE and the\n\t\t\t\tINSUFFICIENT_DATA values.

" } }, "AccountId": { @@ -1258,78 +1258,78 @@ "ConfigRuleName": { "target": "com.amazonaws.configservice#ConfigRuleName", "traits": { - "smithy.api#documentation": "

The name of the AWS Config rule.

" + "smithy.api#documentation": "

The name of the Config rule.

" } }, "ConfigRuleArn": { "target": "com.amazonaws.configservice#String", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the AWS Config\n\t\t\trule.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Config\n\t\t\trule.

" } }, "ConfigRuleId": { "target": "com.amazonaws.configservice#String", "traits": { - "smithy.api#documentation": "

The ID of the AWS Config rule.

" + "smithy.api#documentation": "

The ID of the Config rule.

" } }, "LastSuccessfulInvocationTime": { "target": "com.amazonaws.configservice#Date", "traits": { - "smithy.api#documentation": "

The time that AWS Config last successfully invoked the AWS\n\t\t\tConfig rule to evaluate your AWS resources.

" + "smithy.api#documentation": "

The time that Config last successfully invoked the Config rule to evaluate your Amazon Web Services resources.

" } }, "LastFailedInvocationTime": { "target": "com.amazonaws.configservice#Date", "traits": { - "smithy.api#documentation": "

The time that AWS Config last failed to invoke the AWS Config\n\t\t\trule to evaluate your AWS resources.

" + "smithy.api#documentation": "

The time that Config last failed to invoke the Config\n\t\t\trule to evaluate your Amazon Web Services resources.

" } }, "LastSuccessfulEvaluationTime": { "target": "com.amazonaws.configservice#Date", "traits": { - "smithy.api#documentation": "

The time that AWS Config last successfully evaluated your AWS\n\t\t\tresources against the rule.

" + "smithy.api#documentation": "

The time that Config last successfully evaluated your Amazon Web Services\n\t\t\tresources against the rule.

" } }, "LastFailedEvaluationTime": { "target": "com.amazonaws.configservice#Date", "traits": { - "smithy.api#documentation": "

The time that AWS Config last failed to evaluate your AWS\n\t\t\tresources against the rule.

" + "smithy.api#documentation": "

The time that Config last failed to evaluate your Amazon Web Services\n\t\t\tresources against the rule.

" } }, "FirstActivatedTime": { "target": "com.amazonaws.configservice#Date", "traits": { - "smithy.api#documentation": "

The time that you first activated the AWS Config\n\t\t\trule.

" + "smithy.api#documentation": "

The time that you first activated the Config\n\t\t\trule.

" } }, "LastDeactivatedTime": { "target": "com.amazonaws.configservice#Date", "traits": { - "smithy.api#documentation": "

The time that you last turned off the AWS Config rule.

" + "smithy.api#documentation": "

The time that you last turned off the Config rule.

" } }, "LastErrorCode": { "target": "com.amazonaws.configservice#String", "traits": { - "smithy.api#documentation": "

The error code that AWS Config returned when the rule last\n\t\t\tfailed.

" + "smithy.api#documentation": "

The error code that Config returned when the rule last\n\t\t\tfailed.

" } }, "LastErrorMessage": { "target": "com.amazonaws.configservice#String", "traits": { - "smithy.api#documentation": "

The error message that AWS Config returned when the rule last\n\t\t\tfailed.

" + "smithy.api#documentation": "

The error message that Config returned when the rule last\n\t\t\tfailed.

" } }, "FirstEvaluationStarted": { "target": "com.amazonaws.configservice#Boolean", "traits": { - "smithy.api#documentation": "

Indicates whether AWS Config has evaluated your resources\n\t\t\tagainst the rule at least once.

\n\t\t " + "smithy.api#documentation": "

Indicates whether Config has evaluated your resources\n\t\t\tagainst the rule at least once.

\n\t\t " } } }, "traits": { - "smithy.api#documentation": "

Status information for your AWS managed Config rules. The\n\t\t\tstatus includes information such as the last time the rule ran, the\n\t\t\tlast time it failed, and the related error for the last\n\t\t\tfailure.

\n\t\t

This action does not return status information about custom AWS\n\t\t\tConfig rules.

" + "smithy.api#documentation": "

Status information for your Config managed rules. The\n\t\t\tstatus includes information such as the last time the rule ran, the\n\t\t\tlast time it failed, and the related error for the last\n\t\t\tfailure.

\n\t\t

This action does not return status information about custom Config rules.

" } }, "com.amazonaws.configservice#ConfigRuleEvaluationStatusList": { @@ -1395,12 +1395,12 @@ "deliveryFrequency": { "target": "com.amazonaws.configservice#MaximumExecutionFrequency", "traits": { - "smithy.api#documentation": "

The frequency with which AWS Config delivers configuration\n\t\t\tsnapshots.

" + "smithy.api#documentation": "

The frequency with which Config delivers configuration\n\t\t\tsnapshots.

" } } }, "traits": { - "smithy.api#documentation": "

Provides options for how often AWS Config delivers\n\t\t\tconfiguration snapshots to the Amazon S3 bucket in your delivery\n\t\t\tchannel.

\n\n\t\t\n\t\t\n\n\t\t

The frequency for a rule that triggers evaluations for your\n\t\t\tresources when AWS Config delivers the configuration snapshot is set\n\t\t\tby one of two values, depending on which is less frequent:

\n\n\t\t \n\n\t\t

If the deliveryFrequency value is less frequent\n\t\t\tthan the MaximumExecutionFrequency value for a rule,\n\t\t\tAWS Config invokes the rule only as often as the\n\t\t\t\tdeliveryFrequency value.

\n\n\t\t
    \n
  1. \n\t\t\t\t

    For example, you want your rule to run evaluations when\n\t\t\t\t\tAWS Config delivers the configuration snapshot.

    \n\t\t\t
  2. \n
  3. \n\t\t\t\t

    You specify the MaximumExecutionFrequency\n\t\t\t\t\tvalue for Six_Hours.

    \n\t\t\t
  4. \n
  5. \n\t\t\t\t

    You then specify the delivery channel\n\t\t\t\t\t\tdeliveryFrequency value for\n\t\t\t\t\t\tTwentyFour_Hours.

    \n\t\t\t
  6. \n
  7. \n\t\t\t\t

    Because the value for deliveryFrequency is\n\t\t\t\t\tless frequent than MaximumExecutionFrequency,\n\t\t\t\t\tAWS Config invokes evaluations for the rule every 24 hours.\n\t\t\t\t

    \n\t\t\t
  8. \n
\n\n\n\t\t

You should set the MaximumExecutionFrequency value\n\t\t\tto be at least as frequent as the deliveryFrequency\n\t\t\tvalue. You can view the deliveryFrequency value by\n\t\t\tusing the DescribeDeliveryChannnels action.

\n\n\t\t

To update the deliveryFrequency with which AWS\n\t\t\tConfig delivers your configuration snapshots, use the\n\t\t\t\tPutDeliveryChannel action.

" + "smithy.api#documentation": "

Provides options for how often Config delivers\n\t\t\tconfiguration snapshots to the Amazon S3 bucket in your delivery\n\t\t\tchannel.

\n\n\t\t\n\t\t\n\n\t\t

The frequency for a rule that triggers evaluations for your\n\t\t\tresources when Config delivers the configuration snapshot is set\n\t\t\tby one of two values, depending on which is less frequent:

\n\n\t\t \n\n\t\t

If the deliveryFrequency value is less frequent\n\t\t\tthan the MaximumExecutionFrequency value for a rule,\n\t\t\tConfig invokes the rule only as often as the\n\t\t\t\tdeliveryFrequency value.

\n\n\t\t
    \n
  1. \n\t\t\t\t

    For example, you want your rule to run evaluations when\n\t\t\t\t\tConfig delivers the configuration snapshot.

    \n\t\t\t
  2. \n
  3. \n\t\t\t\t

    You specify the MaximumExecutionFrequency\n\t\t\t\t\tvalue for Six_Hours.

    \n\t\t\t
  4. \n
  5. \n\t\t\t\t

    You then specify the delivery channel\n\t\t\t\t\t\tdeliveryFrequency value for\n\t\t\t\t\t\tTwentyFour_Hours.

    \n\t\t\t
  6. \n
  7. \n\t\t\t\t

    Because the value for deliveryFrequency is\n\t\t\t\t\tless frequent than MaximumExecutionFrequency,\n\t\t\t\t\tConfig invokes evaluations for the rule every 24 hours.\n\t\t\t\t

    \n\t\t\t
  8. \n
\n\n\n\t\t

You should set the MaximumExecutionFrequency value\n\t\t\tto be at least as frequent as the deliveryFrequency\n\t\t\tvalue. You can view the deliveryFrequency value by\n\t\t\tusing the DescribeDeliveryChannnels action.

\n\n\t\t

To update the deliveryFrequency with which Config delivers your configuration snapshots, use the\n\t\t\t\tPutDeliveryChannel action.

" } }, "com.amazonaws.configservice#ConfigStreamDeliveryInfo": { @@ -1409,7 +1409,7 @@ "lastStatus": { "target": "com.amazonaws.configservice#DeliveryStatus", "traits": { - "smithy.api#documentation": "

Status of the last attempted delivery.

\n\t\t

\n\t\t\t Note Providing an SNS topic on a\n\t\t\t\tDeliveryChannel for AWS Config is optional. If the SNS\n\t\t\tdelivery is turned off, the last status will be Not_Applicable.

" + "smithy.api#documentation": "

Status of the last attempted delivery.

\n\t\t

\n\t\t\t Note Providing an SNS topic on a\n\t\t\t\tDeliveryChannel for Config is optional. If the SNS\n\t\t\tdelivery is turned off, the last status will be Not_Applicable.

" } }, "lastErrorCode": { @@ -1480,7 +1480,7 @@ "CreatedBy": { "target": "com.amazonaws.configservice#StringWithCharLimit256", "traits": { - "smithy.api#documentation": "

AWS service that created the configuration aggregator.

" + "smithy.api#documentation": "

Amazon Web Services service that created the configuration aggregator.

" } } }, @@ -1534,7 +1534,7 @@ "accountId": { "target": "com.amazonaws.configservice#AccountId", "traits": { - "smithy.api#documentation": "

The 12-digit AWS account ID associated with the\n\t\t\tresource.

" + "smithy.api#documentation": "

The 12-digit Amazon Web Services account ID associated with the\n\t\t\tresource.

" } }, "configurationItemCaptureTime": { @@ -1570,7 +1570,7 @@ "resourceType": { "target": "com.amazonaws.configservice#ResourceType", "traits": { - "smithy.api#documentation": "

The type of AWS resource.

" + "smithy.api#documentation": "

The type of Amazon Web Services resource.

" } }, "resourceId": { @@ -1612,13 +1612,13 @@ "relatedEvents": { "target": "com.amazonaws.configservice#RelatedEventList", "traits": { - "smithy.api#documentation": "

A list of CloudTrail event IDs.

\n\t\t

A populated field indicates that the current configuration was\n\t\t\tinitiated by the events recorded in the CloudTrail log. For more\n\t\t\tinformation about CloudTrail, see What Is AWS CloudTrail.

\n\t\t

An empty field indicates that the current configuration was not\n\t\t\tinitiated by any event. As of Version 1.3, the relatedEvents field is empty. \n\t\t\tYou can access the LookupEvents API in the AWS CloudTrail API Reference to retrieve the events for the resource.

" + "smithy.api#documentation": "

A list of CloudTrail event IDs.

\n\t\t

A populated field indicates that the current configuration was\n\t\t\tinitiated by the events recorded in the CloudTrail log. For more\n\t\t\tinformation about CloudTrail, see What Is CloudTrail.

\n\t\t

An empty field indicates that the current configuration was not\n\t\t\tinitiated by any event. As of Version 1.3, the relatedEvents field is empty. \n\t\t\tYou can access the LookupEvents API in the CloudTrail API Reference to retrieve the events for the resource.

" } }, "relationships": { "target": "com.amazonaws.configservice#RelationshipList", "traits": { - "smithy.api#documentation": "

A list of related AWS resources.

" + "smithy.api#documentation": "

A list of related Amazon Web Services resources.

" } }, "configuration": { @@ -1630,7 +1630,7 @@ "supplementaryConfiguration": { "target": "com.amazonaws.configservice#SupplementaryConfiguration", "traits": { - "smithy.api#documentation": "

Configuration attributes that AWS Config returns for certain\n\t\t\tresource types to supplement the information returned for the\n\t\t\t\tconfiguration parameter.

" + "smithy.api#documentation": "

Configuration attributes that Config returns for certain\n\t\t\tresource types to supplement the information returned for the\n\t\t\t\tconfiguration parameter.

" } } }, @@ -1683,24 +1683,24 @@ "name": { "target": "com.amazonaws.configservice#RecorderName", "traits": { - "smithy.api#documentation": "

The name of the recorder. By default, AWS Config automatically\n\t\t\tassigns the name \"default\" when creating the configuration recorder.\n\t\t\tYou cannot change the assigned name.

" + "smithy.api#documentation": "

The name of the recorder. By default, Config automatically\n\t\t\tassigns the name \"default\" when creating the configuration recorder.\n\t\t\tYou cannot change the assigned name.

" } }, "roleARN": { "target": "com.amazonaws.configservice#String", "traits": { - "smithy.api#documentation": "

Amazon Resource Name (ARN) of the IAM role used to describe the\n\t\t\tAWS resources associated with the account.

" + "smithy.api#documentation": "

Amazon Resource Name (ARN) of the IAM role used to describe the\n\t\t\tAmazon Web Services resources associated with the account.

" } }, "recordingGroup": { "target": "com.amazonaws.configservice#RecordingGroup", "traits": { - "smithy.api#documentation": "

Specifies the types of AWS resources for which AWS Config\n\t\t\trecords configuration changes.

" + "smithy.api#documentation": "

Specifies the types of Amazon Web Services resources for which Config\n\t\t\trecords configuration changes.

" } } }, "traits": { - "smithy.api#documentation": "

An object that represents the recording of configuration\n\t\t\tchanges of an AWS resource.

" + "smithy.api#documentation": "

An object that represents the recording of configuration\n\t\t\tchanges of an Amazon Web Services resource.

" } }, "com.amazonaws.configservice#ConfigurationRecorderList": { @@ -1795,7 +1795,7 @@ "ConfigRuleNames": { "target": "com.amazonaws.configservice#ConformancePackConfigRuleNames", "traits": { - "smithy.api#documentation": "

Filters the results by AWS Config rule names.

" + "smithy.api#documentation": "

Filters the results by Config rule names.

" } }, "ComplianceType": { @@ -1806,7 +1806,7 @@ } }, "traits": { - "smithy.api#documentation": "

Filters the conformance pack by compliance types and AWS Config rule names.

" + "smithy.api#documentation": "

Filters the conformance pack by compliance types and Config rule names.

" } }, "com.amazonaws.configservice#ConformancePackComplianceResourceIds": { @@ -1913,7 +1913,7 @@ "DeliveryS3Bucket": { "target": "com.amazonaws.configservice#DeliveryS3Bucket", "traits": { - "smithy.api#documentation": "

Amazon S3 bucket where AWS Config stores conformance pack templates.

\n\t \n

This field is optional.

\n
" + "smithy.api#documentation": "

The name of the Amazon S3 bucket where Config stores conformance pack templates.

\n\t \n

This field is optional.

\n
" } }, "DeliveryS3KeyPrefix": { @@ -1937,12 +1937,12 @@ "CreatedBy": { "target": "com.amazonaws.configservice#StringWithCharLimit256", "traits": { - "smithy.api#documentation": "

AWS service that created the conformance pack.

" + "smithy.api#documentation": "

Amazon Web Services service that created the conformance pack.

" } } }, "traits": { - "smithy.api#documentation": "

Returns details of a conformance pack. A conformance pack is a collection of AWS Config rules and remediation actions that can be easily deployed in an account and a region.

" + "smithy.api#documentation": "

Returns details of a conformance pack. A conformance pack is a collection of Config rules and remediation actions that can be easily deployed in an account and a region.

" } }, "com.amazonaws.configservice#ConformancePackDetailList": { @@ -1963,7 +1963,7 @@ "ConfigRuleNames": { "target": "com.amazonaws.configservice#ConformancePackConfigRuleNames", "traits": { - "smithy.api#documentation": "

Filters the results by AWS Config rule names.

" + "smithy.api#documentation": "

Filters the results by Config rule names.

" } }, "ComplianceType": { @@ -1986,7 +1986,7 @@ } }, "traits": { - "smithy.api#documentation": "

Filters a conformance pack by AWS Config rule names, compliance types, AWS resource types, and resource IDs.

" + "smithy.api#documentation": "

Filters a conformance pack by Config rule names, compliance types, Amazon Web Services resource types, and resource IDs.

" } }, "com.amazonaws.configservice#ConformancePackEvaluationResult": { @@ -2008,14 +2008,14 @@ "ConfigRuleInvokedTime": { "target": "com.amazonaws.configservice#Date", "traits": { - "smithy.api#documentation": "

The time when AWS Config rule evaluated AWS resource.

", + "smithy.api#documentation": "

The time when Config rule evaluated Amazon Web Services resource.

", "smithy.api#required": {} } }, "ResultRecordedTime": { "target": "com.amazonaws.configservice#Date", "traits": { - "smithy.api#documentation": "

The time when AWS Config recorded the evaluation result.

", + "smithy.api#documentation": "

The time when Config recorded the evaluation result.

", "smithy.api#required": {} } }, @@ -2027,7 +2027,7 @@ } }, "traits": { - "smithy.api#documentation": "

The details of a conformance pack evaluation. Provides AWS Config rule and AWS resource type that was evaluated, the compliance of the conformance pack, related time stamps, and supplementary information.

" + "smithy.api#documentation": "

The details of a conformance pack evaluation. Provides Config rule and Amazon Web Services resource type that was evaluated, the compliance of the conformance pack, related time stamps, and supplementary information.

" } }, "com.amazonaws.configservice#ConformancePackId": { @@ -2119,7 +2119,7 @@ "ComplianceType": { "target": "com.amazonaws.configservice#ConformancePackComplianceType", "traits": { - "smithy.api#documentation": "

Compliance of the AWS Config rule.

\n\t\t

The allowed values are COMPLIANT, NON_COMPLIANT, and INSUFFICIENT_DATA.

" + "smithy.api#documentation": "

Compliance of the Config rule.

\n\t\t

The allowed values are COMPLIANT, NON_COMPLIANT, and INSUFFICIENT_DATA.

" } }, "Controls": { @@ -2130,7 +2130,7 @@ } }, "traits": { - "smithy.api#documentation": "

Compliance information of one or more AWS Config rules within a conformance pack. You can filter using AWS Config rule names and compliance types.

" + "smithy.api#documentation": "

Compliance information of one or more Config rules within a conformance pack. You can filter using Config rule names and compliance types.

" } }, "com.amazonaws.configservice#ConformancePackRuleComplianceList": { @@ -2211,14 +2211,14 @@ "ConformancePackState": { "target": "com.amazonaws.configservice#ConformancePackState", "traits": { - "smithy.api#documentation": "

Indicates deployment status of conformance pack.

\n\t\t

AWS Config sets the state of the conformance pack to:

\n\t\t ", + "smithy.api#documentation": "

Indicates deployment status of conformance pack.

\n\t\t

Config sets the state of the conformance pack to:

\n\t\t ", "smithy.api#required": {} } }, "StackArn": { "target": "com.amazonaws.configservice#StackArn", "traits": { - "smithy.api#documentation": "

Amazon Resource Name (ARN) of AWS CloudFormation stack.

", + "smithy.api#documentation": "

Amazon Resource Name (ARN) of CloudFormation stack.

", "smithy.api#required": {} } }, @@ -2353,7 +2353,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes the specified AWS Config rule and all of its evaluation\n\t\t\tresults.

\n\t\t

AWS Config sets the state of a rule to DELETING\n\t\t\tuntil the deletion is complete. You cannot update a rule while it is\n\t\t\tin this state. If you make a PutConfigRule or\n\t\t\t\tDeleteConfigRule request for the rule, you will\n\t\t\treceive a ResourceInUseException.

\n\t\t

You can check the state of a rule by using the\n\t\t\t\tDescribeConfigRules request.

" + "smithy.api#documentation": "

Deletes the specified Config rule and all of its evaluation\n\t\t\tresults.

\n\t\t

Config sets the state of a rule to DELETING\n\t\t\tuntil the deletion is complete. You cannot update a rule while it is\n\t\t\tin this state. If you make a PutConfigRule or\n\t\t\t\tDeleteConfigRule request for the rule, you will\n\t\t\treceive a ResourceInUseException.

\n\t\t

You can check the state of a rule by using the\n\t\t\t\tDescribeConfigRules request.

" } }, "com.amazonaws.configservice#DeleteConfigRuleRequest": { @@ -2362,7 +2362,7 @@ "ConfigRuleName": { "target": "com.amazonaws.configservice#ConfigRuleName", "traits": { - "smithy.api#documentation": "

The name of the AWS Config rule that you want to\n\t\t\tdelete.

", + "smithy.api#documentation": "

The name of the Config rule that you want to\n\t\t\tdelete.

", "smithy.api#required": {} } } @@ -2408,7 +2408,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes the configuration recorder.

\n\t\t

After the configuration recorder is deleted, AWS Config will\n\t\t\tnot record resource configuration changes until you create a new\n\t\t\tconfiguration recorder.

\n\t\t

This action does not delete the configuration information that\n\t\t\twas previously recorded. You will be able to access the previously\n\t\t\trecorded information by using the\n\t\t\t\tGetResourceConfigHistory action, but you will not\n\t\t\tbe able to access this information in the AWS Config console until\n\t\t\tyou create a new configuration recorder.

" + "smithy.api#documentation": "

Deletes the configuration recorder.

\n\t\t

After the configuration recorder is deleted, Config will\n\t\t\tnot record resource configuration changes until you create a new\n\t\t\tconfiguration recorder.

\n\t\t

This action does not delete the configuration information that\n\t\t\twas previously recorded. You will be able to access the previously\n\t\t\trecorded information by using the\n\t\t\t\tGetResourceConfigHistory action, but you will not\n\t\t\tbe able to access this information in the Config console until\n\t\t\tyou create a new configuration recorder.

" } }, "com.amazonaws.configservice#DeleteConfigurationRecorderRequest": { @@ -2440,7 +2440,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes the specified conformance pack and all the AWS Config rules, remediation actions, and all evaluation results within that \n\t\t\tconformance pack.

\n\t\t

AWS Config sets the conformance pack to DELETE_IN_PROGRESS until the deletion is complete. \n\t\t\tYou cannot update a conformance pack while it is in this state.

" + "smithy.api#documentation": "

Deletes the specified conformance pack and all the Config rules, remediation actions, and all evaluation results within that \n\t\t\tconformance pack.

\n\t\t

Config sets the conformance pack to DELETE_IN_PROGRESS until the deletion is complete. \n\t\t\tYou cannot update a conformance pack while it is in this state.

" } }, "com.amazonaws.configservice#DeleteConformancePackRequest": { @@ -2504,7 +2504,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes the evaluation results for the specified AWS Config\n\t\t\trule. You can specify one AWS Config rule per request. After you\n\t\t\tdelete the evaluation results, you can call the StartConfigRulesEvaluation API to start evaluating\n\t\t\tyour AWS resources against the rule.

" + "smithy.api#documentation": "

Deletes the evaluation results for the specified Config\n\t\t\trule. You can specify one Config rule per request. After you\n\t\t\tdelete the evaluation results, you can call the StartConfigRulesEvaluation API to start evaluating\n\t\t\tyour Amazon Web Services resources against the rule.

" } }, "com.amazonaws.configservice#DeleteEvaluationResultsRequest": { @@ -2513,7 +2513,7 @@ "ConfigRuleName": { "target": "com.amazonaws.configservice#StringWithCharLimit64", "traits": { - "smithy.api#documentation": "

The name of the AWS Config rule for which you want to delete\n\t\t\tthe evaluation results.

", + "smithy.api#documentation": "

The name of the Config rule for which you want to delete\n\t\t\tthe evaluation results.

", "smithy.api#required": {} } } @@ -2526,7 +2526,7 @@ "type": "structure", "members": {}, "traits": { - "smithy.api#documentation": "

The output when you delete the evaluation results for the\n\t\t\tspecified AWS Config rule.

" + "smithy.api#documentation": "

The output when you delete the evaluation results for the\n\t\t\tspecified Config rule.

" } }, "com.amazonaws.configservice#DeleteOrganizationConfigRule": { @@ -2546,7 +2546,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes the specified organization config rule and all of its evaluation results from all member accounts in that organization.

\n\t

Only a master account and a delegated administrator account can delete an organization config rule.\n\t\tWhen calling this API with a delegated administrator, you must ensure AWS Organizations \n\t\t\tListDelegatedAdministrator permissions are added.

\n\t\t

AWS Config sets the state of a rule to DELETE_IN_PROGRESS until the deletion is complete. \n\t\t\tYou cannot update a rule while it is in this state.

" + "smithy.api#documentation": "

Deletes the specified organization config rule and all of its evaluation results from all member accounts in that organization.

\n\t

Only a master account and a delegated administrator account can delete an organization config rule.\n\t\tWhen calling this API with a delegated administrator, you must ensure Organizations \n\t\t\tListDelegatedAdministrator permissions are added.

\n\t\t

Config sets the state of a rule to DELETE_IN_PROGRESS until the deletion is complete. \n\t\t\tYou cannot update a rule while it is in this state.

" } }, "com.amazonaws.configservice#DeleteOrganizationConfigRuleRequest": { @@ -2578,7 +2578,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes the specified organization conformance pack and all of the config rules and remediation actions from\n\t\t\tall member accounts in that organization.

\n

Only a master account or a delegated administrator account can delete an organization conformance pack.\n\tWhen calling this API with a delegated administrator, you must ensure AWS Organizations \n\t\tListDelegatedAdministrator permissions are added.

\n\t\t\t

AWS Config sets the state of a conformance pack to DELETE_IN_PROGRESS until the deletion is complete. \n\t\t\t\tYou cannot update a conformance pack while it is in this state.

" + "smithy.api#documentation": "

Deletes the specified organization conformance pack and all of the config rules and remediation actions from\n\t\t\tall member accounts in that organization.

\n

Only a master account or a delegated administrator account can delete an organization conformance pack.\n\tWhen calling this API with a delegated administrator, you must ensure Organizations \n\t\tListDelegatedAdministrator permissions are added.

\n\t\t\t

Config sets the state of a conformance pack to DELETE_IN_PROGRESS until the deletion is complete. \n\t\t\t\tYou cannot update a conformance pack while it is in this state.

" } }, "com.amazonaws.configservice#DeleteOrganizationConformancePackRequest": { @@ -2658,7 +2658,7 @@ "ConfigRuleName": { "target": "com.amazonaws.configservice#ConfigRuleName", "traits": { - "smithy.api#documentation": "

The name of the AWS Config rule for which you want to delete remediation configuration.

", + "smithy.api#documentation": "

The name of the Config rule for which you want to delete remediation configuration.

", "smithy.api#required": {} } }, @@ -2688,7 +2688,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes one or more remediation exceptions mentioned in the resource keys.

\n\t\t \n

AWS Config generates a remediation exception when a problem occurs executing a remediation action to a specific resource. \n\t\t\tRemediation exceptions blocks auto-remediation until the exception is cleared.

\n
" + "smithy.api#documentation": "

Deletes one or more remediation exceptions mentioned in the resource keys.

\n\t\t \n

Config generates a remediation exception when a problem occurs executing a remediation action to a specific resource. \n\t\t\tRemediation exceptions blocks auto-remediation until the exception is cleared.

\n
" } }, "com.amazonaws.configservice#DeleteRemediationExceptionsRequest": { @@ -2697,14 +2697,14 @@ "ConfigRuleName": { "target": "com.amazonaws.configservice#ConfigRuleName", "traits": { - "smithy.api#documentation": "

The name of the AWS Config rule for which you want to delete remediation exception configuration.

", + "smithy.api#documentation": "

The name of the Config rule for which you want to delete remediation exception configuration.

", "smithy.api#required": {} } }, "ResourceKeys": { "target": "com.amazonaws.configservice#RemediationExceptionResourceKeys", "traits": { - "smithy.api#documentation": "

An exception list of resource exception keys to be processed with the current request. AWS Config adds exception for each resource key. For example, AWS Config adds 3 exceptions for 3 resource keys.

", + "smithy.api#documentation": "

An exception list of resource exception keys to be processed with the current request. Config adds exception for each resource key. For example, Config adds 3 exceptions for 3 resource keys.

", "smithy.api#required": {} } } @@ -2735,7 +2735,7 @@ } ], "traits": { - "smithy.api#documentation": "

Records the configuration state for a custom resource that has been deleted. This API records a new ConfigurationItem with a ResourceDeleted status. You can retrieve the ConfigurationItems recorded for this resource in your AWS Config History.\n\t\t\t

" + "smithy.api#documentation": "

Records the configuration state for a custom resource that has been deleted. This API records a new ConfigurationItem with a ResourceDeleted status. You can retrieve the ConfigurationItems recorded for this resource in your Config History.\n\t\t\t

" } }, "com.amazonaws.configservice#DeleteResourceConfigRequest": { @@ -2803,7 +2803,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes the stored query for a single AWS account and a single AWS Region.

" + "smithy.api#documentation": "

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

" } }, "com.amazonaws.configservice#DeleteStoredQueryRequest": { @@ -2842,7 +2842,7 @@ } ], "traits": { - "smithy.api#documentation": "

Schedules delivery of a configuration snapshot to the Amazon S3\n\t\t\tbucket in the specified delivery channel. After the delivery has\n\t\t\tstarted, AWS Config sends the following notifications using an\n\t\t\tAmazon SNS topic that you have specified.

\n\t\t " + "smithy.api#documentation": "

Schedules delivery of a configuration snapshot to the Amazon S3\n\t\t\tbucket in the specified delivery channel. After the delivery has\n\t\t\tstarted, Config sends the following notifications using an\n\t\t\tAmazon SNS topic that you have specified.

\n\t\t " } }, "com.amazonaws.configservice#DeliverConfigSnapshotRequest": { @@ -2880,13 +2880,13 @@ "name": { "target": "com.amazonaws.configservice#ChannelName", "traits": { - "smithy.api#documentation": "

The name of the delivery channel. By default, AWS Config\n\t\t\tassigns the name \"default\" when creating the delivery channel. To\n\t\t\tchange the delivery channel name, you must use the\n\t\t\tDeleteDeliveryChannel action to delete your current delivery\n\t\t\tchannel, and then you must use the PutDeliveryChannel command to\n\t\t\tcreate a delivery channel that has the desired name.

" + "smithy.api#documentation": "

The name of the delivery channel. By default, Config\n\t\t\tassigns the name \"default\" when creating the delivery channel. To\n\t\t\tchange the delivery channel name, you must use the\n\t\t\tDeleteDeliveryChannel action to delete your current delivery\n\t\t\tchannel, and then you must use the PutDeliveryChannel command to\n\t\t\tcreate a delivery channel that has the desired name.

" } }, "s3BucketName": { "target": "com.amazonaws.configservice#String", "traits": { - "smithy.api#documentation": "

The name of the Amazon S3 bucket to which AWS Config delivers\n\t\t\tconfiguration snapshots and configuration history files.

\n\t\t

If you specify a bucket that belongs to another AWS account,\n\t\t\tthat bucket must have policies that grant access permissions to AWS\n\t\t\tConfig. For more information, see Permissions for the Amazon S3 Bucket in the AWS Config\n\t\t\tDeveloper Guide.

" + "smithy.api#documentation": "

The name of the Amazon S3 bucket to which Config delivers\n\t\t\tconfiguration snapshots and configuration history files.

\n\t\t

If you specify a bucket that belongs to another Amazon Web Services account,\n\t\t\tthat bucket must have policies that grant access permissions to Config. For more information, see Permissions for the Amazon S3 Bucket in the Config\n\t\t\tDeveloper Guide.

" } }, "s3KeyPrefix": { @@ -2898,24 +2898,24 @@ "s3KmsKeyArn": { "target": "com.amazonaws.configservice#String", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the AWS Key Management Service (KMS) customer managed key (CMK) used to encrypt objects delivered by AWS Config.\n\t\t\tMust belong to the same Region as the destination S3 bucket.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Key Management Service (KMS ) KMS key (KMS key) used to encrypt objects delivered by Config.\n\t\t\tMust belong to the same Region as the destination S3 bucket.

" } }, "snsTopicARN": { "target": "com.amazonaws.configservice#String", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon SNS topic to which\n\t\t\tAWS Config sends notifications about configuration\n\t\t\tchanges.

\n\t\t

If you choose a topic from another account, the topic must have\n\t\t\tpolicies that grant access permissions to AWS Config. For more\n\t\t\tinformation, see Permissions for the Amazon SNS Topic in the AWS Config\n\t\t\tDeveloper Guide.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon SNS topic to which\n\t\t\tConfig sends notifications about configuration\n\t\t\tchanges.

\n\t\t

If you choose a topic from another account, the topic must have\n\t\t\tpolicies that grant access permissions to Config. For more\n\t\t\tinformation, see Permissions for the Amazon SNS Topic in the Config\n\t\t\tDeveloper Guide.

" } }, "configSnapshotDeliveryProperties": { "target": "com.amazonaws.configservice#ConfigSnapshotDeliveryProperties", "traits": { - "smithy.api#documentation": "

The options for how often AWS Config delivers configuration\n\t\t\tsnapshots to the Amazon S3 bucket.

" + "smithy.api#documentation": "

The options for how often Config delivers configuration\n\t\t\tsnapshots to the Amazon S3 bucket.

" } } }, "traits": { - "smithy.api#documentation": "

The channel through which AWS Config delivers notifications and\n\t\t\tupdated configuration states.

" + "smithy.api#documentation": "

The channel through which Config delivers notifications and\n\t\t\tupdated configuration states.

" } }, "com.amazonaws.configservice#DeliveryChannelList": { @@ -3028,7 +3028,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns a list of compliant and noncompliant rules with the\n\t\t\tnumber of resources for compliant and noncompliant rules.\n\t\t\t

\n\t\t \n\t\t\t

The results can return an empty result page, but if you\n\t\t\t\thave a nextToken, the results are displayed on the next\n\t\t\t\tpage.

\n\t\t
", + "smithy.api#documentation": "

Returns a list of compliant and noncompliant rules with the\n\t\t\tnumber of resources for compliant and noncompliant rules. Does not display rules that do not have compliance results. \n\t\t\t

\n\t\t \n\t\t\t

The results can return an empty result page, but if you\n\t\t\t\thave a nextToken, the results are displayed on the next\n\t\t\t\tpage.

\n\t\t
", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -3055,7 +3055,7 @@ "Limit": { "target": "com.amazonaws.configservice#GroupByAPILimit", "traits": { - "smithy.api#documentation": "

The maximum number of evaluation results returned on each page.\n\t\t\tThe default is\n\t\t\tmaximum.\n\t\t\tIf you specify 0, AWS Config uses the default.

" + "smithy.api#documentation": "

The maximum number of evaluation results returned on each page.\n\t\t\tThe default is\n\t\t\tmaximum.\n\t\t\tIf you specify 0, Config uses the default.

" } }, "NextToken": { @@ -3106,7 +3106,7 @@ } ], "traits": { - "smithy.api#documentation": "

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

\n\t\t \n

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

\n
", + "smithy.api#documentation": "

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

\n\t\t \n

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

\n
", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -3134,7 +3134,7 @@ "Limit": { "target": "com.amazonaws.configservice#Limit", "traits": { - "smithy.api#documentation": "

The maximum number of conformance packs compliance details returned on each page. The default is maximum. If you specify 0, AWS Config uses the default.

" + "smithy.api#documentation": "

The maximum number of conformance packs compliance details returned on each page. The default is maximum. If you specify 0, Config uses the default.

" } }, "NextToken": { @@ -3197,7 +3197,7 @@ "Limit": { "target": "com.amazonaws.configservice#Limit", "traits": { - "smithy.api#documentation": "

The maximum number of AggregationAuthorizations returned on\n\t\t\teach page. The default is maximum. If you specify 0, AWS Config uses\n\t\t\tthe default.

" + "smithy.api#documentation": "

The maximum number of AggregationAuthorizations returned on\n\t\t\teach page. The default is maximum. If you specify 0, Config uses\n\t\t\tthe default.

" } }, "NextToken": { @@ -3245,7 +3245,7 @@ } ], "traits": { - "smithy.api#documentation": "

Indicates whether the specified AWS Config rules are compliant.\n\t\t\tIf a rule is noncompliant, this action returns the number of AWS\n\t\t\tresources that do not comply with the rule.

\n\t\t

A rule is compliant if all of the evaluated resources comply\n\t\t\twith it. It is noncompliant if any of these resources do not\n\t\t\tcomply.

\n\t\t

If AWS Config has no current evaluation results for the rule,\n\t\t\tit returns INSUFFICIENT_DATA. This result might\n\t\t\tindicate one of the following conditions:

\n\t\t ", + "smithy.api#documentation": "

Indicates whether the specified Config rules are compliant.\n\t\t\tIf a rule is noncompliant, this action returns the number of Amazon Web Services\n\t\t\tresources that do not comply with the rule.

\n\t\t

A rule is compliant if all of the evaluated resources comply\n\t\t\twith it. It is noncompliant if any of these resources do not\n\t\t\tcomply.

\n\t\t

If Config has no current evaluation results for the rule,\n\t\t\tit returns INSUFFICIENT_DATA. This result might\n\t\t\tindicate one of the following conditions:

\n\t\t ", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -3259,7 +3259,7 @@ "ConfigRuleNames": { "target": "com.amazonaws.configservice#ConfigRuleNames", "traits": { - "smithy.api#documentation": "

Specify one or more AWS Config rule names to filter the results\n\t\t\tby rule.

" + "smithy.api#documentation": "

Specify one or more Config rule names to filter the results\n\t\t\tby rule.

" } }, "ComplianceTypes": { @@ -3285,7 +3285,7 @@ "ComplianceByConfigRules": { "target": "com.amazonaws.configservice#ComplianceByConfigRules", "traits": { - "smithy.api#documentation": "

Indicates whether each of the specified AWS Config rules is\n\t\t\tcompliant.

" + "smithy.api#documentation": "

Indicates whether each of the specified Config rules is\n\t\t\tcompliant.

" } }, "NextToken": { @@ -3316,7 +3316,7 @@ } ], "traits": { - "smithy.api#documentation": "

Indicates whether the specified AWS resources are compliant. If\n\t\t\ta resource is noncompliant, this action returns the number of AWS\n\t\t\tConfig rules that the resource does not comply with.

\n\t\t

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

\n\t\t

If AWS Config has no current evaluation results for the\n\t\t\tresource, it returns INSUFFICIENT_DATA. This result\n\t\t\tmight indicate one of the following conditions about the rules that\n\t\t\tevaluate the resource:

\n\t\t ", + "smithy.api#documentation": "

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

\n\t\t

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

\n\t\t

If Config has no current evaluation results for the\n\t\t\tresource, it returns INSUFFICIENT_DATA. This result\n\t\t\tmight indicate one of the following conditions about the rules that\n\t\t\tevaluate the resource:

\n\t\t ", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -3331,13 +3331,13 @@ "ResourceType": { "target": "com.amazonaws.configservice#StringWithCharLimit256", "traits": { - "smithy.api#documentation": "

The types of AWS resources for which you want compliance\n\t\t\tinformation (for example, AWS::EC2::Instance). For this\n\t\t\taction, you can specify that the resource type is an AWS account by\n\t\t\tspecifying AWS::::Account.

" + "smithy.api#documentation": "

The types of Amazon Web Services resources for which you want compliance\n\t\t\tinformation (for example, AWS::EC2::Instance). For this\n\t\t\taction, you can specify that the resource type is an Amazon Web Services account by\n\t\t\tspecifying AWS::::Account.

" } }, "ResourceId": { "target": "com.amazonaws.configservice#BaseResourceId", "traits": { - "smithy.api#documentation": "

The ID of the AWS resource for which you want compliance\n\t\t\tinformation. You can specify only one resource ID. If you specify a\n\t\t\tresource ID, you must also specify a type for\n\t\t\t\tResourceType.

" + "smithy.api#documentation": "

The ID of the Amazon Web Services resource for which you want compliance\n\t\t\tinformation. You can specify only one resource ID. If you specify a\n\t\t\tresource ID, you must also specify a type for\n\t\t\t\tResourceType.

" } }, "ComplianceTypes": { @@ -3349,7 +3349,7 @@ "Limit": { "target": "com.amazonaws.configservice#Limit", "traits": { - "smithy.api#documentation": "

The maximum number of evaluation results returned on each page.\n\t\t\tThe default is 10. You cannot specify a number greater than 100. If\n\t\t\tyou specify 0, AWS Config uses the default.

" + "smithy.api#documentation": "

The maximum number of evaluation results returned on each page.\n\t\t\tThe default is 10. You cannot specify a number greater than 100. If\n\t\t\tyou specify 0, Config uses the default.

" } }, "NextToken": { @@ -3369,7 +3369,7 @@ "ComplianceByResources": { "target": "com.amazonaws.configservice#ComplianceByResources", "traits": { - "smithy.api#documentation": "

Indicates whether the specified AWS resource complies with all\n\t\t\tof the AWS Config rules that evaluate it.

" + "smithy.api#documentation": "

Indicates whether the specified Amazon Web Services resource complies with all\n\t\t\tof the Config rules that evaluate it.

" } }, "NextToken": { @@ -3403,7 +3403,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns status information for each of your AWS managed Config\n\t\t\trules. The status includes information such as the last time AWS\n\t\t\tConfig invoked the rule, the last time AWS Config failed to invoke\n\t\t\tthe rule, and the related error for the last failure.

", + "smithy.api#documentation": "

Returns status information for each of your Config managed rules. The status includes information such as the last time Config invoked the rule, the last time Config failed to invoke\n\t\t\tthe rule, and the related error for the last failure.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -3418,7 +3418,7 @@ "ConfigRuleNames": { "target": "com.amazonaws.configservice#ConfigRuleNames", "traits": { - "smithy.api#documentation": "

The name of the AWS managed Config rules for which you want\n\t\t\tstatus information. If you do not specify any names, AWS Config\n\t\t\treturns status information for all AWS managed Config rules that you\n\t\t\tuse.

" + "smithy.api#documentation": "

The name of the Config managed rules for which you want\n\t\t\tstatus information. If you do not specify any names, Config\n\t\t\treturns status information for all Config managed rules that you\n\t\t\tuse.

" } }, "NextToken": { @@ -3430,7 +3430,7 @@ "Limit": { "target": "com.amazonaws.configservice#RuleLimit", "traits": { - "smithy.api#documentation": "

The number of rule evaluation results that you want\n\t\t\treturned.

\n\t\t\n\t\t

This parameter is required if the rule limit for your account\n\t\t\tis more than the default of 150 rules.

\n\t\t

For information about requesting a rule limit increase, see\n\t\t\t\tAWS Config Limits in the AWS General\n\t\t\t\tReference Guide.

" + "smithy.api#documentation": "

The number of rule evaluation results that you want\n\t\t\treturned.

\n\t\t\n\t\t

This parameter is required if the rule limit for your account\n\t\t\tis more than the default of 150 rules.

\n\t\t

For information about requesting a rule limit increase, see\n\t\t\t\tConfig Limits in the Amazon Web Services General\n\t\t\t\tReference Guide.

" } } }, @@ -3444,7 +3444,7 @@ "ConfigRulesEvaluationStatus": { "target": "com.amazonaws.configservice#ConfigRuleEvaluationStatusList", "traits": { - "smithy.api#documentation": "

Status information about your AWS managed Config\n\t\t\trules.

" + "smithy.api#documentation": "

Status information about your Config managed rules.

" } }, "NextToken": { @@ -3475,7 +3475,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns details about your AWS Config rules.

", + "smithy.api#documentation": "

Returns details about your Config rules.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -3489,7 +3489,7 @@ "ConfigRuleNames": { "target": "com.amazonaws.configservice#ConfigRuleNames", "traits": { - "smithy.api#documentation": "

The names of the AWS Config rules for which you want details.\n\t\t\tIf you do not specify any names, AWS Config returns details for all\n\t\t\tyour rules.

" + "smithy.api#documentation": "

The names of the Config rules for which you want details.\n\t\t\tIf you do not specify any names, Config returns details for all\n\t\t\tyour rules.

" } }, "NextToken": { @@ -3509,7 +3509,7 @@ "ConfigRules": { "target": "com.amazonaws.configservice#ConfigRules", "traits": { - "smithy.api#documentation": "

The details about your AWS Config rules.

" + "smithy.api#documentation": "

The details about your Config rules.

" } }, "NextToken": { @@ -3546,7 +3546,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns status information for sources within an aggregator.\n\t\t\tThe status includes information about the last time AWS Config verified authorization between the source account and an aggregator account. In case of a failure, the status contains the related error code or message.

", + "smithy.api#documentation": "

Returns status information for sources within an aggregator.\n\t\t\tThe status includes information about the last time Config verified authorization between the source account and an aggregator account. In case of a failure, the status contains the related error code or message.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -3580,7 +3580,7 @@ "Limit": { "target": "com.amazonaws.configservice#Limit", "traits": { - "smithy.api#documentation": "

The maximum number of AggregatorSourceStatus returned on each\n\t\t\tpage. The default is maximum. If you specify 0, AWS Config uses the\n\t\t\tdefault.

" + "smithy.api#documentation": "

The maximum number of AggregatorSourceStatus returned on each\n\t\t\tpage. The default is maximum. If you specify 0, Config uses the\n\t\t\tdefault.

" } } } @@ -3652,7 +3652,7 @@ "Limit": { "target": "com.amazonaws.configservice#Limit", "traits": { - "smithy.api#documentation": "

The maximum number of configuration aggregators returned on\n\t\t\teach page. The default is maximum. If you specify 0, AWS Config uses\n\t\t\tthe default.

" + "smithy.api#documentation": "

The maximum number of configuration aggregators returned on\n\t\t\teach page. The default is maximum. If you specify 0, Config uses\n\t\t\tthe default.

" } } } @@ -3826,7 +3826,7 @@ "Limit": { "target": "com.amazonaws.configservice#DescribeConformancePackComplianceLimit", "traits": { - "smithy.api#documentation": "

The maximum number of AWS Config rules within a conformance pack are returned on each page.

" + "smithy.api#documentation": "

The maximum number of Config rules within a conformance pack are returned on each page.

" } }, "NextToken": { @@ -3969,7 +3969,7 @@ "ConformancePackNames": { "target": "com.amazonaws.configservice#ConformancePackNamesList", "traits": { - "smithy.api#documentation": "

Comma-separated list of conformance pack names for which you want details. If you do not specify any names, AWS Config returns details for all your conformance packs.

" + "smithy.api#documentation": "

Comma-separated list of conformance pack names for which you want details. If you do not specify any names, Config returns details for all your conformance packs.

" } }, "Limit": { @@ -4131,13 +4131,13 @@ "OrganizationConfigRuleNames": { "target": "com.amazonaws.configservice#OrganizationConfigRuleNames", "traits": { - "smithy.api#documentation": "

The names of organization config rules for which you want status details. If you do not specify any names, AWS Config returns details for all your organization AWS Confg rules.

" + "smithy.api#documentation": "

The names of organization config rules for which you want status details. If you do not specify any names, Config returns details for all your organization Config rules.

" } }, "Limit": { "target": "com.amazonaws.configservice#CosmosPageLimit", "traits": { - "smithy.api#documentation": "

The maximum number of OrganizationConfigRuleStatuses returned on each page. If you do no specify a number, AWS Config uses the default. The default is 100.

" + "smithy.api#documentation": "

The maximum number of OrganizationConfigRuleStatuses returned on each page. If you do no specify a number, Config uses the default. The default is 100.

" } }, "NextToken": { @@ -4203,13 +4203,13 @@ "OrganizationConfigRuleNames": { "target": "com.amazonaws.configservice#OrganizationConfigRuleNames", "traits": { - "smithy.api#documentation": "

The names of organization config rules for which you want details. If you do not specify any names, AWS Config returns details for all your organization config rules.

" + "smithy.api#documentation": "

The names of organization config rules for which you want details. If you do not specify any names, Config returns details for all your organization config rules.

" } }, "Limit": { "target": "com.amazonaws.configservice#CosmosPageLimit", "traits": { - "smithy.api#documentation": "

The maximum number of organization config rules returned on each page. If you do no specify a number, AWS Config uses the default. The default is 100.

" + "smithy.api#documentation": "

The maximum number of organization config rules returned on each page. If you do no specify a number, Config uses the default. The default is 100.

" } }, "NextToken": { @@ -4275,13 +4275,13 @@ "OrganizationConformancePackNames": { "target": "com.amazonaws.configservice#OrganizationConformancePackNames", "traits": { - "smithy.api#documentation": "

The names of organization conformance packs for which you want status details. \n\t\t\tIf you do not specify any names, AWS Config returns details for all your organization conformance packs.

" + "smithy.api#documentation": "

The names of organization conformance packs for which you want status details. \n\t\t\tIf you do not specify any names, Config returns details for all your organization conformance packs.

" } }, "Limit": { "target": "com.amazonaws.configservice#CosmosPageLimit", "traits": { - "smithy.api#documentation": "

The maximum number of OrganizationConformancePackStatuses returned on each page. \n\t\t\tIf you do no specify a number, AWS Config uses the default. The default is 100.

" + "smithy.api#documentation": "

The maximum number of OrganizationConformancePackStatuses returned on each page. \n\t\t\tIf you do no specify a number, Config uses the default. The default is 100.

" } }, "NextToken": { @@ -4353,7 +4353,7 @@ "Limit": { "target": "com.amazonaws.configservice#CosmosPageLimit", "traits": { - "smithy.api#documentation": "

The maximum number of organization config packs returned on each page. If you do no specify a\n\t\t\tnumber, AWS Config uses the default. The default is 100.

" + "smithy.api#documentation": "

The maximum number of organization config packs returned on each page. If you do no specify a\n\t\t\tnumber, Config uses the default. The default is 100.

" } }, "NextToken": { @@ -4425,7 +4425,7 @@ "Limit": { "target": "com.amazonaws.configservice#DescribePendingAggregationRequestsLimit", "traits": { - "smithy.api#documentation": "

The maximum number of evaluation results returned on each page.\n\t\t\tThe default is maximum. If you specify 0, AWS Config uses the\n\t\t\tdefault.

" + "smithy.api#documentation": "

The maximum number of evaluation results returned on each page.\n\t\t\tThe default is maximum. If you specify 0, Config uses the\n\t\t\tdefault.

" } }, "NextToken": { @@ -4471,7 +4471,7 @@ "ConfigRuleNames": { "target": "com.amazonaws.configservice#ConfigRuleNames", "traits": { - "smithy.api#documentation": "

A list of AWS Config rule names of remediation configurations for which you want details.

", + "smithy.api#documentation": "

A list of Config rule names of remediation configurations for which you want details.

", "smithy.api#required": {} } } @@ -4505,7 +4505,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the details of one or more remediation exceptions. A detailed view of a remediation exception for a set of resources that includes an explanation of an exception and the time when the exception will be deleted. \n\t\t\tWhen you specify the limit and the next token, you receive a paginated response.

\n\t\t \n

AWS Config generates a remediation exception when a problem occurs executing a remediation action to a specific resource. \n\t\t\t\tRemediation exceptions blocks auto-remediation until the exception is cleared.

\n\t\t\t

When you specify the limit and the next token, you receive a paginated response.

\n\t\t\t

Limit and next token are not applicable if you request resources in batch. It is only applicable, when you request all resources.

\n
", + "smithy.api#documentation": "

Returns the details of one or more remediation exceptions. A detailed view of a remediation exception for a set of resources that includes an explanation of an exception and the time when the exception will be deleted. \n\t\t\tWhen you specify the limit and the next token, you receive a paginated response.

\n\t\t \n

Config generates a remediation exception when a problem occurs executing a remediation action to a specific resource. \n\t\t\t\tRemediation exceptions blocks auto-remediation until the exception is cleared.

\n\t\t\t

When you specify the limit and the next token, you receive a paginated response.

\n\t\t\t

Limit and next token are not applicable if you request resources in batch. It is only applicable, when you request all resources.

\n
", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -4519,20 +4519,20 @@ "ConfigRuleName": { "target": "com.amazonaws.configservice#ConfigRuleName", "traits": { - "smithy.api#documentation": "

The name of the AWS Config rule.

", + "smithy.api#documentation": "

The name of the Config rule.

", "smithy.api#required": {} } }, "ResourceKeys": { "target": "com.amazonaws.configservice#RemediationExceptionResourceKeys", "traits": { - "smithy.api#documentation": "

An exception list of resource exception keys to be processed with the current request. AWS Config adds exception for each resource key. For example, AWS Config adds 3 exceptions for 3 resource keys.

" + "smithy.api#documentation": "

An exception list of resource exception keys to be processed with the current request. Config adds exception for each resource key. For example, Config adds 3 exceptions for 3 resource keys.

" } }, "Limit": { "target": "com.amazonaws.configservice#Limit", "traits": { - "smithy.api#documentation": "

The maximum number of RemediationExceptionResourceKey returned on each page. The default is 25. If you specify 0, AWS Config uses the default.

" + "smithy.api#documentation": "

The maximum number of RemediationExceptionResourceKey returned on each page. The default is 25. If you specify 0, Config uses the default.

" } }, "NextToken": { @@ -4595,7 +4595,7 @@ "ConfigRuleName": { "target": "com.amazonaws.configservice#ConfigRuleName", "traits": { - "smithy.api#documentation": "

A list of AWS Config rule names.

", + "smithy.api#documentation": "

A list of Config rule names.

", "smithy.api#required": {} } }, @@ -4608,7 +4608,7 @@ "Limit": { "target": "com.amazonaws.configservice#Limit", "traits": { - "smithy.api#documentation": "

The maximum number of RemediationExecutionStatuses returned on each page. The default is maximum. If you specify 0, AWS Config uses the default.

" + "smithy.api#documentation": "

The maximum number of RemediationExecutionStatuses returned on each page. The default is maximum. If you specify 0, Config uses the default.

" } }, "NextToken": { @@ -4656,7 +4656,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the details of one or more retention configurations. If\n\t\t\tthe retention configuration name is not specified, this action\n\t\t\treturns the details for all the retention configurations for that\n\t\t\taccount.

\n\t\t \n\t\t\t

Currently, AWS Config supports only one retention\n\t\t\t\tconfiguration per region in your account.

\n\t\t
", + "smithy.api#documentation": "

Returns the details of one or more retention configurations. If\n\t\t\tthe retention configuration name is not specified, this action\n\t\t\treturns the details for all the retention configurations for that\n\t\t\taccount.

\n\t\t \n\t\t\t

Currently, Config supports only one retention\n\t\t\t\tconfiguration per region in your account.

\n\t\t
", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -4670,7 +4670,7 @@ "RetentionConfigurationNames": { "target": "com.amazonaws.configservice#RetentionConfigurationNameList", "traits": { - "smithy.api#documentation": "

A list of names of retention configurations for which you want\n\t\t\tdetails. If you do not specify a name, AWS Config returns details\n\t\t\tfor all the retention configurations for that account.

\n\t\t \n\t\t\t

Currently, AWS Config supports only one retention\n\t\t\t\tconfiguration per region in your account.

\n\t\t
" + "smithy.api#documentation": "

A list of names of retention configurations for which you want\n\t\t\tdetails. If you do not specify a name, Config returns details\n\t\t\tfor all the retention configurations for that account.

\n\t\t \n\t\t\t

Currently, Config supports only one retention\n\t\t\t\tconfiguration per region in your account.

\n\t\t
" } }, "NextToken": { @@ -4725,21 +4725,21 @@ "ComplianceResourceType": { "target": "com.amazonaws.configservice#StringWithCharLimit256", "traits": { - "smithy.api#documentation": "

The type of AWS resource that was evaluated.

", + "smithy.api#documentation": "

The type of Amazon Web Services resource that was evaluated.

", "smithy.api#required": {} } }, "ComplianceResourceId": { "target": "com.amazonaws.configservice#BaseResourceId", "traits": { - "smithy.api#documentation": "

The ID of the AWS resource that was evaluated.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services resource that was evaluated.

", "smithy.api#required": {} } }, "ComplianceType": { "target": "com.amazonaws.configservice#ComplianceType", "traits": { - "smithy.api#documentation": "

Indicates whether the AWS resource complies with the AWS Config\n\t\t\trule that it was evaluated against.

\n\t\t

For the Evaluation data type, AWS Config supports\n\t\t\tonly the COMPLIANT, NON_COMPLIANT, and\n\t\t\t\tNOT_APPLICABLE values. AWS Config does not support\n\t\t\tthe INSUFFICIENT_DATA value for this data\n\t\t\ttype.

\n\t\t

Similarly, AWS Config does not accept\n\t\t\t\tINSUFFICIENT_DATA as the value for\n\t\t\t\tComplianceType from a PutEvaluations\n\t\t\trequest. For example, an AWS Lambda function for a custom AWS Config\n\t\t\trule cannot pass an INSUFFICIENT_DATA value to AWS\n\t\t\tConfig.

", + "smithy.api#documentation": "

Indicates whether the Amazon Web Services resource complies with the Config\n\t\t\trule that it was evaluated against.

\n\t\t

For the Evaluation data type, Config supports\n\t\t\tonly the COMPLIANT, NON_COMPLIANT, and\n\t\t\t\tNOT_APPLICABLE values. Config does not support\n\t\t\tthe INSUFFICIENT_DATA value for this data\n\t\t\ttype.

\n\t\t

Similarly, Config does not accept\n\t\t\t\tINSUFFICIENT_DATA as the value for\n\t\t\t\tComplianceType from a PutEvaluations\n\t\t\trequest. For example, an Lambda function for a custom Config\n\t\t\trule cannot pass an INSUFFICIENT_DATA value to Config.

", "smithy.api#required": {} } }, @@ -4752,13 +4752,13 @@ "OrderingTimestamp": { "target": "com.amazonaws.configservice#OrderingTimestamp", "traits": { - "smithy.api#documentation": "

The time of the event in AWS Config that triggered the\n\t\t\tevaluation. For event-based evaluations, the time indicates when AWS\n\t\t\tConfig created the configuration item that triggered the evaluation.\n\t\t\tFor periodic evaluations, the time indicates when AWS Config\n\t\t\ttriggered the evaluation at the frequency that you specified (for\n\t\t\texample, every 24 hours).

", + "smithy.api#documentation": "

The time of the event in Config that triggered the\n\t\t\tevaluation. For event-based evaluations, the time indicates when Config created the configuration item that triggered the evaluation.\n\t\t\tFor periodic evaluations, the time indicates when Config\n\t\t\ttriggered the evaluation at the frequency that you specified (for\n\t\t\texample, every 24 hours).

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

Identifies an AWS resource and indicates whether it complies\n\t\t\twith the AWS Config rule that it was evaluated against.

" + "smithy.api#documentation": "

Identifies an Amazon Web Services resource and indicates whether it complies\n\t\t\twith the Config rule that it was evaluated against.

" } }, "com.amazonaws.configservice#EvaluationResult": { @@ -4773,19 +4773,19 @@ "ComplianceType": { "target": "com.amazonaws.configservice#ComplianceType", "traits": { - "smithy.api#documentation": "

Indicates whether the AWS resource complies with the AWS Config\n\t\t\trule that evaluated it.

\n\t\t

For the EvaluationResult data type, AWS Config\n\t\t\tsupports only the COMPLIANT,\n\t\t\tNON_COMPLIANT, and NOT_APPLICABLE values.\n\t\t\tAWS Config does not support the INSUFFICIENT_DATA value\n\t\t\tfor the EvaluationResult data type.

" + "smithy.api#documentation": "

Indicates whether the Amazon Web Services resource complies with the Config\n\t\t\trule that evaluated it.

\n\t\t

For the EvaluationResult data type, Config\n\t\t\tsupports only the COMPLIANT,\n\t\t\tNON_COMPLIANT, and NOT_APPLICABLE values.\n\t\t\tConfig does not support the INSUFFICIENT_DATA value\n\t\t\tfor the EvaluationResult data type.

" } }, "ResultRecordedTime": { "target": "com.amazonaws.configservice#Date", "traits": { - "smithy.api#documentation": "

The time when AWS Config recorded the evaluation\n\t\t\tresult.

" + "smithy.api#documentation": "

The time when Config recorded the evaluation\n\t\t\tresult.

" } }, "ConfigRuleInvokedTime": { "target": "com.amazonaws.configservice#Date", "traits": { - "smithy.api#documentation": "

The time when the AWS Config rule evaluated the AWS\n\t\t\tresource.

" + "smithy.api#documentation": "

The time when the Config rule evaluated the Amazon Web Services\n\t\t\tresource.

" } }, "Annotation": { @@ -4797,12 +4797,12 @@ "ResultToken": { "target": "com.amazonaws.configservice#String", "traits": { - "smithy.api#documentation": "

An encrypted token that associates an evaluation with an AWS\n\t\t\tConfig rule. The token identifies the rule, the AWS resource being\n\t\t\tevaluated, and the event that triggered the evaluation.

" + "smithy.api#documentation": "

An encrypted token that associates an evaluation with an Config rule. The token identifies the rule, the Amazon Web Services resource being\n\t\t\tevaluated, and the event that triggered the evaluation.

" } } }, "traits": { - "smithy.api#documentation": "

The details of an AWS Config evaluation. Provides the AWS\n\t\t\tresource that was evaluated, the compliance of the resource, related\n\t\t\ttime stamps, and supplementary information.

" + "smithy.api#documentation": "

The details of an Config evaluation. Provides the Amazon Web Services\n\t\t\tresource that was evaluated, the compliance of the resource, related\n\t\t\ttime stamps, and supplementary information.

" } }, "com.amazonaws.configservice#EvaluationResultIdentifier": { @@ -4811,13 +4811,13 @@ "EvaluationResultQualifier": { "target": "com.amazonaws.configservice#EvaluationResultQualifier", "traits": { - "smithy.api#documentation": "

Identifies an AWS Config rule used to evaluate an AWS resource,\n\t\t\tand provides the type and ID of the evaluated resource.

" + "smithy.api#documentation": "

Identifies an Config rule used to evaluate an Amazon Web Services resource,\n\t\t\tand provides the type and ID of the evaluated resource.

" } }, "OrderingTimestamp": { "target": "com.amazonaws.configservice#Date", "traits": { - "smithy.api#documentation": "

The time of the event that triggered the evaluation of your AWS\n\t\t\tresources. The time can indicate when AWS Config delivered a\n\t\t\tconfiguration item change notification, or it can indicate when AWS\n\t\t\tConfig delivered the configuration snapshot, depending on which\n\t\t\tevent triggered the evaluation.

" + "smithy.api#documentation": "

The time of the event that triggered the evaluation of your Amazon Web Services\n\t\t\tresources. The time can indicate when Config delivered a\n\t\t\tconfiguration item change notification, or it can indicate when Config delivered the configuration snapshot, depending on which\n\t\t\tevent triggered the evaluation.

" } } }, @@ -4831,24 +4831,24 @@ "ConfigRuleName": { "target": "com.amazonaws.configservice#ConfigRuleName", "traits": { - "smithy.api#documentation": "

The name of the AWS Config rule that was used in the\n\t\t\tevaluation.

" + "smithy.api#documentation": "

The name of the Config rule that was used in the\n\t\t\tevaluation.

" } }, "ResourceType": { "target": "com.amazonaws.configservice#StringWithCharLimit256", "traits": { - "smithy.api#documentation": "

The type of AWS resource that was evaluated.

" + "smithy.api#documentation": "

The type of Amazon Web Services resource that was evaluated.

" } }, "ResourceId": { "target": "com.amazonaws.configservice#BaseResourceId", "traits": { - "smithy.api#documentation": "

The ID of the evaluated AWS resource.

" + "smithy.api#documentation": "

The ID of the evaluated Amazon Web Services resource.

" } } }, "traits": { - "smithy.api#documentation": "

Identifies an AWS Config rule that evaluated an AWS resource,\n\t\t\tand provides the type and ID of the resource that the rule\n\t\t\tevaluated.

" + "smithy.api#documentation": "

Identifies an Config rule that evaluated an Amazon Web Services resource,\n\t\t\tand provides the type and ID of the resource that the rule\n\t\t\tevaluated.

" } }, "com.amazonaws.configservice#EvaluationResults": { @@ -4903,7 +4903,7 @@ } }, "traits": { - "smithy.api#documentation": "

The controls that AWS Config uses for executing remediations.

" + "smithy.api#documentation": "

The controls that Config uses for executing remediations.

" } }, "com.amazonaws.configservice#Expression": { @@ -4921,21 +4921,21 @@ "ComplianceResourceType": { "target": "com.amazonaws.configservice#StringWithCharLimit256", "traits": { - "smithy.api#documentation": "

The evaluated compliance resource type. AWS Config accepts AWS::::Account resource type.

", + "smithy.api#documentation": "

The evaluated compliance resource type. Config accepts AWS::::Account resource type.

", "smithy.api#required": {} } }, "ComplianceResourceId": { "target": "com.amazonaws.configservice#BaseResourceId", "traits": { - "smithy.api#documentation": "

The evaluated compliance resource ID. AWS Config accepts only AWS account ID.

", + "smithy.api#documentation": "

The evaluated compliance resource ID. Config accepts only Amazon Web Services account ID.

", "smithy.api#required": {} } }, "ComplianceType": { "target": "com.amazonaws.configservice#ComplianceType", "traits": { - "smithy.api#documentation": "

The compliance of the AWS resource. The valid values are COMPLIANT, NON_COMPLIANT, and NOT_APPLICABLE.

", + "smithy.api#documentation": "

The compliance of the Amazon Web Services resource. The valid values are COMPLIANT, NON_COMPLIANT, and NOT_APPLICABLE.

", "smithy.api#required": {} } }, @@ -4954,7 +4954,7 @@ } }, "traits": { - "smithy.api#documentation": "

Identifies an AWS resource and indicates whether it complies with the AWS Config rule that it was evaluated against.

" + "smithy.api#documentation": "

Identifies an Amazon Web Services resource and indicates whether it complies with the Config rule that it was evaluated against.

" } }, "com.amazonaws.configservice#FailedDeleteRemediationExceptionsBatch": { @@ -4963,7 +4963,7 @@ "FailureMessage": { "target": "com.amazonaws.configservice#String", "traits": { - "smithy.api#documentation": "

Returns a failure message for delete remediation exception. For example, AWS Config creates an exception due to an internal error.

" + "smithy.api#documentation": "

Returns a failure message for delete remediation exception. For example, Config creates an exception due to an internal error.

" } }, "FailedItems": { @@ -5081,7 +5081,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the evaluation results for the specified AWS Config\n\t\t\trule for a specific resource in a rule. The results indicate which\n\t\t\tAWS resources were evaluated by the rule, when each resource was\n\t\t\tlast evaluated, and whether each resource complies with the rule.

\n\t\t \n\t\t\t

The results can return an empty result page. But if you\n\t\t\t\thave a nextToken, the results are displayed on the next\n\t\t\t\tpage.

\n\t\t
", + "smithy.api#documentation": "

Returns the evaluation results for the specified Config\n\t\t\trule for a specific resource in a rule. The results indicate which\n\t\t\tAmazon Web Services resources were evaluated by the rule, when each resource was\n\t\t\tlast evaluated, and whether each resource complies with the rule.

\n\t\t \n\t\t\t

The results can return an empty result page. But if you\n\t\t\t\thave a nextToken, the results are displayed on the next\n\t\t\t\tpage.

\n\t\t
", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -5103,7 +5103,7 @@ "ConfigRuleName": { "target": "com.amazonaws.configservice#ConfigRuleName", "traits": { - "smithy.api#documentation": "

The name of the AWS Config rule for which you want compliance\n\t\t\tinformation.

", + "smithy.api#documentation": "

The name of the Config rule for which you want compliance\n\t\t\tinformation.

", "smithy.api#required": {} } }, @@ -5124,13 +5124,13 @@ "ComplianceType": { "target": "com.amazonaws.configservice#ComplianceType", "traits": { - "smithy.api#documentation": "

The resource compliance status.

\n\t\t \n\t\t\t

For the\n\t\t\t\t\tGetAggregateComplianceDetailsByConfigRuleRequest\n\t\t\t\tdata type, AWS Config supports only the COMPLIANT\n\t\t\t\tand NON_COMPLIANT. AWS Config does not support the\n\t\t\t\t\tNOT_APPLICABLE and\n\t\t\t\t\tINSUFFICIENT_DATA values.

\n\t\t
" + "smithy.api#documentation": "

The resource compliance status.

\n\t\t \n\t\t\t

For the\n\t\t\t\t\tGetAggregateComplianceDetailsByConfigRuleRequest\n\t\t\t\tdata type, Config supports only the COMPLIANT\n\t\t\t\tand NON_COMPLIANT. Config does not support the\n\t\t\t\t\tNOT_APPLICABLE and\n\t\t\t\t\tINSUFFICIENT_DATA values.

\n\t\t
" } }, "Limit": { "target": "com.amazonaws.configservice#Limit", "traits": { - "smithy.api#documentation": "

The maximum number of evaluation results returned on each page.\n\t\t\tThe default is 50. You cannot specify a number greater than 100. If\n\t\t\tyou specify 0, AWS Config uses the default.

" + "smithy.api#documentation": "

The maximum number of evaluation results returned on each page.\n\t\t\tThe default is 50. You cannot specify a number greater than 100. If\n\t\t\tyou specify 0, Config uses the default.

" } }, "NextToken": { @@ -5214,7 +5214,7 @@ "Limit": { "target": "com.amazonaws.configservice#GroupByAPILimit", "traits": { - "smithy.api#documentation": "

The maximum number of evaluation results returned on each page.\n\t\t\tThe default is 1000. You cannot specify a number greater than 1000.\n\t\t\tIf you specify 0, AWS Config uses the default.

" + "smithy.api#documentation": "

The maximum number of evaluation results returned on each page.\n\t\t\tThe default is 1000. You cannot specify a number greater than 1000.\n\t\t\tIf you specify 0, Config uses the default.

" } }, "NextToken": { @@ -5271,7 +5271,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the count of compliant and noncompliant conformance packs across all AWS Accounts and AWS Regions in an aggregator. You can filter based on AWS Account ID or AWS Region.

\n\t\t \n

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

\n
", + "smithy.api#documentation": "

Returns the count of compliant and noncompliant conformance packs across all Amazon Web Services accounts and Amazon Web Services Regions in an aggregator. You can filter based on Amazon Web Services account ID or Amazon Web Services Region.

\n\t\t \n

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

\n
", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -5298,13 +5298,13 @@ "GroupByKey": { "target": "com.amazonaws.configservice#AggregateConformancePackComplianceSummaryGroupKey", "traits": { - "smithy.api#documentation": "

Groups the result based on AWS Account ID or AWS Region.

" + "smithy.api#documentation": "

Groups the result based on Amazon Web Services account ID or Amazon Web Services Region.

" } }, "Limit": { "target": "com.amazonaws.configservice#Limit", "traits": { - "smithy.api#documentation": "

The maximum number of results returned on each page. The default is maximum. If you specify 0, AWS Config uses the default.

" + "smithy.api#documentation": "

The maximum number of results returned on each page. The default is maximum. If you specify 0, Config uses the default.

" } }, "NextToken": { @@ -5327,7 +5327,7 @@ "GroupByKey": { "target": "com.amazonaws.configservice#StringWithCharLimit256", "traits": { - "smithy.api#documentation": "

Groups the result based on AWS Account ID or AWS Region.

" + "smithy.api#documentation": "

Groups the result based on Amazon Web Services account ID or Amazon Web Services Region.

" } }, "NextToken": { @@ -5361,7 +5361,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the resource counts across accounts and regions that are present in your AWS Config aggregator. You can request the resource counts by providing filters and GroupByKey.

\n\t\t

For example, if the input contains accountID 12345678910 and region us-east-1 in filters, the API returns the count of resources in account ID 12345678910 and region us-east-1.\n\t\t\tIf the input contains ACCOUNT_ID as a GroupByKey, the API returns resource counts for all source accounts that are present in your aggregator.

", + "smithy.api#documentation": "

Returns the resource counts across accounts and regions that are present in your Config aggregator. You can request the resource counts by providing filters and GroupByKey.

\n\t\t

For example, if the input contains accountID 12345678910 and region us-east-1 in filters, the API returns the count of resources in account ID 12345678910 and region us-east-1.\n\t\t\tIf the input contains ACCOUNT_ID as a GroupByKey, the API returns resource counts for all source accounts that are present in your aggregator.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -5394,7 +5394,7 @@ "Limit": { "target": "com.amazonaws.configservice#GroupByAPILimit", "traits": { - "smithy.api#documentation": "

The maximum number of GroupedResourceCount objects returned on each page. The default is 1000. You cannot specify a number greater than 1000. If you specify 0, AWS Config uses the default.

" + "smithy.api#documentation": "

The maximum number of GroupedResourceCount objects returned on each page. The default is 1000. You cannot specify a number greater than 1000. If you specify 0, Config uses the default.

" } }, "NextToken": { @@ -5511,7 +5511,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the evaluation results for the specified AWS Config\n\t\t\trule. The results indicate which AWS resources were evaluated by the\n\t\t\trule, when each resource was last evaluated, and whether each\n\t\t\tresource complies with the rule.

", + "smithy.api#documentation": "

Returns the evaluation results for the specified Config\n\t\t\trule. The results indicate which Amazon Web Services resources were evaluated by the\n\t\t\trule, when each resource was last evaluated, and whether each\n\t\t\tresource complies with the rule.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -5526,7 +5526,7 @@ "ConfigRuleName": { "target": "com.amazonaws.configservice#StringWithCharLimit64", "traits": { - "smithy.api#documentation": "

The name of the AWS Config rule for which you want compliance\n\t\t\tinformation.

", + "smithy.api#documentation": "

The name of the Config rule for which you want compliance\n\t\t\tinformation.

", "smithy.api#required": {} } }, @@ -5539,7 +5539,7 @@ "Limit": { "target": "com.amazonaws.configservice#Limit", "traits": { - "smithy.api#documentation": "

The maximum number of evaluation results returned on each page.\n\t\t\tThe default is 10. You cannot specify a number greater than 100. If\n\t\t\tyou specify 0, AWS Config uses the default.

" + "smithy.api#documentation": "

The maximum number of evaluation results returned on each page.\n\t\t\tThe default is 10. You cannot specify a number greater than 100. If\n\t\t\tyou specify 0, Config uses the default.

" } }, "NextToken": { @@ -5559,7 +5559,7 @@ "EvaluationResults": { "target": "com.amazonaws.configservice#EvaluationResults", "traits": { - "smithy.api#documentation": "

Indicates whether the AWS resource complies with the specified\n\t\t\tAWS Config rule.

" + "smithy.api#documentation": "

Indicates whether the Amazon Web Services resource complies with the specified\n\t\t\tConfig rule.

" } }, "NextToken": { @@ -5587,7 +5587,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the evaluation results for the specified AWS resource.\n\t\t\tThe results indicate which AWS Config rules were used to evaluate\n\t\t\tthe resource, when each rule was last used, and whether the resource\n\t\t\tcomplies with each rule.

", + "smithy.api#documentation": "

Returns the evaluation results for the specified Amazon Web Services resource.\n\t\t\tThe results indicate which Config rules were used to evaluate\n\t\t\tthe resource, when each rule was last used, and whether the resource\n\t\t\tcomplies with each rule.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -5601,14 +5601,14 @@ "ResourceType": { "target": "com.amazonaws.configservice#StringWithCharLimit256", "traits": { - "smithy.api#documentation": "

The type of the AWS resource for which you want compliance\n\t\t\tinformation.

", + "smithy.api#documentation": "

The type of the Amazon Web Services resource for which you want compliance\n\t\t\tinformation.

", "smithy.api#required": {} } }, "ResourceId": { "target": "com.amazonaws.configservice#BaseResourceId", "traits": { - "smithy.api#documentation": "

The ID of the AWS resource for which you want compliance\n\t\t\tinformation.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services resource for which you want compliance\n\t\t\tinformation.

", "smithy.api#required": {} } }, @@ -5635,7 +5635,7 @@ "EvaluationResults": { "target": "com.amazonaws.configservice#EvaluationResults", "traits": { - "smithy.api#documentation": "

Indicates whether the specified AWS resource complies each AWS\n\t\t\tConfig rule.

" + "smithy.api#documentation": "

Indicates whether the specified Amazon Web Services resource complies each Config rule.

" } }, "NextToken": { @@ -5655,7 +5655,7 @@ "target": "com.amazonaws.configservice#GetComplianceSummaryByConfigRuleResponse" }, "traits": { - "smithy.api#documentation": "

Returns the number of AWS Config rules that are compliant and\n\t\t\tnoncompliant, up to a maximum of 25 for each.

" + "smithy.api#documentation": "

Returns the number of Config rules that are compliant and\n\t\t\tnoncompliant, up to a maximum of 25 for each.

" } }, "com.amazonaws.configservice#GetComplianceSummaryByConfigRuleResponse": { @@ -5664,7 +5664,7 @@ "ComplianceSummary": { "target": "com.amazonaws.configservice#ComplianceSummary", "traits": { - "smithy.api#documentation": "

The number of AWS Config rules that are compliant and the\n\t\t\tnumber that are noncompliant, up to a maximum of 25 for\n\t\t\teach.

" + "smithy.api#documentation": "

The number of Config rules that are compliant and the\n\t\t\tnumber that are noncompliant, up to a maximum of 25 for\n\t\t\teach.

" } } }, @@ -5695,7 +5695,7 @@ "ResourceTypes": { "target": "com.amazonaws.configservice#ResourceTypes", "traits": { - "smithy.api#documentation": "

Specify one or more resource types to get the number of\n\t\t\tresources that are compliant and the number that are noncompliant\n\t\t\tfor each resource type.

\n\t\t

For this request, you can specify an AWS resource type such as\n\t\t\t\tAWS::EC2::Instance. You can specify that the\n\t\t\tresource type is an AWS account by specifying\n\t\t\t\tAWS::::Account.

" + "smithy.api#documentation": "

Specify one or more resource types to get the number of\n\t\t\tresources that are compliant and the number that are noncompliant\n\t\t\tfor each resource type.

\n\t\t

For this request, you can specify an Amazon Web Services resource type such as\n\t\t\t\tAWS::EC2::Instance. You can specify that the\n\t\t\tresource type is an Amazon Web Services account by specifying\n\t\t\t\tAWS::::Account.

" } } }, @@ -5743,7 +5743,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns compliance details of a conformance pack for all AWS resources that are monitered by conformance pack.

", + "smithy.api#documentation": "

Returns compliance details of a conformance pack for all Amazon Web Services resources that are monitered by conformance pack.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -5779,7 +5779,7 @@ "Limit": { "target": "com.amazonaws.configservice#GetConformancePackComplianceDetailsLimit", "traits": { - "smithy.api#documentation": "

The maximum number of evaluation results returned on each page. If you do no specify a number, AWS Config uses the default. The default is 100.

" + "smithy.api#documentation": "

The maximum number of evaluation results returned on each page. If you do no specify a number, Config uses the default. The default is 100.

" } }, "NextToken": { @@ -5904,7 +5904,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the resource types, the number of each resource type,\n\t\t\tand the total number of resources that AWS Config is recording in\n\t\t\tthis region for your AWS account.

\n\t\t

\n Example\n

\n
    \n
  1. \n\t\t\t\t

    AWS Config is recording three resource types in the US\n\t\t\t\t\tEast (Ohio) Region for your account: 25 EC2 instances, 20\n\t\t\t\t\tIAM users, and 15 S3 buckets.

    \n\t\t\t
  2. \n
  3. \n\t\t\t\t

    You make a call to the\n\t\t\t\t\t\tGetDiscoveredResourceCounts action and\n\t\t\t\t\tspecify that you want all resource types.

    \n\t\t\t
  4. \n
  5. \n\t\t\t\t

    AWS Config returns the following:

    \n\n\t\t\t\t \n\n\t\t\t
  6. \n
\n\n\t\t

The response is paginated. By default, AWS Config lists 100\n\t\t\t\tResourceCount objects on each page. You can\n\t\t\tcustomize this number with the limit parameter. The\n\t\t\tresponse includes a nextToken string. To get the next\n\t\t\tpage of results, run the request again and specify the string for\n\t\t\tthe nextToken parameter.

\n\n\t\t \n\t\t\t

If you make a call to the GetDiscoveredResourceCounts action, you might\n\t\t\t\tnot immediately receive resource counts in the following\n\t\t\t\tsituations:

\n\n\t\t\t \n\n\t\t\t

It might take a few minutes for AWS Config to record and\n\t\t\t\tcount your resources. Wait a few minutes and then retry the\n\t\t\t\t\tGetDiscoveredResourceCounts action.\n\t\t\t

\n\t\t
", + "smithy.api#documentation": "

Returns the resource types, the number of each resource type,\n\t\t\tand the total number of resources that Config is recording in\n\t\t\tthis region for your Amazon Web Services account.

\n\t\t

\n Example\n

\n
    \n
  1. \n\t\t\t\t

    Config is recording three resource types in the US\n\t\t\t\t\tEast (Ohio) Region for your account: 25 EC2 instances, 20\n\t\t\t\t\tIAM users, and 15 S3 buckets.

    \n\t\t\t
  2. \n
  3. \n\t\t\t\t

    You make a call to the\n\t\t\t\t\t\tGetDiscoveredResourceCounts action and\n\t\t\t\t\tspecify that you want all resource types.

    \n\t\t\t
  4. \n
  5. \n\t\t\t\t

    Config returns the following:

    \n\n\t\t\t\t \n\n\t\t\t
  6. \n
\n\n\t\t

The response is paginated. By default, Config lists 100\n\t\t\t\tResourceCount objects on each page. You can\n\t\t\tcustomize this number with the limit parameter. The\n\t\t\tresponse includes a nextToken string. To get the next\n\t\t\tpage of results, run the request again and specify the string for\n\t\t\tthe nextToken parameter.

\n\n\t\t \n\t\t\t

If you make a call to the GetDiscoveredResourceCounts action, you might\n\t\t\t\tnot immediately receive resource counts in the following\n\t\t\t\tsituations:

\n\n\t\t\t \n\n\t\t\t

It might take a few minutes for Config to record and\n\t\t\t\tcount your resources. Wait a few minutes and then retry the\n\t\t\t\t\tGetDiscoveredResourceCounts action.\n\t\t\t

\n\t\t
", "smithy.api#paginated": { "inputToken": "nextToken", "outputToken": "nextToken", @@ -5918,13 +5918,13 @@ "resourceTypes": { "target": "com.amazonaws.configservice#ResourceTypes", "traits": { - "smithy.api#documentation": "

The comma-separated list that specifies the resource types that\n\t\t\tyou want AWS Config to return (for example,\n\t\t\t\t\"AWS::EC2::Instance\",\n\t\t\t\"AWS::IAM::User\").

\n\n\t\t

If a value for resourceTypes is not specified, AWS\n\t\t\tConfig returns all resource types that AWS Config is recording in\n\t\t\tthe region for your account.

\n\t\t \n\t\t\t

If the configuration recorder is turned off, AWS Config\n\t\t\t\treturns an empty list of ResourceCount\n\t\t\t\tobjects. If the configuration recorder is not recording a\n\t\t\t\tspecific resource type (for example, S3 buckets), that resource\n\t\t\t\ttype is not returned in the list of ResourceCount objects.

\n\t\t
" + "smithy.api#documentation": "

The comma-separated list that specifies the resource types that\n\t\t\tyou want Config to return (for example,\n\t\t\t\t\"AWS::EC2::Instance\",\n\t\t\t\"AWS::IAM::User\").

\n\n\t\t

If a value for resourceTypes is not specified, Config returns all resource types that Config is recording in\n\t\t\tthe region for your account.

\n\t\t \n\t\t\t

If the configuration recorder is turned off, Config\n\t\t\t\treturns an empty list of ResourceCount\n\t\t\t\tobjects. If the configuration recorder is not recording a\n\t\t\t\tspecific resource type (for example, S3 buckets), that resource\n\t\t\t\ttype is not returned in the list of ResourceCount objects.

\n\t\t
" } }, "limit": { "target": "com.amazonaws.configservice#Limit", "traits": { - "smithy.api#documentation": "

The maximum number of ResourceCount objects\n\t\t\treturned on each page. The default is 100. You cannot specify a\n\t\t\tnumber greater than 100. If you specify 0, AWS Config uses the\n\t\t\tdefault.

" + "smithy.api#documentation": "

The maximum number of ResourceCount objects\n\t\t\treturned on each page. The default is 100. You cannot specify a\n\t\t\tnumber greater than 100. If you specify 0, Config uses the\n\t\t\tdefault.

" } }, "nextToken": { @@ -5941,7 +5941,7 @@ "totalDiscoveredResources": { "target": "com.amazonaws.configservice#Long", "traits": { - "smithy.api#documentation": "

The total number of resources that AWS Config is recording in\n\t\t\tthe region for your account. If you specify resource types in the\n\t\t\trequest, AWS Config returns only the total number of resources for\n\t\t\tthose resource types.

\n\n\n\t\t

\n Example\n

\n
    \n
  1. \n\t\t\t\t

    AWS Config is recording three resource types in the US\n\t\t\t\t\tEast (Ohio) Region for your account: 25 EC2 instances, 20\n\t\t\t\t\tIAM users, and 15 S3 buckets, for a total of 60\n\t\t\t\t\tresources.

    \n\t\t\t
  2. \n
  3. \n\t\t\t\t

    You make a call to the\n\t\t\t\t\t\tGetDiscoveredResourceCounts action and\n\t\t\t\t\tspecify the resource type,\n\t\t\t\t\t\t\"AWS::EC2::Instances\", in the\n\t\t\t\t\trequest.

    \n\t\t\t
  4. \n
  5. \n\t\t\t\t

    AWS Config returns 25 for\n\t\t\t\t\t\ttotalDiscoveredResources.

    \n\t\t\t
  6. \n
" + "smithy.api#documentation": "

The total number of resources that Config is recording in\n\t\t\tthe region for your account. If you specify resource types in the\n\t\t\trequest, Config returns only the total number of resources for\n\t\t\tthose resource types.

\n\n\n\t\t

\n Example\n

\n
    \n
  1. \n\t\t\t\t

    Config is recording three resource types in the US\n\t\t\t\t\tEast (Ohio) Region for your account: 25 EC2 instances, 20\n\t\t\t\t\tIAM users, and 15 S3 buckets, for a total of 60\n\t\t\t\t\tresources.

    \n\t\t\t
  2. \n
  3. \n\t\t\t\t

    You make a call to the\n\t\t\t\t\t\tGetDiscoveredResourceCounts action and\n\t\t\t\t\tspecify the resource type,\n\t\t\t\t\t\t\"AWS::EC2::Instances\", in the\n\t\t\t\t\trequest.

    \n\t\t\t
  4. \n
  5. \n\t\t\t\t

    Config returns 25 for\n\t\t\t\t\t\ttotalDiscoveredResources.

    \n\t\t\t
  6. \n
" } }, "resourceCounts": { @@ -6009,7 +6009,7 @@ "Limit": { "target": "com.amazonaws.configservice#CosmosPageLimit", "traits": { - "smithy.api#documentation": "

The maximum number of OrganizationConfigRuleDetailedStatus returned on each page. If you do not specify a number, AWS Config uses the default. The default is 100.

" + "smithy.api#documentation": "

The maximum number of OrganizationConfigRuleDetailedStatus returned on each page. If you do not specify a number, Config uses the default. The default is 100.

" } }, "NextToken": { @@ -6088,7 +6088,7 @@ "Limit": { "target": "com.amazonaws.configservice#CosmosPageLimit", "traits": { - "smithy.api#documentation": "

The maximum number of OrganizationConformancePackDetailedStatuses returned on each page. \n\t\t\tIf you do not specify a number, AWS Config uses the default. The default is 100.

" + "smithy.api#documentation": "

The maximum number of OrganizationConformancePackDetailedStatuses returned on each page. \n\t\t\tIf you do not specify a number, Config uses the default. The default is 100.

" } }, "NextToken": { @@ -6145,7 +6145,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns a list of configuration items for the specified\n\t\t\tresource. The list contains details about each state of the resource\n\t\t\tduring the specified time interval. If you specified a retention\n\t\t\tperiod to retain your ConfigurationItems between a\n\t\t\tminimum of 30 days and a maximum of 7 years (2557 days), AWS Config\n\t\t\treturns the ConfigurationItems for the specified\n\t\t\tretention period.

\n\t\t

The response is paginated. By default, AWS Config returns a\n\t\t\tlimit of 10 configuration items per page. You can customize this\n\t\t\tnumber with the limit parameter. The response includes\n\t\t\ta nextToken string. To get the next page of results,\n\t\t\trun the request again and specify the string for the\n\t\t\t\tnextToken parameter.

\n\t\t \n\t\t\t

Each call to the API is limited to span a duration of seven\n\t\t\t\tdays. It is likely that the number of records returned is\n\t\t\t\tsmaller than the specified limit. In such cases,\n\t\t\t\tyou can make another call, using the\n\t\t\t\tnextToken.

\n\t\t
", + "smithy.api#documentation": "

Returns a list of ConfigurationItems for the specified resource.\n\t\t\tThe list contains details about each state of the resource\n\t\t\tduring the specified time interval. If you specified a retention\n\t\t\tperiod to retain your ConfigurationItems between a\n\t\t\tminimum of 30 days and a maximum of 7 years (2557 days), Config\n\t\t\treturns the ConfigurationItems for the specified\n\t\t\tretention period.

\n\t\t

The response is paginated. By default, Config returns a\n\t\t\tlimit of 10 configuration items per page. You can customize this\n\t\t\tnumber with the limit parameter. The response includes\n\t\t\ta nextToken string. To get the next page of results,\n\t\t\trun the request again and specify the string for the\n\t\t\t\tnextToken parameter.

\n\t\t \n\t\t\t

Each call to the API is limited to span a duration of seven\n\t\t\t\tdays. It is likely that the number of records returned is\n\t\t\t\tsmaller than the specified limit. In such cases,\n\t\t\t\tyou can make another call, using the\n\t\t\t\tnextToken.

\n\t\t
", "smithy.api#paginated": { "inputToken": "nextToken", "outputToken": "nextToken", @@ -6192,7 +6192,7 @@ "limit": { "target": "com.amazonaws.configservice#Limit", "traits": { - "smithy.api#documentation": "

The maximum number of configuration items returned on each\n\t\t\tpage. The default is 10. You cannot specify a number greater than\n\t\t\t100. If you specify 0, AWS Config uses the default.

" + "smithy.api#documentation": "

The maximum number of configuration items returned on each\n\t\t\tpage. The default is 10. You cannot specify a number greater than\n\t\t\t100. If you specify 0, Config uses the default.

" } }, "nextToken": { @@ -6320,7 +6320,7 @@ } }, "traits": { - "smithy.api#documentation": "

Your Amazon S3 bucket policy does not permit AWS Config to\n\t\t\twrite to it.

", + "smithy.api#documentation": "

Your Amazon S3 bucket policy does not permit Config to\n\t\t\twrite to it.

", "smithy.api#error": "client" } }, @@ -6335,7 +6335,7 @@ } }, "traits": { - "smithy.api#documentation": "

Indicates one of the following errors:

\n\t\t ", + "smithy.api#documentation": "

Indicates one of the following errors:

\n\t\t ", "smithy.api#error": "client" } }, @@ -6443,7 +6443,7 @@ } }, "traits": { - "smithy.api#documentation": "

AWS Config throws an exception if the recording group does not contain a valid list of resource types. Invalid values might also be incorrectly formatted.

", + "smithy.api#documentation": "

Config throws an exception if the recording group does not contain a valid list of resource types. Invalid values might also be incorrectly formatted.

", "smithy.api#error": "client" } }, @@ -6624,7 +6624,7 @@ "ResourceType": { "target": "com.amazonaws.configservice#ResourceType", "traits": { - "smithy.api#documentation": "

The type of resources that you want AWS Config to list in the response.

", + "smithy.api#documentation": "

The type of resources that you want Config to list in the response.

", "smithy.api#required": {} } }, @@ -6637,7 +6637,7 @@ "Limit": { "target": "com.amazonaws.configservice#Limit", "traits": { - "smithy.api#documentation": "

The maximum number of resource identifiers returned on each page. You cannot specify a number greater than 100. If you specify 0, AWS Config uses the default.

" + "smithy.api#documentation": "

The maximum number of resource identifiers returned on each page. You cannot specify a number greater than 100. If you specify 0, Config uses the default.

" } }, "NextToken": { @@ -6688,7 +6688,7 @@ } ], "traits": { - "smithy.api#documentation": "

Accepts a resource type and returns a list of resource\n\t\t\tidentifiers for the resources of that type. A resource identifier\n\t\t\tincludes the resource type, ID, and (if available) the custom\n\t\t\tresource name. The results consist of resources that AWS Config has\n\t\t\tdiscovered, including those that AWS Config is not currently\n\t\t\trecording. You can narrow the results to include only resources that\n\t\t\thave specific resource IDs or a resource name.

\n\t\t \n\t\t\t

You can specify either resource IDs or a resource name, but\n\t\t\t\tnot both, in the same request.

\n\t\t
\n\t\t

The response is paginated. By default, AWS Config lists 100\n\t\t\tresource identifiers on each page. You can customize this number\n\t\t\twith the limit parameter. The response includes a\n\t\t\t\tnextToken string. To get the next page of results,\n\t\t\trun the request again and specify the string for the\n\t\t\t\tnextToken parameter.

", + "smithy.api#documentation": "

Accepts a resource type and returns a list of resource\n\t\t\tidentifiers for the resources of that type. A resource identifier\n\t\t\tincludes the resource type, ID, and (if available) the custom\n\t\t\tresource name. The results consist of resources that Config has\n\t\t\tdiscovered, including those that Config is not currently\n\t\t\trecording. You can narrow the results to include only resources that\n\t\t\thave specific resource IDs or a resource name.

\n\t\t \n\t\t\t

You can specify either resource IDs or a resource name, but\n\t\t\t\tnot both, in the same request.

\n\t\t
\n\t\t

The response is paginated. By default, Config lists 100\n\t\t\tresource identifiers on each page. You can customize this number\n\t\t\twith the limit parameter. The response includes a\n\t\t\t\tnextToken string. To get the next page of results,\n\t\t\trun the request again and specify the string for the\n\t\t\t\tnextToken parameter.

", "smithy.api#paginated": { "inputToken": "nextToken", "outputToken": "nextToken", @@ -6703,32 +6703,32 @@ "resourceType": { "target": "com.amazonaws.configservice#ResourceType", "traits": { - "smithy.api#documentation": "

The type of resources that you want AWS Config to list in the\n\t\t\tresponse.

", + "smithy.api#documentation": "

The type of resources that you want Config to list in the\n\t\t\tresponse.

", "smithy.api#required": {} } }, "resourceIds": { "target": "com.amazonaws.configservice#ResourceIdList", "traits": { - "smithy.api#documentation": "

The IDs of only those resources that you want AWS Config to\n\t\t\tlist in the response. If you do not specify this parameter, AWS\n\t\t\tConfig lists all resources of the specified type that it has\n\t\t\tdiscovered.

" + "smithy.api#documentation": "

The IDs of only those resources that you want Config to\n\t\t\tlist in the response. If you do not specify this parameter, Config lists all resources of the specified type that it has\n\t\t\tdiscovered.

" } }, "resourceName": { "target": "com.amazonaws.configservice#ResourceName", "traits": { - "smithy.api#documentation": "

The custom name of only those resources that you want AWS\n\t\t\tConfig to list in the response. If you do not specify this\n\t\t\tparameter, AWS Config lists all resources of the specified type that\n\t\t\tit has discovered.

" + "smithy.api#documentation": "

The custom name of only those resources that you want Config to list in the response. If you do not specify this\n\t\t\tparameter, Config lists all resources of the specified type that\n\t\t\tit has discovered.

" } }, "limit": { "target": "com.amazonaws.configservice#Limit", "traits": { - "smithy.api#documentation": "

The maximum number of resource identifiers returned on each\n\t\t\tpage. The default is 100. You cannot specify a number greater than\n\t\t\t100. If you specify 0, AWS Config uses the default.

" + "smithy.api#documentation": "

The maximum number of resource identifiers returned on each\n\t\t\tpage. The default is 100. You cannot specify a number greater than\n\t\t\t100. If you specify 0, Config uses the default.

" } }, "includeDeletedResources": { "target": "com.amazonaws.configservice#Boolean", "traits": { - "smithy.api#documentation": "

Specifies whether AWS Config includes deleted resources in the\n\t\t\tresults. By default, deleted resources are not included.

" + "smithy.api#documentation": "

Specifies whether Config includes deleted resources in the\n\t\t\tresults. By default, deleted resources are not included.

" } }, "nextToken": { @@ -6748,7 +6748,7 @@ "resourceIdentifiers": { "target": "com.amazonaws.configservice#ResourceIdentifierList", "traits": { - "smithy.api#documentation": "

The details that identify a resource that is discovered by AWS\n\t\t\tConfig, including the resource type, ID, and (if available) the\n\t\t\tcustom resource name.

" + "smithy.api#documentation": "

The details that identify a resource that is discovered by Config, including the resource type, ID, and (if available) the\n\t\t\tcustom resource name.

" } }, "nextToken": { @@ -6779,7 +6779,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the stored queries for a single AWS account and a single AWS Region. The default is 100.

", + "smithy.api#documentation": "

Lists the stored queries for a single Amazon Web Services account and a single Amazon Web Services Region. The default is 100.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -6845,7 +6845,7 @@ } ], "traits": { - "smithy.api#documentation": "

List the tags for AWS Config resource.

", + "smithy.api#documentation": "

List the tags for Config resource.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -6867,7 +6867,7 @@ "Limit": { "target": "com.amazonaws.configservice#Limit", "traits": { - "smithy.api#documentation": "

The maximum number of tags returned on each page. The limit maximum is 50. You cannot specify a number greater than 50. If you specify 0, AWS Config uses the default.

" + "smithy.api#documentation": "

The maximum number of tags returned on each page. The limit maximum is 50. You cannot specify a number greater than 50. If you specify 0, Config uses the default.

" } }, "NextToken": { @@ -6924,7 +6924,7 @@ } }, "traits": { - "smithy.api#documentation": "

Failed to add the AWS Config rule because the account already\n\t\t\tcontains the maximum number of 150 rules. Consider deleting any\n\t\t\tdeactivated rules before you add new rules.

", + "smithy.api#documentation": "

Failed to add the Config rule because the account already\n\t\t\tcontains the maximum number of 150 rules. Consider deleting any\n\t\t\tdeactivated rules before you add new rules.

", "smithy.api#error": "client" } }, @@ -6954,7 +6954,7 @@ } }, "traits": { - "smithy.api#documentation": "

You have reached the limit (6) of the number of conformance packs in an account (6 conformance pack with 25 AWS Config rules per pack).

", + "smithy.api#documentation": "

You have reached the limit (6) of the number of conformance packs in an account (6 conformance pack with 25 Config rules per pack).

", "smithy.api#error": "client" } }, @@ -6999,7 +6999,7 @@ } }, "traits": { - "smithy.api#documentation": "

You have reached the limit (6) of the number of organization conformance packs in an account (6 conformance pack with 25 AWS Config rules per pack per account).

", + "smithy.api#documentation": "

You have reached the limit (6) of the number of organization conformance packs in an account (6 conformance pack with 25 Config rules per pack per account).

", "smithy.api#error": "client" } }, @@ -7108,7 +7108,7 @@ "MemberAccountRuleStatus": { "target": "com.amazonaws.configservice#MemberAccountRuleStatus", "traits": { - "smithy.api#documentation": "

Indicates deployment status for config rule in the member account.\n\t\t\tWhen master account calls PutOrganizationConfigRule action for the first time, config rule status is created in the member account. \n\t\t\tWhen master account calls PutOrganizationConfigRule action for the second time, config rule status is updated in the member account. \n\t\t\tConfig rule status is deleted when the master account deletes OrganizationConfigRule and disables service access for config-multiaccountsetup.amazonaws.com. \n\t\t

\n\t\t

AWS Config sets the state of the rule to:

\n\t\t ", + "smithy.api#documentation": "

Indicates deployment status for config rule in the member account.\n\t\t\tWhen master account calls PutOrganizationConfigRule action for the first time, config rule status is created in the member account. \n\t\t\tWhen master account calls PutOrganizationConfigRule action for the second time, config rule status is updated in the member account. \n\t\t\tConfig rule status is deleted when the master account deletes OrganizationConfigRule and disables service access for config-multiaccountsetup.amazonaws.com. \n\t\t

\n\t\t

Config sets the state of the rule to:

\n\t\t ", "smithy.api#required": {} } }, @@ -7250,7 +7250,7 @@ } }, "traits": { - "smithy.api#documentation": "

One or more AWS Config rules in the request are invalid. Verify\n\t\t\tthat the rule names are correct and try again.

", + "smithy.api#documentation": "

One or more Config rules in the request are invalid. Verify\n\t\t\tthat the rule names are correct and try again.

", "smithy.api#error": "client" } }, @@ -7265,7 +7265,7 @@ } }, "traits": { - "smithy.api#documentation": "

AWS Config rule that you passed in the filter does not exist.

", + "smithy.api#documentation": "

Config rule that you passed in the filter does not exist.

", "smithy.api#error": "client" } }, @@ -7355,7 +7355,7 @@ } }, "traits": { - "smithy.api#documentation": "

AWS Config organization conformance pack that you passed in the filter does not exist.

\n\t\t

For DeleteOrganizationConformancePack, you tried to delete an organization conformance pack that does not exist.

", + "smithy.api#documentation": "

Config organization conformance pack that you passed in the filter does not exist.

\n\t\t

For DeleteOrganizationConformancePack, you tried to delete an organization conformance pack that does not exist.

", "smithy.api#error": "client" } }, @@ -7370,7 +7370,7 @@ } }, "traits": { - "smithy.api#documentation": "

You specified an AWS Config rule without a remediation configuration.

", + "smithy.api#documentation": "

You specified an Config rule without a remediation configuration.

", "smithy.api#error": "client" } }, @@ -7418,7 +7418,7 @@ } }, "traits": { - "smithy.api#documentation": "

For PutConfigurationAggregator API, you can see this exception for the following reasons:

\n\t\t \t\n\t\t

For all OrganizationConfigRule and OrganizationConformancePack APIs, AWS Config throws an exception if APIs are called from member accounts. All APIs must be called from organization master account.

", + "smithy.api#documentation": "

For PutConfigurationAggregator API, you can see this exception for the following reasons:

\n\t\t \t\n\t\t

For all OrganizationConfigRule and OrganizationConformancePack APIs, Config throws an exception if APIs are called from member accounts. All APIs must be called from organization master account.

", "smithy.api#error": "client" } }, @@ -7428,7 +7428,7 @@ "RoleArn": { "target": "com.amazonaws.configservice#String", "traits": { - "smithy.api#documentation": "

ARN of the IAM role used to retrieve AWS Organization details\n\t\t\tassociated with the aggregator account.

", + "smithy.api#documentation": "

ARN of the IAM role used to retrieve Amazon Web Services Organization details\n\t\t\tassociated with the aggregator account.

", "smithy.api#required": {} } }, @@ -7441,7 +7441,7 @@ "AllAwsRegions": { "target": "com.amazonaws.configservice#Boolean", "traits": { - "smithy.api#documentation": "

If true, aggregate existing AWS Config regions and future\n\t\t\tregions.

" + "smithy.api#documentation": "

If true, aggregate existing Config regions and future\n\t\t\tregions.

" } } }, @@ -7460,7 +7460,7 @@ } }, "traits": { - "smithy.api#documentation": "

AWS Config resource cannot be created because your organization does not have all features enabled.

", + "smithy.api#documentation": "

Config resource cannot be created because your organization does not have all features enabled.

", "smithy.api#error": "client" } }, @@ -7507,7 +7507,7 @@ } }, "traits": { - "smithy.api#documentation": "

An organization config rule that has information about config rules that AWS Config creates in member accounts.

" + "smithy.api#documentation": "

An organization config rule that has information about config rules that Config creates in member accounts.

" } }, "com.amazonaws.configservice#OrganizationConfigRuleDetailedStatus": { @@ -7551,7 +7551,7 @@ "OrganizationRuleStatus": { "target": "com.amazonaws.configservice#OrganizationRuleStatus", "traits": { - "smithy.api#documentation": "

Indicates deployment status of an organization config rule. \n\t\t\tWhen master account calls PutOrganizationConfigRule action for the first time, config rule status is created in all the member accounts. \n\t\t\tWhen master account calls PutOrganizationConfigRule action for the second time, config rule status is updated in all the member accounts. Additionally, config rule status is updated when one or more member accounts join or leave an organization. \n\t\t\tConfig rule status is deleted when the master account deletes OrganizationConfigRule in all the member accounts and disables service access for config-multiaccountsetup.amazonaws.com.

\n\t\t\t

AWS Config sets the state of the rule to:

\n\t\t ", + "smithy.api#documentation": "

Indicates deployment status of an organization config rule. \n\t\t\tWhen master account calls PutOrganizationConfigRule action for the first time, config rule status is created in all the member accounts. \n\t\t\tWhen master account calls PutOrganizationConfigRule action for the second time, config rule status is updated in all the member accounts. Additionally, config rule status is updated when one or more member accounts join or leave an organization. \n\t\t\tConfig rule status is deleted when the master account deletes OrganizationConfigRule in all the member accounts and disables service access for config-multiaccountsetup.amazonaws.com.

\n\t\t\t

Config sets the state of the rule to:

\n\t\t ", "smithy.api#required": {} } }, @@ -7635,7 +7635,7 @@ "DeliveryS3Bucket": { "target": "com.amazonaws.configservice#DeliveryS3Bucket", "traits": { - "smithy.api#documentation": "

Amazon S3 bucket where AWS Config stores conformance pack templates.

\n\t\t \n

This field is optional.

\n
" + "smithy.api#documentation": "

The name of the Amazon S3 bucket where Config stores conformance pack templates.

\n\t\t \n

This field is optional.

\n
" } }, "DeliveryS3KeyPrefix": { @@ -7665,7 +7665,7 @@ } }, "traits": { - "smithy.api#documentation": "

An organization conformance pack that has information about conformance packs that AWS Config creates in member accounts.

" + "smithy.api#documentation": "

An organization conformance pack that has information about conformance packs that Config creates in member accounts.

" } }, "com.amazonaws.configservice#OrganizationConformancePackDetailedStatus": { @@ -7688,7 +7688,7 @@ "Status": { "target": "com.amazonaws.configservice#OrganizationResourceDetailedStatus", "traits": { - "smithy.api#documentation": "

Indicates deployment status for conformance pack in a member account.\n\t\t\tWhen master account calls PutOrganizationConformancePack action for the first time, conformance pack status is created in the member account. \n\t\t\tWhen master account calls PutOrganizationConformancePack action for the second time, conformance pack status is updated in the member account. \n\t\t\tConformance pack status is deleted when the master account deletes OrganizationConformancePack and disables service access for config-multiaccountsetup.amazonaws.com. \n\t\t

\n\t\t

AWS Config sets the state of the conformance pack to:

\n\t\t ", + "smithy.api#documentation": "

Indicates deployment status for conformance pack in a member account.\n\t\t\tWhen master account calls PutOrganizationConformancePack action for the first time, conformance pack status is created in the member account. \n\t\t\tWhen master account calls PutOrganizationConformancePack action for the second time, conformance pack status is updated in the member account. \n\t\t\tConformance pack status is deleted when the master account deletes OrganizationConformancePack and disables service access for config-multiaccountsetup.amazonaws.com. \n\t\t

\n\t\t

Config sets the state of the conformance pack to:

\n\t\t ", "smithy.api#required": {} } }, @@ -7756,7 +7756,7 @@ "Status": { "target": "com.amazonaws.configservice#OrganizationResourceStatus", "traits": { - "smithy.api#documentation": "

Indicates deployment status of an organization conformance pack. \n\t\t\tWhen master account calls PutOrganizationConformancePack for the first time, \n\t\t\tconformance pack status is created in all the member accounts. \n\t\t\tWhen master account calls PutOrganizationConformancePack for the second time, \n\t\t\tconformance pack status is updated in all the member accounts. \n\t\t\tAdditionally, conformance pack status is updated when one or more member accounts join or leave an \n\t\t\torganization. \n\t\t\tConformance pack status is deleted when the master account deletes \n\t\t\tOrganizationConformancePack in all the member accounts and disables service \n\t\t\taccess for config-multiaccountsetup.amazonaws.com.

\n\t\t

AWS Config sets the state of the conformance pack to:

\n\t\t ", + "smithy.api#documentation": "

Indicates deployment status of an organization conformance pack. \n\t\t\tWhen master account calls PutOrganizationConformancePack for the first time, \n\t\t\tconformance pack status is created in all the member accounts. \n\t\t\tWhen master account calls PutOrganizationConformancePack for the second time, \n\t\t\tconformance pack status is updated in all the member accounts. \n\t\t\tAdditionally, conformance pack status is updated when one or more member accounts join or leave an \n\t\t\torganization. \n\t\t\tConformance pack status is deleted when the master account deletes \n\t\t\tOrganizationConformancePack in all the member accounts and disables service \n\t\t\taccess for config-multiaccountsetup.amazonaws.com.

\n\t\t

Config sets the state of the conformance pack to:

\n\t\t ", "smithy.api#required": {} } }, @@ -7829,7 +7829,7 @@ "OrganizationConfigRuleTriggerTypes": { "target": "com.amazonaws.configservice#OrganizationConfigRuleTriggerTypes", "traits": { - "smithy.api#documentation": "

The type of notification that triggers AWS Config to run an evaluation for a rule. You can specify the following notification types:

\n\t\t\n\t\t ", + "smithy.api#documentation": "

The type of notification that triggers Config to run an evaluation for a rule. You can specify the following notification types:

\n\t\t\n\t\t ", "smithy.api#required": {} } }, @@ -7842,19 +7842,19 @@ "MaximumExecutionFrequency": { "target": "com.amazonaws.configservice#MaximumExecutionFrequency", "traits": { - "smithy.api#documentation": "

The maximum frequency with which AWS Config runs evaluations for a rule. \n\t\t\tYour custom rule is triggered when AWS Config delivers the configuration snapshot. For more information, see ConfigSnapshotDeliveryProperties.

\n\t\t \n

By default, rules with a periodic trigger are evaluated every 24 hours. To change the frequency, specify a valid \n\t\t\tvalue for the MaximumExecutionFrequency parameter.

\n
" + "smithy.api#documentation": "

The maximum frequency with which Config runs evaluations for a rule. \n\t\t\tYour custom rule is triggered when Config delivers the configuration snapshot. For more information, see ConfigSnapshotDeliveryProperties.

\n\t\t \n

By default, rules with a periodic trigger are evaluated every 24 hours. To change the frequency, specify a valid \n\t\t\tvalue for the MaximumExecutionFrequency parameter.

\n
" } }, "ResourceTypesScope": { "target": "com.amazonaws.configservice#ResourceTypesScope", "traits": { - "smithy.api#documentation": "

The type of the AWS resource that was evaluated.

" + "smithy.api#documentation": "

The type of the Amazon Web Services resource that was evaluated.

" } }, "ResourceIdScope": { "target": "com.amazonaws.configservice#StringWithCharLimit768", "traits": { - "smithy.api#documentation": "

The ID of the AWS resource that was evaluated.

" + "smithy.api#documentation": "

The ID of the Amazon Web Services resource that was evaluated.

" } }, "TagKeyScope": { @@ -7871,7 +7871,7 @@ } }, "traits": { - "smithy.api#documentation": "

An object that specifies organization custom rule metadata such as resource type, resource ID of AWS resource, Lamdba function ARN, \n\t\t\tand organization trigger types that trigger AWS Config to evaluate your AWS resources against a rule. \n\t\t\tIt also provides the frequency with which you want AWS Config to run evaluations for the rule if the trigger type is periodic.

" + "smithy.api#documentation": "

An object that specifies organization custom rule metadata such as resource type, resource ID of Amazon Web Services resource, Lambda function ARN, \n\t\t\tand organization trigger types that trigger Config to evaluate your Amazon Web Services resources against a rule. \n\t\t\tIt also provides the frequency with which you want Config to run evaluations for the rule if the trigger type is periodic.

" } }, "com.amazonaws.configservice#OrganizationManagedRuleMetadata": { @@ -7886,7 +7886,7 @@ "RuleIdentifier": { "target": "com.amazonaws.configservice#StringWithCharLimit256", "traits": { - "smithy.api#documentation": "

For organization config managed rules, a predefined identifier from a\n\t\t\tlist. For example, IAM_PASSWORD_POLICY is a managed\n\t\t\trule. To reference a managed rule, see Using AWS Managed Config Rules.

", + "smithy.api#documentation": "

For organization config managed rules, a predefined identifier from a\n\t\t\tlist. For example, IAM_PASSWORD_POLICY is a managed\n\t\t\trule. To reference a managed rule, see Using Config managed rules.

", "smithy.api#required": {} } }, @@ -7899,19 +7899,19 @@ "MaximumExecutionFrequency": { "target": "com.amazonaws.configservice#MaximumExecutionFrequency", "traits": { - "smithy.api#documentation": "

The maximum frequency with which AWS Config runs evaluations for a rule. You are using an AWS managed rule that is triggered at a periodic frequency.

\n\t\t \n

By default, rules with a periodic trigger are evaluated every 24 hours. To change the frequency, specify a valid \n\t\t\tvalue for the MaximumExecutionFrequency parameter.

\n
" + "smithy.api#documentation": "

The maximum frequency with which Config runs evaluations for a rule. You are using an Config managed rule that is triggered at a periodic frequency.

\n\t\t \n

By default, rules with a periodic trigger are evaluated every 24 hours. To change the frequency, specify a valid \n\t\t\tvalue for the MaximumExecutionFrequency parameter.

\n
" } }, "ResourceTypesScope": { "target": "com.amazonaws.configservice#ResourceTypesScope", "traits": { - "smithy.api#documentation": "

The type of the AWS resource that was evaluated.

" + "smithy.api#documentation": "

The type of the Amazon Web Services resource that was evaluated.

" } }, "ResourceIdScope": { "target": "com.amazonaws.configservice#StringWithCharLimit768", "traits": { - "smithy.api#documentation": "

The ID of the AWS resource that was evaluated.

" + "smithy.api#documentation": "

The ID of the Amazon Web Services resource that was evaluated.

" } }, "TagKeyScope": { @@ -7928,7 +7928,7 @@ } }, "traits": { - "smithy.api#documentation": "

An object that specifies organization managed rule metadata such as resource type and ID of AWS resource along with the rule identifier. \n\t\t\tIt also provides the frequency with which you want AWS Config to run evaluations for the rule if the trigger type is periodic.

" + "smithy.api#documentation": "

An object that specifies organization managed rule metadata such as resource type and ID of Amazon Web Services resource along with the rule identifier. \n\t\t\tIt also provides the frequency with which you want Config to run evaluations for the rule if the trigger type is periodic.

" } }, "com.amazonaws.configservice#OrganizationResourceDetailedStatus": { @@ -7986,7 +7986,7 @@ "Status": { "target": "com.amazonaws.configservice#OrganizationResourceDetailedStatus", "traits": { - "smithy.api#documentation": "

Indicates deployment status for conformance pack in a member account.\n\t\t\tWhen master account calls PutOrganizationConformancePack action for the first time, conformance pack status is created in the member account. \n\t\t\tWhen master account calls PutOrganizationConformancePack action for the second time, conformance pack status is updated in the member account. \n\t\t\tConformance pack status is deleted when the master account deletes OrganizationConformancePack and disables service access for config-multiaccountsetup.amazonaws.com. \n\t\t

\n\t\t

AWS Config sets the state of the conformance pack to:

\n\t\t " + "smithy.api#documentation": "

Indicates deployment status for conformance pack in a member account.\n\t\t\tWhen master account calls PutOrganizationConformancePack action for the first time, conformance pack status is created in the member account. \n\t\t\tWhen master account calls PutOrganizationConformancePack action for the second time, conformance pack status is updated in the member account. \n\t\t\tConformance pack status is deleted when the master account deletes OrganizationConformancePack and disables service access for config-multiaccountsetup.amazonaws.com. \n\t\t

\n\t\t

Config sets the state of the conformance pack to:

\n\t\t " } } }, @@ -8249,7 +8249,7 @@ } ], "traits": { - "smithy.api#documentation": "

Adds or updates an AWS Config rule for evaluating whether your\n\t\t\tAWS resources comply with your desired configurations.

\n\t\t

You can use this action for custom AWS Config rules and AWS\n\t\t\tmanaged Config rules. A custom AWS Config rule is a rule that you\n\t\t\tdevelop and maintain. An AWS managed Config rule is a customizable,\n\t\t\tpredefined rule that AWS Config provides.

\n\t\t

If you are adding a new custom AWS Config rule, you must first\n\t\t\tcreate the AWS Lambda function that the rule invokes to evaluate\n\t\t\tyour resources. When you use the PutConfigRule action\n\t\t\tto add the rule to AWS Config, you must specify the Amazon Resource\n\t\t\tName (ARN) that AWS Lambda assigns to the function. Specify the ARN\n\t\t\tfor the SourceIdentifier key. This key is part of the\n\t\t\t\tSource object, which is part of the\n\t\t\t\tConfigRule object.

\n\t\t

If you are adding an AWS managed Config rule, specify the\n\t\t\trule's identifier for the SourceIdentifier key. To\n\t\t\treference AWS managed Config rule identifiers, see About AWS Managed Config Rules.

\n\t\t

For any new rule that you add, specify the\n\t\t\t\tConfigRuleName in the ConfigRule\n\t\t\tobject. Do not specify the ConfigRuleArn or the\n\t\t\t\tConfigRuleId. These values are generated by AWS\n\t\t\tConfig for new rules.

\n\t\t

If you are updating a rule that you added previously, you can\n\t\t\tspecify the rule by ConfigRuleName,\n\t\t\t\tConfigRuleId, or ConfigRuleArn in the\n\t\t\t\tConfigRule data type that you use in this\n\t\t\trequest.

\n\t\t

The maximum number of rules that AWS Config supports is 150.

\n\n\t\t

For information about requesting a rule limit increase, see\n\t\t\t\tAWS Config Limits in the AWS General\n\t\t\t\tReference Guide.

\n\n\t\t

For more information about developing and using AWS Config\n\t\t\trules, see Evaluating AWS Resource Configurations with AWS Config\n\t\t\tin the AWS Config Developer Guide.

" + "smithy.api#documentation": "

Adds or updates an Config rule for evaluating whether your\n\t\t\tAmazon Web Services resources comply with your desired configurations.

\n\t\t

You can use this action for custom Config rules and Config\n\t\t\tmanaged rules. A custom Config rule is a rule that you\n\t\t\tdevelop and maintain. An Config managed rule is a customizable,\n\t\t\tpredefined rule that Config provides.

\n\t\t

If you are adding a new custom Config rule, you must first\n\t\t\tcreate the Lambda function that the rule invokes to evaluate\n\t\t\tyour resources. When you use the PutConfigRule action\n\t\t\tto add the rule to Config, you must specify the Amazon Resource\n\t\t\tName (ARN) that Lambda assigns to the function. Specify the ARN\n\t\t\tfor the SourceIdentifier key. This key is part of the\n\t\t\t\tSource object, which is part of the\n\t\t\t\tConfigRule object.

\n\t\t

If you are adding an Config managed rule, specify the\n\t\t\trule's identifier for the SourceIdentifier key. To\n\t\t\treference Config managed rule identifiers, see About Config managed rules.

\n\t\t

For any new rule that you add, specify the\n\t\t\t\tConfigRuleName in the ConfigRule\n\t\t\tobject. Do not specify the ConfigRuleArn or the\n\t\t\tConfigRuleId. These values are generated by Config for new rules.

\n\t\t

If you are updating a rule that you added previously, you can\n\t\t\tspecify the rule by ConfigRuleName,\n\t\t\t\tConfigRuleId, or ConfigRuleArn in the\n\t\t\t\tConfigRule data type that you use in this\n\t\t\trequest.

\n\t\t

The maximum number of rules that Config supports is 150.

\n\n\t\t

For information about requesting a rule limit increase, see\n\t\t\t\tConfig Limits in the Amazon Web Services General\n\t\t\t\tReference Guide.

\n\n\t\t

For more information about developing and using Config\n\t\t\trules, see Evaluating Amazon Web Services resource Configurations with Config\n\t\t\tin the Config Developer Guide.

" } }, "com.amazonaws.configservice#PutConfigRuleRequest": { @@ -8299,7 +8299,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates and updates the configuration aggregator with the\n\t\t\tselected source accounts and regions. The source account can be\n\t\t\tindividual account(s) or an organization.

\n\t\t\n\t\t

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

\n\t\t \n\t\t\t

AWS Config should be enabled in source accounts and regions\n\t\t\t\tyou want to aggregate.

\n\t\t\t\n\t\t\t

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

\n\t\t\t

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

\n\t\t
" + "smithy.api#documentation": "

Creates and updates the configuration aggregator with the\n\t\t\tselected source accounts and regions. The source account can be\n\t\t\tindividual account(s) or an organization.

\n\t\t\n\t\t

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

\n\t\t \n\t\t\t

Config should be enabled in source accounts and regions\n\t\t\t\tyou want to aggregate.

\n\t\t\t\n\t\t\t

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

\n\t\t\t

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

\n\t\t
" } }, "com.amazonaws.configservice#PutConfigurationAggregatorRequest": { @@ -8407,7 +8407,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates or updates a conformance pack. A conformance pack is a collection of AWS Config rules that can be easily deployed in an account and a region and across AWS Organization.

\n\t\t

This API creates a service linked role AWSServiceRoleForConfigConforms in your account. \n\t\tThe service linked role is created only when the role does not exist in your account.

\n\t\t \n

You must specify either the TemplateS3Uri or the TemplateBody parameter, but not both. \n\t\t\tIf you provide both AWS Config uses the TemplateS3Uri parameter and ignores the TemplateBody parameter.

\n
" + "smithy.api#documentation": "

Creates or updates a conformance pack. A conformance pack is a collection of Config rules that can be easily deployed in an account and a region and across Amazon Web Services Organization.

\n\t\t

This API creates a service linked role AWSServiceRoleForConfigConforms in your account. \n\t\tThe service linked role is created only when the role does not exist in your account.

\n\t\t \n

You must specify either the TemplateS3Uri or the TemplateBody parameter, but not both. \n\t\t\tIf you provide both Config uses the TemplateS3Uri parameter and ignores the TemplateBody parameter.

\n
" } }, "com.amazonaws.configservice#PutConformancePackRequest": { @@ -8435,7 +8435,7 @@ "DeliveryS3Bucket": { "target": "com.amazonaws.configservice#DeliveryS3Bucket", "traits": { - "smithy.api#documentation": "

Amazon S3 bucket where AWS Config stores conformance pack templates.

\n\t\t \n

This field is optional.

\n
" + "smithy.api#documentation": "

The name of the Amazon S3 bucket where Config stores conformance pack templates.

\n\t\t \n

This field is optional.

\n
" } }, "DeliveryS3KeyPrefix": { @@ -8533,7 +8533,7 @@ } ], "traits": { - "smithy.api#documentation": "

Used by an AWS Lambda function to deliver evaluation results to\n\t\t\tAWS Config. This action is required in every AWS Lambda function\n\t\t\tthat is invoked by an AWS Config rule.

" + "smithy.api#documentation": "

Used by an Lambda function to deliver evaluation results to\n\t\t\tConfig. This action is required in every Lambda function\n\t\t\tthat is invoked by an Config rule.

" } }, "com.amazonaws.configservice#PutEvaluationsRequest": { @@ -8542,20 +8542,20 @@ "Evaluations": { "target": "com.amazonaws.configservice#Evaluations", "traits": { - "smithy.api#documentation": "

The assessments that the AWS Lambda function performs. Each\n\t\t\tevaluation identifies an AWS resource and indicates whether it\n\t\t\tcomplies with the AWS Config rule that invokes the AWS Lambda\n\t\t\tfunction.

" + "smithy.api#documentation": "

The assessments that the Lambda function performs. Each\n\t\t\tevaluation identifies an Amazon Web Services resource and indicates whether it\n\t\t\tcomplies with the Config rule that invokes the Lambda\n\t\t\tfunction.

" } }, "ResultToken": { "target": "com.amazonaws.configservice#String", "traits": { - "smithy.api#documentation": "

An encrypted token that associates an evaluation with an AWS\n\t\t\tConfig rule. Identifies the rule and the event that triggered the\n\t\t\tevaluation.

", + "smithy.api#documentation": "

An encrypted token that associates an evaluation with an Config rule. Identifies the rule and the event that triggered the\n\t\t\tevaluation.

", "smithy.api#required": {} } }, "TestMode": { "target": "com.amazonaws.configservice#Boolean", "traits": { - "smithy.api#documentation": "

Use this parameter to specify a test run for\n\t\t\t\tPutEvaluations. You can verify whether your AWS\n\t\t\tLambda function will deliver evaluation results to AWS Config. No\n\t\t\tupdates occur to your existing evaluations, and evaluation results\n\t\t\tare not sent to AWS Config.

\n\n\t\t \n\t\t\t

When TestMode is true,\n\t\t\t\t\tPutEvaluations doesn't require a valid value\n\t\t\t\tfor the ResultToken parameter, but the value cannot\n\t\t\t\tbe null.

\n\t\t
" + "smithy.api#documentation": "

Use this parameter to specify a test run for\n\t\t\tPutEvaluations. You can verify whether your Lambda function will deliver evaluation results to Config. No\n\t\t\tupdates occur to your existing evaluations, and evaluation results\n\t\t\tare not sent to Config.

\n\n\t\t \n\t\t\t

When TestMode is true,\n\t\t\t\t\tPutEvaluations doesn't require a valid value\n\t\t\t\tfor the ResultToken parameter, but the value cannot\n\t\t\t\tbe null.

\n\t\t
" } } }, @@ -8594,7 +8594,7 @@ } ], "traits": { - "smithy.api#documentation": "

Add or updates the evaluations for process checks.\t\t\n\t\t\tThis API checks if the rule is a process check when the name of the AWS Config rule is provided.

" + "smithy.api#documentation": "

Add or updates the evaluations for process checks.\t\t\n\t\t\tThis API checks if the rule is a process check when the name of the Config rule is provided.

" } }, "com.amazonaws.configservice#PutExternalEvaluationRequest": { @@ -8603,7 +8603,7 @@ "ConfigRuleName": { "target": "com.amazonaws.configservice#ConfigRuleName", "traits": { - "smithy.api#documentation": "

The name of the AWS Config rule.

", + "smithy.api#documentation": "

The name of the Config rule.

", "smithy.api#required": {} } }, @@ -8655,7 +8655,7 @@ } ], "traits": { - "smithy.api#documentation": "

Adds or updates organization config rule for your entire organization evaluating whether your AWS resources comply with your \n\t\t\tdesired configurations.

\n\t

Only a master account and a delegated administrator can create or update an organization config rule.\n\t\tWhen calling this API with a delegated administrator, you must ensure AWS Organizations \n\t\tListDelegatedAdministrator permissions are added.

\n\t\t

This API enables organization service access through the EnableAWSServiceAccess action and creates a service linked \n\t\t\trole AWSServiceRoleForConfigMultiAccountSetup in the master or delegated administrator account of your organization. \n\t\t\tThe service linked role is created only when the role does not exist in the caller account. \n\t\t\tAWS Config verifies the existence of role with GetRole action.

\n\t\t

To use this API with delegated administrator, register a delegated administrator by calling AWS Organization\n\t\t\tregister-delegated-administrator for config-multiaccountsetup.amazonaws.com.

\n\t\t

You can use this action to create both custom AWS Config rules and AWS managed Config rules. \n\t\t\tIf you are adding a new custom AWS Config rule, you must first create AWS Lambda function in the master account or a delegated \n\t\t\tadministrator that the rule invokes to evaluate your resources. \n\t\t\tWhen you use the PutOrganizationConfigRule action to add the rule to AWS Config, you must \n\t\t\tspecify the Amazon Resource Name (ARN) that AWS Lambda assigns to the function. \n\t\t\tIf you are adding an AWS managed Config rule, specify the rule's identifier for the RuleIdentifier key.

\n\t\t

The maximum number of organization config rules that AWS Config supports is 150 and 3 delegated administrator per organization.

\n\t\t \n

Prerequisite: Ensure you call EnableAllFeatures API to enable all features in an organization.

\n\t\t\t

Specify either OrganizationCustomRuleMetadata or OrganizationManagedRuleMetadata.

\n\t\t\t
" + "smithy.api#documentation": "

Adds or updates organization config rule for your entire organization evaluating whether your Amazon Web Services resources comply with your \n\t\t\tdesired configurations.

\n\t

Only a master account and a delegated administrator can create or update an organization config rule.\n\t\tWhen calling this API with a delegated administrator, you must ensure Organizations \n\t\tListDelegatedAdministrator permissions are added.

\n\t\t

This API enables organization service access through the EnableAWSServiceAccess action and creates a service linked \n\t\t\trole AWSServiceRoleForConfigMultiAccountSetup in the master or delegated administrator account of your organization. \n\t\t\tThe service linked role is created only when the role does not exist in the caller account. \n\t\t\tConfig verifies the existence of role with GetRole action.

\n\t\t

To use this API with delegated administrator, register a delegated administrator by calling Amazon Web Services Organization\n\t\t\tregister-delegated-administrator for config-multiaccountsetup.amazonaws.com.

\n\t\t

You can use this action to create both custom Config rules and Config managed rules. \n\t\t\tIf you are adding a new custom Config rule, you must first create Lambda function in the master account or a delegated \n\t\t\tadministrator that the rule invokes to evaluate your resources. You also need to create an IAM role in the managed-account that can be assumed by the Lambda function.\n\t\t\tWhen you use the PutOrganizationConfigRule action to add the rule to Config, you must \n\t\t\tspecify the Amazon Resource Name (ARN) that Lambda assigns to the function. \n\t\t\tIf you are adding an Config managed rule, specify the rule's identifier for the RuleIdentifier key.

\n\t\t

The maximum number of organization config rules that Config supports is 150 and 3 delegated administrator per organization.

\n\t\t \n

Prerequisite: Ensure you call EnableAllFeatures API to enable all features in an organization.

\n\t\t\t

Specify either OrganizationCustomRuleMetadata or OrganizationManagedRuleMetadata.

\n\t\t\t
" } }, "com.amazonaws.configservice#PutOrganizationConfigRuleRequest": { @@ -8734,7 +8734,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deploys conformance packs across member accounts in an AWS Organization.

\n\t\t

Only a master account and a delegated administrator can call this API. \n\t\t\tWhen calling this API with a delegated administrator, you must ensure AWS Organizations \n\t\t\tListDelegatedAdministrator permissions are added.

\n\t\t

This API enables organization service access for config-multiaccountsetup.amazonaws.com\n\t\t\tthrough the EnableAWSServiceAccess action and creates a \n\t\t\tservice linked role AWSServiceRoleForConfigMultiAccountSetup in the master or delegated administrator account of your organization. \n\t\t\tThe service linked role is created only when the role does not exist in the caller account. \n\t\t\tTo use this API with delegated administrator, register a delegated administrator by calling AWS Organization \n\t\t\tregister-delegate-admin for config-multiaccountsetup.amazonaws.com.

\n\n\t\t\t\n\t\t\t \n\t\t \n\t\t\t

Prerequisite: Ensure you call EnableAllFeatures API to enable all features in an organization.

\n\t\t\t

You must specify either the TemplateS3Uri or the TemplateBody parameter, but not both. \n\t\t\tIf you provide both AWS Config uses the TemplateS3Uri parameter and ignores the TemplateBody parameter.

\n\t\t\t

AWS Config sets the state of a conformance pack to CREATE_IN_PROGRESS and UPDATE_IN_PROGRESS until the conformance pack is created or updated. \n\t\t\t\tYou cannot update a conformance pack while it is in this state.

\n\t\t\t

You can create 50 conformance packs with 25 AWS Config rules in each pack and 3 delegated administrator per organization.

\n
" + "smithy.api#documentation": "

Deploys conformance packs across member accounts in an Amazon Web Services Organization.

\n\t\t

Only a master account and a delegated administrator can call this API. \n\t\t\tWhen calling this API with a delegated administrator, you must ensure Organizations \n\t\t\tListDelegatedAdministrator permissions are added.

\n\t\t

This API enables organization service access for config-multiaccountsetup.amazonaws.com\n\t\t\tthrough the EnableAWSServiceAccess action and creates a \n\t\t\tservice linked role AWSServiceRoleForConfigMultiAccountSetup in the master or delegated administrator account of your organization. \n\t\t\tThe service linked role is created only when the role does not exist in the caller account. \n\t\t\tTo use this API with delegated administrator, register a delegated administrator by calling Amazon Web Services Organization \n\t\t\tregister-delegate-admin for config-multiaccountsetup.amazonaws.com.

\n\n\t\t\t\n\t\t\t \n\t\t \n\t\t\t

Prerequisite: Ensure you call EnableAllFeatures API to enable all features in an organization.

\n\t\t\t

You must specify either the TemplateS3Uri or the TemplateBody parameter, but not both. \n\t\t\tIf you provide both Config uses the TemplateS3Uri parameter and ignores the TemplateBody parameter.

\n\t\t\t

Config sets the state of a conformance pack to CREATE_IN_PROGRESS and UPDATE_IN_PROGRESS until the conformance pack is created or updated. \n\t\t\t\tYou cannot update a conformance pack while it is in this state.

\n\t\t\t

You can create 50 conformance packs with 25 Config rules in each pack and 3 delegated administrator per organization.

\n
" } }, "com.amazonaws.configservice#PutOrganizationConformancePackRequest": { @@ -8762,7 +8762,7 @@ "DeliveryS3Bucket": { "target": "com.amazonaws.configservice#DeliveryS3Bucket", "traits": { - "smithy.api#documentation": "

Amazon S3 bucket where AWS Config stores conformance pack templates.

\n\t\t \n

This field is optional. If used, it must be prefixed with awsconfigconforms.

\n
" + "smithy.api#documentation": "

The name of the Amazon S3 bucket where Config stores conformance pack templates.

\n\t\t \n

This field is optional. If used, it must be prefixed with awsconfigconforms.

\n
" } }, "DeliveryS3KeyPrefix": { @@ -8780,7 +8780,7 @@ "ExcludedAccounts": { "target": "com.amazonaws.configservice#ExcludedAccounts", "traits": { - "smithy.api#documentation": "

A list of AWS accounts to be excluded from an organization conformance pack while deploying a conformance pack.

" + "smithy.api#documentation": "

A list of Amazon Web Services accounts to be excluded from an organization conformance pack while deploying a conformance pack.

" } } } @@ -8813,7 +8813,7 @@ } ], "traits": { - "smithy.api#documentation": "

Adds or updates the remediation configuration with a specific AWS Config rule with the \n\t\t\tselected target or action. \n\t\t\tThe API creates the RemediationConfiguration object for the AWS Config rule. \n\t\tThe AWS Config rule must already exist for you to add a remediation configuration. \n\t\tThe target (SSM document) must exist and have permissions to use the target.

\n\t\t \n

If you make backward incompatible changes to the SSM document, \n\t\t\tyou must call this again to ensure the remediations can run.

\n\t\t\t

This API does not support adding remediation configurations for service-linked AWS Config Rules such as Organization Config rules, \n\t\t\t\tthe rules deployed by conformance packs, and rules deployed by AWS Security Hub.

\n
" + "smithy.api#documentation": "

Adds or updates the remediation configuration with a specific Config rule with the \n\t\t\tselected target or action. \n\t\t\tThe API creates the RemediationConfiguration object for the Config rule. \n\t\tThe Config rule must already exist for you to add a remediation configuration. \n\t\tThe target (SSM document) must exist and have permissions to use the target.

\n\t\t \n

If you make backward incompatible changes to the SSM document, \n\t\t\tyou must call this again to ensure the remediations can run.

\n\t\t\t

This API does not support adding remediation configurations for service-linked Config Rules such as Organization Config rules, \n\t\t\t\tthe rules deployed by conformance packs, and rules deployed by Amazon Web Services Security Hub.

\n
" } }, "com.amazonaws.configservice#PutRemediationConfigurationsRequest": { @@ -8856,7 +8856,7 @@ } ], "traits": { - "smithy.api#documentation": "

A remediation exception is when a specific resource is no longer considered for auto-remediation. \n\t\t\tThis API adds a new exception or updates an existing exception for a specific resource with a specific AWS Config rule.

\n\t\t \n

AWS Config generates a remediation exception when a problem occurs executing a remediation action to a specific resource. \n\t\t\tRemediation exceptions blocks auto-remediation until the exception is cleared.

\n
" + "smithy.api#documentation": "

A remediation exception is when a specific resource is no longer considered for auto-remediation. \n\t\t\tThis API adds a new exception or updates an existing exception for a specific resource with a specific Config rule.

\n\t\t \n

Config generates a remediation exception when a problem occurs executing a remediation action to a specific resource. \n\t\t\tRemediation exceptions blocks auto-remediation until the exception is cleared.

\n
" } }, "com.amazonaws.configservice#PutRemediationExceptionsRequest": { @@ -8865,14 +8865,14 @@ "ConfigRuleName": { "target": "com.amazonaws.configservice#ConfigRuleName", "traits": { - "smithy.api#documentation": "

The name of the AWS Config rule for which you want to create remediation exception.

", + "smithy.api#documentation": "

The name of the Config rule for which you want to create remediation exception.

", "smithy.api#required": {} } }, "ResourceKeys": { "target": "com.amazonaws.configservice#RemediationExceptionResourceKeys", "traits": { - "smithy.api#documentation": "

An exception list of resource exception keys to be processed with the current request. AWS Config adds exception for each resource key. For example, AWS Config adds 3 exceptions for 3 resource keys.

", + "smithy.api#documentation": "

An exception list of resource exception keys to be processed with the current request. Config adds exception for each resource key. For example, Config adds 3 exceptions for 3 resource keys.

", "smithy.api#required": {} } }, @@ -8921,7 +8921,7 @@ } ], "traits": { - "smithy.api#documentation": "

Records the configuration state for the resource provided in the request.\n\t\t\t \n\t\t\tThe configuration state of a resource is represented in AWS Config as Configuration Items. \n\t\t\tOnce this API records the configuration item, you can retrieve the list of configuration items for the custom resource type using existing AWS Config APIs.

\n\t\t \n

The custom resource type must be registered with AWS CloudFormation. This API accepts the configuration item registered with AWS CloudFormation.

\n\t\t\t

When you call this API, AWS Config only stores configuration state of the resource provided in the request. This API does not change or remediate the configuration of the resource.\n\t\t\t\t

\n\t\t

Write-only schema properites are not recorded as part of the published configuration item.

\n
" + "smithy.api#documentation": "

Records the configuration state for the resource provided in the request.\n\t\t\t \n\t\t\tThe configuration state of a resource is represented in Config as Configuration Items. \n\t\t\tOnce this API records the configuration item, you can retrieve the list of configuration items for the custom resource type using existing Config APIs.

\n\t\t \n

The custom resource type must be registered with CloudFormation. This API accepts the configuration item registered with CloudFormation.

\n\t\t\t

When you call this API, Config only stores configuration state of the resource provided in the request. This API does not change or remediate the configuration of the resource.\n\t\t\t\t

\n\t\t

Write-only schema properites are not recorded as part of the published configuration item.

\n
" } }, "com.amazonaws.configservice#PutResourceConfigRequest": { @@ -8930,14 +8930,14 @@ "ResourceType": { "target": "com.amazonaws.configservice#ResourceTypeString", "traits": { - "smithy.api#documentation": "

The type of the resource. The custom resource type must be registered with AWS CloudFormation.

\n\t\t \n

You cannot use the organization names “aws”, “amzn”, “amazon”, “alexa”, “custom” with custom resource types. It is the first part of the ResourceType up to the first ::.

\n
", + "smithy.api#documentation": "

The type of the resource. The custom resource type must be registered with CloudFormation.

\n\t\t \n

You cannot use the organization names “amzn”, “amazon”, “alexa”, “custom” with custom resource types. It is the first part of the ResourceType up to the first ::.

\n
", "smithy.api#required": {} } }, "SchemaVersionId": { "target": "com.amazonaws.configservice#SchemaVersionId", "traits": { - "smithy.api#documentation": "

Version of the schema registered for the ResourceType in AWS CloudFormation.

", + "smithy.api#documentation": "

Version of the schema registered for the ResourceType in CloudFormation.

", "smithy.api#required": {} } }, @@ -8957,7 +8957,7 @@ "Configuration": { "target": "com.amazonaws.configservice#Configuration", "traits": { - "smithy.api#documentation": "

The configuration object of the resource in valid JSON format. It must match the schema registered with AWS CloudFormation.

\n\t\t \n

The configuration JSON must not exceed 64 KB.

\n
", + "smithy.api#documentation": "

The configuration object of the resource in valid JSON format. It must match the schema registered with CloudFormation.

\n\t\t \n

The configuration JSON must not exceed 64 KB.

\n
", "smithy.api#required": {} } }, @@ -8986,7 +8986,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates and updates the retention configuration with details\n\t\t\tabout retention period (number of days) that AWS Config stores your\n\t\t\thistorical information. The API creates the\n\t\t\t\tRetentionConfiguration object and names the object\n\t\t\tas default. When you have a\n\t\t\t\tRetentionConfiguration object named default, calling the API modifies the\n\t\t\tdefault object.

\n\t\t \n\t\t\t

Currently, AWS Config supports only one retention\n\t\t\t\tconfiguration per region in your account.

\n\t\t
" + "smithy.api#documentation": "

Creates and updates the retention configuration with details\n\t\t\tabout retention period (number of days) that Config stores your\n\t\t\thistorical information. The API creates the\n\t\t\t\tRetentionConfiguration object and names the object\n\t\t\tas default. When you have a\n\t\t\t\tRetentionConfiguration object named default, calling the API modifies the\n\t\t\tdefault object.

\n\t\t \n\t\t\t

Currently, Config supports only one retention\n\t\t\t\tconfiguration per region in your account.

\n\t\t
" } }, "com.amazonaws.configservice#PutRetentionConfigurationRequest": { @@ -8995,7 +8995,7 @@ "RetentionPeriodInDays": { "target": "com.amazonaws.configservice#RetentionPeriodInDays", "traits": { - "smithy.api#documentation": "

Number of days AWS Config stores your historical\n\t\t\tinformation.

\n\t\t \n\t\t\t

Currently, only applicable to the configuration item\n\t\t\t\thistory.

\n\t\t
", + "smithy.api#documentation": "

Number of days Config stores your historical\n\t\t\tinformation.

\n\t\t \n\t\t\t

Currently, only applicable to the configuration item\n\t\t\t\thistory.

\n\t\t
", "smithy.api#required": {} } } @@ -9032,7 +9032,7 @@ } ], "traits": { - "smithy.api#documentation": "

Saves a new query or updates an existing saved query. The QueryName must be unique for a single AWS account and a single AWS Region.\n\t\t\tYou can create upto 300 queries in a single AWS account and a single AWS Region.

" + "smithy.api#documentation": "

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

" } }, "com.amazonaws.configservice#PutStoredQueryRequest": { @@ -9162,24 +9162,24 @@ "allSupported": { "target": "com.amazonaws.configservice#AllSupported", "traits": { - "smithy.api#documentation": "

Specifies whether AWS Config records configuration changes for\n\t\t\tevery supported type of regional resource.

\n\t\t

If you set this option to true, when AWS Config\n\t\t\tadds support for a new type of regional resource, it starts\n\t\t\trecording resources of that type automatically.

\n\t\t

If you set this option to true, you cannot\n\t\t\tenumerate a list of resourceTypes.

" + "smithy.api#documentation": "

Specifies whether Config records configuration changes for\n\t\t\tevery supported type of regional resource.

\n\t\t

If you set this option to true, when Config\n\t\t\tadds support for a new type of regional resource, it starts\n\t\t\trecording resources of that type automatically.

\n\t\t

If you set this option to true, you cannot\n\t\t\tenumerate a list of resourceTypes.

" } }, "includeGlobalResourceTypes": { "target": "com.amazonaws.configservice#IncludeGlobalResourceTypes", "traits": { - "smithy.api#documentation": "

Specifies whether AWS Config includes all supported types of\n\t\t\tglobal resources (for example, IAM resources) with the resources\n\t\t\tthat it records.

\n\t\t

Before you can set this option to true, you must\n\t\t\tset the allSupported option to\n\t\t\ttrue.

\n\t\t

If you set this option to true, when AWS Config\n\t\t\tadds support for a new type of global resource, it starts recording\n\t\t\tresources of that type automatically.

\n\t\t

The configuration details for any global resource are the same\n\t\t\tin all regions. To prevent duplicate configuration items, you should\n\t\t\tconsider customizing AWS Config in only one region to record global\n\t\t\tresources.

" + "smithy.api#documentation": "

Specifies whether Config includes all supported types of\n\t\t\tglobal resources (for example, IAM resources) with the resources\n\t\t\tthat it records.

\n\t\t

Before you can set this option to true, you must\n\t\t\tset the allSupported option to\n\t\t\ttrue.

\n\t\t

If you set this option to true, when Config\n\t\t\tadds support for a new type of global resource, it starts recording\n\t\t\tresources of that type automatically.

\n\t\t

The configuration details for any global resource are the same\n\t\t\tin all regions. To prevent duplicate configuration items, you should\n\t\t\tconsider customizing Config in only one region to record global\n\t\t\tresources.

" } }, "resourceTypes": { "target": "com.amazonaws.configservice#ResourceTypeList", "traits": { - "smithy.api#documentation": "

A comma-separated list that specifies the types of AWS\n\t\t\tresources for which AWS Config records configuration changes (for\n\t\t\texample, AWS::EC2::Instance or\n\t\t\t\tAWS::CloudTrail::Trail).

\n\t\t

To record all configuration changes, you must\n\t\t\tset the allSupported option to\n\t\t\ttrue.

\n\t\t

If you set this option to false, when AWS Config\n\t\t\tadds support for a new type of resource, it will not record\n\t\t\tresources of that type unless you manually add that type to your\n\t\t\trecording group.

\n\t\t

For a list of valid resourceTypes values, see the\n\t\t\t\tresourceType Value column in\n\t\t\t\tSupported AWS Resource Types.

" + "smithy.api#documentation": "

A comma-separated list that specifies the types of Amazon Web Services\n\t\t\tresources for which Config records configuration changes (for\n\t\t\texample, AWS::EC2::Instance or\n\t\t\t\tAWS::CloudTrail::Trail).

\n\t\t

To record all configuration changes, you must\n\t\t\tset the allSupported option to\n\t\t\ttrue.

\n\t\t

If you set this option to false, when Config\n\t\t\tadds support for a new type of resource, it will not record\n\t\t\tresources of that type unless you manually add that type to your\n\t\t\trecording group.

\n\t\t

For a list of valid resourceTypes values, see the\n\t\t\t\tresourceType Value column in\n\t\t\t\tSupported Amazon Web Services resource Types.

" } } }, "traits": { - "smithy.api#documentation": "

Specifies the types of AWS resource for which AWS Config\n\t\t\trecords configuration changes.

\n\t\t

In the recording group, you specify whether all supported types\n\t\t\tor specific types of resources are recorded.

\n\t\t

By default, AWS Config records configuration changes for all\n\t\t\tsupported types of regional resources that AWS Config discovers in\n\t\t\tthe region in which it is running. Regional resources are tied to a\n\t\t\tregion and can be used only in that region. Examples of regional\n\t\t\tresources are EC2 instances and EBS volumes.

\n\t\t

You can also have AWS Config record configuration changes for\n\t\t\tsupported types of global resources (for example, IAM resources).\n\t\t\tGlobal resources are not tied to an individual region and can be\n\t\t\tused in all regions.

\n\t\t \n\t\t\t

The configuration details for any global resource are the\n\t\t\t\tsame in all regions. If you customize AWS Config in multiple\n\t\t\t\tregions to record global resources, it will create multiple\n\t\t\t\tconfiguration items each time a global resource changes: one\n\t\t\t\tconfiguration item for each region. These configuration items\n\t\t\t\twill contain identical data. To prevent duplicate configuration\n\t\t\t\titems, you should consider customizing AWS Config in only one\n\t\t\t\tregion to record global resources, unless you want the\n\t\t\t\tconfiguration items to be available in multiple\n\t\t\t\tregions.

\n\t\t
\n\t\t

If you don't want AWS Config to record all resources, you can\n\t\t\tspecify which types of resources it will record with the\n\t\t\t\tresourceTypes parameter.

\n\t\t

For a list of supported resource types, see Supported Resource Types.

\n\t\t

For more information, see Selecting Which Resources AWS Config Records.

" + "smithy.api#documentation": "

Specifies the types of Amazon Web Services resource for which Config\n\t\t\trecords configuration changes.

\n\t\t

In the recording group, you specify whether all supported types\n\t\t\tor specific types of resources are recorded.

\n\t\t

By default, Config records configuration changes for all\n\t\t\tsupported types of regional resources that Config discovers in\n\t\t\tthe region in which it is running. Regional resources are tied to a\n\t\t\tregion and can be used only in that region. Examples of regional\n\t\t\tresources are EC2 instances and EBS volumes.

\n\t\t

You can also have Config record configuration changes for\n\t\t\tsupported types of global resources (for example, IAM resources).\n\t\t\tGlobal resources are not tied to an individual region and can be\n\t\t\tused in all regions.

\n\t\t \n\t\t\t

The configuration details for any global resource are the\n\t\t\t\tsame in all regions. If you customize Config in multiple\n\t\t\t\tregions to record global resources, it will create multiple\n\t\t\t\tconfiguration items each time a global resource changes: one\n\t\t\t\tconfiguration item for each region. These configuration items\n\t\t\t\twill contain identical data. To prevent duplicate configuration\n\t\t\t\titems, you should consider customizing Config in only one\n\t\t\t\tregion to record global resources, unless you want the\n\t\t\t\tconfiguration items to be available in multiple\n\t\t\t\tregions.

\n\t\t
\n\t\t

If you don't want Config to record all resources, you can\n\t\t\tspecify which types of resources it will record with the\n\t\t\t\tresourceTypes parameter.

\n\t\t

For a list of supported resource types, see Supported Resource Types.

\n\t\t

For more information, see Selecting Which Resources Config Records.

" } }, "com.amazonaws.configservice#ReevaluateConfigRuleNames": { @@ -9250,7 +9250,7 @@ "ConfigRuleName": { "target": "com.amazonaws.configservice#ConfigRuleName", "traits": { - "smithy.api#documentation": "

The name of the AWS Config rule.

", + "smithy.api#documentation": "

The name of the Config rule.

", "smithy.api#required": {} } }, @@ -9301,13 +9301,13 @@ "MaximumAutomaticAttempts": { "target": "com.amazonaws.configservice#AutoRemediationAttempts", "traits": { - "smithy.api#documentation": "

The maximum number of failed attempts for auto-remediation. If you do not select a number, the default is 5.

\n\t\t

For example, if you specify MaximumAutomaticAttempts as 5 with RetryAttemptSeconds as 50 seconds, \n\t\t\t\n\t\t\tAWS Config will put a RemediationException on your behalf for the failing resource after the 5th failed attempt within 50 seconds.

" + "smithy.api#documentation": "

The maximum number of failed attempts for auto-remediation. If you do not select a number, the default is 5.

\n\t\t

For example, if you specify MaximumAutomaticAttempts as 5 with RetryAttemptSeconds as 50 seconds, \n\t\t\t\n\t\t\tConfig will put a RemediationException on your behalf for the failing resource after the 5th failed attempt within 50 seconds.

" } }, "RetryAttemptSeconds": { "target": "com.amazonaws.configservice#AutoRemediationAttemptSeconds", "traits": { - "smithy.api#documentation": "

Maximum time in seconds that AWS Config runs auto-remediation. If you do not select a number, the default is 60 seconds.

\n\t\t

For example, if you specify RetryAttemptSeconds as 50 seconds and MaximumAutomaticAttempts as 5, \n\t\tAWS Config will run auto-remediations 5 times within 50 seconds before throwing an exception.

" + "smithy.api#documentation": "

Maximum time in seconds that Config runs auto-remediation. If you do not select a number, the default is 60 seconds.

\n\t\t

For example, if you specify RetryAttemptSeconds as 50 seconds and MaximumAutomaticAttempts as 5, \n\t\tConfig will run auto-remediations 5 times within 50 seconds before throwing an exception.

" } }, "Arn": { @@ -9345,7 +9345,7 @@ "ConfigRuleName": { "target": "com.amazonaws.configservice#ConfigRuleName", "traits": { - "smithy.api#documentation": "

The name of the AWS Config rule.

", + "smithy.api#documentation": "

The name of the Config rule.

", "smithy.api#required": {} } }, @@ -9397,7 +9397,7 @@ } }, "traits": { - "smithy.api#documentation": "

The details that identify a resource within AWS Config, including the resource type and resource ID.

" + "smithy.api#documentation": "

The details that identify a resource within Config, including the resource type and resource ID.

" } }, "com.amazonaws.configservice#RemediationExceptionResourceKeys": { @@ -9562,7 +9562,7 @@ } }, "traits": { - "smithy.api#documentation": "

Remediation action is in progress. You can either cancel execution in AWS Systems Manager or wait and try again later.

", + "smithy.api#documentation": "

Remediation action is in progress. You can either cancel execution in Amazon Web Services Systems Manager or wait and try again later.

", "smithy.api#error": "client" } }, @@ -9650,7 +9650,7 @@ "ResourceType": { "target": "com.amazonaws.configservice#ResourceType", "traits": { - "smithy.api#documentation": "

The type of the AWS resource.

" + "smithy.api#documentation": "

The type of the Amazon Web Services resource.

" } }, "AccountId": { @@ -9777,7 +9777,7 @@ } }, "traits": { - "smithy.api#documentation": "

The details that identify a resource that is discovered by AWS\n\t\t\tConfig, including the resource type, ID, and (if available) the\n\t\t\tcustom resource name.

" + "smithy.api#documentation": "

The details that identify a resource that is discovered by Config, including the resource type, ID, and (if available) the\n\t\t\tcustom resource name.

" } }, "com.amazonaws.configservice#ResourceIdentifierList": { @@ -9809,7 +9809,7 @@ } }, "traits": { - "smithy.api#documentation": "

You see this exception in the following cases:

\n\t\t ", + "smithy.api#documentation": "

You see this exception in the following cases:

\n\t\t ", "smithy.api#error": "client" } }, @@ -9832,7 +9832,7 @@ } }, "traits": { - "smithy.api#documentation": "

The details that identify a resource within AWS Config, including\n\t\t\tthe resource type and resource ID.

" + "smithy.api#documentation": "

The details that identify a resource within Config, including\n\t\t\tthe resource type and resource ID.

" } }, "com.amazonaws.configservice#ResourceKeys": { @@ -10403,13 +10403,13 @@ "RetentionPeriodInDays": { "target": "com.amazonaws.configservice#RetentionPeriodInDays", "traits": { - "smithy.api#documentation": "

Number of days AWS Config stores your historical information.

\n\t\t \n

Currently, only applicable to the configuration item history.

\n
", + "smithy.api#documentation": "

Number of days Config stores your historical information.

\n\t\t \n

Currently, only applicable to the configuration item history.

\n
", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

An object with the name of the retention configuration and the retention period in days. The object stores the configuration for data retention in AWS Config.

" + "smithy.api#documentation": "

An object with the name of the retention configuration and the retention period in days. The object stores the configuration for data retention in Config.

" } }, "com.amazonaws.configservice#RetentionConfigurationList": { @@ -10474,30 +10474,30 @@ "ComplianceResourceTypes": { "target": "com.amazonaws.configservice#ComplianceResourceTypes", "traits": { - "smithy.api#documentation": "

The resource types of only those AWS resources that you want to\n\t\t\ttrigger an evaluation for the rule. You can only specify one type if\n\t\t\tyou also specify a resource ID for\n\t\t\tComplianceResourceId.

" + "smithy.api#documentation": "

The resource types of only those Amazon Web Services resources that you want to\n\t\t\ttrigger an evaluation for the rule. You can only specify one type if\n\t\t\tyou also specify a resource ID for\n\t\t\tComplianceResourceId.

" } }, "TagKey": { "target": "com.amazonaws.configservice#StringWithCharLimit128", "traits": { - "smithy.api#documentation": "

The tag key that is applied to only those AWS resources that\n\t\t\tyou want to trigger an evaluation for the rule.

" + "smithy.api#documentation": "

The tag key that is applied to only those Amazon Web Services resources that\n\t\t\tyou want to trigger an evaluation for the rule.

" } }, "TagValue": { "target": "com.amazonaws.configservice#StringWithCharLimit256", "traits": { - "smithy.api#documentation": "

The tag value applied to only those AWS resources that you want\n\t\t\tto trigger an evaluation for the rule. If you specify a value for\n\t\t\t\tTagValue, you must also specify a value for\n\t\t\t\tTagKey.

" + "smithy.api#documentation": "

The tag value applied to only those Amazon Web Services resources that you want\n\t\t\tto trigger an evaluation for the rule. If you specify a value for\n\t\t\t\tTagValue, you must also specify a value for\n\t\t\t\tTagKey.

" } }, "ComplianceResourceId": { "target": "com.amazonaws.configservice#BaseResourceId", "traits": { - "smithy.api#documentation": "

The ID of the only AWS resource that you want to trigger an\n\t\t\tevaluation for the rule. If you specify a resource ID, you must\n\t\t\tspecify one resource type for\n\t\t\tComplianceResourceTypes.

" + "smithy.api#documentation": "

The ID of the only Amazon Web Services resource that you want to trigger an\n\t\t\tevaluation for the rule. If you specify a resource ID, you must\n\t\t\tspecify one resource type for\n\t\t\tComplianceResourceTypes.

" } } }, "traits": { - "smithy.api#documentation": "

Defines which resources trigger an evaluation for an AWS Config\n\t\t\trule. The scope can include one or more resource types, a\n\t\t\tcombination of a tag key and value, or a combination of one resource\n\t\t\ttype and one resource ID. Specify a scope to constrain which\n\t\t\tresources trigger an evaluation for a rule. Otherwise, evaluations\n\t\t\tfor the rule are triggered when any resource in your recording group\n\t\t\tchanges in configuration.

" + "smithy.api#documentation": "

Defines which resources trigger an evaluation for an Config\n\t\t\trule. The scope can include one or more resource types, a\n\t\t\tcombination of a tag key and value, or a combination of one resource\n\t\t\ttype and one resource ID. Specify a scope to constrain which\n\t\t\tresources trigger an evaluation for a rule. Otherwise, evaluations\n\t\t\tfor the rule are triggered when any resource in your recording group\n\t\t\tchanges in configuration.

" } }, "com.amazonaws.configservice#SelectAggregateResourceConfig": { @@ -10523,7 +10523,7 @@ } ], "traits": { - "smithy.api#documentation": "

Accepts a structured query language (SQL) SELECT command and an aggregator to query configuration state of AWS resources across multiple accounts and regions, \n\t\t\tperforms the corresponding search, and returns resource configurations matching the properties.

\n\t\t

For more information about query components, see the \n\t\t\t\n Query Components\n section in the AWS Config Developer Guide.

", + "smithy.api#documentation": "

Accepts a structured query language (SQL) SELECT command and an aggregator to query configuration state of Amazon Web Services resources across multiple accounts and regions, \n\t\t\tperforms the corresponding search, and returns resource configurations matching the properties.

\n\t\t

For more information about query components, see the \n\t\t\t\n Query Components\n section in the Config Developer Guide.

\n\t\t\n\t\t \n\t\t\t

If you run an aggregation query (i.e., using GROUP BY or using aggregate functions such as COUNT; e.g., SELECT resourceId, COUNT(*) WHERE resourceType = 'AWS::IAM::Role' GROUP BY resourceId)\n\t\t\t\tand do not specify the MaxResults or the Limit query parameters, the default page size is set to 500.

\n\t\t\t\n\t\t\t

If you run a non-aggregation query (i.e., not using GROUP BY or aggregate function; e.g., SELECT * WHERE resourceType = 'AWS::IAM::Role')\n\t\t\t\tand do not specify the MaxResults or the Limit query parameters, the default page size is set to 25.

\n\t\t
", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -10558,7 +10558,7 @@ "MaxResults": { "target": "com.amazonaws.configservice#Limit", "traits": { - "smithy.api#documentation": "

The maximum number of query results returned on each page. AWS Config also allows the Limit request parameter.

" + "smithy.api#documentation": "

The maximum number of query results returned on each page. Config also allows the Limit request parameter.

" } }, "NextToken": { @@ -10609,7 +10609,7 @@ } ], "traits": { - "smithy.api#documentation": "

Accepts a structured query language (SQL) SELECT command, performs the corresponding search, and returns resource configurations matching the properties.

\n\t\t

For more information about query components, see the \n\t\t\t\n Query Components\n section in the AWS Config Developer Guide.

", + "smithy.api#documentation": "

Accepts a structured query language (SQL) SELECT command, performs the corresponding search, and returns resource configurations matching the properties.

\n\t\t

For more information about query components, see the \n\t\t\t\n Query Components\n section in the Config Developer Guide.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -10671,26 +10671,26 @@ "Owner": { "target": "com.amazonaws.configservice#Owner", "traits": { - "smithy.api#documentation": "

Indicates whether AWS or the customer owns and manages the AWS\n\t\t\tConfig rule.

", + "smithy.api#documentation": "

Indicates whether Amazon Web Services or the customer owns and manages the Config rule.

", "smithy.api#required": {} } }, "SourceIdentifier": { "target": "com.amazonaws.configservice#StringWithCharLimit256", "traits": { - "smithy.api#documentation": "

For AWS Config managed rules, a predefined identifier from a\n\t\t\tlist. For example, IAM_PASSWORD_POLICY is a managed\n\t\t\trule. To reference a managed rule, see Using AWS Managed Config Rules.

\n\t\t

For custom rules, the identifier is the Amazon Resource Name\n\t\t\t(ARN) of the rule's AWS Lambda function, such as\n\t\t\t\tarn:aws:lambda:us-east-2:123456789012:function:custom_rule_name.

", + "smithy.api#documentation": "

For Config managed rules, a predefined identifier from a\n\t\t\tlist. For example, IAM_PASSWORD_POLICY is a managed\n\t\t\trule. To reference a managed rule, see Using Config managed rules.

\n\t\t

For custom rules, the identifier is the Amazon Resource Name\n\t\t\t(ARN) of the rule's Lambda function, such as\n\t\t\t\tarn:aws:lambda:us-east-2:123456789012:function:custom_rule_name.

", "smithy.api#required": {} } }, "SourceDetails": { "target": "com.amazonaws.configservice#SourceDetails", "traits": { - "smithy.api#documentation": "

Provides the source and type of the event that causes AWS\n\t\t\tConfig to evaluate your AWS resources.

" + "smithy.api#documentation": "

Provides the source and type of the event that causes Config to evaluate your Amazon Web Services resources.

" } } }, "traits": { - "smithy.api#documentation": "

Provides the AWS Config rule owner (AWS or customer), the rule\n\t\t\tidentifier, and the events that trigger the evaluation of your AWS\n\t\t\tresources.

" + "smithy.api#documentation": "

Provides the Config rule owner (Amazon Web Services or customer), the rule\n\t\t\tidentifier, and the events that trigger the evaluation of your Amazon Web Services\n\t\t\tresources.

" } }, "com.amazonaws.configservice#SourceDetail": { @@ -10699,24 +10699,24 @@ "EventSource": { "target": "com.amazonaws.configservice#EventSource", "traits": { - "smithy.api#documentation": "

The source of the event, such as an AWS service, that triggers\n\t\t\tAWS Config to evaluate your AWS resources.

" + "smithy.api#documentation": "

The source of the event, such as an Amazon Web Services service, that triggers\n\t\t\tConfig to evaluate your Amazon Web Services resources.

" } }, "MessageType": { "target": "com.amazonaws.configservice#MessageType", "traits": { - "smithy.api#documentation": "

The type of notification that triggers AWS Config to run an\n\t\t\tevaluation for a rule. You can specify the following notification\n\t\t\ttypes:

\n\n\n\t\t \n\n\t\t

If you want your custom rule to be triggered by configuration\n\t\t\tchanges, specify two SourceDetail objects, one for\n\t\t\t\tConfigurationItemChangeNotification and one for\n\t\t\t\tOversizedConfigurationItemChangeNotification.

" + "smithy.api#documentation": "

The type of notification that triggers Config to run an\n\t\t\tevaluation for a rule. You can specify the following notification\n\t\t\ttypes:

\n\n\n\t\t \n\n\t\t

If you want your custom rule to be triggered by configuration\n\t\t\tchanges, specify two SourceDetail objects, one for\n\t\t\t\tConfigurationItemChangeNotification and one for\n\t\t\t\tOversizedConfigurationItemChangeNotification.

" } }, "MaximumExecutionFrequency": { "target": "com.amazonaws.configservice#MaximumExecutionFrequency", "traits": { - "smithy.api#documentation": "

The frequency at which you want AWS Config to run evaluations\n\t\t\tfor a custom rule with a periodic trigger. If you specify a value\n\t\t\tfor MaximumExecutionFrequency, then\n\t\t\t\tMessageType must use the\n\t\t\t\tScheduledNotification value.

\n\n\n\t\t\n\n\n\t\t \n\t\t\t

By default, rules with a periodic trigger are evaluated\n\t\t\t\tevery 24 hours. To change the frequency, specify a valid value\n\t\t\t\tfor the MaximumExecutionFrequency\n\t\t\t\tparameter.

\n\t\t\t

Based on the valid value you choose, AWS Config runs\n\t\t\t\tevaluations once for each valid value. For example, if you\n\t\t\t\tchoose Three_Hours, AWS Config runs evaluations\n\t\t\t\tonce every three hours. In this case, Three_Hours\n\t\t\t\tis the frequency of this rule.

\n\t\t
" + "smithy.api#documentation": "

The frequency at which you want Config to run evaluations\n\t\t\tfor a custom rule with a periodic trigger. If you specify a value\n\t\t\tfor MaximumExecutionFrequency, then\n\t\t\t\tMessageType must use the\n\t\t\t\tScheduledNotification value.

\n\n\n\t\t\n\n\n\t\t \n\t\t\t

By default, rules with a periodic trigger are evaluated\n\t\t\t\tevery 24 hours. To change the frequency, specify a valid value\n\t\t\t\tfor the MaximumExecutionFrequency\n\t\t\t\tparameter.

\n\t\t\t

Based on the valid value you choose, Config runs\n\t\t\t\tevaluations once for each valid value. For example, if you\n\t\t\t\tchoose Three_Hours, Config runs evaluations\n\t\t\t\tonce every three hours. In this case, Three_Hours\n\t\t\t\tis the frequency of this rule.

\n\t\t
" } } }, "traits": { - "smithy.api#documentation": "

Provides the source and the message types that trigger AWS\n\t\t\tConfig to evaluate your AWS resources against a rule. It also\n\t\t\tprovides the frequency with which you want AWS Config to run\n\t\t\tevaluations for the rule if the trigger type is periodic. You can\n\t\t\tspecify the parameter values for SourceDetail only for\n\t\t\tcustom rules.

" + "smithy.api#documentation": "

Provides the source and the message types that trigger Config to evaluate your Amazon Web Services resources against a rule. It also\n\t\t\tprovides the frequency with which you want Config to run\n\t\t\tevaluations for the rule if the trigger type is periodic. You can\n\t\t\tspecify the parameter values for SourceDetail only for\n\t\t\tcustom rules.

" } }, "com.amazonaws.configservice#SourceDetails": { @@ -10748,7 +10748,7 @@ } }, "traits": { - "smithy.api#documentation": "

AWS Systems Manager (SSM) specific remediation controls.

" + "smithy.api#documentation": "

Amazon Web Services Systems Manager (SSM) specific remediation controls.

" } }, "com.amazonaws.configservice#StackArn": { @@ -11035,7 +11035,7 @@ "name": "config" }, "aws.protocols#awsJson1_1": {}, - "smithy.api#documentation": "AWS Config\n\n\t\t

AWS Config provides a way to keep track of the configurations\n\t\t\tof all the AWS resources associated with your AWS account. You can\n\t\t\tuse AWS Config to get the current and historical configurations of\n\t\t\teach AWS resource and also to get information about the relationship\n\t\t\tbetween the resources. An AWS resource can be an Amazon Compute\n\t\t\tCloud (Amazon EC2) instance, an Elastic Block Store (EBS) volume, an\n\t\t\telastic network Interface (ENI), or a security group. For a complete\n\t\t\tlist of resources currently supported by AWS Config, see Supported AWS Resources.

\n\n\t\t

You can access and manage AWS Config through the AWS Management\n\t\t\tConsole, the AWS Command Line Interface (AWS CLI), the AWS Config\n\t\t\tAPI, or the AWS SDKs for AWS Config. This reference guide contains\n\t\t\tdocumentation for the AWS Config API and the AWS CLI commands that\n\t\t\tyou can use to manage AWS Config. The AWS Config API uses the\n\t\t\tSignature Version 4 protocol for signing requests. For more\n\t\t\tinformation about how to sign a request with this protocol, see\n\t\t\t\tSignature\n\t\t\t\tVersion 4 Signing Process. For detailed information\n\t\t\tabout AWS Config features and their associated actions or commands,\n\t\t\tas well as how to work with AWS Management Console, see What Is AWS\n\t\t\t\tConfig in the AWS Config Developer\n\t\t\t\tGuide.

", + "smithy.api#documentation": "Config\n\n\t\t

Config provides a way to keep track of the configurations\n\t\t\tof all the Amazon Web Services resources associated with your Amazon Web Services account. You can\n\t\t\tuse Config to get the current and historical configurations of\n\t\t\teach Amazon Web Services resource and also to get information about the relationship\n\t\t\tbetween the resources. An Amazon Web Services resource can be an Amazon Compute\n\t\t\tCloud (Amazon EC2) instance, an Elastic Block Store (EBS) volume, an\n\t\t\telastic network Interface (ENI), or a security group. For a complete\n\t\t\tlist of resources currently supported by Config, see Supported Amazon Web Services resources.

\n\n\t\t

You can access and manage Config through the Amazon Web Services Management\n\t\t\tConsole, the Amazon Web Services Command Line Interface (Amazon Web Services CLI), the Config\n\t\t\tAPI, or the Amazon Web Services SDKs for Config. This reference guide contains\n\t\t\tdocumentation for the Config API and the Amazon Web Services CLI commands that\n\t\t\tyou can use to manage Config. The Config API uses the\n\t\t\tSignature Version 4 protocol for signing requests. For more\n\t\t\tinformation about how to sign a request with this protocol, see\n\t\t\t\tSignature\n\t\t\t\tVersion 4 Signing Process. For detailed information\n\t\t\tabout Config features and their associated actions or commands,\n\t\t\tas well as how to work with Amazon Web Services Management Console, see What Is Config in the Config Developer\n\t\t\t\tGuide.

", "smithy.api#title": "AWS Config", "smithy.api#xmlNamespace": { "uri": "http://config.amazonaws.com/doc/2014-11-12/" @@ -11065,7 +11065,7 @@ } ], "traits": { - "smithy.api#documentation": "

Runs an on-demand evaluation for the specified AWS Config rules\n\t\t\tagainst the last known configuration state of the resources. Use\n\t\t\t\tStartConfigRulesEvaluation when you want to test\n\t\t\tthat a rule you updated is working as expected.\n\t\t\t\tStartConfigRulesEvaluation does not re-record the\n\t\t\tlatest configuration state for your resources. It re-runs an\n\t\t\tevaluation against the last known state of your resources.

\n\t\t

You can specify up to 25 AWS Config rules per request.

\n\n\t\t\n\t\t

An existing StartConfigRulesEvaluation call for\n\t\t\tthe specified rules must complete before you can call the API again.\n\t\t\tIf you chose to have AWS Config stream to an Amazon SNS topic, you\n\t\t\twill receive a ConfigRuleEvaluationStarted notification\n\t\t\twhen the evaluation starts.

\n\t\t \n\t\t\t

You don't need to call the\n\t\t\t\t\tStartConfigRulesEvaluation API to run an\n\t\t\t\tevaluation for a new rule. When you create a rule, AWS Config\n\t\t\t\tevaluates your resources against the rule automatically.\n\t\t\t

\n\t\t
\n\t\t

The StartConfigRulesEvaluation API is useful if\n\t\t\tyou want to run on-demand evaluations, such as the following\n\t\t\texample:

\n\t\t
    \n
  1. \n\t\t\t\t

    You have a custom rule that evaluates your IAM\n\t\t\t\t\tresources every 24 hours.

    \n\t\t\t
  2. \n
  3. \n\t\t\t\t

    You update your Lambda function to add additional\n\t\t\t\t\tconditions to your rule.

    \n\t\t\t
  4. \n
  5. \n\t\t\t\t

    Instead of waiting for the next periodic evaluation,\n\t\t\t\t\tyou call the StartConfigRulesEvaluation\n\t\t\t\t\tAPI.

    \n\t\t\t
  6. \n
  7. \n\t\t\t\t

    AWS Config invokes your Lambda function and evaluates\n\t\t\t\t\tyour IAM resources.

    \n\t\t\t
  8. \n
  9. \n\t\t\t\t

    Your custom rule will still run periodic evaluations\n\t\t\t\t\tevery 24 hours.

    \n\t\t\t
  10. \n
" + "smithy.api#documentation": "

Runs an on-demand evaluation for the specified Config rules\n\t\t\tagainst the last known configuration state of the resources. Use\n\t\t\t\tStartConfigRulesEvaluation when you want to test\n\t\t\tthat a rule you updated is working as expected.\n\t\t\t\tStartConfigRulesEvaluation does not re-record the\n\t\t\tlatest configuration state for your resources. It re-runs an\n\t\t\tevaluation against the last known state of your resources.

\n\t\t

You can specify up to 25 Config rules per request.

\n\n\t\t\n\t\t

An existing StartConfigRulesEvaluation call for\n\t\t\tthe specified rules must complete before you can call the API again.\n\t\t\tIf you chose to have Config stream to an Amazon SNS topic, you\n\t\t\twill receive a ConfigRuleEvaluationStarted notification\n\t\t\twhen the evaluation starts.

\n\t\t \n\t\t\t

You don't need to call the\n\t\t\t\t\tStartConfigRulesEvaluation API to run an\n\t\t\t\tevaluation for a new rule. When you create a rule, Config\n\t\t\t\tevaluates your resources against the rule automatically.\n\t\t\t

\n\t\t
\n\t\t

The StartConfigRulesEvaluation API is useful if\n\t\t\tyou want to run on-demand evaluations, such as the following\n\t\t\texample:

\n\t\t
    \n
  1. \n\t\t\t\t

    You have a custom rule that evaluates your IAM\n\t\t\t\t\tresources every 24 hours.

    \n\t\t\t
  2. \n
  3. \n\t\t\t\t

    You update your Lambda function to add additional\n\t\t\t\t\tconditions to your rule.

    \n\t\t\t
  4. \n
  5. \n\t\t\t\t

    Instead of waiting for the next periodic evaluation,\n\t\t\t\t\tyou call the StartConfigRulesEvaluation\n\t\t\t\t\tAPI.

    \n\t\t\t
  6. \n
  7. \n\t\t\t\t

    Config invokes your Lambda function and evaluates\n\t\t\t\t\tyour IAM resources.

    \n\t\t\t
  8. \n
  9. \n\t\t\t\t

    Your custom rule will still run periodic evaluations\n\t\t\t\t\tevery 24 hours.

    \n\t\t\t
  10. \n
" } }, "com.amazonaws.configservice#StartConfigRulesEvaluationRequest": { @@ -11074,7 +11074,7 @@ "ConfigRuleNames": { "target": "com.amazonaws.configservice#ReevaluateConfigRuleNames", "traits": { - "smithy.api#documentation": "

The list of names of AWS Config rules that you want to run\n\t\t\tevaluations for.

" + "smithy.api#documentation": "

The list of names of Config rules that you want to run\n\t\t\tevaluations for.

" } } }, @@ -11086,7 +11086,7 @@ "type": "structure", "members": {}, "traits": { - "smithy.api#documentation": "

The output when you start the evaluation for the specified AWS\n\t\t\tConfig rule.

" + "smithy.api#documentation": "

The output when you start the evaluation for the specified Config rule.

" } }, "com.amazonaws.configservice#StartConfigurationRecorder": { @@ -11103,7 +11103,7 @@ } ], "traits": { - "smithy.api#documentation": "

Starts recording configurations of the AWS resources you have\n\t\t\tselected to record in your AWS account.

\n\t\t

You must have created at least one delivery channel to\n\t\t\tsuccessfully start the configuration recorder.

" + "smithy.api#documentation": "

Starts recording configurations of the Amazon Web Services resources you have\n\t\t\tselected to record in your Amazon Web Services account.

\n\t\t

You must have created at least one delivery channel to\n\t\t\tsuccessfully start the configuration recorder.

" } }, "com.amazonaws.configservice#StartConfigurationRecorderRequest": { @@ -11141,7 +11141,7 @@ } ], "traits": { - "smithy.api#documentation": "

Runs an on-demand remediation for the specified AWS Config rules against the last known remediation configuration. It runs an execution against the current state of your resources. Remediation execution is asynchronous.

\n\t\t\t

You can specify up to 100 resource keys per request. An existing StartRemediationExecution call for the specified resource keys must complete before you can call the API again.

" + "smithy.api#documentation": "

Runs an on-demand remediation for the specified Config rules against the last known remediation configuration. It runs an execution against the current state of your resources. Remediation execution is asynchronous.

\n\t\t\t

You can specify up to 100 resource keys per request. An existing StartRemediationExecution call for the specified resource keys must complete before you can call the API again.

" } }, "com.amazonaws.configservice#StartRemediationExecutionRequest": { @@ -11150,7 +11150,7 @@ "ConfigRuleName": { "target": "com.amazonaws.configservice#ConfigRuleName", "traits": { - "smithy.api#documentation": "

The list of names of AWS Config rules that you want to run remediation execution for.

", + "smithy.api#documentation": "

The list of names of Config rules that you want to run remediation execution for.

", "smithy.api#required": {} } }, @@ -11219,7 +11219,7 @@ "MemberAccountRuleStatus": { "target": "com.amazonaws.configservice#MemberAccountRuleStatus", "traits": { - "smithy.api#documentation": "

Indicates deployment status for config rule in the member account.\n\t\t\tWhen master account calls PutOrganizationConfigRule action for the first time, config rule status is created in the member account. \n\t\t\tWhen master account calls PutOrganizationConfigRule action for the second time, config rule status is updated in the member account. \n\t\t\tConfig rule status is deleted when the master account deletes OrganizationConfigRule and disables service access for config-multiaccountsetup.amazonaws.com. \n\t\t\t

\n\t\t

AWS Config sets the state of the rule to:

\n\t\t " + "smithy.api#documentation": "

Indicates deployment status for config rule in the member account.\n\t\t\tWhen master account calls PutOrganizationConfigRule action for the first time, config rule status is created in the member account. \n\t\t\tWhen master account calls PutOrganizationConfigRule action for the second time, config rule status is updated in the member account. \n\t\t\tConfig rule status is deleted when the master account deletes OrganizationConfigRule and disables service access for config-multiaccountsetup.amazonaws.com. \n\t\t\t

\n\t\t

Config sets the state of the rule to:

\n\t\t " } } }, @@ -11238,7 +11238,7 @@ } ], "traits": { - "smithy.api#documentation": "

Stops recording configurations of the AWS resources you have selected to record in your AWS account.

" + "smithy.api#documentation": "

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

" } }, "com.amazonaws.configservice#StopConfigurationRecorderRequest": { diff --git a/codegen/sdk-codegen/aws-models/ebs.2019-11-02.json b/codegen/sdk-codegen/aws-models/ebs.2019-11-02.json index 83b661268ec..9c85fc54da5 100644 --- a/codegen/sdk-codegen/aws-models/ebs.2019-11-02.json +++ b/codegen/sdk-codegen/aws-models/ebs.2019-11-02.json @@ -1074,7 +1074,7 @@ "VolumeSize": { "target": "com.amazonaws.ebs#VolumeSize", "traits": { - "smithy.api#documentation": "

The size of the volume, in GiB. The maximum size is 16384 GiB (16\n TiB).

", + "smithy.api#documentation": "

The size of the volume, in GiB. The maximum size is 65536 GiB (64\n TiB).

", "smithy.api#required": {} } }, diff --git a/codegen/sdk-codegen/aws-models/ec2.2016-11-15.json b/codegen/sdk-codegen/aws-models/ec2.2016-11-15.json index bd655a5226c..211bf8a6ddd 100644 --- a/codegen/sdk-codegen/aws-models/ec2.2016-11-15.json +++ b/codegen/sdk-codegen/aws-models/ec2.2016-11-15.json @@ -13481,13 +13481,6 @@ "com.amazonaws.ec2#CreateVpcRequest": { "type": "structure", "members": { - "CidrBlock": { - "target": "com.amazonaws.ec2#String", - "traits": { - "smithy.api#documentation": "

The IPv4 network range for the VPC, in CIDR notation. For example,\n\t\t 10.0.0.0/16. We modify the specified CIDR block to its canonical form; for example, if you specify 100.68.0.18/18, we modify it to 100.68.0.0/18.

", - "smithy.api#required": {} - } - }, "AmazonProvidedIpv6CidrBlock": { "target": "com.amazonaws.ec2#Boolean", "traits": { @@ -13536,6 +13529,13 @@ "smithy.api#documentation": "

The tags to assign to the VPC.

", "smithy.api#xmlName": "TagSpecification" } + }, + "CidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IPv4 network range for the VPC, in CIDR notation. For example,\n\t\t 10.0.0.0/16. We modify the specified CIDR block to its canonical form; for example, if you specify 100.68.0.18/18, we modify it to 100.68.0.0/18.

", + "smithy.api#required": {} + } } } }, @@ -36561,6 +36561,12 @@ "traits": { "smithy.api#documentation": "

The usage operation value. For more information, see AMI billing information fields in the Amazon Elastic Compute Cloud User Guide.

" } + }, + "BootMode": { + "target": "com.amazonaws.ec2#BootModeValues", + "traits": { + "smithy.api#documentation": "

The boot mode of the virtual machine.

" + } } } }, @@ -36827,6 +36833,14 @@ "smithy.api#documentation": "

The usage operation value.

", "smithy.api#xmlName": "usageOperation" } + }, + "BootMode": { + "target": "com.amazonaws.ec2#BootModeValues", + "traits": { + "aws.protocols#ec2QueryName": "BootMode", + "smithy.api#documentation": "

The boot mode of the virtual machine.

", + "smithy.api#xmlName": "bootMode" + } } }, "traits": { @@ -43741,6 +43755,14 @@ "smithy.api#documentation": "

This parameter enables or disables the HTTP metadata endpoint on your instances. If the parameter is not specified, the default state is enabled.

\n \n

If you specify a value of disabled, you will not be able to access your instance metadata.\n

\n
", "smithy.api#xmlName": "httpEndpoint" } + }, + "HttpProtocolIpv6": { + "target": "com.amazonaws.ec2#LaunchTemplateInstanceMetadataProtocolIpv6", + "traits": { + "aws.protocols#ec2QueryName": "HttpProtocolIpv6", + "smithy.api#documentation": "

Enables or disables the IPv6 endpoint for the instance metadata service.

\n

Default: disabled\n

", + "smithy.api#xmlName": "httpProtocolIpv6" + } } }, "traits": { @@ -43767,6 +43789,12 @@ "traits": { "smithy.api#documentation": "

This parameter enables or disables the HTTP metadata endpoint on your instances. If the parameter is not specified, the default state is enabled.

\n \n

If you specify a value of disabled, you will not be able to access your instance metadata.\n

\n
" } + }, + "HttpProtocolIpv6": { + "target": "com.amazonaws.ec2#LaunchTemplateInstanceMetadataProtocolIpv6", + "traits": { + "smithy.api#documentation": "

Enables or disables the IPv6 endpoint for the instance metadata service.

\n

Default: disabled\n

" + } } }, "traits": { @@ -43788,6 +43816,21 @@ ] } }, + "com.amazonaws.ec2#LaunchTemplateInstanceMetadataProtocolIpv6": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "disabled", + "name": "disabled" + }, + { + "value": "enabled", + "name": "enabled" + } + ] + } + }, "com.amazonaws.ec2#LaunchTemplateInstanceNetworkInterfaceSpecification": { "type": "structure", "members": { @@ -43915,7 +43958,7 @@ "target": "com.amazonaws.ec2#Ipv4PrefixListResponse", "traits": { "aws.protocols#ec2QueryName": "Ipv4PrefixSet", - "smithy.api#documentation": "

One or more IPv4 delegated prefixes assigned to the network interface.

", + "smithy.api#documentation": "

One or more IPv4 prefixes assigned to the network interface.

", "smithy.api#xmlName": "ipv4PrefixSet" } }, @@ -43923,7 +43966,7 @@ "target": "com.amazonaws.ec2#Integer", "traits": { "aws.protocols#ec2QueryName": "Ipv4PrefixCount", - "smithy.api#documentation": "

The number of IPv4 delegated prefixes that AWS automatically assigned to the \n network interface.

", + "smithy.api#documentation": "

The number of IPv4 prefixes that Amazon Web Services automatically assigned to the \n network interface.

", "smithy.api#xmlName": "ipv4PrefixCount" } }, @@ -43931,7 +43974,7 @@ "target": "com.amazonaws.ec2#Ipv6PrefixListResponse", "traits": { "aws.protocols#ec2QueryName": "Ipv6PrefixSet", - "smithy.api#documentation": "

One or more IPv6 delegated prefixes assigned to the network interface.

", + "smithy.api#documentation": "

One or more IPv6 prefixes assigned to the network interface.

", "smithy.api#xmlName": "ipv6PrefixSet" } }, @@ -43939,7 +43982,7 @@ "target": "com.amazonaws.ec2#Integer", "traits": { "aws.protocols#ec2QueryName": "Ipv6PrefixCount", - "smithy.api#documentation": "

The number of IPv6 delegated prefixes that AWS automatically assigned to the network \n interface.

", + "smithy.api#documentation": "

The number of IPv6 prefixes that Amazon Web Services automatically assigned to the network \n interface.

", "smithy.api#xmlName": "ipv6PrefixCount" } } @@ -44054,27 +44097,27 @@ "Ipv4Prefixes": { "target": "com.amazonaws.ec2#Ipv4PrefixList", "traits": { - "smithy.api#documentation": "

One or more IPv4 delegated prefixes to be assigned to the network interface. You cannot use \n this option if you use the Ipv4PrefixCount option.

", + "smithy.api#documentation": "

One or more IPv4 prefixes to be assigned to the network interface. You cannot use \n this option if you use the Ipv4PrefixCount option.

", "smithy.api#xmlName": "Ipv4Prefix" } }, "Ipv4PrefixCount": { "target": "com.amazonaws.ec2#Integer", "traits": { - "smithy.api#documentation": "

The number of IPv4 delegated prefixes to be automatically assigned to the \n network interface. You cannot use this option if you use the Ipv4Prefix option.

" + "smithy.api#documentation": "

The number of IPv4 prefixes to be automatically assigned to the \n network interface. You cannot use this option if you use the Ipv4Prefix option.

" } }, "Ipv6Prefixes": { "target": "com.amazonaws.ec2#Ipv6PrefixList", "traits": { - "smithy.api#documentation": "

One or more IPv6 delegated prefixes to be assigned to the network interface. You cannot \n use this option if you use the Ipv6PrefixCount option.

", + "smithy.api#documentation": "

One or more IPv6 prefixes to be assigned to the network interface. You cannot \n use this option if you use the Ipv6PrefixCount option.

", "smithy.api#xmlName": "Ipv6Prefix" } }, "Ipv6PrefixCount": { "target": "com.amazonaws.ec2#Integer", "traits": { - "smithy.api#documentation": "

The number of IPv6 delegated prefixes to be automatically assigned to the network \n interface. You cannot use this option if you use the Ipv6Prefix option.

" + "smithy.api#documentation": "

The number of IPv6 prefixes to be automatically assigned to the network \n interface. You cannot use this option if you use the Ipv6Prefix option.

" } } }, @@ -54818,7 +54861,7 @@ "UserData": { "target": "com.amazonaws.ec2#String", "traits": { - "smithy.api#documentation": "

The Base64-encoded user data to make available to the instance. For more\n information, see Running Commands on Your Linux Instance\n at Launch (Linux) and Adding User Data (Windows).

" + "smithy.api#documentation": "

The user data to make available to the instance. You must provide base64-encoded text. \n User data is limited to 16 KB. For more information, see Running Commands on Your Linux Instance\n at Launch (Linux) or Adding User Data (Windows).

\n \n

If you are creating the launch template for use with Batch, the user data \n must be provided in the \n MIME multi-part archive format. For more information, see Amazon EC2 user data in \n launch templates in the Batch User Guide.

" } }, "TagSpecifications": { diff --git a/codegen/sdk-codegen/aws-models/efs.2015-02-01.json b/codegen/sdk-codegen/aws-models/efs.2015-02-01.json index f3f06dba245..bea6312ecb4 100644 --- a/codegen/sdk-codegen/aws-models/efs.2015-02-01.json +++ b/codegen/sdk-codegen/aws-models/efs.2015-02-01.json @@ -118,7 +118,7 @@ "OwnerId": { "target": "com.amazonaws.efs#AwsAccountId", "traits": { - "smithy.api#documentation": "

Identified the AWS account that owns the access point resource.

" + "smithy.api#documentation": "

Identified the Amazon Web Services account that owns the access point resource.

" } }, "LifeCycleState": { @@ -162,7 +162,7 @@ } }, "traits": { - "smithy.api#documentation": "

Returned if the AWS account has already created the maximum number of access points\n allowed per file system.

", + "smithy.api#documentation": "

Returned if the Amazon Web Services account has already created the maximum number of access points\n allowed per file system.

", "smithy.api#error": "client", "smithy.api#httpError": 403 } @@ -181,7 +181,7 @@ } }, "traits": { - "smithy.api#documentation": "

Returned if the specified AccessPointId value doesn't exist in the\n requester's AWS account.

", + "smithy.api#documentation": "

Returned if the specified AccessPointId value doesn't exist in the\n requester's Amazon Web Services account.

", "smithy.api#error": "client", "smithy.api#httpError": 404 } @@ -196,7 +196,7 @@ "min": 1, "max": 64 }, - "smithy.api#pattern": ".+" + "smithy.api#pattern": "^.+$" } }, "com.amazonaws.efs#AvailabilityZonesMismatch": { @@ -286,7 +286,7 @@ "min": 1, "max": 64 }, - "smithy.api#pattern": ".+" + "smithy.api#pattern": "^.+$" } }, "com.amazonaws.efs#CreateAccessPoint": { @@ -340,7 +340,7 @@ "Tags": { "target": "com.amazonaws.efs#Tags", "traits": { - "smithy.api#documentation": "

Creates tags associated with the access point. Each tag is a key-value pair.

" + "smithy.api#documentation": "

Creates tags associated with the access point. Each tag is a key-value pair, each key must be unique. For more \n information, see Tagging Amazon Web Services resources\n in the Amazon Web Services General Reference Guide.

" } }, "FileSystemId": { @@ -396,7 +396,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a new, empty file system. The operation requires a creation token in the\n request that Amazon EFS uses to ensure idempotent creation (calling the operation with same\n creation token has no effect). If a file system does not currently exist that is owned by the\n caller's AWS account with the specified creation token, this operation does the\n following:

\n \n

Otherwise, this operation returns a FileSystemAlreadyExists error with the\n ID of the existing file system.

\n \n

For basic use cases, you can use a randomly generated UUID for the creation\n token.

\n
\n

The idempotent operation allows you to retry a CreateFileSystem call without\n risk of creating an extra file system. This can happen when an initial call fails in a way\n that leaves it uncertain whether or not a file system was actually created. An example might\n be that a transport level timeout occurred or your connection was reset. As long as you use\n the same creation token, if the initial call had succeeded in creating a file system, the\n client can learn of its existence from the FileSystemAlreadyExists error.

\n

For more information, see \n Creating a file system\n in the Amazon EFS User Guide.

\n\n \n

The CreateFileSystem call returns while the file system's lifecycle\n state is still creating. You can check the file system creation status by\n calling the DescribeFileSystems operation, which among other things returns the file\n system state.

\n
\n\n

This operation accepts an optional PerformanceMode parameter that you\n choose for your file system. We recommend generalPurpose performance mode for\n most file systems. File systems using the maxIO performance mode can scale to\n higher levels of aggregate throughput and operations per second with a tradeoff of slightly\n higher latencies for most file operations. The performance mode can't be changed after\n the file system has been created. For more information, see Amazon EFS performance\n modes.

\n \n

You can set the throughput mode for the file system using the ThroughputMode parameter.

\n\n

After the file system is fully created, Amazon EFS sets its lifecycle state to\n available, at which point you can create one or more mount targets for the file\n system in your VPC. For more information, see CreateMountTarget. You mount your Amazon EFS file system on an EC2 instances in\n your VPC by using the mount target. For more information, see Amazon EFS: How it Works.

\n\n

This operation requires permissions for the\n elasticfilesystem:CreateFileSystem action.

", + "smithy.api#documentation": "

Creates a new, empty file system. The operation requires a creation token in the\n request that Amazon EFS uses to ensure idempotent creation (calling the operation with same\n creation token has no effect). If a file system does not currently exist that is owned by the\n caller's Amazon Web Services account with the specified creation token, this operation does the\n following:

\n \n

Otherwise, this operation returns a FileSystemAlreadyExists error with the\n ID of the existing file system.

\n \n

For basic use cases, you can use a randomly generated UUID for the creation\n token.

\n
\n

The idempotent operation allows you to retry a CreateFileSystem call without\n risk of creating an extra file system. This can happen when an initial call fails in a way\n that leaves it uncertain whether or not a file system was actually created. An example might\n be that a transport level timeout occurred or your connection was reset. As long as you use\n the same creation token, if the initial call had succeeded in creating a file system, the\n client can learn of its existence from the FileSystemAlreadyExists error.

\n

For more information, see \n Creating a file system\n in the Amazon EFS User Guide.

\n\n \n

The CreateFileSystem call returns while the file system's lifecycle\n state is still creating. You can check the file system creation status by\n calling the DescribeFileSystems operation, which among other things returns the file\n system state.

\n
\n\n

This operation accepts an optional PerformanceMode parameter that you\n choose for your file system. We recommend generalPurpose performance mode for\n most file systems. File systems using the maxIO performance mode can scale to\n higher levels of aggregate throughput and operations per second with a tradeoff of slightly\n higher latencies for most file operations. The performance mode can't be changed after\n the file system has been created. For more information, see Amazon EFS performance\n modes.

\n \n

You can set the throughput mode for the file system using the ThroughputMode parameter.

\n\n

After the file system is fully created, Amazon EFS sets its lifecycle state to\n available, at which point you can create one or more mount targets for the file\n system in your VPC. For more information, see CreateMountTarget. You mount your Amazon EFS file system on an EC2 instances in\n your VPC by using the mount target. For more information, see Amazon EFS: How it Works.

\n\n

This operation requires permissions for the\n elasticfilesystem:CreateFileSystem action.

", "smithy.api#http": { "method": "POST", "uri": "/2015-02-01/file-systems", @@ -424,13 +424,13 @@ "Encrypted": { "target": "com.amazonaws.efs#Encrypted", "traits": { - "smithy.api#documentation": "

A Boolean value that, if true, creates an encrypted file system. When creating an\n encrypted file system, you have the option of specifying CreateFileSystemRequest$KmsKeyId for an existing AWS Key Management Service (AWS\n KMS) customer master key (CMK). If you don't specify a CMK, then the default CMK for\n Amazon EFS, /aws/elasticfilesystem, is used to protect the encrypted file system.\n

" + "smithy.api#documentation": "

A Boolean value that, if true, creates an encrypted file system. When creating an\n encrypted file system, you have the option of specifying CreateFileSystemRequest$KmsKeyId for an existing Key Management Service (KMS\n customer master key (CMK). If you don't specify a CMK, then the default CMK for\n Amazon EFS, /aws/elasticfilesystem, is used to protect the encrypted file system.\n

" } }, "KmsKeyId": { "target": "com.amazonaws.efs#KmsKeyId", "traits": { - "smithy.api#documentation": "

The ID of the AWS KMS CMK that you want to use to protect the encrypted file system. This\n parameter is only required if you want to use a non-default KMS key. If this parameter is not\n specified, the default CMK for Amazon EFS is used. This ID can be in one of the following\n formats:

\n \n

If KmsKeyId is specified, the CreateFileSystemRequest$Encrypted parameter must be set to true.

\n \n

EFS accepts only symmetric KMS keys. You cannot use asymmetric KMS keys with EFS file systems.

\n
" + "smithy.api#documentation": "

The ID of the KMS CMK that you want to use to protect the encrypted file system. This\n parameter is only required if you want to use a non-default KMS key. If this parameter is not\n specified, the default CMK for Amazon EFS is used. This ID can be in one of the following\n formats:

\n \n

If KmsKeyId is specified, the CreateFileSystemRequest$Encrypted parameter must be set to true.

\n \n

EFS accepts only symmetric KMS keys. You cannot use asymmetric KMS keys with EFS file systems.

\n
" } }, "ThroughputMode": { @@ -442,25 +442,25 @@ "ProvisionedThroughputInMibps": { "target": "com.amazonaws.efs#ProvisionedThroughputInMibps", "traits": { - "smithy.api#documentation": "

The throughput, measured in MiB/s, that you want to provision for a file system that\n you're creating. Valid values are 1-1024. Required if ThroughputMode is set\n to provisioned. The upper limit for throughput is 1024 MiB/s. To increase this\n limit, contact AWS Support. For more information, see Amazon EFS quotas that you can increase\n in the Amazon EFS User Guide.

" + "smithy.api#documentation": "

The throughput, measured in MiB/s, that you want to provision for a file system that\n you're creating. Valid values are 1-1024. Required if ThroughputMode is set\n to provisioned. The upper limit for throughput is 1024 MiB/s. To increase this\n limit, contact Amazon Web Services Support. For more information, see Amazon EFS quotas that you can increase\n in the Amazon EFS User Guide.

" } }, "AvailabilityZoneName": { "target": "com.amazonaws.efs#AvailabilityZoneName", "traits": { - "smithy.api#documentation": "

Used to create a file system that uses One Zone storage classes. It specifies the AWS\n Availability Zone in which to create the file system. Use the format us-east-1a\n to specify the Availability Zone. For\n more information about One Zone storage classes, see Using EFS storage classes in the Amazon EFS User Guide.

\n \n

One Zone storage classes are not available in all Availability Zones in AWS Regions where\n Amazon EFS is available.

\n
" + "smithy.api#documentation": "

Used to create a file system that uses One Zone storage classes. It specifies the Amazon Web Services\n Availability Zone in which to create the file system. Use the format us-east-1a\n to specify the Availability Zone. For\n more information about One Zone storage classes, see Using EFS storage classes in the Amazon EFS User Guide.

\n \n

One Zone storage classes are not available in all Availability Zones in Amazon Web Services Regions where\n Amazon EFS is available.

\n
" } }, "Backup": { "target": "com.amazonaws.efs#Backup", "traits": { - "smithy.api#documentation": "

Specifies whether automatic backups are enabled on the file system that you are creating.\n Set the value to true to enable automatic backups. If you are creating a file\n system that uses One Zone storage classes, automatic backups are enabled by default. For more\n information, see Automatic backups in the\n Amazon EFS User Guide.

\n

Default is false. However, if you specify an AvailabilityZoneName, \n the default is true.

\n \n

AWS Backup is not available in all AWS Regions where Amazon EFS is available.

\n
" + "smithy.api#documentation": "

Specifies whether automatic backups are enabled on the file system that you are creating.\n Set the value to true to enable automatic backups. If you are creating a file\n system that uses One Zone storage classes, automatic backups are enabled by default. For more\n information, see Automatic backups in the\n Amazon EFS User Guide.

\n

Default is false. However, if you specify an AvailabilityZoneName, \n the default is true.

\n \n

Backup is not available in all Amazon Web Services Regionswhere Amazon EFS is available.

\n
" } }, "Tags": { "target": "com.amazonaws.efs#Tags", "traits": { - "smithy.api#documentation": "

A value that specifies to create one or more tags associated with the file system. Each\n tag is a user-defined key-value pair. Name your file system on creation by including a\n \"Key\":\"Name\",\"Value\":\"{value}\" key-value pair.

" + "smithy.api#documentation": "

Use to create one or more tags associated with the file system. Each\n tag is a user-defined key-value pair. Name your file system on creation by including a\n \"Key\":\"Name\",\"Value\":\"{value}\" key-value pair. Each key must be unique. For more \n information, see Tagging Amazon Web Services resources\n in the Amazon Web Services General Reference Guide.

" } } } @@ -644,7 +644,7 @@ "min": 1, "max": 64 }, - "smithy.api#pattern": ".+" + "smithy.api#pattern": "^.+$" } }, "com.amazonaws.efs#DeleteAccessPoint": { @@ -831,7 +831,7 @@ "smithy.api#deprecated": { "message": "Use UntagResource." }, - "smithy.api#documentation": "\n

DEPRECATED - DeleteTags is deprecated and not maintained. Please use the \n API action to remove tags from EFS resources.

\n
\n

Deletes the specified tags from a file system. If the DeleteTags request\n includes a tag key that doesn't exist, Amazon EFS ignores it and doesn't cause an\n error. For more information about tags and related restrictions, see Tag Restrictions in the\n AWS Billing and Cost Management User Guide.

\n\n

This operation requires permissions for the elasticfilesystem:DeleteTags\n action.

", + "smithy.api#documentation": "\n

DEPRECATED - DeleteTags is deprecated and not maintained. Please use the \n API action to remove tags from EFS resources.

\n
\n

Deletes the specified tags from a file system. If the DeleteTags request\n includes a tag key that doesn't exist, Amazon EFS ignores it and doesn't cause an\n error. For more information about tags and related restrictions, see Tag restrictions in the\n Billing and Cost Management User Guide.

\n\n

This operation requires permissions for the elasticfilesystem:DeleteTags\n action.

", "smithy.api#http": { "method": "POST", "uri": "/2015-02-01/delete-tags/{FileSystemId}", @@ -981,6 +981,7 @@ } ], "traits": { + "smithy.api#documentation": "

Returns the account preferences settings for the Amazon Web Services account associated with the user making the request, in the current Amazon Web Services Region.\n For more information, see Managing Amazon EFS resource IDs.

", "smithy.api#http": { "method": "GET", "uri": "/2015-02-01/account-preferences", @@ -992,10 +993,16 @@ "type": "structure", "members": { "NextToken": { - "target": "com.amazonaws.efs#Token" + "target": "com.amazonaws.efs#Token", + "traits": { + "smithy.api#documentation": "

(Optional) You can use NextToken in a subsequent request to fetch the next page of \n Amazon Web Services account preferences if the response payload was paginated.

" + } }, "MaxResults": { - "target": "com.amazonaws.efs#MaxResults" + "target": "com.amazonaws.efs#MaxResults", + "traits": { + "smithy.api#documentation": "

(Optional) When retrieving account preferences,\n you can optionally specify the MaxItems parameter to limit the number of objects returned in a response. \n The default value is 100.

" + } } } }, @@ -1003,10 +1010,16 @@ "type": "structure", "members": { "ResourceIdPreference": { - "target": "com.amazonaws.efs#ResourceIdPreference" + "target": "com.amazonaws.efs#ResourceIdPreference", + "traits": { + "smithy.api#documentation": "

Describes the resource ID preference setting for the Amazon Web Services account associated with the user making the request, in the current Amazon Web Services Region.

" + } }, "NextToken": { - "target": "com.amazonaws.efs#Token" + "target": "com.amazonaws.efs#Token", + "traits": { + "smithy.api#documentation": "

Present if there are more records than returned in the response. \n You can use the NextToken in the subsequent request to fetch the additional descriptions.

" + } } } }, @@ -1118,7 +1131,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the description of a specific Amazon EFS file system if either the file system\n CreationToken or the FileSystemId is provided. Otherwise, it\n returns descriptions of all file systems owned by the caller's AWS account in the AWS\n Region of the endpoint that you're calling.

\n\n

When retrieving all file system descriptions, you can optionally specify the\n MaxItems parameter to limit the number of descriptions in a response.\n Currently, this number is automatically set to 10. If more file system descriptions remain,\n Amazon EFS returns a NextMarker, an opaque token, in the response. In this case,\n you should send a subsequent request with the Marker request parameter set to the\n value of NextMarker.

\n\n

To retrieve a list of your file system descriptions, this operation is used in an\n iterative process, where DescribeFileSystems is called first without the\n Marker and then the operation continues to call it with the Marker\n parameter set to the value of the NextMarker from the previous response until the\n response has no NextMarker.

\n \n

The order of file systems returned in the response of one\n DescribeFileSystems call and the order of file systems returned across the\n responses of a multi-call iteration is unspecified.

\n

This operation requires permissions for the\n elasticfilesystem:DescribeFileSystems action.

", + "smithy.api#documentation": "

Returns the description of a specific Amazon EFS file system if either the file system\n CreationToken or the FileSystemId is provided. Otherwise, it\n returns descriptions of all file systems owned by the caller's Amazon Web Services account in the \n Amazon Web Services Region of the endpoint that you're calling.

\n\n

When retrieving all file system descriptions, you can optionally specify the\n MaxItems parameter to limit the number of descriptions in a response.\n Currently, this number is automatically set to 10. If more file system descriptions remain,\n Amazon EFS returns a NextMarker, an opaque token, in the response. In this case,\n you should send a subsequent request with the Marker request parameter set to the\n value of NextMarker.

\n\n

To retrieve a list of your file system descriptions, this operation is used in an\n iterative process, where DescribeFileSystems is called first without the\n Marker and then the operation continues to call it with the Marker\n parameter set to the value of the NextMarker from the previous response until the\n response has no NextMarker.

\n \n

The order of file systems returned in the response of one\n DescribeFileSystems call and the order of file systems returned across the\n responses of a multi-call iteration is unspecified.

\n

This operation requires permissions for the\n elasticfilesystem:DescribeFileSystems action.

", "smithy.api#http": { "method": "GET", "uri": "/2015-02-01/file-systems", @@ -1210,7 +1223,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the current LifecycleConfiguration object for the specified Amazon\n EFS file system. EFS lifecycle management uses the LifecycleConfiguration object\n to identify which files to move to the EFS Infrequent Access (IA) storage class. For a file system\n without a LifecycleConfiguration object, the call returns an empty array in the\n response.

\n

This operation requires permissions for the\n elasticfilesystem:DescribeLifecycleConfiguration operation.

", + "smithy.api#documentation": "

Returns the current LifecycleConfiguration object for the specified Amazon\n EFS file system. EFS lifecycle management uses the LifecycleConfiguration object\n to identify which files to move to the EFS Infrequent Access (IA) storage class. For a file system\n without a LifecycleConfiguration object, the call returns an empty array in the\n response.

\n

When EFS Intelligent Tiering is enabled, TransitionToPrimaryStorageClass has a value of AFTER_1_ACCESS.

\n

This operation requires permissions for the\n elasticfilesystem:DescribeLifecycleConfiguration operation.

", "smithy.api#http": { "method": "GET", "uri": "/2015-02-01/file-systems/{FileSystemId}/lifecycle-configuration", @@ -1537,7 +1550,7 @@ "OwnerId": { "target": "com.amazonaws.efs#AwsAccountId", "traits": { - "smithy.api#documentation": "

The AWS account that created the file system. If the file system was created by an IAM\n user, the parent account to which the user belongs is the owner.

", + "smithy.api#documentation": "

The Amazon Web Services account that created the file system. If the file system was created by an IAM\n user, the parent account to which the user belongs is the owner.

", "smithy.api#required": {} } }, @@ -1611,7 +1624,7 @@ "KmsKeyId": { "target": "com.amazonaws.efs#KmsKeyId", "traits": { - "smithy.api#documentation": "

The ID of an AWS Key Management Service (AWS KMS) customer master key (CMK) that was\n used to protect the encrypted file system.

" + "smithy.api#documentation": "

The ID of an Key Management Service customer master key (CMK) that was\n used to protect the encrypted file system.

" } }, "ThroughputMode": { @@ -1629,13 +1642,13 @@ "AvailabilityZoneName": { "target": "com.amazonaws.efs#AvailabilityZoneName", "traits": { - "smithy.api#documentation": "

Describes the AWS Availability Zone in which the file system is located, and is valid only\n for file systems using One Zone storage classes. For more information, see Using EFS storage classes \n in the Amazon EFS User Guide.

" + "smithy.api#documentation": "

Describes the Amazon Web Services Availability Zone in which the file system is located, and is valid only\n for file systems using One Zone storage classes. For more information, see Using EFS storage classes \n in the Amazon EFS User Guide.

" } }, "AvailabilityZoneId": { "target": "com.amazonaws.efs#AvailabilityZoneId", "traits": { - "smithy.api#documentation": "

The unique and consistent identifier of the Availability Zone in which the file system's\n One Zone storage classes exist. For example, use1-az1 is an Availability Zone ID\n for the us-east-1 AWS Region, and it has the same location in every AWS account.

" + "smithy.api#documentation": "

The unique and consistent identifier of the Availability Zone in which the file system's\n One Zone storage classes exist. For example, use1-az1 is an Availability Zone ID\n for the us-east-1 Amazon Web Services Region, and it has the same location in every Amazon Web Services account.

" } }, "Tags": { @@ -1699,7 +1712,7 @@ } }, "traits": { - "smithy.api#documentation": "

Returned if the AWS account has already created the maximum number of file systems\n allowed per account.

", + "smithy.api#documentation": "

Returned if the Amazon Web Services account has already created the maximum number of file systems\n allowed per account.

", "smithy.api#error": "client", "smithy.api#httpError": 403 } @@ -1718,7 +1731,7 @@ } }, "traits": { - "smithy.api#documentation": "

Returned if the specified FileSystemId value doesn't exist in the\n requester's AWS account.

", + "smithy.api#documentation": "

Returned if the specified FileSystemId value doesn't exist in the\n requester's Amazon Web Services account.

", "smithy.api#error": "client", "smithy.api#httpError": 404 } @@ -1968,7 +1981,7 @@ "LifecyclePolicies": { "target": "com.amazonaws.efs#LifecyclePolicies", "traits": { - "smithy.api#documentation": "

An array of lifecycle management policies. Currently, EFS supports a maximum of one\n policy per file system.

" + "smithy.api#documentation": "

An array of lifecycle management policies. EFS supports a maximum of one\n policy per file system.

" } } } @@ -1977,6 +1990,12 @@ "type": "list", "member": { "target": "com.amazonaws.efs#LifecyclePolicy" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 2 + } } }, "com.amazonaws.efs#LifecyclePolicy": { @@ -1985,7 +2004,13 @@ "TransitionToIA": { "target": "com.amazonaws.efs#TransitionToIARules", "traits": { - "smithy.api#documentation": "

\n A value that describes the period of time that a file is not accessed, after which it transitions to the IA storage class. Metadata\n operations such as listing the contents of a directory don't count as file access\n events.

" + "smithy.api#documentation": "

\n Describes the period of time that a file is not accessed, after which it transitions to the IA storage class. Metadata\n operations such as listing the contents of a directory don't count as file access\n events.

" + } + }, + "TransitionToPrimaryStorageClass": { + "target": "com.amazonaws.efs#TransitionToPrimaryStorageClassRules", + "traits": { + "smithy.api#documentation": "

Describes the policy used to transition a file from infequent access storage to primary storage.

" } } }, @@ -2171,7 +2196,7 @@ "name": "elasticfilesystem" }, "aws.protocols#restJson1": {}, - "smithy.api#documentation": "Amazon Elastic File System\n

Amazon Elastic File System (Amazon EFS) provides simple, scalable file storage for use\n with Amazon EC2 instances in the AWS Cloud. With Amazon EFS, storage capacity is elastic,\n growing and shrinking automatically as you add and remove files, so your applications have the\n storage they need, when they need it. For more information, see the Amazon Elastic File System API Reference and the Amazon Elastic File System User Guide.

", + "smithy.api#documentation": "Amazon Elastic File System\n

Amazon Elastic File System (Amazon EFS) provides simple, scalable file storage for use\n with Amazon EC2 instances in the Amazon Web Services Cloud. With Amazon EFS, storage capacity is elastic,\n growing and shrinking automatically as you add and remove files, so your applications have the\n storage they need, when they need it. For more information, see the Amazon Elastic File System API Reference and the Amazon Elastic File System User Guide.

", "smithy.api#title": "Amazon Elastic File System" } }, @@ -2182,7 +2207,7 @@ "min": 1, "max": 128 }, - "smithy.api#pattern": ".+" + "smithy.api#pattern": "^.+$" } }, "com.amazonaws.efs#MaxItems": { @@ -2293,7 +2318,7 @@ "OwnerId": { "target": "com.amazonaws.efs#AwsAccountId", "traits": { - "smithy.api#documentation": "

AWS account ID that owns the resource.

" + "smithy.api#documentation": "

Amazon Web Services account ID that owns the resource.

" } }, "MountTargetId": { @@ -2339,13 +2364,13 @@ "AvailabilityZoneId": { "target": "com.amazonaws.efs#AvailabilityZoneId", "traits": { - "smithy.api#documentation": "

The unique and consistent identifier of the Availability Zone that the mount target resides in. \n For example, use1-az1 is an AZ ID for the us-east-1 Region and it has the same location in every AWS account.

" + "smithy.api#documentation": "

The unique and consistent identifier of the Availability Zone that the mount target resides in. \n For example, use1-az1 is an AZ ID for the us-east-1 Region and it has the same location in every Amazon Web Services account.

" } }, "AvailabilityZoneName": { "target": "com.amazonaws.efs#AvailabilityZoneName", "traits": { - "smithy.api#documentation": "

The name of the Availability Zone in which the mount target is located. Availability Zones are \n independently mapped to names for each AWS account. For example, the Availability Zone \n us-east-1a for your AWS account might not be the same location as us-east-1a for another AWS account.

" + "smithy.api#documentation": "

The name of the Availability Zone in which the mount target is located. Availability Zones are \n independently mapped to names for each Amazon Web Services account. For example, the Availability Zone \n us-east-1a for your Amazon Web Services account might not be the same location as us-east-1a for another Amazon Web Services account.

" } }, "VpcId": { @@ -2389,7 +2414,7 @@ } }, "traits": { - "smithy.api#documentation": "

Returned if there is no mount target with the specified ID found in the\n caller's account.

", + "smithy.api#documentation": "

Returned if there is no mount target with the specified ID found in the\n caller's Amazon Web Services account.

", "smithy.api#error": "client", "smithy.api#httpError": 404 } @@ -2414,7 +2439,7 @@ } }, "traits": { - "smithy.api#documentation": "

The calling account has reached the limit for elastic network interfaces for the\n specific AWS Region. The client should try to delete some elastic network interfaces or\n get the account limit raised. For more information, see Amazon VPC Limits\n in the Amazon VPC User Guide (see the Network interfaces per VPC\n entry in the table).

", + "smithy.api#documentation": "

The calling account has reached the limit for elastic network interfaces for the\n specific Amazon Web Services Region. The client should try to delete some elastic network interfaces or\n get the account limit raised. For more information, see Amazon VPC Limits\n in the Amazon VPC User Guide (see the Network interfaces per VPC\n entry in the table).

", "smithy.api#error": "client", "smithy.api#httpError": 409 } @@ -2500,7 +2525,7 @@ "min": 1, "max": 20000 }, - "smithy.api#pattern": "[\\s\\S]+" + "smithy.api#pattern": "^[\\s\\S]+$" } }, "com.amazonaws.efs#PolicyNotFound": { @@ -2570,6 +2595,7 @@ } ], "traits": { + "smithy.api#documentation": "

Use this operation to set the account preference in the current Amazon Web Services Region to use either long 17 character (63 bit) or short 8 character (32 bit) IDs for \n new EFS file systems and mount targets created. All existing resource IDs are not affected by any changes you make. You can set the ID preference during the\n opt-in period as EFS transitions to long resource IDs. For more information, \n see Managing Amazon EFS resource IDs.

", "smithy.api#http": { "method": "PUT", "uri": "/2015-02-01/account-preferences", @@ -2583,6 +2609,7 @@ "ResourceIdType": { "target": "com.amazonaws.efs#ResourceIdType", "traits": { + "smithy.api#documentation": "

Specifies the EFS resource ID preference to set for the user's Amazon Web Services account, in the current Amazon Web Services Region, \n either LONG_ID (17 characters), or SHORT_ID (8 characters).

", "smithy.api#required": {} } } @@ -2730,7 +2757,7 @@ } ], "traits": { - "smithy.api#documentation": "

Enables lifecycle management by creating a new LifecycleConfiguration\n object. A LifecycleConfiguration object defines when files in an Amazon EFS file\n system are automatically transitioned to the lower-cost EFS Infrequent Access (IA) storage class.\n A LifecycleConfiguration applies to all files in a file system.

\n

Each Amazon EFS file system supports one lifecycle configuration, which applies to all files in the file system. If a\n LifecycleConfiguration object already exists for the specified file system, a\n PutLifecycleConfiguration call modifies the existing configuration. A\n PutLifecycleConfiguration call with an empty LifecyclePolicies\n array in the request body deletes any existing LifecycleConfiguration and\n disables lifecycle management.

\n\n \n

In the request, specify the following:

\n \n\n

This operation requires permissions for the\n elasticfilesystem:PutLifecycleConfiguration operation.

\n

To apply a LifecycleConfiguration object to an encrypted file system, you\n need the same AWS Key Management Service (AWS KMS) permissions as when you created the encrypted\n file system.

", + "smithy.api#documentation": "

Enables lifecycle management by creating a new LifecycleConfiguration\n object. A LifecycleConfiguration object defines when files in an Amazon EFS file\n system are automatically transitioned to the lower-cost EFS Infrequent Access (IA) storage class.\n To enable EFS Intelligent Tiering, set the value of TransitionToPrimaryStorageClass to AFTER_1_ACCESS.\n For more information, see EFS Lifecycle Management.

\n

A LifecycleConfiguration applies to all files in a file system.

\n

Each Amazon EFS file system supports one lifecycle configuration, which applies to all files in the file system. If a\n LifecycleConfiguration object already exists for the specified file system, a\n PutLifecycleConfiguration call modifies the existing configuration. A\n PutLifecycleConfiguration call with an empty LifecyclePolicies\n array in the request body deletes any existing LifecycleConfiguration and\n disables lifecycle management.

\n\n \n

In the request, specify the following:

\n \n\n

This operation requires permissions for the\n elasticfilesystem:PutLifecycleConfiguration operation.

\n

To apply a LifecycleConfiguration object to an encrypted file system, you\n need the same Key Management Service permissions as when you created the encrypted\n file system.

", "smithy.api#http": { "method": "PUT", "uri": "/2015-02-01/file-systems/{FileSystemId}/lifecycle-configuration", @@ -2788,11 +2815,20 @@ "type": "structure", "members": { "ResourceIdType": { - "target": "com.amazonaws.efs#ResourceIdType" + "target": "com.amazonaws.efs#ResourceIdType", + "traits": { + "smithy.api#documentation": "

Identifies the EFS resource ID preference, either LONG_ID (17 characters) or SHORT_ID (8 characters).

" + } }, "Resources": { - "target": "com.amazonaws.efs#Resources" + "target": "com.amazonaws.efs#Resources", + "traits": { + "smithy.api#documentation": "

Identifies the Amazon EFS resources to which the ID preference setting applies, FILE_SYSTEM and MOUNT_TARGET.

" + } } + }, + "traits": { + "smithy.api#documentation": "

Describes the resource type and its ID preference for the user's Amazon Web Services account, in the current Amazon Web Services Region.

" } }, "com.amazonaws.efs#ResourceIdType": { @@ -2859,7 +2895,7 @@ "min": 11, "max": 43 }, - "smithy.api#pattern": "^sg-[0-9a-f]{8,40}" + "smithy.api#pattern": "^sg-[0-9a-f]{8,40}$" } }, "com.amazonaws.efs#SecurityGroupLimitExceeded": { @@ -2908,7 +2944,7 @@ "traits": { "smithy.api#length": { "min": 0, - "max": 5 + "max": 100 } } }, @@ -3117,7 +3153,7 @@ "min": 1, "max": 128 }, - "smithy.api#pattern": ".+" + "smithy.api#pattern": "^.+$" } }, "com.amazonaws.efs#TooManyRequests": { @@ -3166,6 +3202,17 @@ ] } }, + "com.amazonaws.efs#TransitionToPrimaryStorageClassRules": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "AFTER_1_ACCESS", + "name": "AFTER_1_ACCESS" + } + ] + } + }, "com.amazonaws.efs#Uid": { "type": "long", "traits": { @@ -3323,7 +3370,7 @@ } }, "traits": { - "smithy.api#documentation": "

Returned if the AWS Backup service is not available in the Region in which the request was made.

", + "smithy.api#documentation": "

Returned if the Backup service is not available in the Amazon Web Services Region in which the request was made.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } diff --git a/codegen/sdk-codegen/aws-models/emr.2009-03-31.json b/codegen/sdk-codegen/aws-models/emr.2009-03-31.json index d63257dc401..50677b7cd5c 100644 --- a/codegen/sdk-codegen/aws-models/emr.2009-03-31.json +++ b/codegen/sdk-codegen/aws-models/emr.2009-03-31.json @@ -500,6 +500,20 @@ "smithy.api#documentation": "

The status of an automatic scaling policy.\n

" } }, + "com.amazonaws.emr#AutoTerminationPolicy": { + "type": "structure", + "members": { + "IdleTimeout": { + "target": "com.amazonaws.emr#Long", + "traits": { + "smithy.api#documentation": "

Specifies the amount of idle time in seconds after which the cluster automatically terminates. You can specify a minimum of 60 seconds and a maximum of 604800 seconds (seven days).

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An auto-termination policy for an Amazon EMR cluster. An auto-termination policy defines the amount of idle time in seconds after which a cluster automatically terminates. For alternative cluster termination options, see Control cluster termination.

" + } + }, "com.amazonaws.emr#BlockPublicAccessConfiguration": { "type": "structure", "members": { @@ -871,7 +885,7 @@ "VisibleToAllUsers": { "target": "com.amazonaws.emr#Boolean", "traits": { - "smithy.api#documentation": "

Indicates whether the cluster is visible to IAM principals in the account associated\n with the cluster. When true, IAM principals in the\n account can perform EMR cluster actions on the cluster that their IAM policies allow. When false, only the IAM principal that created the cluster and the account root user can perform EMR actions, regardless of IAM permissions policies attached to other IAM principals.

\n

The default value is true if a value is not provided when creating a\n cluster using the EMR API RunJobFlow command, the CLI\n create-cluster command, or the Management Console. IAM principals that are\n allowed to perform actions on the cluster can use the SetVisibleToAllUsers action to change the value on a running cluster. For more information, see Understanding the EMR Cluster VisibleToAllUsers Setting in the Amazon EMRManagement Guide.

" + "smithy.api#documentation": "

Indicates whether the cluster is visible to IAM principals in the Amazon Web Services account associated\n with the cluster. When true, IAM principals in the\n Amazon Web Services account can perform EMR cluster actions on the cluster that their IAM policies allow. When false, only the IAM principal that created the cluster and the Amazon Web Services account root user can perform EMR actions, regardless of IAM permissions policies attached to other IAM principals.

\n

The default value is true if a value is not provided when creating a\n cluster using the EMR API RunJobFlow command, the CLI\n create-cluster command, or the Amazon Web Services Management Console. IAM principals that are\n allowed to perform actions on the cluster can use the SetVisibleToAllUsers action to change the value on a running cluster. For more information, see Understanding the EMR Cluster VisibleToAllUsers Setting in the Amazon EMRManagement Guide.

" } }, "Applications": { @@ -2417,6 +2431,9 @@ { "target": "com.amazonaws.emr#DescribeStudio" }, + { + "target": "com.amazonaws.emr#GetAutoTerminationPolicy" + }, { "target": "com.amazonaws.emr#GetBlockPublicAccessConfiguration" }, @@ -2471,6 +2488,9 @@ { "target": "com.amazonaws.emr#PutAutoScalingPolicy" }, + { + "target": "com.amazonaws.emr#PutAutoTerminationPolicy" + }, { "target": "com.amazonaws.emr#PutBlockPublicAccessConfiguration" }, @@ -2480,6 +2500,9 @@ { "target": "com.amazonaws.emr#RemoveAutoScalingPolicy" }, + { + "target": "com.amazonaws.emr#RemoveAutoTerminationPolicy" + }, { "target": "com.amazonaws.emr#RemoveManagedScalingPolicy" }, @@ -2606,6 +2629,41 @@ "smithy.api#documentation": "

The details of the step failure. The service attempts to detect the root cause for many\n common failures.

" } }, + "com.amazonaws.emr#GetAutoTerminationPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.emr#GetAutoTerminationPolicyInput" + }, + "output": { + "target": "com.amazonaws.emr#GetAutoTerminationPolicyOutput" + }, + "traits": { + "smithy.api#documentation": "

Returns the auto-termination policy for an Amazon EMR cluster.

" + } + }, + "com.amazonaws.emr#GetAutoTerminationPolicyInput": { + "type": "structure", + "members": { + "ClusterId": { + "target": "com.amazonaws.emr#ClusterId", + "traits": { + "smithy.api#documentation": "

Specifies the ID of the Amazon EMR cluster for which the auto-termination policy will be fetched.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.emr#GetAutoTerminationPolicyOutput": { + "type": "structure", + "members": { + "AutoTerminationPolicy": { + "target": "com.amazonaws.emr#AutoTerminationPolicy", + "traits": { + "smithy.api#documentation": "

Specifies the auto-termination policy that is attached to an Amazon EMR cluster.

" + } + } + } + }, "com.amazonaws.emr#GetBlockPublicAccessConfiguration": { "type": "operation", "input": { @@ -2623,7 +2681,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the Amazon EMR block public access configuration for your account in the\n current Region. For more information see Configure Block\n Public Access for Amazon EMR in the Amazon EMR Management\n Guide.

" + "smithy.api#documentation": "

Returns the Amazon EMR block public access configuration for your Amazon Web Services account in the\n current Region. For more information see Configure Block\n Public Access for Amazon EMR in the Amazon EMR Management\n Guide.

" } }, "com.amazonaws.emr#GetBlockPublicAccessConfigurationInput": { @@ -4220,7 +4278,7 @@ "VisibleToAllUsers": { "target": "com.amazonaws.emr#Boolean", "traits": { - "smithy.api#documentation": "

Indicates whether the cluster is visible to IAM principals in the account associated\n with the cluster. When true, IAM principals in the\n account can perform EMR cluster actions that their IAM policies allow. When false, only the IAM principal that created the cluster and the account root user can perform EMR actions, regardless of IAM permissions policies attached to other IAM principals.

\n

The default value is true if a value is not provided when creating a\n cluster using the EMR API RunJobFlow command, the CLI\n create-cluster command, or the Management Console. IAM principals that are authorized to perform actions on the cluster can use the SetVisibleToAllUsers action to change the value on a running cluster. For more information, see Understanding the EMR Cluster VisibleToAllUsers Setting in the Amazon EMRManagement Guide.

" + "smithy.api#documentation": "

Indicates whether the cluster is visible to IAM principals in the Amazon Web Services account associated\n with the cluster. When true, IAM principals in the\n Amazon Web Services account can perform EMR cluster actions that their IAM policies allow. When false, only the IAM principal that created the cluster and the Amazon Web Services account root user can perform EMR actions, regardless of IAM permissions policies attached to other IAM principals.

\n

The default value is true if a value is not provided when creating a\n cluster using the EMR API RunJobFlow command, the CLI\n create-cluster command, or the Amazon Web Services Management Console. IAM principals that are authorized to perform actions on the cluster can use the SetVisibleToAllUsers action to change the value on a running cluster. For more information, see Understanding the EMR Cluster VisibleToAllUsers Setting in the Amazon EMRManagement Guide.

" } }, "JobFlowRole": { @@ -4698,7 +4756,7 @@ } ], "traits": { - "smithy.api#documentation": "

Provides the status of all clusters visible to this account. Allows you to filter\n the list of clusters based on certain criteria; for example, filtering by cluster creation\n date and time or by status. This call returns a maximum of 50 clusters in unsorted order per call, but\n returns a marker to track the paging of the cluster list across multiple ListClusters\n calls.

", + "smithy.api#documentation": "

Provides the status of all clusters visible to this Amazon Web Services account. Allows you to filter\n the list of clusters based on certain criteria; for example, filtering by cluster creation\n date and time or by status. This call returns a maximum of 50 clusters in unsorted order per call, but\n returns a marker to track the paging of the cluster list across multiple ListClusters\n calls.

", "smithy.api#paginated": { "inputToken": "Marker", "outputToken": "Marker", @@ -5094,7 +5152,7 @@ "NextToken": { "target": "com.amazonaws.emr#String", "traits": { - "smithy.api#documentation": "

Specifies the next page of results. If NextToken is not specified, which is usually the case for the first request of ListReleaseLabels, the first page of results are determined by other filtering parameters or by the latest version. The ListReleaseLabels request fails if the identity (account ID) and all filtering parameters are different from the original request, or if the NextToken is expired or tampered with.

" + "smithy.api#documentation": "

Specifies the next page of results. If NextToken is not specified, which is usually the case for the first request of ListReleaseLabels, the first page of results are determined by other filtering parameters or by the latest version. The ListReleaseLabels request fails if the identity (Amazon Web Services account ID) and all filtering parameters are different from the original request, or if the NextToken is expired or tampered with.

" } }, "MaxResults": { @@ -5335,7 +5393,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns a list of all Amazon EMR Studios associated with the account. The list\n includes details such as ID, Studio Access URL, and creation time for each Studio.

", + "smithy.api#documentation": "

Returns a list of all Amazon EMR Studios associated with the Amazon Web Services account. The list\n includes details such as ID, Studio Access URL, and creation time for each Studio.

", "smithy.api#paginated": { "inputToken": "Marker", "outputToken": "Marker", @@ -6026,6 +6084,40 @@ } } }, + "com.amazonaws.emr#PutAutoTerminationPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.emr#PutAutoTerminationPolicyInput" + }, + "output": { + "target": "com.amazonaws.emr#PutAutoTerminationPolicyOutput" + }, + "traits": { + "smithy.api#documentation": "

Creates or updates an auto-termination policy for an Amazon EMR cluster. An auto-termination policy defines the amount of idle time in seconds after which a cluster automatically terminates. For alternative cluster termination options, see Control cluster termination.

" + } + }, + "com.amazonaws.emr#PutAutoTerminationPolicyInput": { + "type": "structure", + "members": { + "ClusterId": { + "target": "com.amazonaws.emr#ClusterId", + "traits": { + "smithy.api#documentation": "

Specifies the ID of the Amazon EMR cluster to which the auto-termination policy will be attached.

", + "smithy.api#required": {} + } + }, + "AutoTerminationPolicy": { + "target": "com.amazonaws.emr#AutoTerminationPolicy", + "traits": { + "smithy.api#documentation": "

Specifies the auto-termination policy to attach to the cluster.

" + } + } + } + }, + "com.amazonaws.emr#PutAutoTerminationPolicyOutput": { + "type": "structure", + "members": {} + }, "com.amazonaws.emr#PutBlockPublicAccessConfiguration": { "type": "operation", "input": { @@ -6043,7 +6135,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates or updates an Amazon EMR block public access configuration for your account\n in the current Region. For more information see Configure Block\n Public Access for Amazon EMR in the Amazon EMR Management\n Guide.

" + "smithy.api#documentation": "

Creates or updates an Amazon EMR block public access configuration for your Amazon Web Services account\n in the current Region. For more information see Configure Block\n Public Access for Amazon EMR in the Amazon EMR Management\n Guide.

" } }, "com.amazonaws.emr#PutBlockPublicAccessConfigurationInput": { @@ -6152,6 +6244,34 @@ "type": "structure", "members": {} }, + "com.amazonaws.emr#RemoveAutoTerminationPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.emr#RemoveAutoTerminationPolicyInput" + }, + "output": { + "target": "com.amazonaws.emr#RemoveAutoTerminationPolicyOutput" + }, + "traits": { + "smithy.api#documentation": "

Removes an auto-termination policy from an Amazon EMR cluster.

" + } + }, + "com.amazonaws.emr#RemoveAutoTerminationPolicyInput": { + "type": "structure", + "members": { + "ClusterId": { + "target": "com.amazonaws.emr#ClusterId", + "traits": { + "smithy.api#documentation": "

Specifies the ID of the Amazon EMR cluster from which the auto-termination policy will be removed.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.emr#RemoveAutoTerminationPolicyOutput": { + "type": "structure", + "members": {} + }, "com.amazonaws.emr#RemoveManagedScalingPolicy": { "type": "operation", "input": { @@ -6350,7 +6470,7 @@ "VisibleToAllUsers": { "target": "com.amazonaws.emr#Boolean", "traits": { - "smithy.api#documentation": "

Set this value to true so that IAM principals in the account associated with the cluster can perform EMR actions on the cluster that their IAM policies allow. This value defaults to true for clusters created using the EMR API or the CLI create-cluster command.

\n

When set to false, only the IAM principal that created the cluster and the account root user can perform EMR actions for the cluster, regardless of the IAM permissions policies attached to other IAM principals. For more information, see Understanding the EMR Cluster VisibleToAllUsers Setting in the Amazon EMRManagement Guide.

" + "smithy.api#documentation": "

Set this value to true so that IAM principals in the Amazon Web Services account associated with the cluster can perform EMR actions on the cluster that their IAM policies allow. This value defaults to true for clusters created using the EMR API or the CLI create-cluster command.

\n

When set to false, only the IAM principal that created the cluster and the Amazon Web Services account root user can perform EMR actions for the cluster, regardless of the IAM permissions policies attached to other IAM principals. For more information, see Understanding the EMR Cluster VisibleToAllUsers Setting in the Amazon EMRManagement Guide.

" } }, "JobFlowRole": { @@ -6430,6 +6550,9 @@ "traits": { "smithy.api#documentation": "

The specified placement group configuration for an Amazon EMR cluster.

" } + }, + "AutoTerminationPolicy": { + "target": "com.amazonaws.emr#AutoTerminationPolicy" } }, "traits": { @@ -6770,7 +6893,7 @@ } ], "traits": { - "smithy.api#documentation": "

Sets the Cluster$VisibleToAllUsers value for an EMR cluster. When true, IAM principals in the\n account can perform EMR cluster actions that their IAM policies allow. When false, only the IAM principal that created the cluster and the account root user can perform EMR actions on the cluster, regardless of IAM permissions policies attached to other IAM principals.

\n

This action works on running clusters. When you create a cluster, use the RunJobFlowInput$VisibleToAllUsers parameter.

\n

For more information, see Understanding the EMR Cluster VisibleToAllUsers Setting in the Amazon EMRManagement Guide.

" + "smithy.api#documentation": "

Sets the Cluster$VisibleToAllUsers value for an EMR cluster. When true, IAM principals in the\n Amazon Web Services account can perform EMR cluster actions that their IAM policies allow. When false, only the IAM principal that created the cluster and the Amazon Web Services account root user can perform EMR actions on the cluster, regardless of IAM permissions policies attached to other IAM principals.

\n

This action works on running clusters. When you create a cluster, use the RunJobFlowInput$VisibleToAllUsers parameter.

\n

For more information, see Understanding the EMR Cluster VisibleToAllUsers Setting in the Amazon EMRManagement Guide.

" } }, "com.amazonaws.emr#SetVisibleToAllUsersInput": { @@ -6786,7 +6909,7 @@ "VisibleToAllUsers": { "target": "com.amazonaws.emr#Boolean", "traits": { - "smithy.api#documentation": "

A value of true indicates that an IAM principal in the account can perform\n EMR actions on the cluster that the IAM policies attached to the principal allow. A\n value of false indicates that only the IAM principal that created the cluster and the Amazon Web Services root user can perform EMR actions on the cluster.

", + "smithy.api#documentation": "

A value of true indicates that an IAM principal in the Amazon Web Services account can perform\n EMR actions on the cluster that the IAM policies attached to the principal allow. A\n value of false indicates that only the IAM principal that created the cluster and the Amazon Web Services root user can perform EMR actions on the cluster.

", "smithy.api#required": {} } } diff --git a/codegen/sdk-codegen/aws-models/firehose.2015-08-04.json b/codegen/sdk-codegen/aws-models/firehose.2015-08-04.json index 5da2dfc1e2f..5b15d183090 100644 --- a/codegen/sdk-codegen/aws-models/firehose.2015-08-04.json +++ b/codegen/sdk-codegen/aws-models/firehose.2015-08-04.json @@ -36,7 +36,7 @@ "min": 1, "max": 512 }, - "smithy.api#pattern": "arn:.*" + "smithy.api#pattern": "^arn:" } }, "com.amazonaws.firehose#BlockSizeBytes": { @@ -61,7 +61,7 @@ "min": 1, "max": 2048 }, - "smithy.api#pattern": "arn:.*" + "smithy.api#pattern": "^arn:" } }, "com.amazonaws.firehose#BufferingHints": { @@ -117,7 +117,7 @@ "min": 1, "max": 512 }, - "smithy.api#pattern": "jdbc:(redshift|postgresql)://((?!-)[A-Za-z0-9-]{1,63}(?A set of tags to assign to the delivery stream. A tag is a key-value pair that you can\n define and assign to AWS resources. Tags are metadata. For example, you can add friendly\n names and descriptions or other types of information that can help you distinguish the\n delivery stream. For more information about tags, see Using Cost Allocation Tags in the AWS Billing and Cost Management User\n Guide.

\n\n

You can specify up to 50 tags when creating a delivery stream.

" + "smithy.api#documentation": "

A set of tags to assign to the delivery stream. A tag is a key-value pair that you can\n define and assign to AWS resources. Tags are metadata. For example, you can add friendly\n names and descriptions or other types of information that can help you distinguish the\n delivery stream. For more information about tags, see Using Cost Allocation\n Tags in the AWS Billing and Cost Management User Guide.

\n\n

You can specify up to 50 tags when creating a delivery stream.

" } } } @@ -371,7 +371,7 @@ } }, "traits": { - "smithy.api#documentation": "

Specifies that you want Kinesis Data Firehose to convert data from the JSON format to\n the Parquet or ORC format before writing it to Amazon S3. Kinesis Data Firehose uses the\n serializer and deserializer that you specify, in addition to the column information from\n the AWS Glue table, to deserialize your input data from JSON and then serialize it to the\n Parquet or ORC format. For more information, see Kinesis Data Firehose Record Format Conversion.

" + "smithy.api#documentation": "

Specifies that you want Kinesis Data Firehose to convert data from the JSON format to\n the Parquet or ORC format before writing it to Amazon S3. Kinesis Data Firehose uses the\n serializer and deserializer that you specify, in addition to the column information from\n the AWS Glue table, to deserialize your input data from JSON and then serialize it to the\n Parquet or ORC format. For more information, see Kinesis Data Firehose Record\n Format Conversion.

" } }, "com.amazonaws.firehose#DataTableColumns": { @@ -427,7 +427,7 @@ "AllowForceDelete": { "target": "com.amazonaws.firehose#BooleanObject", "traits": { - "smithy.api#documentation": "

Set this to true if you want to delete the delivery stream even if Kinesis Data Firehose\n is unable to retire the grant for the CMK. Kinesis Data Firehose might be unable to retire\n the grant due to a customer error, such as when the CMK or the grant are in an invalid\n state. If you force deletion, you can then use the RevokeGrant operation to revoke the grant you gave to Kinesis Data Firehose. If\n a failure to retire the grant happens due to an AWS KMS issue, Kinesis Data Firehose keeps\n retrying the delete operation.

\n

The default value is false.

" + "smithy.api#documentation": "

Set this to true if you want to delete the delivery stream even if Kinesis Data Firehose\n is unable to retire the grant for the CMK. Kinesis Data Firehose might be unable to retire\n the grant due to a customer error, such as when the CMK or the grant are in an invalid\n state. If you force deletion, you can then use the RevokeGrant operation to\n revoke the grant you gave to Kinesis Data Firehose. If a failure to retire the grant\n happens due to an AWS KMS issue, Kinesis Data Firehose keeps retrying the delete\n operation.

\n

The default value is false.

" } } } @@ -446,7 +446,7 @@ "min": 1, "max": 512 }, - "smithy.api#pattern": "arn:.*" + "smithy.api#pattern": "^arn:" } }, "com.amazonaws.firehose#DeliveryStreamDescription": { @@ -462,7 +462,7 @@ "DeliveryStreamARN": { "target": "com.amazonaws.firehose#DeliveryStreamARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the delivery stream. For more information, see\n Amazon Resource Names (ARNs) and AWS Service Namespaces.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the delivery stream. For more information, see\n Amazon\n Resource Names (ARNs) and AWS Service Namespaces.

", "smithy.api#required": {} } }, @@ -548,7 +548,7 @@ "KeyType": { "target": "com.amazonaws.firehose#KeyType", "traits": { - "smithy.api#documentation": "

Indicates the type of customer master key (CMK) that is used for encryption. The default\n setting is AWS_OWNED_CMK. For more information about CMKs, see Customer Master Keys (CMKs).

" + "smithy.api#documentation": "

Indicates the type of customer master key (CMK) that is used for encryption. The default\n setting is AWS_OWNED_CMK. For more information about CMKs, see Customer\n Master Keys (CMKs).

" } }, "Status": { @@ -580,7 +580,7 @@ "KeyType": { "target": "com.amazonaws.firehose#KeyType", "traits": { - "smithy.api#documentation": "

Indicates the type of customer master key (CMK) to use for encryption. The default\n setting is AWS_OWNED_CMK. For more information about CMKs, see Customer Master Keys (CMKs). When you invoke CreateDeliveryStream or StartDeliveryStreamEncryption with\n KeyType set to CUSTOMER_MANAGED_CMK, Kinesis Data Firehose invokes the\n Amazon KMS operation CreateGrant to create a grant that allows the Kinesis Data Firehose service to\n use the customer managed CMK to perform encryption and decryption. Kinesis Data Firehose\n manages that grant.

\n

When you invoke StartDeliveryStreamEncryption to change the CMK for a\n delivery stream that is encrypted with a customer managed CMK, Kinesis Data Firehose\n schedules the grant it had on the old CMK for retirement.

\n

You can use a CMK of type CUSTOMER_MANAGED_CMK to encrypt up to 500 delivery streams. If\n a CreateDeliveryStream or StartDeliveryStreamEncryption\n operation exceeds this limit, Kinesis Data Firehose throws a\n LimitExceededException.

\n \n

To encrypt your delivery stream, use symmetric CMKs. Kinesis Data Firehose doesn't\n support asymmetric CMKs. For information about symmetric and asymmetric CMKs, see About Symmetric and Asymmetric CMKs in the AWS Key Management Service\n developer guide.

\n
", + "smithy.api#documentation": "

Indicates the type of customer master key (CMK) to use for encryption. The default\n setting is AWS_OWNED_CMK. For more information about CMKs, see Customer\n Master Keys (CMKs). When you invoke CreateDeliveryStream or\n StartDeliveryStreamEncryption with KeyType set to\n CUSTOMER_MANAGED_CMK, Kinesis Data Firehose invokes the Amazon KMS operation CreateGrant to create a grant that allows the Kinesis Data Firehose service to\n use the customer managed CMK to perform encryption and decryption. Kinesis Data Firehose\n manages that grant.

\n

When you invoke StartDeliveryStreamEncryption to change the CMK for a\n delivery stream that is encrypted with a customer managed CMK, Kinesis Data Firehose\n schedules the grant it had on the old CMK for retirement.

\n

You can use a CMK of type CUSTOMER_MANAGED_CMK to encrypt up to 500 delivery streams. If\n a CreateDeliveryStream or StartDeliveryStreamEncryption\n operation exceeds this limit, Kinesis Data Firehose throws a\n LimitExceededException.

\n \n

To encrypt your delivery stream, use symmetric CMKs. Kinesis Data Firehose doesn't\n support asymmetric CMKs. For information about symmetric and asymmetric CMKs, see About\n Symmetric and Asymmetric CMKs in the AWS Key Management Service developer\n guide.

\n
", "smithy.api#required": {} } } @@ -694,7 +694,7 @@ "min": 1, "max": 64 }, - "smithy.api#pattern": "[a-zA-Z0-9_.-]+" + "smithy.api#pattern": "^[a-zA-Z0-9_.-]+$" } }, "com.amazonaws.firehose#DeliveryStreamNameList": { @@ -752,7 +752,7 @@ "min": 1, "max": 50 }, - "smithy.api#pattern": "[0-9]+" + "smithy.api#pattern": "^[0-9]+$" } }, "com.amazonaws.firehose#DescribeDeliveryStream": { @@ -902,7 +902,27 @@ "min": 1, "max": 100 }, - "smithy.api#pattern": "[a-zA-Z0-9-]+" + "smithy.api#pattern": "^[a-zA-Z0-9-]+$" + } + }, + "com.amazonaws.firehose#DynamicPartitioningConfiguration": { + "type": "structure", + "members": { + "RetryOptions": { + "target": "com.amazonaws.firehose#RetryOptions", + "traits": { + "smithy.api#documentation": "

The retry behavior in case Kinesis Data Firehose is unable to deliver data to an Amazon\n S3 prefix.

" + } + }, + "Enabled": { + "target": "com.amazonaws.firehose#BooleanObject", + "traits": { + "smithy.api#documentation": "

Specifies that the dynamic partitioning is enabled for this Kinesis Data Firehose\n delivery stream.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration of the dynamic partitioning mechanism that creates smaller data sets\n from the streaming data by partitioning it based on partition keys. Currently, dynamic\n partitioning is only supported for Amazon S3 destinations. For more information, see https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html\n

" } }, "com.amazonaws.firehose#ElasticsearchBufferingHints": { @@ -952,7 +972,7 @@ "min": 1, "max": 512 }, - "smithy.api#pattern": "https:.*" + "smithy.api#pattern": "^https:" } }, "com.amazonaws.firehose#ElasticsearchDestinationConfiguration": { @@ -961,7 +981,7 @@ "RoleARN": { "target": "com.amazonaws.firehose#RoleARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose\n for calling the Amazon ES Configuration API and for indexing documents. For more\n information, see Grant Kinesis Data\n Firehose Access to an Amazon S3 Destination and Amazon\n Resource Names (ARNs) and AWS Service Namespaces.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose\n for calling the Amazon ES Configuration API and for indexing documents. For more\n information, see Grant Kinesis Data\n Firehose Access to an Amazon S3 Destination and Amazon Resource Names (ARNs) and\n AWS Service Namespaces.

", "smithy.api#required": {} } }, @@ -1050,7 +1070,7 @@ "RoleARN": { "target": "com.amazonaws.firehose#RoleARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the AWS credentials. For more information, see\n Amazon Resource Names (ARNs) and AWS Service Namespaces.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the AWS credentials. For more information, see\n Amazon\n Resource Names (ARNs) and AWS Service Namespaces.

" } }, "DomainARN": { @@ -1136,13 +1156,13 @@ "RoleARN": { "target": "com.amazonaws.firehose#RoleARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose\n for calling the Amazon ES Configuration API and for indexing documents. For more\n information, see Grant Kinesis Data\n Firehose Access to an Amazon S3 Destination and Amazon\n Resource Names (ARNs) and AWS Service Namespaces.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose\n for calling the Amazon ES Configuration API and for indexing documents. For more\n information, see Grant Kinesis Data\n Firehose Access to an Amazon S3 Destination and Amazon Resource Names (ARNs) and\n AWS Service Namespaces.

" } }, "DomainARN": { "target": "com.amazonaws.firehose#ElasticsearchDomainARN", "traits": { - "smithy.api#documentation": "

The ARN of the Amazon ES domain. The IAM role must have permissions\n for DescribeElasticsearchDomain, DescribeElasticsearchDomains,\n and DescribeElasticsearchDomainConfig after assuming the IAM role specified in\n RoleARN. For more information, see Amazon\n Resource Names (ARNs) and AWS Service Namespaces.

\n\n

Specify either ClusterEndpoint or DomainARN.

" + "smithy.api#documentation": "

The ARN of the Amazon ES domain. The IAM role must have permissions\n for DescribeElasticsearchDomain, DescribeElasticsearchDomains,\n and DescribeElasticsearchDomainConfig after assuming the IAM role specified in\n RoleARN. For more information, see Amazon Resource Names (ARNs) and\n AWS Service Namespaces.

\n\n

Specify either ClusterEndpoint or DomainARN.

" } }, "ClusterEndpoint": { @@ -1211,7 +1231,7 @@ "min": 1, "max": 512 }, - "smithy.api#pattern": "arn:.*" + "smithy.api#pattern": "^arn:" } }, "com.amazonaws.firehose#ElasticsearchIndexName": { @@ -1342,27 +1362,27 @@ "RoleARN": { "target": "com.amazonaws.firehose#RoleARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the AWS credentials. For more information, see\n Amazon Resource Names (ARNs) and AWS Service Namespaces.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the AWS credentials. For more information, see\n Amazon\n Resource Names (ARNs) and AWS Service Namespaces.

", "smithy.api#required": {} } }, "BucketARN": { "target": "com.amazonaws.firehose#BucketARN", "traits": { - "smithy.api#documentation": "

The ARN of the S3 bucket. For more information, see Amazon\n Resource Names (ARNs) and AWS Service Namespaces.

", + "smithy.api#documentation": "

The ARN of the S3 bucket. For more information, see Amazon Resource Names (ARNs) and\n AWS Service Namespaces.

", "smithy.api#required": {} } }, "Prefix": { "target": "com.amazonaws.firehose#Prefix", "traits": { - "smithy.api#documentation": "

The \"YYYY/MM/DD/HH\" time format prefix is automatically used for delivered Amazon S3\n files. You can also specify a custom prefix, as described in Custom Prefixes\n for Amazon S3 Objects.

" + "smithy.api#documentation": "

The \"YYYY/MM/DD/HH\" time format prefix is automatically used for delivered Amazon S3\n files. You can also specify a custom prefix, as described in Custom Prefixes for Amazon S3\n Objects.

" } }, "ErrorOutputPrefix": { "target": "com.amazonaws.firehose#ErrorOutputPrefix", "traits": { - "smithy.api#documentation": "

A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing\n them to S3. This prefix appears immediately following the bucket name. For information\n about how to specify this prefix, see Custom Prefixes\n for Amazon S3 Objects.

" + "smithy.api#documentation": "

A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing\n them to S3. This prefix appears immediately following the bucket name. For information\n about how to specify this prefix, see Custom Prefixes for Amazon S3\n Objects.

" } }, "BufferingHints": { @@ -1412,6 +1432,12 @@ "traits": { "smithy.api#documentation": "

The serializer, deserializer, and schema for converting data from the JSON format to\n the Parquet or ORC format before writing it to Amazon S3.

" } + }, + "DynamicPartitioningConfiguration": { + "target": "com.amazonaws.firehose#DynamicPartitioningConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration of the dynamic partitioning mechanism that creates smaller data sets\n from the streaming data by partitioning it based on partition keys. Currently, dynamic\n partitioning is only supported for Amazon S3 destinations. For more information, see https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html\n

" + } } }, "traits": { @@ -1424,27 +1450,27 @@ "RoleARN": { "target": "com.amazonaws.firehose#RoleARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the AWS credentials. For more information, see\n Amazon Resource Names (ARNs) and AWS Service Namespaces.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the AWS credentials. For more information, see\n Amazon\n Resource Names (ARNs) and AWS Service Namespaces.

", "smithy.api#required": {} } }, "BucketARN": { "target": "com.amazonaws.firehose#BucketARN", "traits": { - "smithy.api#documentation": "

The ARN of the S3 bucket. For more information, see Amazon\n Resource Names (ARNs) and AWS Service Namespaces.

", + "smithy.api#documentation": "

The ARN of the S3 bucket. For more information, see Amazon Resource Names (ARNs) and\n AWS Service Namespaces.

", "smithy.api#required": {} } }, "Prefix": { "target": "com.amazonaws.firehose#Prefix", "traits": { - "smithy.api#documentation": "

The \"YYYY/MM/DD/HH\" time format prefix is automatically used for delivered Amazon S3\n files. You can also specify a custom prefix, as described in Custom Prefixes\n for Amazon S3 Objects.

" + "smithy.api#documentation": "

The \"YYYY/MM/DD/HH\" time format prefix is automatically used for delivered Amazon S3\n files. You can also specify a custom prefix, as described in Custom Prefixes for Amazon S3\n Objects.

" } }, "ErrorOutputPrefix": { "target": "com.amazonaws.firehose#ErrorOutputPrefix", "traits": { - "smithy.api#documentation": "

A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing\n them to S3. This prefix appears immediately following the bucket name. For information\n about how to specify this prefix, see Custom Prefixes\n for Amazon S3 Objects.

" + "smithy.api#documentation": "

A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing\n them to S3. This prefix appears immediately following the bucket name. For information\n about how to specify this prefix, see Custom Prefixes for Amazon S3\n Objects.

" } }, "BufferingHints": { @@ -1497,6 +1523,12 @@ "traits": { "smithy.api#documentation": "

The serializer, deserializer, and schema for converting data from the JSON format to\n the Parquet or ORC format before writing it to Amazon S3.

" } + }, + "DynamicPartitioningConfiguration": { + "target": "com.amazonaws.firehose#DynamicPartitioningConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration of the dynamic partitioning mechanism that creates smaller data sets\n from the streaming data by partitioning it based on partition keys. Currently, dynamic\n partitioning is only supported for Amazon S3 destinations. For more information, see https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html\n

" + } } }, "traits": { @@ -1509,25 +1541,25 @@ "RoleARN": { "target": "com.amazonaws.firehose#RoleARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the AWS credentials. For more information, see\n Amazon Resource Names (ARNs) and AWS Service Namespaces.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the AWS credentials. For more information, see\n Amazon\n Resource Names (ARNs) and AWS Service Namespaces.

" } }, "BucketARN": { "target": "com.amazonaws.firehose#BucketARN", "traits": { - "smithy.api#documentation": "

The ARN of the S3 bucket. For more information, see Amazon\n Resource Names (ARNs) and AWS Service Namespaces.

" + "smithy.api#documentation": "

The ARN of the S3 bucket. For more information, see Amazon Resource Names (ARNs) and\n AWS Service Namespaces.

" } }, "Prefix": { "target": "com.amazonaws.firehose#Prefix", "traits": { - "smithy.api#documentation": "

The \"YYYY/MM/DD/HH\" time format prefix is automatically used for delivered Amazon S3\n files. You can also specify a custom prefix, as described in Custom Prefixes\n for Amazon S3 Objects.

" + "smithy.api#documentation": "

The \"YYYY/MM/DD/HH\" time format prefix is automatically used for delivered Amazon S3\n files. You can also specify a custom prefix, as described in Custom Prefixes for Amazon S3\n Objects.

" } }, "ErrorOutputPrefix": { "target": "com.amazonaws.firehose#ErrorOutputPrefix", "traits": { - "smithy.api#documentation": "

A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing\n them to S3. This prefix appears immediately following the bucket name. For information\n about how to specify this prefix, see Custom Prefixes\n for Amazon S3 Objects.

" + "smithy.api#documentation": "

A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing\n them to S3. This prefix appears immediately following the bucket name. For information\n about how to specify this prefix, see Custom Prefixes for Amazon S3\n Objects.

" } }, "BufferingHints": { @@ -1577,6 +1609,12 @@ "traits": { "smithy.api#documentation": "

The serializer, deserializer, and schema for converting data from the JSON format to\n the Parquet or ORC format before writing it to Amazon S3.

" } + }, + "DynamicPartitioningConfiguration": { + "target": "com.amazonaws.firehose#DynamicPartitioningConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration of the dynamic partitioning mechanism that creates smaller data sets\n from the streaming data by partitioning it based on partition keys. Currently, dynamic\n partitioning is only supported for Amazon S3 destinations. For more information, see https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html\n

" + } } }, "traits": { @@ -1742,7 +1780,7 @@ "min": 1, "max": 256 }, - "smithy.api#pattern": "^(?!\\s*$).+", + "smithy.api#pattern": "^(?!\\s*$).+$", "smithy.api#sensitive": {} } }, @@ -1837,7 +1875,7 @@ "Url": { "target": "com.amazonaws.firehose#HttpEndpointUrl", "traits": { - "smithy.api#documentation": "

The URL of the HTTP endpoint selected as the destination.

", + "smithy.api#documentation": "

The URL of the HTTP endpoint selected as the destination.

\n \n

If you choose an HTTP endpoint as your destination, review and follow the\n instructions in the Appendix - HTTP Endpoint\n Delivery Request and Response Specifications.

\n
", "smithy.api#required": {} } }, @@ -2048,7 +2086,7 @@ "min": 1, "max": 256 }, - "smithy.api#pattern": "^(?!\\s*$).+" + "smithy.api#pattern": "^(?!\\s*$).+$" } }, "com.amazonaws.firehose#HttpEndpointRequestConfiguration": { @@ -2117,7 +2155,7 @@ "min": 1, "max": 1000 }, - "smithy.api#pattern": "https://.*", + "smithy.api#pattern": "^https://", "smithy.api#sensitive": {} } }, @@ -2212,7 +2250,7 @@ "min": 1, "max": 512 }, - "smithy.api#pattern": "arn:.*" + "smithy.api#pattern": "^arn:" } }, "com.amazonaws.firehose#KinesisStreamSourceConfiguration": { @@ -2221,14 +2259,14 @@ "KinesisStreamARN": { "target": "com.amazonaws.firehose#KinesisStreamARN", "traits": { - "smithy.api#documentation": "

The ARN of the source Kinesis data stream. For more information, see Amazon Kinesis Data Streams ARN Format.

", + "smithy.api#documentation": "

The ARN of the source Kinesis data stream. For more information, see Amazon\n Kinesis Data Streams ARN Format.

", "smithy.api#required": {} } }, "RoleARN": { "target": "com.amazonaws.firehose#RoleARN", "traits": { - "smithy.api#documentation": "

The ARN of the role that provides access to the source Kinesis data stream. For more\n information, see AWS Identity and Access Management (IAM) ARN Format.

", + "smithy.api#documentation": "

The ARN of the role that provides access to the source Kinesis data stream. For more\n information, see AWS Identity and\n Access Management (IAM) ARN Format.

", "smithy.api#required": {} } } @@ -2243,13 +2281,13 @@ "KinesisStreamARN": { "target": "com.amazonaws.firehose#KinesisStreamARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the source Kinesis data stream. For more\n information, see Amazon Kinesis Data Streams ARN Format.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the source Kinesis data stream. For more\n information, see Amazon\n Kinesis Data Streams ARN Format.

" } }, "RoleARN": { "target": "com.amazonaws.firehose#RoleARN", "traits": { - "smithy.api#documentation": "

The ARN of the role used by the source Kinesis data stream. For more information, see\n AWS Identity and Access Management (IAM) ARN Format.

" + "smithy.api#documentation": "

The ARN of the role used by the source Kinesis data stream. For more information, see\n AWS Identity and\n Access Management (IAM) ARN Format.

" } }, "DeliveryStartTimestamp": { @@ -2449,7 +2487,7 @@ "min": 0, "max": 512 }, - "smithy.api#pattern": "[\\.\\-_/#A-Za-z0-9]*" + "smithy.api#pattern": "^[\\.\\-_/#A-Za-z0-9]*$" } }, "com.amazonaws.firehose#LogStreamName": { @@ -2459,7 +2497,7 @@ "min": 0, "max": 512 }, - "smithy.api#pattern": "[^:*]*" + "smithy.api#pattern": "^[^:*]*$" } }, "com.amazonaws.firehose#NoEncryptionConfig": { @@ -2480,7 +2518,7 @@ "min": 1, "max": 1024 }, - "smithy.api#pattern": "^(?!\\s*$).+" + "smithy.api#pattern": "^(?!\\s*$).+$" } }, "com.amazonaws.firehose#NonEmptyStringWithoutWhitespace": { @@ -2857,6 +2895,14 @@ "value": "NumberOfRetries", "name": "LAMBDA_NUMBER_OF_RETRIES" }, + { + "value": "MetadataExtractionQuery", + "name": "METADATA_EXTRACTION_QUERY" + }, + { + "value": "JsonParsingEngine", + "name": "JSON_PARSING_ENGINE" + }, { "value": "RoleArn", "name": "ROLE_ARN" @@ -2868,6 +2914,14 @@ { "value": "BufferIntervalInSeconds", "name": "BUFFER_INTERVAL_IN_SECONDS" + }, + { + "value": "SubRecordType", + "name": "SUB_RECORD_TYPE" + }, + { + "value": "Delimiter", + "name": "Delimiter" } ] } @@ -2877,18 +2931,30 @@ "traits": { "smithy.api#length": { "min": 1, - "max": 512 + "max": 5120 }, - "smithy.api#pattern": "^(?!\\s*$).+" + "smithy.api#pattern": "^(?!\\s*$).+$" } }, "com.amazonaws.firehose#ProcessorType": { "type": "string", "traits": { "smithy.api#enum": [ + { + "value": "RecordDeAggregation", + "name": "RecordDeAggregation" + }, { "value": "Lambda", "name": "Lambda" + }, + { + "value": "MetadataExtraction", + "name": "MetadataExtraction" + }, + { + "value": "AppendDelimiterToRecord", + "name": "AppendDelimiterToRecord" } ] } @@ -2926,7 +2992,7 @@ } ], "traits": { - "smithy.api#documentation": "

Writes a single data record into an Amazon Kinesis Data Firehose delivery stream. To\n write multiple data records into a delivery stream, use PutRecordBatch.\n Applications using these operations are referred to as producers.

\n

By default, each delivery stream can take in up to 2,000 transactions per second,\n 5,000 records per second, or 5 MB per second. If you use PutRecord and\n PutRecordBatch, the limits are an aggregate across these two\n operations for each delivery stream. For more information about limits and how to request\n an increase, see Amazon\n Kinesis Data Firehose Limits.

\n

You must specify the name of the delivery stream and the data record when using PutRecord. The data record consists of a data blob that can be up to 1,000\n KB in size, and any kind of data. For example, it can be a segment from a log file,\n geographic location data, website clickstream data, and so on.

\n

Kinesis Data Firehose buffers records before delivering them to the destination. To\n disambiguate the data blobs at the destination, a common solution is to use delimiters in\n the data, such as a newline (\\n) or some other character unique within the\n data. This allows the consumer application to parse individual data items when reading the\n data from the destination.

\n

The PutRecord operation returns a RecordId, which is a\n unique string assigned to each record. Producer applications can use this ID for purposes\n such as auditability and investigation.

\n

If the PutRecord operation throws a\n ServiceUnavailableException, back off and retry. If the exception persists,\n it is possible that the throughput limits have been exceeded for the delivery stream.

\n

Data records sent to Kinesis Data Firehose are stored for 24 hours from the time they\n are added to a delivery stream as it tries to send the records to the destination. If the\n destination is unreachable for more than 24 hours, the data is no longer\n available.

\n\n \n

Don't concatenate two or more base64 strings to form the data fields of your records.\n Instead, concatenate the raw data, then perform base64 encoding.

\n
" + "smithy.api#documentation": "

Writes a single data record into an Amazon Kinesis Data Firehose delivery stream. To\n write multiple data records into a delivery stream, use PutRecordBatch.\n Applications using these operations are referred to as producers.

\n

By default, each delivery stream can take in up to 2,000 transactions per second,\n 5,000 records per second, or 5 MB per second. If you use PutRecord and\n PutRecordBatch, the limits are an aggregate across these two\n operations for each delivery stream. For more information about limits and how to request\n an increase, see Amazon\n Kinesis Data Firehose Limits.

\n

You must specify the name of the delivery stream and the data record when using PutRecord. The data record consists of a data blob that can be up to 1,000\n KiB in size, and any kind of data. For example, it can be a segment from a log file,\n geographic location data, website clickstream data, and so on.

\n

Kinesis Data Firehose buffers records before delivering them to the destination. To\n disambiguate the data blobs at the destination, a common solution is to use delimiters in\n the data, such as a newline (\\n) or some other character unique within the\n data. This allows the consumer application to parse individual data items when reading the\n data from the destination.

\n

The PutRecord operation returns a RecordId, which is a\n unique string assigned to each record. Producer applications can use this ID for purposes\n such as auditability and investigation.

\n

If the PutRecord operation throws a\n ServiceUnavailableException, back off and retry. If the exception persists,\n it is possible that the throughput limits have been exceeded for the delivery stream.

\n

Data records sent to Kinesis Data Firehose are stored for 24 hours from the time they\n are added to a delivery stream as it tries to send the records to the destination. If the\n destination is unreachable for more than 24 hours, the data is no longer\n available.

\n\n \n

Don't concatenate two or more base64 strings to form the data fields of your records.\n Instead, concatenate the raw data, then perform base64 encoding.

\n
" } }, "com.amazonaws.firehose#PutRecordBatch": { @@ -2952,7 +3018,7 @@ } ], "traits": { - "smithy.api#documentation": "

Writes multiple data records into a delivery stream in a single call, which can\n achieve higher throughput per producer than when writing single records. To write single\n data records into a delivery stream, use PutRecord. Applications using\n these operations are referred to as producers.

\n

For information about service quota, see Amazon Kinesis Data Firehose\n Quota.

\n

Each PutRecordBatch request supports up to 500 records. Each record\n in the request can be as large as 1,000 KB (before 64-bit encoding), up to a limit of 4 MB\n for the entire request. These limits cannot be changed.

\n

You must specify the name of the delivery stream and the data record when using PutRecord. The data record consists of a data blob that can be up to 1,000\n KB in size, and any kind of data. For example, it could be a segment from a log file,\n geographic location data, website clickstream data, and so on.

\n

Kinesis Data Firehose buffers records before delivering them to the destination. To\n disambiguate the data blobs at the destination, a common solution is to use delimiters in\n the data, such as a newline (\\n) or some other character unique within the\n data. This allows the consumer application to parse individual data items when reading the\n data from the destination.

\n

The PutRecordBatch response includes a count of failed records,\n FailedPutCount, and an array of responses, RequestResponses.\n Even if the PutRecordBatch call succeeds, the value of\n FailedPutCount may be greater than 0, indicating that there are records for\n which the operation didn't succeed. Each entry in the RequestResponses array\n provides additional information about the processed record. It directly correlates with a\n record in the request array using the same ordering, from the top to the bottom. The\n response array always includes the same number of records as the request array.\n RequestResponses includes both successfully and unsuccessfully processed\n records. Kinesis Data Firehose tries to process all records in each PutRecordBatch request. A single record failure does not stop the processing\n of subsequent records.

\n

A successfully processed record includes a RecordId value, which is\n unique for the record. An unsuccessfully processed record includes ErrorCode\n and ErrorMessage values. ErrorCode reflects the type of error,\n and is one of the following values: ServiceUnavailableException or\n InternalFailure. ErrorMessage provides more detailed\n information about the error.

\n

If there is an internal server error or a timeout, the write might have completed or\n it might have failed. If FailedPutCount is greater than 0, retry the request,\n resending only those records that might have failed processing. This minimizes the possible\n duplicate records and also reduces the total bytes sent (and corresponding charges). We\n recommend that you handle any duplicates at the destination.

\n

If PutRecordBatch throws ServiceUnavailableException,\n back off and retry. If the exception persists, it is possible that the throughput limits\n have been exceeded for the delivery stream.

\n\n

Data records sent to Kinesis Data Firehose are stored for 24 hours from the time they\n are added to a delivery stream as it attempts to send the records to the destination. If\n the destination is unreachable for more than 24 hours, the data is no longer\n available.

\n \n

Don't concatenate two or more base64 strings to form the data fields of your records.\n Instead, concatenate the raw data, then perform base64 encoding.

\n
" + "smithy.api#documentation": "

Writes multiple data records into a delivery stream in a single call, which can\n achieve higher throughput per producer than when writing single records. To write single\n data records into a delivery stream, use PutRecord. Applications using\n these operations are referred to as producers.

\n

For information about service quota, see Amazon Kinesis Data Firehose\n Quota.

\n

Each PutRecordBatch request supports up to 500 records. Each record\n in the request can be as large as 1,000 KB (before base64 encoding), up to a limit of 4 MB\n for the entire request. These limits cannot be changed.

\n

You must specify the name of the delivery stream and the data record when using PutRecord. The data record consists of a data blob that can be up to 1,000\n KB in size, and any kind of data. For example, it could be a segment from a log file,\n geographic location data, website clickstream data, and so on.

\n

Kinesis Data Firehose buffers records before delivering them to the destination. To\n disambiguate the data blobs at the destination, a common solution is to use delimiters in\n the data, such as a newline (\\n) or some other character unique within the\n data. This allows the consumer application to parse individual data items when reading the\n data from the destination.

\n

The PutRecordBatch response includes a count of failed records,\n FailedPutCount, and an array of responses, RequestResponses.\n Even if the PutRecordBatch call succeeds, the value of\n FailedPutCount may be greater than 0, indicating that there are records for\n which the operation didn't succeed. Each entry in the RequestResponses array\n provides additional information about the processed record. It directly correlates with a\n record in the request array using the same ordering, from the top to the bottom. The\n response array always includes the same number of records as the request array.\n RequestResponses includes both successfully and unsuccessfully processed\n records. Kinesis Data Firehose tries to process all records in each PutRecordBatch request. A single record failure does not stop the processing\n of subsequent records.

\n

A successfully processed record includes a RecordId value, which is\n unique for the record. An unsuccessfully processed record includes ErrorCode\n and ErrorMessage values. ErrorCode reflects the type of error,\n and is one of the following values: ServiceUnavailableException or\n InternalFailure. ErrorMessage provides more detailed\n information about the error.

\n

If there is an internal server error or a timeout, the write might have completed or\n it might have failed. If FailedPutCount is greater than 0, retry the request,\n resending only those records that might have failed processing. This minimizes the possible\n duplicate records and also reduces the total bytes sent (and corresponding charges). We\n recommend that you handle any duplicates at the destination.

\n

If PutRecordBatch throws ServiceUnavailableException,\n back off and retry. If the exception persists, it is possible that the throughput limits\n have been exceeded for the delivery stream.

\n\n

Data records sent to Kinesis Data Firehose are stored for 24 hours from the time they\n are added to a delivery stream as it attempts to send the records to the destination. If\n the destination is unreachable for more than 24 hours, the data is no longer\n available.

\n \n

Don't concatenate two or more base64 strings to form the data fields of your records.\n Instead, concatenate the raw data, then perform base64 encoding.

\n
" } }, "com.amazonaws.firehose#PutRecordBatchInput": { @@ -3115,7 +3181,7 @@ "RoleARN": { "target": "com.amazonaws.firehose#RoleARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the AWS credentials. For more information, see\n Amazon Resource Names (ARNs) and AWS Service Namespaces.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the AWS credentials. For more information, see\n Amazon\n Resource Names (ARNs) and AWS Service Namespaces.

", "smithy.api#required": {} } }, @@ -3195,7 +3261,7 @@ "RoleARN": { "target": "com.amazonaws.firehose#RoleARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the AWS credentials. For more information, see\n Amazon Resource Names (ARNs) and AWS Service Namespaces.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the AWS credentials. For more information, see\n Amazon\n Resource Names (ARNs) and AWS Service Namespaces.

", "smithy.api#required": {} } }, @@ -3268,7 +3334,7 @@ "RoleARN": { "target": "com.amazonaws.firehose#RoleARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the AWS credentials. For more information, see\n Amazon Resource Names (ARNs) and AWS Service Namespaces.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the AWS credentials. For more information, see\n Amazon\n Resource Names (ARNs) and AWS Service Namespaces.

" } }, "ClusterJDBCURL": { @@ -3405,6 +3471,30 @@ "smithy.api#error": "client" } }, + "com.amazonaws.firehose#RetryDurationInSeconds": { + "type": "integer", + "traits": { + "smithy.api#box": {}, + "smithy.api#range": { + "min": 0, + "max": 7200 + } + } + }, + "com.amazonaws.firehose#RetryOptions": { + "type": "structure", + "members": { + "DurationInSeconds": { + "target": "com.amazonaws.firehose#RetryDurationInSeconds", + "traits": { + "smithy.api#documentation": "

The period of time during which Kinesis Data Firehose retries to deliver data to the\n specified Amazon S3 prefix.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The retry behavior in case Kinesis Data Firehose is unable to deliver data to an Amazon\n S3 prefix.

" + } + }, "com.amazonaws.firehose#RoleARN": { "type": "string", "traits": { @@ -3412,7 +3502,7 @@ "min": 1, "max": 512 }, - "smithy.api#pattern": "arn:.*" + "smithy.api#pattern": "^arn:" } }, "com.amazonaws.firehose#S3BackupMode": { @@ -3436,27 +3526,27 @@ "RoleARN": { "target": "com.amazonaws.firehose#RoleARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the AWS credentials. For more information, see\n Amazon Resource Names (ARNs) and AWS Service Namespaces.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the AWS credentials. For more information, see\n Amazon\n Resource Names (ARNs) and AWS Service Namespaces.

", "smithy.api#required": {} } }, "BucketARN": { "target": "com.amazonaws.firehose#BucketARN", "traits": { - "smithy.api#documentation": "

The ARN of the S3 bucket. For more information, see Amazon\n Resource Names (ARNs) and AWS Service Namespaces.

", + "smithy.api#documentation": "

The ARN of the S3 bucket. For more information, see Amazon Resource Names (ARNs) and\n AWS Service Namespaces.

", "smithy.api#required": {} } }, "Prefix": { "target": "com.amazonaws.firehose#Prefix", "traits": { - "smithy.api#documentation": "

The \"YYYY/MM/DD/HH\" time format prefix is automatically used for delivered Amazon S3\n files. You can also specify a custom prefix, as described in Custom Prefixes\n for Amazon S3 Objects.

" + "smithy.api#documentation": "

The \"YYYY/MM/DD/HH\" time format prefix is automatically used for delivered Amazon S3\n files. You can also specify a custom prefix, as described in Custom Prefixes for Amazon S3\n Objects.

" } }, "ErrorOutputPrefix": { "target": "com.amazonaws.firehose#ErrorOutputPrefix", "traits": { - "smithy.api#documentation": "

A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing\n them to S3. This prefix appears immediately following the bucket name. For information\n about how to specify this prefix, see Custom Prefixes\n for Amazon S3 Objects.

" + "smithy.api#documentation": "

A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing\n them to S3. This prefix appears immediately following the bucket name. For information\n about how to specify this prefix, see Custom Prefixes for Amazon S3\n Objects.

" } }, "BufferingHints": { @@ -3494,27 +3584,27 @@ "RoleARN": { "target": "com.amazonaws.firehose#RoleARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the AWS credentials. For more information, see\n Amazon Resource Names (ARNs) and AWS Service Namespaces.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the AWS credentials. For more information, see\n Amazon\n Resource Names (ARNs) and AWS Service Namespaces.

", "smithy.api#required": {} } }, "BucketARN": { "target": "com.amazonaws.firehose#BucketARN", "traits": { - "smithy.api#documentation": "

The ARN of the S3 bucket. For more information, see Amazon\n Resource Names (ARNs) and AWS Service Namespaces.

", + "smithy.api#documentation": "

The ARN of the S3 bucket. For more information, see Amazon Resource Names (ARNs) and\n AWS Service Namespaces.

", "smithy.api#required": {} } }, "Prefix": { "target": "com.amazonaws.firehose#Prefix", "traits": { - "smithy.api#documentation": "

The \"YYYY/MM/DD/HH\" time format prefix is automatically used for delivered Amazon S3\n files. You can also specify a custom prefix, as described in Custom Prefixes\n for Amazon S3 Objects.

" + "smithy.api#documentation": "

The \"YYYY/MM/DD/HH\" time format prefix is automatically used for delivered Amazon S3\n files. You can also specify a custom prefix, as described in Custom Prefixes for Amazon S3\n Objects.

" } }, "ErrorOutputPrefix": { "target": "com.amazonaws.firehose#ErrorOutputPrefix", "traits": { - "smithy.api#documentation": "

A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing\n them to S3. This prefix appears immediately following the bucket name. For information\n about how to specify this prefix, see Custom Prefixes\n for Amazon S3 Objects.

" + "smithy.api#documentation": "

A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing\n them to S3. This prefix appears immediately following the bucket name. For information\n about how to specify this prefix, see Custom Prefixes for Amazon S3\n Objects.

" } }, "BufferingHints": { @@ -3555,25 +3645,25 @@ "RoleARN": { "target": "com.amazonaws.firehose#RoleARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the AWS credentials. For more information, see\n Amazon Resource Names (ARNs) and AWS Service Namespaces.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the AWS credentials. For more information, see\n Amazon\n Resource Names (ARNs) and AWS Service Namespaces.

" } }, "BucketARN": { "target": "com.amazonaws.firehose#BucketARN", "traits": { - "smithy.api#documentation": "

The ARN of the S3 bucket. For more information, see Amazon\n Resource Names (ARNs) and AWS Service Namespaces.

" + "smithy.api#documentation": "

The ARN of the S3 bucket. For more information, see Amazon Resource Names (ARNs) and\n AWS Service Namespaces.

" } }, "Prefix": { "target": "com.amazonaws.firehose#Prefix", "traits": { - "smithy.api#documentation": "

The \"YYYY/MM/DD/HH\" time format prefix is automatically used for delivered Amazon S3\n files. You can also specify a custom prefix, as described in Custom Prefixes\n for Amazon S3 Objects.

" + "smithy.api#documentation": "

The \"YYYY/MM/DD/HH\" time format prefix is automatically used for delivered Amazon S3\n files. You can also specify a custom prefix, as described in Custom Prefixes for Amazon S3\n Objects.

" } }, "ErrorOutputPrefix": { "target": "com.amazonaws.firehose#ErrorOutputPrefix", "traits": { - "smithy.api#documentation": "

A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing\n them to S3. This prefix appears immediately following the bucket name. For information\n about how to specify this prefix, see Custom Prefixes\n for Amazon S3 Objects.

" + "smithy.api#documentation": "

A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing\n them to S3. This prefix appears immediately following the bucket name. For information\n about how to specify this prefix, see Custom Prefixes for Amazon S3\n Objects.

" } }, "BufferingHints": { @@ -3611,7 +3701,7 @@ "RoleARN": { "target": "com.amazonaws.firehose#NonEmptyStringWithoutWhitespace", "traits": { - "smithy.api#documentation": "

The role that Kinesis Data Firehose can use to access AWS Glue. This role must be in\n the same account you use for Kinesis Data Firehose. Cross-account roles aren't\n allowed.

" + "smithy.api#documentation": "

The role that Kinesis Data Firehose can use to access AWS Glue. This role must be in\n the same account you use for Kinesis Data Firehose. Cross-account roles aren't\n allowed.

\n \n

If the SchemaConfiguration request parameter is used as part of invoking\n the CreateDeliveryStream API, then the RoleARN property is\n required and its value must be specified.

\n
" } }, "CatalogId": { @@ -3623,13 +3713,13 @@ "DatabaseName": { "target": "com.amazonaws.firehose#NonEmptyStringWithoutWhitespace", "traits": { - "smithy.api#documentation": "

Specifies the name of the AWS Glue database that contains the schema for the output\n data.

" + "smithy.api#documentation": "

Specifies the name of the AWS Glue database that contains the schema for the output\n data.

\n \n

If the SchemaConfiguration request parameter is used as part of invoking\n the CreateDeliveryStream API, then the DatabaseName property\n is required and its value must be specified.

\n
" } }, "TableName": { "target": "com.amazonaws.firehose#NonEmptyStringWithoutWhitespace", "traits": { - "smithy.api#documentation": "

Specifies the AWS Glue table that contains the column information that constitutes your\n data schema.

" + "smithy.api#documentation": "

Specifies the AWS Glue table that contains the column information that constitutes your\n data schema.

\n \n

If the SchemaConfiguration request parameter is used as part of invoking\n the CreateDeliveryStream API, then the TableName property is\n required and its value must be specified.

\n
" } }, "Region": { @@ -4099,7 +4189,7 @@ } ], "traits": { - "smithy.api#documentation": "

Adds or updates tags for the specified delivery stream. A tag is a key-value pair\n that you can define and assign to AWS resources. If you specify a tag that already exists,\n the tag value is replaced with the value that you specify in the request. Tags are\n metadata. For example, you can add friendly names and descriptions or other types of\n information that can help you distinguish the delivery stream. For more information about\n tags, see Using Cost Allocation Tags in the AWS Billing and Cost Management\n User Guide.

\n

Each delivery stream can have up to 50 tags.

\n

This operation has a limit of five transactions per second per account.

" + "smithy.api#documentation": "

Adds or updates tags for the specified delivery stream. A tag is a key-value pair\n that you can define and assign to AWS resources. If you specify a tag that already exists,\n the tag value is replaced with the value that you specify in the request. Tags are\n metadata. For example, you can add friendly names and descriptions or other types of\n information that can help you distinguish the delivery stream. For more information about\n tags, see Using Cost Allocation\n Tags in the AWS Billing and Cost Management User Guide.

\n

Each delivery stream can have up to 50 tags.

\n

This operation has a limit of five transactions per second per account.

" } }, "com.amazonaws.firehose#TagDeliveryStreamInput": { @@ -4331,7 +4421,7 @@ "SubnetIds": { "target": "com.amazonaws.firehose#SubnetIdList", "traits": { - "smithy.api#documentation": "

The IDs of the subnets that you want Kinesis Data Firehose to use to create ENIs in the\n VPC of the Amazon ES destination. Make sure that the routing tables and inbound and\n outbound rules allow traffic to flow from the subnets whose IDs are specified here to the\n subnets that have the destination Amazon ES endpoints. Kinesis Data Firehose creates at\n least one ENI in each of the subnets that are specified here. Do not delete or modify these\n ENIs.

\n

The number of ENIs that Kinesis Data Firehose creates in the subnets specified here\n scales up and down automatically based on throughput. To enable Kinesis Data Firehose to\n scale up the number of ENIs to match throughput, ensure that you have sufficient quota. To\n help you calculate the quota you need, assume that Kinesis Data Firehose can create up to\n three ENIs for this delivery stream for each of the subnets specified here. For more\n information about ENI quota, see Network Interfaces in the Amazon VPC Quotas topic.

", + "smithy.api#documentation": "

The IDs of the subnets that you want Kinesis Data Firehose to use to create ENIs in the\n VPC of the Amazon ES destination. Make sure that the routing tables and inbound and\n outbound rules allow traffic to flow from the subnets whose IDs are specified here to the\n subnets that have the destination Amazon ES endpoints. Kinesis Data Firehose creates at\n least one ENI in each of the subnets that are specified here. Do not delete or modify these\n ENIs.

\n

The number of ENIs that Kinesis Data Firehose creates in the subnets specified here\n scales up and down automatically based on throughput. To enable Kinesis Data Firehose to\n scale up the number of ENIs to match throughput, ensure that you have sufficient quota. To\n help you calculate the quota you need, assume that Kinesis Data Firehose can create up to\n three ENIs for this delivery stream for each of the subnets specified here. For more\n information about ENI quota, see Network Interfaces\n in the Amazon VPC Quotas topic.

", "smithy.api#required": {} } }, @@ -4345,7 +4435,7 @@ "SecurityGroupIds": { "target": "com.amazonaws.firehose#SecurityGroupIdList", "traits": { - "smithy.api#documentation": "

The IDs of the security groups that you want Kinesis Data Firehose to use when it\n creates ENIs in the VPC of the Amazon ES destination. You can use the same security group\n that the Amazon ES domain uses or different ones. If you specify different security groups\n here, ensure that they allow outbound HTTPS traffic to the Amazon ES domain's security\n group. Also ensure that the Amazon ES domain's security group allows HTTPS traffic from the\n security groups specified here. If you use the same security group for both your delivery\n stream and the Amazon ES domain, make sure the security group inbound rule allows HTTPS\n traffic. For more information about security group rules, see Security group rules in the Amazon VPC documentation.

", + "smithy.api#documentation": "

The IDs of the security groups that you want Kinesis Data Firehose to use when it\n creates ENIs in the VPC of the Amazon ES destination. You can use the same security group\n that the Amazon ES domain uses or different ones. If you specify different security groups\n here, ensure that they allow outbound HTTPS traffic to the Amazon ES domain's security\n group. Also ensure that the Amazon ES domain's security group allows HTTPS traffic from the\n security groups specified here. If you use the same security group for both your delivery\n stream and the Amazon ES domain, make sure the security group inbound rule allows HTTPS\n traffic. For more information about security group rules, see Security group\n rules in the Amazon VPC documentation.

", "smithy.api#required": {} } } @@ -4360,7 +4450,7 @@ "SubnetIds": { "target": "com.amazonaws.firehose#SubnetIdList", "traits": { - "smithy.api#documentation": "

The IDs of the subnets that Kinesis Data Firehose uses to create ENIs in the VPC of the\n Amazon ES destination. Make sure that the routing tables and inbound and outbound rules\n allow traffic to flow from the subnets whose IDs are specified here to the subnets that\n have the destination Amazon ES endpoints. Kinesis Data Firehose creates at least one ENI in\n each of the subnets that are specified here. Do not delete or modify these ENIs.

\n

The number of ENIs that Kinesis Data Firehose creates in the subnets specified here\n scales up and down automatically based on throughput. To enable Kinesis Data Firehose to\n scale up the number of ENIs to match throughput, ensure that you have sufficient quota. To\n help you calculate the quota you need, assume that Kinesis Data Firehose can create up to\n three ENIs for this delivery stream for each of the subnets specified here. For more\n information about ENI quota, see Network Interfaces in the Amazon VPC Quotas topic.

", + "smithy.api#documentation": "

The IDs of the subnets that Kinesis Data Firehose uses to create ENIs in the VPC of the\n Amazon ES destination. Make sure that the routing tables and inbound and outbound rules\n allow traffic to flow from the subnets whose IDs are specified here to the subnets that\n have the destination Amazon ES endpoints. Kinesis Data Firehose creates at least one ENI in\n each of the subnets that are specified here. Do not delete or modify these ENIs.

\n

The number of ENIs that Kinesis Data Firehose creates in the subnets specified here\n scales up and down automatically based on throughput. To enable Kinesis Data Firehose to\n scale up the number of ENIs to match throughput, ensure that you have sufficient quota. To\n help you calculate the quota you need, assume that Kinesis Data Firehose can create up to\n three ENIs for this delivery stream for each of the subnets specified here. For more\n information about ENI quota, see Network Interfaces\n in the Amazon VPC Quotas topic.

", "smithy.api#required": {} } }, @@ -4374,7 +4464,7 @@ "SecurityGroupIds": { "target": "com.amazonaws.firehose#SecurityGroupIdList", "traits": { - "smithy.api#documentation": "

The IDs of the security groups that Kinesis Data Firehose uses when it creates ENIs in\n the VPC of the Amazon ES destination. You can use the same security group that the Amazon\n ES domain uses or different ones. If you specify different security groups, ensure that\n they allow outbound HTTPS traffic to the Amazon ES domain's security group. Also ensure\n that the Amazon ES domain's security group allows HTTPS traffic from the security groups\n specified here. If you use the same security group for both your delivery stream and the\n Amazon ES domain, make sure the security group inbound rule allows HTTPS traffic. For more\n information about security group rules, see Security group rules in the Amazon VPC documentation.

", + "smithy.api#documentation": "

The IDs of the security groups that Kinesis Data Firehose uses when it creates ENIs in\n the VPC of the Amazon ES destination. You can use the same security group that the Amazon\n ES domain uses or different ones. If you specify different security groups, ensure that\n they allow outbound HTTPS traffic to the Amazon ES domain's security group. Also ensure\n that the Amazon ES domain's security group allows HTTPS traffic from the security groups\n specified here. If you use the same security group for both your delivery stream and the\n Amazon ES domain, make sure the security group inbound rule allows HTTPS traffic. For more\n information about security group rules, see Security group\n rules in the Amazon VPC documentation.

", "smithy.api#required": {} } }, diff --git a/codegen/sdk-codegen/aws-models/fsx.2018-03-01.json b/codegen/sdk-codegen/aws-models/fsx.2018-03-01.json index 85b2bedfba0..b6bd44c19c0 100644 --- a/codegen/sdk-codegen/aws-models/fsx.2018-03-01.json +++ b/codegen/sdk-codegen/aws-models/fsx.2018-03-01.json @@ -32,7 +32,7 @@ "com.amazonaws.fsx#AWSAccountId": { "type": "string", "traits": { - "smithy.api#documentation": "

An AWS account ID. This ID is a 12-digit number that you use to construct Amazon\n Resource Names (ARNs) for resources.

", + "smithy.api#documentation": "

An Amazon Web Services account ID. This ID is a 12-digit number that you use to construct Amazon\n Resource Names (ARNs) for resources.

", "smithy.api#length": { "min": 12, "max": 12 @@ -65,12 +65,27 @@ { "target": "com.amazonaws.fsx#CreateFileSystemFromBackup" }, + { + "target": "com.amazonaws.fsx#CreateStorageVirtualMachine" + }, + { + "target": "com.amazonaws.fsx#CreateVolume" + }, + { + "target": "com.amazonaws.fsx#CreateVolumeFromBackup" + }, { "target": "com.amazonaws.fsx#DeleteBackup" }, { "target": "com.amazonaws.fsx#DeleteFileSystem" }, + { + "target": "com.amazonaws.fsx#DeleteStorageVirtualMachine" + }, + { + "target": "com.amazonaws.fsx#DeleteVolume" + }, { "target": "com.amazonaws.fsx#DescribeBackups" }, @@ -83,6 +98,12 @@ { "target": "com.amazonaws.fsx#DescribeFileSystems" }, + { + "target": "com.amazonaws.fsx#DescribeStorageVirtualMachines" + }, + { + "target": "com.amazonaws.fsx#DescribeVolumes" + }, { "target": "com.amazonaws.fsx#DisassociateFileSystemAliases" }, @@ -97,6 +118,12 @@ }, { "target": "com.amazonaws.fsx#UpdateFileSystem" + }, + { + "target": "com.amazonaws.fsx#UpdateStorageVirtualMachine" + }, + { + "target": "com.amazonaws.fsx#UpdateVolume" } ], "traits": { @@ -127,7 +154,7 @@ "ActiveDirectoryId": { "target": "com.amazonaws.fsx#DirectoryId", "traits": { - "smithy.api#documentation": "

The ID of the AWS Managed Microsoft Active Directory instance to which the file system is joined.

" + "smithy.api#documentation": "

The ID of the Amazon Web Services Managed Microsoft Active Directory instance to which the file system is joined.

" } }, "ResourceARN": { @@ -197,6 +224,17 @@ "smithy.api#pattern": "^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{1,255}$" } }, + "com.amazonaws.fsx#AdminPassword": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 8, + "max": 50 + }, + "smithy.api#pattern": "^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{8,50}$", + "smithy.api#sensitive": {} + } + }, "com.amazonaws.fsx#AdministrativeAction": { "type": "structure", "members": { @@ -229,6 +267,9 @@ }, "FailureDetails": { "target": "com.amazonaws.fsx#AdministrativeActionFailureDetails" + }, + "TargetVolumeValues": { + "target": "com.amazonaws.fsx#Volume" } }, "traits": { @@ -297,7 +338,7 @@ "Lifecycle": { "target": "com.amazonaws.fsx#AliasLifecycle", "traits": { - "smithy.api#documentation": "

Describes the state of the DNS alias.

\n " + "smithy.api#documentation": "

Describes the state of the DNS alias.

\n " } } }, @@ -397,7 +438,7 @@ } ], "traits": { - "smithy.api#documentation": "

Use this action to associate one or more Domain Name Server (DNS) aliases with an existing Amazon FSx for Windows File Server file system. \n A file systen can have a maximum of 50 DNS aliases associated with it at any one time. If you try to \n associate a DNS alias that is already associated with the file system, FSx takes no action on that alias in the request. \n For more information, see Working with DNS Aliases and \n Walkthrough 5: Using DNS aliases to access your file system, including\n additional steps you must take to be able to access your file system using a DNS alias.

\n

The system response shows the DNS aliases that \n Amazon FSx is attempting to associate with the file system. \n Use the API \n operation to monitor the status of the aliases Amazon FSx is \n associating with the file system.

" + "smithy.api#documentation": "

Use this action to associate one or more Domain Name Server (DNS) aliases with an existing Amazon FSx for Windows File Server file system. \n A file system can have a maximum of 50 DNS aliases associated with it at any one time. If you try to \n associate a DNS alias that is already associated with the file system, FSx takes no action on that alias in the request. \n For more information, see Working with DNS Aliases and \n Walkthrough 5: Using DNS aliases to access your file system, including\n additional steps you must take to be able to access your file system using a DNS alias.

\n

The system response shows the DNS aliases that \n Amazon FSx is attempting to associate with the file system. \n Use the API \n operation to monitor the status of the aliases Amazon FSx is \n associating with the file system.

" } }, "com.amazonaws.fsx#AssociateFileSystemAliasesRequest": { @@ -515,7 +556,7 @@ "KmsKeyId": { "target": "com.amazonaws.fsx#KmsKeyId", "traits": { - "smithy.api#documentation": "

The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the \n backup of the Amazon FSx file system's data at rest. \n

" + "smithy.api#documentation": "

The ID of the Key Management Service (KMS) key used to encrypt the \n backup of the Amazon FSx file system's data at rest. \n

" } }, "ResourceARN": { @@ -554,10 +595,19 @@ "traits": { "smithy.api#documentation": "

The source Region of the backup. Specifies the Region from where this backup\n is copied.

" } + }, + "ResourceType": { + "target": "com.amazonaws.fsx#ResourceType", + "traits": { + "smithy.api#documentation": "

Specifies the resource type that is backed up.

" + } + }, + "Volume": { + "target": "com.amazonaws.fsx#Volume" } }, "traits": { - "smithy.api#documentation": "

A backup of an Amazon FSx file system.

" + "smithy.api#documentation": "

A backup of an Amazon FSx for Windows File Server or Amazon FSx for Lustre file system,\n or of an Amazon FSx for NetApp ONTAP volume.

" } }, "com.amazonaws.fsx#BackupBeingCopied": { @@ -801,7 +851,7 @@ "com.amazonaws.fsx#ClientRequestToken": { "type": "string", "traits": { - "smithy.api#documentation": "

(Optional) An idempotency token for resource creation, in a string of up to 64\n ASCII characters. This token is automatically filled on your behalf when you use the AWS\n Command Line Interface (AWS CLI) or an AWS SDK.

", + "smithy.api#documentation": "

(Optional) An idempotency token for resource creation, in a string of up to 64\n ASCII characters. This token is automatically filled on your behalf when you use the\n Command Line Interface (CLI) or an Amazon Web Services SDK.

", "smithy.api#length": { "min": 1, "max": 63 @@ -842,6 +892,16 @@ "smithy.api#documentation": "

Provides a report detailing the data repository task results of the files processed that match the criteria specified in the report Scope parameter. \n FSx delivers the report to the file system's linked data repository in Amazon S3, \n using the path specified in the report Path parameter. \n You can specify whether or not a report gets generated for a task using the Enabled parameter.

" } }, + "com.amazonaws.fsx#CoolingPeriod": { + "type": "integer", + "traits": { + "smithy.api#box": {}, + "smithy.api#range": { + "min": 2, + "max": 183 + } + } + }, "com.amazonaws.fsx#CopyBackup": { "type": "operation", "input": { @@ -886,7 +946,7 @@ } ], "traits": { - "smithy.api#documentation": "

Copies an existing backup within the same AWS account to another Region\n (cross-Region copy) or within the same Region (in-Region copy). You can have up to five\n backup copy requests in progress to a single destination Region per account.

\n

You can use cross-Region backup copies for cross-region disaster recovery.\n You periodically take backups and copy them to another Region so that in the\n event of a disaster in the primary Region, you can restore from backup and recover\n availability quickly in the other Region. You can make cross-Region copies\n only within your AWS partition.

\n

You can also use backup copies to clone your file data set to another Region\n or within the same Region.

\n

You can use the SourceRegion parameter to specify the AWS Region\n from which the backup will be copied. For example, if you make the call from the\n us-west-1 Region and want to copy a backup from the us-east-2\n Region, you specify us-east-2 in the SourceRegion parameter\n to make a cross-Region copy. If you don't specify a Region, the backup copy is\n created in the same Region where the request is sent from (in-Region copy).

\n

For more information on creating backup copies, see \n \n Copying backups in the Amazon FSx for Windows User Guide and \n Copying backups \n in the Amazon FSx for Lustre User Guide.

", + "smithy.api#documentation": "

Copies an existing backup within the same Amazon Web Services account to another Amazon Web Services Region\n (cross-Region copy) or within the same Amazon Web Services Region (in-Region copy). You can have up to five\n backup copy requests in progress to a single destination Region per account.

\n

You can use cross-Region backup copies for cross-region disaster recovery.\n You periodically take backups and copy them to another Region so that in the\n event of a disaster in the primary Region, you can restore from backup and recover\n availability quickly in the other Region. You can make cross-Region copies\n only within your Amazon Web Services partition.

\n

You can also use backup copies to clone your file data set to another Region\n or within the same Region.

\n

You can use the SourceRegion parameter to specify the Amazon Web Services Region\n from which the backup will be copied. For example, if you make the call from the\n us-west-1 Region and want to copy a backup from the us-east-2\n Region, you specify us-east-2 in the SourceRegion parameter\n to make a cross-Region copy. If you don't specify a Region, the backup copy is\n created in the same Region where the request is sent from (in-Region copy).

\n

For more information on creating backup copies, see \n \n Copying backups in the Amazon FSx for Windows User Guide and \n Copying backups \n in the Amazon FSx for Lustre User Guide.

", "smithy.api#idempotent": {} } }, @@ -909,7 +969,7 @@ "SourceRegion": { "target": "com.amazonaws.fsx#Region", "traits": { - "smithy.api#documentation": "

The source AWS Region of the backup. Specifies the AWS Region from which\n the backup is being copied. The source and destination Regions must be in\n the same AWS partition. If you don't specify a Region, it defaults to\n the Region where the request is sent from (in-Region copy).

" + "smithy.api#documentation": "

The source Amazon Web Services Region of the backup. Specifies the Amazon Web Services Region from which\n the backup is being copied. The source and destination Regions must be in\n the same Amazon Web Services partition. If you don't specify a Region, it defaults to\n the Region where the request is sent from (in-Region copy).

" } }, "KmsKeyId": { @@ -963,10 +1023,13 @@ }, { "target": "com.amazonaws.fsx#UnsupportedOperation" + }, + { + "target": "com.amazonaws.fsx#VolumeNotFound" } ], "traits": { - "smithy.api#documentation": "

Creates a backup of an existing Amazon FSx file system.\n Creating regular backups for your file system is a best practice, enabling you to restore a file system\n from a backup if an issue arises with the original file system.

\n

For Amazon FSx for Lustre file systems, you can create a backup only \n for file systems with the following configuration:

\n \n

For more information about backing up Amazon FSx for Lustre file systems, \n see Working with FSx for Lustre backups.

\n

For more information about backing up Amazon FSx for Windows file systems, \n see Working with FSx for Windows backups.

\n\n

If a backup with the specified client request token exists, and the parameters\n match, this operation returns the description of the existing backup. If a backup\n specified client request token exists, and the parameters don't match, this\n operation returns IncompatibleParameterError. If a backup with the\n specified client request token doesn't exist, CreateBackup does the\n following:

\n \n\n

By using the idempotent operation, you can retry a CreateBackup\n operation without the risk of creating an extra backup. This approach can be useful when\n an initial call fails in a way that makes it unclear whether a backup was created. If\n you use the same client request token and the initial call created a backup, the\n operation returns a successful result because all the parameters are the same.

\n\n

The CreateBackup operation returns while the backup's\n lifecycle state is still CREATING. You can check the backup creation\n status by calling the DescribeBackups operation, which returns the\n backup state along with other information.

", + "smithy.api#documentation": "

Creates a backup of an existing Amazon FSx for Windows File Server\n or Amazon FSx for Lustre file system, or of an Amazon FSx for NetApp ONTAP\n volume. Creating regular backups is a best practice, enabling you to restore\n a file system or volume from a backup if an issue arises with the original\n file system or volume.

\n

For Amazon FSx for Lustre file systems, you can create a backup only \n for file systems with the following configuration:

\n \n

For more information about backups, see the following:

\n \n

If a backup with the specified client request token exists, and the parameters\n match, this operation returns the description of the existing backup. If a backup\n specified client request token exists, and the parameters don't match, this\n operation returns IncompatibleParameterError. If a backup with the\n specified client request token doesn't exist, CreateBackup does the\n following:

\n \n\n

By using the idempotent operation, you can retry a CreateBackup\n operation without the risk of creating an extra backup. This approach can be useful when\n an initial call fails in a way that makes it unclear whether a backup was created. If\n you use the same client request token and the initial call created a backup, the\n operation returns a successful result because all the parameters are the same.

\n\n

The CreateBackup operation returns while the backup's\n lifecycle state is still CREATING. You can check the backup creation\n status by calling the DescribeBackups operation, which returns the\n backup state along with other information.

", "smithy.api#idempotent": {} } }, @@ -976,14 +1039,13 @@ "FileSystemId": { "target": "com.amazonaws.fsx#FileSystemId", "traits": { - "smithy.api#documentation": "

The ID of the file system to back up.

", - "smithy.api#required": {} + "smithy.api#documentation": "

The ID of the file system to back up.

" } }, "ClientRequestToken": { "target": "com.amazonaws.fsx#ClientRequestToken", "traits": { - "smithy.api#documentation": "

(Optional) A string of up to 64 ASCII characters that Amazon FSx uses to ensure\n idempotent creation. This string is automatically filled on your behalf when you use the\n AWS Command Line Interface (AWS CLI) or an AWS SDK.

", + "smithy.api#documentation": "

(Optional) A string of up to 64 ASCII characters that Amazon FSx uses to ensure\n idempotent creation. This string is automatically filled on your behalf when you use the\n Command Line Interface (CLI) or an Amazon Web Services SDK.

", "smithy.api#idempotencyToken": {} } }, @@ -992,6 +1054,12 @@ "traits": { "smithy.api#documentation": "

(Optional) The tags to apply to the backup at backup creation. The key value of the\n Name tag appears in the console as the backup name. If you have set CopyTagsToBackups to true, and \n you specify one or more tags using the CreateBackup action, no existing file system tags are copied from the file system to the backup.

" } + }, + "VolumeId": { + "target": "com.amazonaws.fsx#VolumeId", + "traits": { + "smithy.api#documentation": "

The ID of he FSx for NetApp ONTAP volume to back up.

" + } } }, "traits": { @@ -1181,7 +1249,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a new Amazon FSx file system from an existing Amazon FSx backup.

\n \n

If a file system with the specified client request token exists and the parameters\n match, this operation returns the description of the file system. If a client\n request token specified by the file system exists and the parameters don't match,\n this call returns IncompatibleParameterError. If a file system with the\n specified client request token doesn't exist, this operation does the following:

\n \n \n\n

Parameters like Active Directory, default share name, automatic backup, and backup\n settings default to the parameters of the file system that was backed up, unless\n overridden. You can explicitly supply other settings.

\n\n

By using the idempotent operation, you can retry a\n CreateFileSystemFromBackup call without the risk of creating an extra\n file system. This approach can be useful when an initial call fails in a way that makes\n it unclear whether a file system was created. Examples are if a transport level timeout\n occurred, or your connection was reset. If you use the same client request token and the\n initial call created a file system, the client receives success as long as the\n parameters are the same.

\n \n

The CreateFileSystemFromBackup call returns while the file\n system's lifecycle state is still CREATING. You can check the\n file-system creation status by calling the DescribeFileSystems\n operation, which returns the file system state along with other\n information.

\n
" + "smithy.api#documentation": "

Creates a new Amazon FSx for Lustre or Amazon FSx for Windows File Server file system\n from an existing Amazon FSx backup.

\n \n

If a file system with the specified client request token exists and the parameters\n match, this operation returns the description of the file system. If a client\n request token specified by the file system exists and the parameters don't match,\n this call returns IncompatibleParameterError. If a file system with the\n specified client request token doesn't exist, this operation does the following:

\n \n \n\n

Parameters like Active Directory, default share name, automatic backup, and backup\n settings default to the parameters of the file system that was backed up, unless\n overridden. You can explicitly supply other settings.

\n\n

By using the idempotent operation, you can retry a\n CreateFileSystemFromBackup call without the risk of creating an extra\n file system. This approach can be useful when an initial call fails in a way that makes\n it unclear whether a file system was created. Examples are if a transport level timeout\n occurred, or your connection was reset. If you use the same client request token and the\n initial call created a file system, the client receives success as long as the\n parameters are the same.

\n \n

The CreateFileSystemFromBackup call returns while the file\n system's lifecycle state is still CREATING. You can check the\n file-system creation status by calling the DescribeFileSystems\n operation, which returns the file system state along with other\n information.

\n
" } }, "com.amazonaws.fsx#CreateFileSystemFromBackupRequest": { @@ -1196,7 +1264,7 @@ "ClientRequestToken": { "target": "com.amazonaws.fsx#ClientRequestToken", "traits": { - "smithy.api#documentation": "

A string of up to 64 ASCII characters that Amazon FSx uses to ensure\n idempotent creation. This string is automatically filled on your behalf when you use the\n AWS Command Line Interface (AWS CLI) or an AWS SDK.

", + "smithy.api#documentation": "

A string of up to 64 ASCII characters that Amazon FSx uses to ensure\n idempotent creation. This string is automatically filled on your behalf when you use the\n Command Line Interface (CLI) or an Amazon Web Services SDK.

", "smithy.api#idempotencyToken": {} } }, @@ -1286,7 +1354,7 @@ "DeploymentType": { "target": "com.amazonaws.fsx#LustreDeploymentType", "traits": { - "smithy.api#documentation": "

\n Choose SCRATCH_1 and SCRATCH_2 deployment \n types when you need temporary storage and shorter-term processing of data. \n The SCRATCH_2 deployment type provides in-transit encryption of data and higher burst \n throughput capacity than SCRATCH_1.

\n \n

Choose PERSISTENT_1 deployment type for longer-term storage \n and workloads and encryption of data in transit. To learn more about deployment types, see \n \n FSx for Lustre Deployment Options.

\n

Encryption of data in-transit is automatically \n enabled when you access a SCRATCH_2 or PERSISTENT_1\n file system from Amazon EC2 instances that support this feature.\n (Default = SCRATCH_1)\n

\n

Encryption of data in-transit for SCRATCH_2 and PERSISTENT_1 \n deployment types is supported when accessed from supported instance types in supported AWS Regions. To learn more, \n Encrypting Data in Transit.

" + "smithy.api#documentation": "

\n Choose SCRATCH_1 and SCRATCH_2 deployment \n types when you need temporary storage and shorter-term processing of data. \n The SCRATCH_2 deployment type provides in-transit encryption of data and higher burst \n throughput capacity than SCRATCH_1.

\n \n

Choose PERSISTENT_1 deployment type for longer-term storage \n and workloads and encryption of data in transit. To learn more about deployment types, see \n \n FSx for Lustre Deployment Options.

\n

Encryption of data in-transit is automatically \n enabled when you access a SCRATCH_2 or PERSISTENT_1\n file system from Amazon EC2 instances that support this feature.\n (Default = SCRATCH_1)\n

\n

Encryption of data in-transit for SCRATCH_2 and PERSISTENT_1 \n deployment types is supported when accessed from supported instance types in supported Amazon Web Services Regions. To learn more, \n Encrypting Data in Transit.

" } }, "AutoImportPolicy": { @@ -1330,40 +1398,97 @@ "smithy.api#documentation": "

The Lustre configuration for the file system being created. \n

" } }, + "com.amazonaws.fsx#CreateFileSystemOntapConfiguration": { + "type": "structure", + "members": { + "AutomaticBackupRetentionDays": { + "target": "com.amazonaws.fsx#AutomaticBackupRetentionDays" + }, + "DailyAutomaticBackupStartTime": { + "target": "com.amazonaws.fsx#DailyTime" + }, + "DeploymentType": { + "target": "com.amazonaws.fsx#OntapDeploymentType", + "traits": { + "smithy.api#documentation": "

Specifies the ONTAP file system deployment type to use in creating the file system.

", + "smithy.api#required": {} + } + }, + "EndpointIpAddressRange": { + "target": "com.amazonaws.fsx#IpAddressRange", + "traits": { + "smithy.api#documentation": "

Specifies the IP address range in which the endpoints to access your file system\n will be created. By default, Amazon FSx selects an unused IP address range for you\n from the 198.19.* range.

" + } + }, + "FsxAdminPassword": { + "target": "com.amazonaws.fsx#AdminPassword", + "traits": { + "smithy.api#documentation": "

The ONTAP administrative password for the fsxadmin user that you can\n use to administer your file system using the ONTAP CLI and REST API.

" + } + }, + "DiskIopsConfiguration": { + "target": "com.amazonaws.fsx#DiskIopsConfiguration", + "traits": { + "smithy.api#documentation": "

The SSD IOPS configuration for the Amazon FSx for NetApp ONTAP file system.

" + } + }, + "PreferredSubnetId": { + "target": "com.amazonaws.fsx#SubnetId" + }, + "RouteTableIds": { + "target": "com.amazonaws.fsx#RouteTableIds", + "traits": { + "smithy.api#documentation": "

Specifies the VPC route tables in which your file system's endpoints will be\n created. You should specify all VPC route tables associated with the subnets\n in which your clients are located. By default, Amazon FSx selects your VPC's\n default route table.

" + } + }, + "ThroughputCapacity": { + "target": "com.amazonaws.fsx#MegabytesPerSecond", + "traits": { + "smithy.api#required": {} + } + }, + "WeeklyMaintenanceStartTime": { + "target": "com.amazonaws.fsx#WeeklyTime" + } + }, + "traits": { + "smithy.api#documentation": "

The ONTAP configuration properties of the FSx for NetApp ONTAP file system that you are creating.

" + } + }, "com.amazonaws.fsx#CreateFileSystemRequest": { "type": "structure", "members": { "ClientRequestToken": { "target": "com.amazonaws.fsx#ClientRequestToken", "traits": { - "smithy.api#documentation": "

A string of up to 64 ASCII characters that Amazon FSx uses to ensure\n idempotent creation. This string is automatically filled on your behalf when you use the\n AWS Command Line Interface (AWS CLI) or an AWS SDK.

", + "smithy.api#documentation": "

A string of up to 64 ASCII characters that Amazon FSx uses to ensure\n idempotent creation. This string is automatically filled on your behalf when you use the\n Command Line Interface (CLI) or an Amazon Web Services SDK.

", "smithy.api#idempotencyToken": {} } }, "FileSystemType": { "target": "com.amazonaws.fsx#FileSystemType", "traits": { - "smithy.api#documentation": "

The type of Amazon FSx file system to create, either WINDOWS or LUSTRE.

", + "smithy.api#documentation": "

The type of Amazon FSx file system to create. Valid values are WINDOWS,\n LUSTRE, and ONTAP.

", "smithy.api#required": {} } }, "StorageCapacity": { "target": "com.amazonaws.fsx#StorageCapacity", "traits": { - "smithy.api#documentation": "

Sets the storage capacity of the file system that you're creating.

\n

For Lustre file systems:

\n \n

For Windows file systems:

\n ", + "smithy.api#documentation": "

Sets the storage capacity of the file system that you're creating.

\n

For Lustre file systems:

\n \n

For Windows file systems:

\n \n

For ONTAP file systems:

\n ", "smithy.api#required": {} } }, "StorageType": { "target": "com.amazonaws.fsx#StorageType", "traits": { - "smithy.api#documentation": "

Sets the storage type for the file system you're creating. \n Valid values are SSD and HDD.

\n \n

\n Default value is SSD. For more information, see \n \n Storage Type Options in the Amazon FSx for Windows User Guide and \n Multiple Storage Options \n in the Amazon FSx for Lustre User Guide.\n

" + "smithy.api#documentation": "

Sets the storage type for the file system you're creating. \n Valid values are SSD and HDD.

\n \n

\n Default value is SSD. For more information, see \n \n Storage Type Options in the Amazon FSx for Windows User Guide and \n Multiple Storage Options \n in the Amazon FSx for Lustre User Guide.\n

" } }, "SubnetIds": { "target": "com.amazonaws.fsx#SubnetIds", "traits": { - "smithy.api#documentation": "

Specifies the IDs of the subnets that the file system will be accessible from. For Windows MULTI_AZ_1 \n file system deployment types, provide exactly two subnet IDs, one for the preferred file server \n and one for the standby file server. You specify one of these subnets as the preferred subnet \n using the WindowsConfiguration > PreferredSubnetID property. For more information, \n see \n Availability and durability: Single-AZ and Multi-AZ file systems.

\n

For Windows SINGLE_AZ_1 and SINGLE_AZ_2 file system deployment types and Lustre file systems, provide exactly one subnet ID.\n The file server is launched in that subnet's Availability Zone.

", + "smithy.api#documentation": "

Specifies the IDs of the subnets that the file system will be accessible from. For Windows\n and ONTAP MULTI_AZ_1 file system deployment types, provide exactly two subnet IDs,\n one for the preferred file server and one for the standby file server. You specify one of these\n subnets as the preferred subnet using the WindowsConfiguration > PreferredSubnetID\n or OntapConfiguration > PreferredSubnetID properties. For more information, \n see \n Availability and durability: Single-AZ and Multi-AZ file systems in the\n Amazon FSx for Windows User Guide and\n \n Availability and durability in the\n Amazon FSx for ONTAP User Guide.

\n

For Windows SINGLE_AZ_1 and SINGLE_AZ_2 file system deployment types and Lustre file systems, provide exactly one subnet ID.\n The file server is launched in that subnet's Availability Zone.

", "smithy.api#required": {} } }, @@ -1390,6 +1515,9 @@ }, "LustreConfiguration": { "target": "com.amazonaws.fsx#CreateFileSystemLustreConfiguration" + }, + "OntapConfiguration": { + "target": "com.amazonaws.fsx#CreateFileSystemOntapConfiguration" } }, "traits": { @@ -1416,7 +1544,7 @@ "ActiveDirectoryId": { "target": "com.amazonaws.fsx#DirectoryId", "traits": { - "smithy.api#documentation": "

The ID for an existing AWS Managed Microsoft Active Directory (AD) instance that the\n file system should join when it's created.

" + "smithy.api#documentation": "

The ID for an existing Amazon Web Services Managed Microsoft Active Directory (AD) instance that the\n file system should join when it's created.

" } }, "SelfManagedActiveDirectoryConfiguration": { @@ -1425,13 +1553,13 @@ "DeploymentType": { "target": "com.amazonaws.fsx#WindowsDeploymentType", "traits": { - "smithy.api#documentation": "

Specifies the file system deployment type, valid values are the following:

\n \n

For more information, see \n \n Availability and Durability: Single-AZ and Multi-AZ File Systems.

" + "smithy.api#documentation": "

Specifies the file system deployment type, valid values are the following:

\n \n

For more information, see \n \n Availability and Durability: Single-AZ and Multi-AZ File Systems.

" } }, "PreferredSubnetId": { "target": "com.amazonaws.fsx#SubnetId", "traits": { - "smithy.api#documentation": "

Required when DeploymentType is set to MULTI_AZ_1. This specifies the subnet \n in which you want the preferred file server to be located. For in-AWS applications, we recommend that you launch \n your clients in the same Availability Zone (AZ) as your preferred file server to reduce cross-AZ \n data transfer costs and minimize latency.

" + "smithy.api#documentation": "

Required when DeploymentType is set to MULTI_AZ_1. This specifies the subnet \n in which you want the preferred file server to be located. For in-Amazon Web Services applications, we recommend that you launch \n your clients in the same Availability Zone (AZ) as your preferred file server to reduce cross-AZ \n data transfer costs and minimize latency.

" } }, "ThroughputCapacity": { @@ -1482,188 +1610,507 @@ "smithy.api#documentation": "

The configuration object for the Microsoft Windows file system used in\n CreateFileSystem and CreateFileSystemFromBackup\n operations.

" } }, - "com.amazonaws.fsx#CreationTime": { - "type": "timestamp", - "traits": { - "smithy.api#documentation": "

The time that the resource was created, in seconds (since 1970-01-01T00:00:00Z),\n also known as Unix time.

" - } - }, - "com.amazonaws.fsx#DNSName": { - "type": "string", - "traits": { - "smithy.api#documentation": "

The Domain Name Service (DNS) name for the file system. You can mount your file\n system using its DNS name.

", - "smithy.api#length": { - "min": 16, - "max": 275 - }, - "smithy.api#pattern": "^(fsi?-[0-9a-f]{8,}\\..{4,253})$" - } - }, - "com.amazonaws.fsx#DailyTime": { - "type": "string", - "traits": { - "smithy.api#documentation": "

A recurring daily time, in the format HH:MM. HH is the\n zero-padded hour of the day (0-23), and MM is the zero-padded minute of the\n hour. For example, 05:00 specifies 5 AM daily.

", - "smithy.api#length": { - "min": 5, - "max": 5 - }, - "smithy.api#pattern": "^([01]\\d|2[0-3]):?([0-5]\\d)$" - } - }, - "com.amazonaws.fsx#DataCompressionType": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "NONE", - "name": "NONE" - }, - { - "value": "LZ4", - "name": "LZ4" - } - ] - } - }, - "com.amazonaws.fsx#DataRepositoryConfiguration": { + "com.amazonaws.fsx#CreateOntapVolumeConfiguration": { "type": "structure", "members": { - "Lifecycle": { - "target": "com.amazonaws.fsx#DataRepositoryLifecycle", + "JunctionPath": { + "target": "com.amazonaws.fsx#JunctionPath", "traits": { - "smithy.api#documentation": "

Describes the state of the file system's S3 durable data repository, if it is configured with an S3 repository. \n The lifecycle can have the following values:

\n " + "smithy.api#documentation": "

Specifies the location in the SVM's namespace where the volume is mounted. \n The JunctionPath must have a leading forward slash, such as /vol3.

", + "smithy.api#required": {} } }, - "ImportPath": { - "target": "com.amazonaws.fsx#ArchivePath", + "SecurityStyle": { + "target": "com.amazonaws.fsx#SecurityStyle", "traits": { - "smithy.api#documentation": "

The import path to the Amazon S3 bucket (and optional prefix) that you're using\n as the data repository for your FSx for Lustre file system, for example\n s3://import-bucket/optional-prefix. If a prefix is specified after the\n Amazon S3 bucket name, only object keys with that prefix are loaded into the file\n system.

" + "smithy.api#documentation": "

The security style for the volume. Specify one of the following values:

\n " } }, - "ExportPath": { - "target": "com.amazonaws.fsx#ArchivePath", + "SizeInMegabytes": { + "target": "com.amazonaws.fsx#VolumeCapacity", "traits": { - "smithy.api#documentation": "

The export path to the Amazon S3 bucket (and prefix) that you are using to store new and\n changed Lustre file system files in S3.

" + "smithy.api#documentation": "

Specifies the size of the volume, in megabytes (MB), that you are creating.

", + "smithy.api#required": {} } }, - "ImportedFileChunkSize": { - "target": "com.amazonaws.fsx#Megabytes", + "StorageEfficiencyEnabled": { + "target": "com.amazonaws.fsx#Flag", "traits": { - "smithy.api#documentation": "

For files imported from a data repository, this value determines the stripe count and\n maximum amount of data per file (in MiB) stored on a single physical disk. The maximum\n number of disks that a single file can be striped across is limited by the total number\n of disks that make up the file system.

\n\n

The default chunk size is 1,024 MiB (1 GiB) and can go as high as 512,000 MiB (500\n GiB). Amazon S3 objects have a maximum size of 5 TB.

" + "smithy.api#documentation": "

Set to true to enable deduplication, compression, and\n compaction storage efficiency features on the volume.

", + "smithy.api#required": {} } }, - "AutoImportPolicy": { - "target": "com.amazonaws.fsx#AutoImportPolicyType", + "StorageVirtualMachineId": { + "target": "com.amazonaws.fsx#StorageVirtualMachineId", "traits": { - "smithy.api#documentation": "

Describes the file system's linked S3 data repository's AutoImportPolicy. \n The AutoImportPolicy configures how Amazon FSx keeps your file and directory listings up to date \n as you add or modify objects in your linked S3 bucket. AutoImportPolicy can have the following values:

\n \n

For more information, see Automatically import updates from your S3 bucket.

" + "smithy.api#documentation": "

Specifies the ONTAP SVM in which to create the volume.

", + "smithy.api#required": {} } }, - "FailureDetails": { - "target": "com.amazonaws.fsx#DataRepositoryFailureDetails" + "TieringPolicy": { + "target": "com.amazonaws.fsx#TieringPolicy" } }, "traits": { - "smithy.api#documentation": "

The data repository configuration object for Lustre file systems returned in the response of\n the CreateFileSystem operation.

" + "smithy.api#documentation": "

Specifies the configuration of the ONTAP volume that you are creating.

" } }, - "com.amazonaws.fsx#DataRepositoryFailureDetails": { - "type": "structure", - "members": { - "Message": { - "target": "com.amazonaws.fsx#ErrorMessage" - } + "com.amazonaws.fsx#CreateStorageVirtualMachine": { + "type": "operation", + "input": { + "target": "com.amazonaws.fsx#CreateStorageVirtualMachineRequest" }, + "output": { + "target": "com.amazonaws.fsx#CreateStorageVirtualMachineResponse" + }, + "errors": [ + { + "target": "com.amazonaws.fsx#ActiveDirectoryError" + }, + { + "target": "com.amazonaws.fsx#BadRequest" + }, + { + "target": "com.amazonaws.fsx#FileSystemNotFound" + }, + { + "target": "com.amazonaws.fsx#IncompatibleParameterError" + }, + { + "target": "com.amazonaws.fsx#InternalServerError" + }, + { + "target": "com.amazonaws.fsx#ServiceLimitExceeded" + }, + { + "target": "com.amazonaws.fsx#UnsupportedOperation" + } + ], "traits": { - "smithy.api#documentation": "

Provides detailed information about the data respository if its Lifecycle is \n set to MISCONFIGURED.

" - } - }, - "com.amazonaws.fsx#DataRepositoryLifecycle": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "CREATING", - "name": "CREATING" - }, - { - "value": "AVAILABLE", - "name": "AVAILABLE" - }, - { - "value": "MISCONFIGURED", - "name": "MISCONFIGURED" - }, - { - "value": "UPDATING", - "name": "UPDATING" - }, - { - "value": "DELETING", - "name": "DELETING" - } - ] + "smithy.api#documentation": "

Creates a storage virtual machine (SVM) for an Amazon FSx for ONTAP file system.

" } }, - "com.amazonaws.fsx#DataRepositoryTask": { + "com.amazonaws.fsx#CreateStorageVirtualMachineRequest": { "type": "structure", "members": { - "TaskId": { - "target": "com.amazonaws.fsx#TaskId", + "ActiveDirectoryConfiguration": { + "target": "com.amazonaws.fsx#CreateSvmActiveDirectoryConfiguration", "traits": { - "smithy.api#documentation": "

The system-generated, unique 17-digit ID of the data repository task.

", - "smithy.api#required": {} + "smithy.api#documentation": "

Describes the self-managed Microsoft Active Directory to which you want to join the SVM. \n Joining an Active Directory provides user authentication and access control for SMB clients, \n including Microsoft Windows and macOS client accessing the file system.

" } }, - "Lifecycle": { - "target": "com.amazonaws.fsx#DataRepositoryTaskLifecycle", + "ClientRequestToken": { + "target": "com.amazonaws.fsx#ClientRequestToken", "traits": { - "smithy.api#documentation": "

The lifecycle status of the data repository task, as follows:

\n \n \n

You cannot delete an FSx for Lustre file system if there are data \n repository tasks for the file system in the PENDING or EXECUTING states.\n Please retry when the data repository task is finished (with a status of CANCELED, SUCCEEDED, or FAILED). \n You can use the DescribeDataRepositoryTask action to monitor the task status. Contact the FSx team if you need to delete your file system immediately.

\n
", - "smithy.api#required": {} + "smithy.api#idempotencyToken": {} } }, - "Type": { - "target": "com.amazonaws.fsx#DataRepositoryTaskType", + "FileSystemId": { + "target": "com.amazonaws.fsx#FileSystemId", "traits": { - "smithy.api#documentation": "

The type of data repository task; EXPORT_TO_REPOSITORY is the only type currently supported.

", "smithy.api#required": {} } }, - "CreationTime": { - "target": "com.amazonaws.fsx#CreationTime", + "Name": { + "target": "com.amazonaws.fsx#StorageVirtualMachineName", "traits": { + "smithy.api#documentation": "

The name of the SVM.

", "smithy.api#required": {} } }, - "StartTime": { - "target": "com.amazonaws.fsx#StartTime", - "traits": { - "smithy.api#documentation": "

The time that Amazon FSx began processing the task.

" - } - }, - "EndTime": { - "target": "com.amazonaws.fsx#EndTime", + "SvmAdminPassword": { + "target": "com.amazonaws.fsx#AdminPassword", "traits": { - "smithy.api#documentation": "

The time that Amazon FSx completed processing the task, populated after the task is complete.

" + "smithy.api#documentation": "

The password to use when managing the SVM using the NetApp ONTAP CLI or REST API.\n If you do not specify a password, you can still use the file system's\n fsxadmin user to manage the SVM.

" } }, - "ResourceARN": { - "target": "com.amazonaws.fsx#ResourceARN" - }, "Tags": { "target": "com.amazonaws.fsx#Tags" }, - "FileSystemId": { - "target": "com.amazonaws.fsx#FileSystemId", - "traits": { - "smithy.api#required": {} - } - }, - "Paths": { - "target": "com.amazonaws.fsx#DataRepositoryTaskPaths", + "RootVolumeSecurityStyle": { + "target": "com.amazonaws.fsx#StorageVirtualMachineRootVolumeSecurityStyle", "traits": { - "smithy.api#documentation": "

An array of paths on the Amazon FSx for Lustre file system that specify the data for the data repository task to process. \n For example, in an EXPORT_TO_REPOSITORY task, the paths specify which data to export to the linked data repository.

\n

(Default) If Paths is not specified, Amazon FSx uses the file system root directory.

" + "smithy.api#documentation": "

The security style of the root volume of the SVM. Specify one of the following values:

\n " } - }, + } + } + }, + "com.amazonaws.fsx#CreateStorageVirtualMachineResponse": { + "type": "structure", + "members": { + "StorageVirtualMachine": { + "target": "com.amazonaws.fsx#StorageVirtualMachine", + "traits": { + "smithy.api#documentation": "

Returned after a successful CreateStorageVirtualMachine operation; describes the SVM just created.

" + } + } + } + }, + "com.amazonaws.fsx#CreateSvmActiveDirectoryConfiguration": { + "type": "structure", + "members": { + "NetBiosName": { + "target": "com.amazonaws.fsx#NetBiosAlias", + "traits": { + "smithy.api#documentation": "

The NetBIOS name of the Active Directory computer object that will be created for your SVM.

", + "smithy.api#required": {} + } + }, + "SelfManagedActiveDirectoryConfiguration": { + "target": "com.amazonaws.fsx#SelfManagedActiveDirectoryConfiguration" + } + }, + "traits": { + "smithy.api#documentation": "

The configuration that Amazon FSx uses to join the ONTAP storage virtual machine\n (SVM) to your self-managed (including on-premises) Microsoft Active Directory (AD) directory.

" + } + }, + "com.amazonaws.fsx#CreateVolume": { + "type": "operation", + "input": { + "target": "com.amazonaws.fsx#CreateVolumeRequest" + }, + "output": { + "target": "com.amazonaws.fsx#CreateVolumeResponse" + }, + "errors": [ + { + "target": "com.amazonaws.fsx#BadRequest" + }, + { + "target": "com.amazonaws.fsx#FileSystemNotFound" + }, + { + "target": "com.amazonaws.fsx#IncompatibleParameterError" + }, + { + "target": "com.amazonaws.fsx#InternalServerError" + }, + { + "target": "com.amazonaws.fsx#MissingVolumeConfiguration" + }, + { + "target": "com.amazonaws.fsx#ServiceLimitExceeded" + }, + { + "target": "com.amazonaws.fsx#StorageVirtualMachineNotFound" + }, + { + "target": "com.amazonaws.fsx#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Creates an Amazon FSx for NetApp ONTAP storage volume.

" + } + }, + "com.amazonaws.fsx#CreateVolumeFromBackup": { + "type": "operation", + "input": { + "target": "com.amazonaws.fsx#CreateVolumeFromBackupRequest" + }, + "output": { + "target": "com.amazonaws.fsx#CreateVolumeFromBackupResponse" + }, + "errors": [ + { + "target": "com.amazonaws.fsx#BackupNotFound" + }, + { + "target": "com.amazonaws.fsx#BadRequest" + }, + { + "target": "com.amazonaws.fsx#FileSystemNotFound" + }, + { + "target": "com.amazonaws.fsx#IncompatibleParameterError" + }, + { + "target": "com.amazonaws.fsx#InternalServerError" + }, + { + "target": "com.amazonaws.fsx#MissingVolumeConfiguration" + }, + { + "target": "com.amazonaws.fsx#ServiceLimitExceeded" + }, + { + "target": "com.amazonaws.fsx#StorageVirtualMachineNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a new Amazon FSx for NetApp ONTAP volume from an\n existing Amazon FSx volume backup.

" + } + }, + "com.amazonaws.fsx#CreateVolumeFromBackupRequest": { + "type": "structure", + "members": { + "BackupId": { + "target": "com.amazonaws.fsx#BackupId", + "traits": { + "smithy.api#required": {} + } + }, + "ClientRequestToken": { + "target": "com.amazonaws.fsx#ClientRequestToken", + "traits": { + "smithy.api#idempotencyToken": {} + } + }, + "Name": { + "target": "com.amazonaws.fsx#VolumeName", + "traits": { + "smithy.api#documentation": "

The name of the new volume you're creating.

", + "smithy.api#required": {} + } + }, + "OntapConfiguration": { + "target": "com.amazonaws.fsx#CreateOntapVolumeConfiguration", + "traits": { + "smithy.api#documentation": "

Specifies the configuration of the ONTAP volume that you are creating.

" + } + }, + "Tags": { + "target": "com.amazonaws.fsx#Tags" + } + } + }, + "com.amazonaws.fsx#CreateVolumeFromBackupResponse": { + "type": "structure", + "members": { + "Volume": { + "target": "com.amazonaws.fsx#Volume", + "traits": { + "smithy.api#documentation": "

Returned after a successful CreateVolumeFromBackup API operation,\n describing the volume just created.

" + } + } + } + }, + "com.amazonaws.fsx#CreateVolumeRequest": { + "type": "structure", + "members": { + "ClientRequestToken": { + "target": "com.amazonaws.fsx#ClientRequestToken", + "traits": { + "smithy.api#idempotencyToken": {} + } + }, + "VolumeType": { + "target": "com.amazonaws.fsx#VolumeType", + "traits": { + "smithy.api#documentation": "

Specifies the type of volume to create; ONTAP is the only valid volume type.

", + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.fsx#VolumeName", + "traits": { + "smithy.api#documentation": "

Specifies the name of the volume you're creating.

", + "smithy.api#required": {} + } + }, + "OntapConfiguration": { + "target": "com.amazonaws.fsx#CreateOntapVolumeConfiguration", + "traits": { + "smithy.api#documentation": "

Specifies the ONTAP configuration to use in creating the volume.

" + } + }, + "Tags": { + "target": "com.amazonaws.fsx#Tags" + } + } + }, + "com.amazonaws.fsx#CreateVolumeResponse": { + "type": "structure", + "members": { + "Volume": { + "target": "com.amazonaws.fsx#Volume", + "traits": { + "smithy.api#documentation": "

Returned after a successful CreateVolume API operation, describing the volume just created.

" + } + } + } + }, + "com.amazonaws.fsx#CreationTime": { + "type": "timestamp", + "traits": { + "smithy.api#documentation": "

The time that the resource was created, in seconds (since 1970-01-01T00:00:00Z),\n also known as Unix time.

" + } + }, + "com.amazonaws.fsx#DNSName": { + "type": "string", + "traits": { + "smithy.api#documentation": "

The Domain Name Service (DNS) name for the file system. You can mount your file\n system using its DNS name.

", + "smithy.api#length": { + "min": 16, + "max": 275 + }, + "smithy.api#pattern": "^(fsi?-[0-9a-f]{8,}\\..{4,253})$" + } + }, + "com.amazonaws.fsx#DailyTime": { + "type": "string", + "traits": { + "smithy.api#documentation": "

A recurring daily time, in the format HH:MM. HH is the\n zero-padded hour of the day (0-23), and MM is the zero-padded minute of the\n hour. For example, 05:00 specifies 5 AM daily.

", + "smithy.api#length": { + "min": 5, + "max": 5 + }, + "smithy.api#pattern": "^([01]\\d|2[0-3]):?([0-5]\\d)$" + } + }, + "com.amazonaws.fsx#DataCompressionType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "NONE", + "name": "NONE" + }, + { + "value": "LZ4", + "name": "LZ4" + } + ] + } + }, + "com.amazonaws.fsx#DataRepositoryConfiguration": { + "type": "structure", + "members": { + "Lifecycle": { + "target": "com.amazonaws.fsx#DataRepositoryLifecycle", + "traits": { + "smithy.api#documentation": "

Describes the state of the file system's S3 durable data repository, if it is configured with an S3 repository. \n The lifecycle can have the following values:

\n " + } + }, + "ImportPath": { + "target": "com.amazonaws.fsx#ArchivePath", + "traits": { + "smithy.api#documentation": "

The import path to the Amazon S3 bucket (and optional prefix) that you're using\n as the data repository for your FSx for Lustre file system, for example\n s3://import-bucket/optional-prefix. If a prefix is specified after the\n Amazon S3 bucket name, only object keys with that prefix are loaded into the file\n system.

" + } + }, + "ExportPath": { + "target": "com.amazonaws.fsx#ArchivePath", + "traits": { + "smithy.api#documentation": "

The export path to the Amazon S3 bucket (and prefix) that you are using to store new and\n changed Lustre file system files in S3.

" + } + }, + "ImportedFileChunkSize": { + "target": "com.amazonaws.fsx#Megabytes", + "traits": { + "smithy.api#documentation": "

For files imported from a data repository, this value determines the stripe count and\n maximum amount of data per file (in MiB) stored on a single physical disk. The maximum\n number of disks that a single file can be striped across is limited by the total number\n of disks that make up the file system.

\n\n

The default chunk size is 1,024 MiB (1 GiB) and can go as high as 512,000 MiB (500\n GiB). Amazon S3 objects have a maximum size of 5 TB.

" + } + }, + "AutoImportPolicy": { + "target": "com.amazonaws.fsx#AutoImportPolicyType", + "traits": { + "smithy.api#documentation": "

Describes the file system's linked S3 data repository's AutoImportPolicy. \n The AutoImportPolicy configures how Amazon FSx keeps your file and directory listings up to date \n as you add or modify objects in your linked S3 bucket. AutoImportPolicy can have the following values:

\n \n

For more information, see Automatically import updates from your S3 bucket.

" + } + }, + "FailureDetails": { + "target": "com.amazonaws.fsx#DataRepositoryFailureDetails" + } + }, + "traits": { + "smithy.api#documentation": "

The data repository configuration object for Lustre file systems returned in the response of\n the CreateFileSystem operation.

" + } + }, + "com.amazonaws.fsx#DataRepositoryFailureDetails": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.fsx#ErrorMessage" + } + }, + "traits": { + "smithy.api#documentation": "

Provides detailed information about the data respository if its Lifecycle is \n set to MISCONFIGURED.

" + } + }, + "com.amazonaws.fsx#DataRepositoryLifecycle": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "CREATING", + "name": "CREATING" + }, + { + "value": "AVAILABLE", + "name": "AVAILABLE" + }, + { + "value": "MISCONFIGURED", + "name": "MISCONFIGURED" + }, + { + "value": "UPDATING", + "name": "UPDATING" + }, + { + "value": "DELETING", + "name": "DELETING" + } + ] + } + }, + "com.amazonaws.fsx#DataRepositoryTask": { + "type": "structure", + "members": { + "TaskId": { + "target": "com.amazonaws.fsx#TaskId", + "traits": { + "smithy.api#documentation": "

The system-generated, unique 17-digit ID of the data repository task.

", + "smithy.api#required": {} + } + }, + "Lifecycle": { + "target": "com.amazonaws.fsx#DataRepositoryTaskLifecycle", + "traits": { + "smithy.api#documentation": "

The lifecycle status of the data repository task, as follows:

\n \n \n

You cannot delete an FSx for Lustre file system if there are data \n repository tasks for the file system in the PENDING or EXECUTING states.\n Please retry when the data repository task is finished (with a status of CANCELED, SUCCEEDED, or FAILED). \n You can use the DescribeDataRepositoryTask action to monitor the task status. Contact the FSx team if you need to delete your file system immediately.

\n
", + "smithy.api#required": {} + } + }, + "Type": { + "target": "com.amazonaws.fsx#DataRepositoryTaskType", + "traits": { + "smithy.api#documentation": "

The type of data repository task; EXPORT_TO_REPOSITORY is the only type currently supported.

", + "smithy.api#required": {} + } + }, + "CreationTime": { + "target": "com.amazonaws.fsx#CreationTime", + "traits": { + "smithy.api#required": {} + } + }, + "StartTime": { + "target": "com.amazonaws.fsx#StartTime", + "traits": { + "smithy.api#documentation": "

The time that Amazon FSx began processing the task.

" + } + }, + "EndTime": { + "target": "com.amazonaws.fsx#EndTime", + "traits": { + "smithy.api#documentation": "

The time that Amazon FSx completed processing the task, populated after the task is complete.

" + } + }, + "ResourceARN": { + "target": "com.amazonaws.fsx#ResourceARN" + }, + "Tags": { + "target": "com.amazonaws.fsx#Tags" + }, + "FileSystemId": { + "target": "com.amazonaws.fsx#FileSystemId", + "traits": { + "smithy.api#required": {} + } + }, + "Paths": { + "target": "com.amazonaws.fsx#DataRepositoryTaskPaths", + "traits": { + "smithy.api#documentation": "

An array of paths on the Amazon FSx for Lustre file system that specify the data for the data repository task to process. \n For example, in an EXPORT_TO_REPOSITORY task, the paths specify which data to export to the linked data repository.

\n

(Default) If Paths is not specified, Amazon FSx uses the file system root directory.

" + } + }, "FailureDetails": { "target": "com.amazonaws.fsx#DataRepositoryTaskFailureDetails", "traits": { @@ -1957,7 +2404,7 @@ "ClientRequestToken": { "target": "com.amazonaws.fsx#ClientRequestToken", "traits": { - "smithy.api#documentation": "

A string of up to 64 ASCII characters that Amazon FSx uses to ensure\n idempotent deletion. This is automatically filled on your behalf when using the AWS CLI\n or SDK.

", + "smithy.api#documentation": "

A string of up to 64 ASCII characters that Amazon FSx uses to ensure\n idempotent deletion. This is automatically filled on your behalf when using\n the CLI or SDK.

", "smithy.api#idempotencyToken": {} } } @@ -2012,7 +2459,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a file system, deleting its contents. After deletion, the file system no\n longer exists, and its data is gone. Any existing automatic backups will also be\n deleted.

\n

By default, when you delete an Amazon FSx for Windows File Server file system, a\n final backup is created upon deletion. This final backup is not subject to the file\n system's retention policy, and must be manually deleted.

\n \n\n

The DeleteFileSystem action returns while the file system has the\n DELETING status. You can check the file system deletion status by\n calling the DescribeFileSystems action, which returns a list of file\n systems in your account. If you pass the file system ID for a deleted file system, the\n DescribeFileSystems returns a FileSystemNotFound\n error.

\n \n

Deleting an Amazon FSx for Lustre file system will fail with a 400 BadRequest if \n a data repository task is in a PENDING or EXECUTING\n state.

\n
\n \n

The data in a deleted file system is also deleted and can't be recovered by\n any means.

\n
", + "smithy.api#documentation": "

Deletes a file system, deleting its contents. After deletion, the file system no\n longer exists, and its data is gone. Any existing automatic backups will also be\n deleted.

\n

To delete an Amazon FSx for NetApp ONTAP file system, first delete all the volumes\n and SVMs on the file system. Then provide a FileSystemId value to the\n DeleFileSystem operation.

\n \n

By default, when you delete an Amazon FSx for Windows File Server file system, a\n final backup is created upon deletion. This final backup is not subject to the file\n system's retention policy, and must be manually deleted.

\n\n

The DeleteFileSystem action returns while the file system has the\n DELETING status. You can check the file system deletion status by\n calling the DescribeFileSystems action, which returns a list of file\n systems in your account. If you pass the file system ID for a deleted file system, the\n DescribeFileSystems returns a FileSystemNotFound\n error.

\n \n

Deleting an Amazon FSx for Lustre file system will fail with a 400 BadRequest if \n a data repository task is in a PENDING or EXECUTING\n state.

\n
\n \n

The data in a deleted file system is also deleted and can't be recovered by\n any means.

\n
", "smithy.api#idempotent": {} } }, @@ -2069,7 +2516,7 @@ "ClientRequestToken": { "target": "com.amazonaws.fsx#ClientRequestToken", "traits": { - "smithy.api#documentation": "

A string of up to 64 ASCII characters that Amazon FSx uses to ensure\n idempotent deletion. This is automatically filled on your behalf when using the AWS CLI\n or SDK.

", + "smithy.api#documentation": "

A string of up to 64 ASCII characters that Amazon FSx uses to ensure\n idempotent deletion. This is automatically filled on your behalf when using the\n Command Line Interface (CLI) or an Amazon Web Services SDK.

", "smithy.api#idempotencyToken": {} } }, @@ -2150,6 +2597,171 @@ "smithy.api#documentation": "

The response object for the Microsoft Windows file system used in the\n DeleteFileSystem operation.

" } }, + "com.amazonaws.fsx#DeleteStorageVirtualMachine": { + "type": "operation", + "input": { + "target": "com.amazonaws.fsx#DeleteStorageVirtualMachineRequest" + }, + "output": { + "target": "com.amazonaws.fsx#DeleteStorageVirtualMachineResponse" + }, + "errors": [ + { + "target": "com.amazonaws.fsx#BadRequest" + }, + { + "target": "com.amazonaws.fsx#IncompatibleParameterError" + }, + { + "target": "com.amazonaws.fsx#InternalServerError" + }, + { + "target": "com.amazonaws.fsx#StorageVirtualMachineNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes an existing Amazon FSx for ONTAP storage virtual machine (SVM). Prior \n to deleting an SVM, you must delete all non-root volumes in the SVM, otherwise the operation will fail.

" + } + }, + "com.amazonaws.fsx#DeleteStorageVirtualMachineRequest": { + "type": "structure", + "members": { + "ClientRequestToken": { + "target": "com.amazonaws.fsx#ClientRequestToken", + "traits": { + "smithy.api#idempotencyToken": {} + } + }, + "StorageVirtualMachineId": { + "target": "com.amazonaws.fsx#StorageVirtualMachineId", + "traits": { + "smithy.api#documentation": "

The ID of the SVM that you want to delete.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.fsx#DeleteStorageVirtualMachineResponse": { + "type": "structure", + "members": { + "StorageVirtualMachineId": { + "target": "com.amazonaws.fsx#StorageVirtualMachineId", + "traits": { + "smithy.api#documentation": "

The ID of the SVM Amazon FSx is deleting.

" + } + }, + "Lifecycle": { + "target": "com.amazonaws.fsx#StorageVirtualMachineLifecycle", + "traits": { + "smithy.api#documentation": "

Describes the lifecycle state of the SVM being deleted.

" + } + } + } + }, + "com.amazonaws.fsx#DeleteVolume": { + "type": "operation", + "input": { + "target": "com.amazonaws.fsx#DeleteVolumeRequest" + }, + "output": { + "target": "com.amazonaws.fsx#DeleteVolumeResponse" + }, + "errors": [ + { + "target": "com.amazonaws.fsx#BadRequest" + }, + { + "target": "com.amazonaws.fsx#IncompatibleParameterError" + }, + { + "target": "com.amazonaws.fsx#InternalServerError" + }, + { + "target": "com.amazonaws.fsx#VolumeNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes an Amazon FSx for NetApp ONTAP volume. When deleting a volume, \n you have the option of creating a final backup. If you create a final backup, you have the option to \n apply Tags to the backup. You need to have fsx:TagResource \n permission in order to apply tags to the backup.

" + } + }, + "com.amazonaws.fsx#DeleteVolumeOntapConfiguration": { + "type": "structure", + "members": { + "SkipFinalBackup": { + "target": "com.amazonaws.fsx#Flag", + "traits": { + "smithy.api#documentation": "

Set to true if you want to skip taking a final backup of the volume \n you are deleting.

" + } + }, + "FinalBackupTags": { + "target": "com.amazonaws.fsx#Tags" + } + }, + "traits": { + "smithy.api#documentation": "

Use to specify skipping a final backup, or to add tags to a final backup.

" + } + }, + "com.amazonaws.fsx#DeleteVolumeOntapResponse": { + "type": "structure", + "members": { + "FinalBackupId": { + "target": "com.amazonaws.fsx#BackupId" + }, + "FinalBackupTags": { + "target": "com.amazonaws.fsx#Tags" + } + }, + "traits": { + "smithy.api#documentation": "

The response object for the Amazon FSx for NetApp ONTAP volume being deleted\n in the DeleteVolume operation.

" + } + }, + "com.amazonaws.fsx#DeleteVolumeRequest": { + "type": "structure", + "members": { + "ClientRequestToken": { + "target": "com.amazonaws.fsx#ClientRequestToken", + "traits": { + "smithy.api#idempotencyToken": {} + } + }, + "VolumeId": { + "target": "com.amazonaws.fsx#VolumeId", + "traits": { + "smithy.api#documentation": "

The ID of the volume you are deleting.

", + "smithy.api#required": {} + } + }, + "OntapConfiguration": { + "target": "com.amazonaws.fsx#DeleteVolumeOntapConfiguration", + "traits": { + "smithy.api#documentation": "

For Amazon FSx for ONTAP volumes, specify whether to take \n a final backup of the volume, and apply tags to the backup.

" + } + } + } + }, + "com.amazonaws.fsx#DeleteVolumeResponse": { + "type": "structure", + "members": { + "VolumeId": { + "target": "com.amazonaws.fsx#VolumeId", + "traits": { + "smithy.api#documentation": "

The ID of the volume being deleted.

" + } + }, + "Lifecycle": { + "target": "com.amazonaws.fsx#VolumeLifecycle", + "traits": { + "smithy.api#documentation": "

Describes the lifecycle state of the volume being deleted.

" + } + }, + "OntapResponse": { + "target": "com.amazonaws.fsx#DeleteVolumeOntapResponse", + "traits": { + "smithy.api#documentation": "

Returned after a DeleteVolume request, showing the status of the delete request.\n

" + } + } + } + }, "com.amazonaws.fsx#DescribeBackups": { "type": "operation", "input": { @@ -2170,10 +2782,13 @@ }, { "target": "com.amazonaws.fsx#InternalServerError" + }, + { + "target": "com.amazonaws.fsx#VolumeNotFound" } ], "traits": { - "smithy.api#documentation": "

Returns the description of specific Amazon FSx backups, if\n a BackupIds value is provided for that backup. Otherwise, it returns all\n backups owned by your AWS account in the AWS Region of the endpoint that you're\n calling.

\n\n

When retrieving all backups, you can optionally specify the MaxResults\n parameter to limit the number of backups in a response. If more backups remain, Amazon\n FSx returns a NextToken value in the response. In this case, send a later\n request with the NextToken request parameter set to the value of\n NextToken from the last response.

\n\n

This action is used in an iterative process to retrieve a list of your backups.\n DescribeBackups is called first without a NextTokenvalue.\n Then the action continues to be called with the NextToken parameter set to\n the value of the last NextToken value until a response has no\n NextToken.

\n\n

When using this action, keep the following in mind:

\n ", + "smithy.api#documentation": "

Returns the description of specific Amazon FSx backups, if\n a BackupIds value is provided for that backup. Otherwise, it returns all\n backups owned by your Amazon Web Services account in the Amazon Web Services Region\n of the endpoint that you're calling.

\n\n

When retrieving all backups, you can optionally specify the MaxResults\n parameter to limit the number of backups in a response. If more backups remain, Amazon\n FSx returns a NextToken value in the response. In this case, send a later\n request with the NextToken request parameter set to the value of\n NextToken from the last response.

\n\n

This action is used in an iterative process to retrieve a list of your backups.\n DescribeBackups is called first without a NextTokenvalue.\n Then the action continues to be called with the NextToken parameter set to\n the value of the last NextToken value until a response has no\n NextToken.

\n\n

When using this action, keep the following in mind:

\n ", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -2193,7 +2808,7 @@ "Filters": { "target": "com.amazonaws.fsx#Filters", "traits": { - "smithy.api#documentation": "

Filters structure. Supported names are file-system-id and\n backup-type.

" + "smithy.api#documentation": "

Filters structure. Supported names are file-system-id,\n backup-type, file-system-type, and\n volume-id.

" } }, "MaxResults": { @@ -2256,7 +2871,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the description of specific Amazon FSx for Lustre data repository tasks, if\n one or more TaskIds values are provided in the request, or if filters are used in the request. \n You can use filters to narrow the response to include just tasks for specific file systems, \n or tasks in a specific lifecycle state. Otherwise, it returns all data repository tasks owned \n by your AWS account in the AWS Region of the endpoint that you're calling.

\n \n

When retrieving all tasks, you can paginate the response by using the optional MaxResults\n parameter to limit the number of tasks returned in a response. If more tasks remain, Amazon\n FSx returns a NextToken value in the response. In this case, send a later\n request with the NextToken request parameter set to the value of\n NextToken from the last response.

", + "smithy.api#documentation": "

Returns the description of specific Amazon FSx for Lustre data repository tasks, if\n one or more TaskIds values are provided in the request, or if filters are used in the request. \n You can use filters to narrow the response to include just tasks for specific file systems, \n or tasks in a specific lifecycle state. Otherwise, it returns all data repository tasks owned \n by your Amazon Web Services account in the Amazon Web Services Region of the endpoint that you're calling.

\n \n

When retrieving all tasks, you can paginate the response by using the optional MaxResults\n parameter to limit the number of tasks returned in a response. If more tasks remain, Amazon\n FSx returns a NextToken value in the response. In this case, send a later\n request with the NextToken request parameter set to the value of\n NextToken from the last response.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -2402,7 +3017,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the description of specific Amazon FSx file systems, if a\n FileSystemIds value is provided for that file system. Otherwise, it\n returns descriptions of all file systems owned by your AWS account in the AWS Region of\n the endpoint that you're calling.

\n\n

When retrieving all file system descriptions, you can optionally specify the\n MaxResults parameter to limit the number of descriptions in a response.\n If more file system descriptions remain, Amazon FSx returns a NextToken\n value in the response. In this case, send a later request with the\n NextToken request parameter set to the value of NextToken\n from the last response.

\n\n

This action is used in an iterative process to retrieve a list of your file system\n descriptions. DescribeFileSystems is called first without a\n NextTokenvalue. Then the action continues to be called with the\n NextToken parameter set to the value of the last NextToken\n value until a response has no NextToken.

\n\n

When using this action, keep the following in mind:

\n ", + "smithy.api#documentation": "

Returns the description of specific Amazon FSx file systems, if a\n FileSystemIds value is provided for that file system. Otherwise, it\n returns descriptions of all file systems owned by your Amazon Web Services account in\n the Amazon Web Services Region of the endpoint that you're calling.

\n\n

When retrieving all file system descriptions, you can optionally specify the\n MaxResults parameter to limit the number of descriptions in a response.\n If more file system descriptions remain, Amazon FSx returns a NextToken\n value in the response. In this case, send a later request with the\n NextToken request parameter set to the value of NextToken\n from the last response.

\n\n

This action is used in an iterative process to retrieve a list of your file system\n descriptions. DescribeFileSystems is called first without a\n NextTokenvalue. Then the action continues to be called with the\n NextToken parameter set to the value of the last NextToken\n value until a response has no NextToken.

\n\n

When using this action, keep the following in mind:

\n ", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -2456,6 +3071,136 @@ "smithy.api#documentation": "

The response object for DescribeFileSystems operation.

" } }, + "com.amazonaws.fsx#DescribeStorageVirtualMachines": { + "type": "operation", + "input": { + "target": "com.amazonaws.fsx#DescribeStorageVirtualMachinesRequest" + }, + "output": { + "target": "com.amazonaws.fsx#DescribeStorageVirtualMachinesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.fsx#BadRequest" + }, + { + "target": "com.amazonaws.fsx#InternalServerError" + }, + { + "target": "com.amazonaws.fsx#StorageVirtualMachineNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

Describes one or more Amazon FSx for NetApp ONTAP storage virtual machines (SVMs).

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.fsx#DescribeStorageVirtualMachinesRequest": { + "type": "structure", + "members": { + "StorageVirtualMachineIds": { + "target": "com.amazonaws.fsx#StorageVirtualMachineIds", + "traits": { + "smithy.api#documentation": "

Enter the ID of one or more SVMs that you want to view.

" + } + }, + "Filters": { + "target": "com.amazonaws.fsx#StorageVirtualMachineFilters", + "traits": { + "smithy.api#documentation": "

Enter a filter name:value pair to view a select set of SVMs.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.fsx#MaxResults" + }, + "NextToken": { + "target": "com.amazonaws.fsx#NextToken" + } + } + }, + "com.amazonaws.fsx#DescribeStorageVirtualMachinesResponse": { + "type": "structure", + "members": { + "StorageVirtualMachines": { + "target": "com.amazonaws.fsx#StorageVirtualMachines", + "traits": { + "smithy.api#documentation": "

Returned after a successful DescribeStorageVirtualMachines operation, describing each SVM.

" + } + }, + "NextToken": { + "target": "com.amazonaws.fsx#NextToken" + } + } + }, + "com.amazonaws.fsx#DescribeVolumes": { + "type": "operation", + "input": { + "target": "com.amazonaws.fsx#DescribeVolumesRequest" + }, + "output": { + "target": "com.amazonaws.fsx#DescribeVolumesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.fsx#BadRequest" + }, + { + "target": "com.amazonaws.fsx#InternalServerError" + }, + { + "target": "com.amazonaws.fsx#VolumeNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

Describes one or more Amazon FSx for NetApp ONTAP volumes.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.fsx#DescribeVolumesRequest": { + "type": "structure", + "members": { + "VolumeIds": { + "target": "com.amazonaws.fsx#VolumeIds", + "traits": { + "smithy.api#documentation": "

IDs of the volumes whose descriptions you want to retrieve.

" + } + }, + "Filters": { + "target": "com.amazonaws.fsx#VolumeFilters", + "traits": { + "smithy.api#documentation": "

Enter a filter name:value pair to view a select set of volumes.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.fsx#MaxResults" + }, + "NextToken": { + "target": "com.amazonaws.fsx#NextToken" + } + } + }, + "com.amazonaws.fsx#DescribeVolumesResponse": { + "type": "structure", + "members": { + "Volumes": { + "target": "com.amazonaws.fsx#Volumes", + "traits": { + "smithy.api#documentation": "

Returned after a successful DescribeVolumes operation, describing each volume.

" + } + }, + "NextToken": { + "target": "com.amazonaws.fsx#NextToken" + } + } + }, "com.amazonaws.fsx#DirectoryId": { "type": "string", "traits": { @@ -2549,7 +3294,42 @@ } }, "traits": { - "smithy.api#documentation": "

The system generated response showing the DNS aliases that Amazon FSx is attempting to disassociate from the file system. \n Use the API operation to monitor the status of the aliases Amazon FSx is removing from the file system.

" + "smithy.api#documentation": "

The system generated response showing the DNS aliases that Amazon FSx is attempting to disassociate from the file system. \n Use the API operation to monitor the status of the aliases Amazon FSx is removing from the file system.

" + } + }, + "com.amazonaws.fsx#DiskIopsConfiguration": { + "type": "structure", + "members": { + "Mode": { + "target": "com.amazonaws.fsx#DiskIopsConfigurationMode", + "traits": { + "smithy.api#documentation": "

Specifies whether the number of IOPS for the file system is\n using the system default (AUTOMATIC) or was\n provisioned by the customer (USER_PROVISIONED).

" + } + }, + "Iops": { + "target": "com.amazonaws.fsx#Iops", + "traits": { + "smithy.api#documentation": "

The total number of SSD IOPS provisioned for the file system.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The SSD IOPS (input/output operations per second) configuration\n for an Amazon FSx for NetApp ONTAP file system. The default is 3 IOPS\n per GB of storage capacity, but you can provision additional IOPS\n per GB of storage. The configuration consists of the total number\n of provisioned SSD IOPS and how the amount was provisioned\n (by the customer or by the system).

" + } + }, + "com.amazonaws.fsx#DiskIopsConfigurationMode": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "AUTOMATIC", + "name": "AUTOMATIC" + }, + { + "value": "USER_PROVISIONED", + "name": "USER_PROVISIONED" + } + ] } }, "com.amazonaws.fsx#DnsIps": { @@ -2560,7 +3340,7 @@ "traits": { "smithy.api#length": { "min": 1, - "max": 2 + "max": 3 } } }, @@ -2604,7 +3384,7 @@ "OwnerId": { "target": "com.amazonaws.fsx#AWSAccountId", "traits": { - "smithy.api#documentation": "

The AWS account that created the file system. If the file system was created by an AWS\n Identity and Access Management (IAM) user, the AWS account to which the IAM user belongs\n is the owner.

" + "smithy.api#documentation": "

The Amazon Web Services account that created the file system. If the file system was created by an\n Identity and Access Management (IAM) user, the Amazon Web Services account to which the\n IAM user belongs is the owner.

" } }, "CreationTime": { @@ -2622,7 +3402,7 @@ "FileSystemType": { "target": "com.amazonaws.fsx#FileSystemType", "traits": { - "smithy.api#documentation": "

The type of Amazon FSx file system, either LUSTRE or WINDOWS.

" + "smithy.api#documentation": "

The type of Amazon FSx file system, which can be LUSTRE, WINDOWS,\n or ONTAP.

" } }, "Lifecycle": { @@ -2655,7 +3435,7 @@ "SubnetIds": { "target": "com.amazonaws.fsx#SubnetIds", "traits": { - "smithy.api#documentation": "

Specifies the IDs of the subnets that the file system is accessible from. For Windows MULTI_AZ_1 \n file system deployment type, there are two subnet IDs, one for the preferred file server \n and one for the standby file server. The preferred file server subnet identified in the \n PreferredSubnetID property. All other file systems have only one subnet ID.

\n

For Lustre file systems, and Single-AZ Windows file systems, this is the ID of \n the subnet that contains the endpoint for the file system. For MULTI_AZ_1 Windows file systems,\n the endpoint for the file system is available in the PreferredSubnetID.

" + "smithy.api#documentation": "

Specifies the IDs of the subnets that the file system is accessible from. For Windows and\n ONTAP MULTI_AZ_1 file system deployment type, there are two subnet IDs, one for\n the preferred file server and one for the standby file server. The preferred file server subnet\n identified in the PreferredSubnetID property. All other file systems have only one subnet ID.

\n

For Lustre file systems, and Single-AZ Windows file systems, this is the ID of \n the subnet that contains the endpoint for the file system. For MULTI_AZ_1 Windows and\n ONTAP file systems, the endpoint for the file system is available in the PreferredSubnetID.

" } }, "NetworkInterfaceIds": { @@ -2673,7 +3453,7 @@ "KmsKeyId": { "target": "com.amazonaws.fsx#KmsKeyId", "traits": { - "smithy.api#documentation": "

The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the file system's data\n for Amazon FSx for Windows File Server file systems and persistent Amazon FSx for Lustre file\n systems at rest. In either case, if not specified, the Amazon FSx managed key\n is used. The scratch Amazon FSx for Lustre file systems are always encrypted at rest using\n Amazon FSx managed keys. For more information, see Encrypt\n in the AWS Key Management Service API Reference.

" + "smithy.api#documentation": "

The ID of the Key Management Service (KMS) key used to encrypt the file system's data\n for Amazon FSx for Windows File Server file systems, Amazon FSx for NetApp ONTAP file systems, and\n persistent Amazon FSx for Lustre file systems at rest. If not specified, the Amazon FSx\n managed key is used. The scratch Amazon FSx for Lustre file systems are always encrypted at rest using\n Amazon FSx managed keys. For more information, see Encrypt\n in the Key Management Service API Reference.

" } }, "ResourceARN": { @@ -2700,7 +3480,13 @@ "AdministrativeActions": { "target": "com.amazonaws.fsx#AdministrativeActions", "traits": { - "smithy.api#documentation": "

A list of administrative actions for the file system that are in process or waiting to be processed. \n Administrative actions describe changes to the Windows file system that you have initiated using the UpdateFileSystem action.\n

" + "smithy.api#documentation": "

A list of administrative actions for the file system that are in process or waiting to be processed. \n Administrative actions describe changes to the Amazon FSx file system that you have initiated using\n the UpdateFileSystem action.

" + } + }, + "OntapConfiguration": { + "target": "com.amazonaws.fsx#OntapFileSystemConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration for this FSx for NetApp ONTAP file system.

" } } }, @@ -2718,6 +3504,43 @@ "smithy.api#pattern": "^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{1,256}$" } }, + "com.amazonaws.fsx#FileSystemEndpoint": { + "type": "structure", + "members": { + "DNSName": { + "target": "com.amazonaws.fsx#DNSName" + }, + "IpAddresses": { + "target": "com.amazonaws.fsx#OntapEndpointIpAddresses", + "traits": { + "smithy.api#documentation": "

IP addresses of the file system endpoint.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An Amazon FSx for NetApp ONTAP file system has two endpoints\n that are used to access data or to manage the file system\n using the NetApp ONTAP CLI, REST API, or NetApp SnapMirror. They\n are the Management and Intercluster endpoints.

" + } + }, + "com.amazonaws.fsx#FileSystemEndpoints": { + "type": "structure", + "members": { + "Intercluster": { + "target": "com.amazonaws.fsx#FileSystemEndpoint", + "traits": { + "smithy.api#documentation": "

An endpoint for managing your file system by setting up NetApp SnapMirror\n with other ONTAP systems.

" + } + }, + "Management": { + "target": "com.amazonaws.fsx#FileSystemEndpoint", + "traits": { + "smithy.api#documentation": "

An endpoint for managing your file system using the NetApp ONTAP CLI\n and NetApp ONTAP API.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An Amazon FSx for NetApp ONTAP file system has the following endpoints\n that are used to access data or to manage the file system using the\n NetApp ONTAP CLI, REST API, or NetApp SnapMirror.

" + } + }, "com.amazonaws.fsx#FileSystemFailureDetails": { "type": "structure", "members": { @@ -2841,6 +3664,10 @@ { "value": "LUSTRE", "name": "LUSTRE" + }, + { + "value": "ONTAP", + "name": "ONTAP" } ] } @@ -2894,6 +3721,10 @@ { "value": "file-system-type", "name": "FILE_SYSTEM_TYPE" + }, + { + "value": "volume-id", + "name": "VOLUME_ID" } ] } @@ -2941,6 +3772,25 @@ "smithy.api#box": {} } }, + "com.amazonaws.fsx#FlexCacheEndpointType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "NONE", + "name": "NONE" + }, + { + "value": "ORIGIN", + "name": "ORIGIN" + }, + { + "value": "CACHE", + "name": "CACHE" + } + ] + } + }, "com.amazonaws.fsx#GeneralARN": { "type": "string", "traits": { @@ -3002,7 +3852,7 @@ } }, "traits": { - "smithy.api#documentation": "

The AWS Key Management Service (AWS KMS) key of the destination\n backup is invalid.

", + "smithy.api#documentation": "

The Key Management Service (KMS) key of the destination\n backup is invalid.

", "smithy.api#error": "client" } }, @@ -3034,17 +3884,32 @@ "type": "structure", "members": { "Message": { - "target": "com.amazonaws.fsx#ErrorMessage" + "target": "com.amazonaws.fsx#ErrorMessage", + "traits": { + "smithy.api#documentation": "

Error message explaining what's wrong with network settings.

" + } }, "InvalidSubnetId": { - "target": "com.amazonaws.fsx#SubnetId" + "target": "com.amazonaws.fsx#SubnetId", + "traits": { + "smithy.api#documentation": "

The subnet ID that is either invalid or not part of the VPC specified.

" + } }, "InvalidSecurityGroupId": { - "target": "com.amazonaws.fsx#SecurityGroupId" + "target": "com.amazonaws.fsx#SecurityGroupId", + "traits": { + "smithy.api#documentation": "

The security group ID is either invalid or not part of the VPC specified.

" + } + }, + "InvalidRouteTableId": { + "target": "com.amazonaws.fsx#RouteTableId", + "traits": { + "smithy.api#documentation": "

The route table ID is either invalid or not part of the VPC specified.

" + } } }, "traits": { - "smithy.api#documentation": "

One or more network settings specified in the request are invalid.\n InvalidVpcId means that the ID passed for the virtual private cloud\n (VPC) is invalid. InvalidSubnetIds returns the list of IDs for subnets that\n are either invalid or not part of the VPC specified.\n InvalidSecurityGroupIds returns the list of IDs for security groups\n that are either invalid or not part of the VPC specified.

", + "smithy.api#documentation": "

One or more network settings specified in the request are invalid.

", "smithy.api#error": "client" } }, @@ -3068,7 +3933,7 @@ } }, "traits": { - "smithy.api#documentation": "

The Region provided for Source Region is invalid or\n is in a different AWS partition.

", + "smithy.api#documentation": "

The Region provided for Source Region is invalid or\n is in a different Amazon Web Services partition.

", "smithy.api#error": "client" } }, @@ -3080,10 +3945,20 @@ } }, "traits": { - "smithy.api#documentation": "

The AWS Key Management Service (AWS KMS) key of the source backup\n is invalid.

", + "smithy.api#documentation": "

The Key Management Service (KMS) key of the source backup\n is invalid.

", "smithy.api#error": "client" } }, + "com.amazonaws.fsx#Iops": { + "type": "long", + "traits": { + "smithy.api#box": {}, + "smithy.api#range": { + "min": 0, + "max": 80000 + } + } + }, "com.amazonaws.fsx#IpAddress": { "type": "string", "traits": { @@ -3094,10 +3969,30 @@ "smithy.api#pattern": "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$" } }, + "com.amazonaws.fsx#IpAddressRange": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 9, + "max": 17 + }, + "smithy.api#pattern": "^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{9,17}$" + } + }, + "com.amazonaws.fsx#JunctionPath": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{1,255}$" + } + }, "com.amazonaws.fsx#KmsKeyId": { "type": "string", "traits": { - "smithy.api#documentation": "

The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the file system's data\n for Amazon FSx for Windows File Server file systems and Amazon FSx for Lustre PERSISTENT_1 file\n systems at rest. In either case, if not specified, the Amazon FSx managed key\n is used. The Amazon FSx for Lustre SCRATCH_1 and SCRATCH_2 file systems are always encrypted at rest using\n Amazon FSx managed keys. For more information, see Encrypt\n in the AWS Key Management Service API Reference.

", + "smithy.api#documentation": "

The ID of the Key Management Service (KMS) key used to encrypt the file system's data\n for Amazon FSx for Windows File Server file systems, Amazon FSx for NetApp ONTAP file systems, and\n Amazon FSx for Lustre PERSISTENT_1 file systems at rest. If not specified, the Amazon FSx\n managed key is used. The Amazon FSx for Lustre SCRATCH_1 and SCRATCH_2 file systems\n are always encrypted at rest using Amazon FSx managed keys. For more information, see Encrypt\n in the Key Management Service API Reference.

", "smithy.api#length": { "min": 1, "max": 2048 @@ -3108,6 +4003,17 @@ "com.amazonaws.fsx#LastUpdatedTime": { "type": "timestamp" }, + "com.amazonaws.fsx#LifecycleTransitionReason": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.fsx#ErrorMessage" + } + }, + "traits": { + "smithy.api#documentation": "

Describes why a resource lifecycle state changed.

" + } + }, "com.amazonaws.fsx#ListTagsForResource": { "type": "operation", "input": { @@ -3134,7 +4040,12 @@ } ], "traits": { - "smithy.api#documentation": "

Lists tags for an Amazon FSx file systems and backups in the case of Amazon FSx for\n Windows File Server.

\n\n

When retrieving all tags, you can optionally specify the MaxResults\n parameter to limit the number of tags in a response. If more tags remain, Amazon FSx\n returns a NextToken value in the response. In this case, send a later\n request with the NextToken request parameter set to the value of\n NextToken from the last response.

\n\n

This action is used in an iterative process to retrieve a list of your tags.\n ListTagsForResource is called first without a\n NextTokenvalue. Then the action continues to be called with the\n NextToken parameter set to the value of the last NextToken\n value until a response has no NextToken.

\n\n

When using this action, keep the following in mind:

\n " + "smithy.api#documentation": "

Lists tags for an Amazon FSx file systems and backups in the case of Amazon FSx for\n Windows File Server.

\n\n

When retrieving all tags, you can optionally specify the MaxResults\n parameter to limit the number of tags in a response. If more tags remain, Amazon FSx\n returns a NextToken value in the response. In this case, send a later\n request with the NextToken request parameter set to the value of\n NextToken from the last response.

\n\n

This action is used in an iterative process to retrieve a list of your tags.\n ListTagsForResource is called first without a\n NextTokenvalue. Then the action continues to be called with the\n NextToken parameter set to the value of the last NextToken\n value until a response has no NextToken.

\n\n

When using this action, keep the following in mind:

\n ", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } } }, "com.amazonaws.fsx#ListTagsForResourceRequest": { @@ -3230,7 +4141,7 @@ "MountName": { "target": "com.amazonaws.fsx#LustreFileSystemMountName", "traits": { - "smithy.api#documentation": "

You use the MountName value when mounting the file system.

\n

For the SCRATCH_1 deployment type, this value is always \"fsx\". \n For SCRATCH_2 and PERSISTENT_1 deployment types, this \n value is a string that is unique within an AWS Region. \n \n

" + "smithy.api#documentation": "

You use the MountName value when mounting the file system.

\n

For the SCRATCH_1 deployment type, this value is always \"fsx\". \n For SCRATCH_2 and PERSISTENT_1 deployment types, this \n value is a string that is unique within an Amazon Web Services Region. \n \n

" } }, "DailyAutomaticBackupStartTime": { @@ -3316,6 +4227,28 @@ "smithy.api#error": "client" } }, + "com.amazonaws.fsx#MissingVolumeConfiguration": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.fsx#ErrorMessage" + } + }, + "traits": { + "smithy.api#documentation": "

A volume configuration is required for this operation.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.fsx#NetBiosAlias": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 15 + }, + "smithy.api#pattern": "^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{1,255}$" + } + }, "com.amazonaws.fsx#NetworkInterfaceId": { "type": "string", "traits": { @@ -3370,6 +4303,169 @@ "smithy.api#error": "client" } }, + "com.amazonaws.fsx#OntapDeploymentType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "MULTI_AZ_1", + "name": "MULTI_AZ_1" + } + ] + } + }, + "com.amazonaws.fsx#OntapEndpointIpAddresses": { + "type": "list", + "member": { + "target": "com.amazonaws.fsx#IpAddress" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2 + } + } + }, + "com.amazonaws.fsx#OntapFileSystemConfiguration": { + "type": "structure", + "members": { + "AutomaticBackupRetentionDays": { + "target": "com.amazonaws.fsx#AutomaticBackupRetentionDays" + }, + "DailyAutomaticBackupStartTime": { + "target": "com.amazonaws.fsx#DailyTime" + }, + "DeploymentType": { + "target": "com.amazonaws.fsx#OntapDeploymentType", + "traits": { + "smithy.api#documentation": "

The ONTAP file system deployment type.

" + } + }, + "EndpointIpAddressRange": { + "target": "com.amazonaws.fsx#IpAddressRange", + "traits": { + "smithy.api#documentation": "

The IP address range in which the endpoints to access your file system\n are created.

" + } + }, + "Endpoints": { + "target": "com.amazonaws.fsx#FileSystemEndpoints", + "traits": { + "smithy.api#documentation": "

The Management and Intercluster endpoints\n that are used to access data or to manage the file system using the\n NetApp ONTAP CLI, REST API, or NetApp SnapMirror.

" + } + }, + "DiskIopsConfiguration": { + "target": "com.amazonaws.fsx#DiskIopsConfiguration", + "traits": { + "smithy.api#documentation": "

The SSD IOPS configuration for the ONTAP file system, specifying\n the number of provisioned IOPS and the provision mode.

" + } + }, + "PreferredSubnetId": { + "target": "com.amazonaws.fsx#SubnetId" + }, + "RouteTableIds": { + "target": "com.amazonaws.fsx#RouteTableIds", + "traits": { + "smithy.api#documentation": "

The VPC route tables in which your file system's endpoints are\n created.

" + } + }, + "ThroughputCapacity": { + "target": "com.amazonaws.fsx#MegabytesPerSecond" + }, + "WeeklyMaintenanceStartTime": { + "target": "com.amazonaws.fsx#WeeklyTime" + } + }, + "traits": { + "smithy.api#documentation": "

Configuration for the FSx for NetApp ONTAP file system.

" + } + }, + "com.amazonaws.fsx#OntapVolumeConfiguration": { + "type": "structure", + "members": { + "FlexCacheEndpointType": { + "target": "com.amazonaws.fsx#FlexCacheEndpointType", + "traits": { + "smithy.api#documentation": "

Specifies the FlexCache endpoint type of the volume.\n Valid values are the following:

\n " + } + }, + "JunctionPath": { + "target": "com.amazonaws.fsx#JunctionPath", + "traits": { + "smithy.api#documentation": "

Specifies the directory that NAS clients use to mount the volume, along with the SVM DNS name or IP address.\n You can create a JunctionPath directly below a parent volume junction or on a \n directory within a volume. A JunctionPath for a volume named vol3 might \n be /vol1/vol2/vol3, or /vol1/dir2/vol3, or even /dir1/dir2/vol3..

" + } + }, + "SecurityStyle": { + "target": "com.amazonaws.fsx#SecurityStyle", + "traits": { + "smithy.api#documentation": "

The security style for the volume, which can be UNIX,\n NTFS, or MIXED.

" + } + }, + "SizeInMegabytes": { + "target": "com.amazonaws.fsx#VolumeCapacity", + "traits": { + "smithy.api#documentation": "

The configured size of the volume, in megabytes (MBs).

" + } + }, + "StorageEfficiencyEnabled": { + "target": "com.amazonaws.fsx#Flag", + "traits": { + "smithy.api#documentation": "

The volume's storage efficiency setting.

" + } + }, + "StorageVirtualMachineId": { + "target": "com.amazonaws.fsx#StorageVirtualMachineId", + "traits": { + "smithy.api#documentation": "

The ID of the volume's storage virtual machine.

" + } + }, + "StorageVirtualMachineRoot": { + "target": "com.amazonaws.fsx#Flag", + "traits": { + "smithy.api#documentation": "

A boolean flag indicating whether this volume is the root volume for\n its storage virtual machine (SVM). Only one volume on an SVM can be the\n root volume. This value defaults to false. If this value is true, then\n this is the SVM root volume.

\n

This flag is useful when you're deleting an SVM, because you must\n first delete all non-root volumes. This flag, when set to false, helps\n you identify which volumes to delete before you can delete the SVM.

" + } + }, + "TieringPolicy": { + "target": "com.amazonaws.fsx#TieringPolicy", + "traits": { + "smithy.api#documentation": "

The volume's TieringPolicy setting.

" + } + }, + "UUID": { + "target": "com.amazonaws.fsx#UUID", + "traits": { + "smithy.api#documentation": "

The volume's UUID (universally unique identifier).

" + } + }, + "OntapVolumeType": { + "target": "com.amazonaws.fsx#OntapVolumeType", + "traits": { + "smithy.api#documentation": "

Specifies the type of volume. Valid values are the following:

\n " + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration of an Amazon FSx for NetApp ONTAP volume

" + } + }, + "com.amazonaws.fsx#OntapVolumeType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "RW", + "name": "RW" + }, + { + "value": "DP", + "name": "DP" + }, + { + "value": "LS", + "name": "LS" + } + ] + } + }, "com.amazonaws.fsx#OrganizationalUnitDistinguishedName": { "type": "string", "traits": { @@ -3448,7 +4544,7 @@ "com.amazonaws.fsx#ResourceARN": { "type": "string", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) for a given resource. ARNs uniquely identify AWS\n resources. We require an ARN when you need to specify a resource unambiguously across\n all of AWS. For more information, see Amazon Resource Names (ARNs)\n and AWS Service Namespaces in the AWS General\n Reference.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for a given resource. ARNs uniquely identify Amazon Web Services\n resources. We require an ARN when you need to specify a resource unambiguously across\n all of Amazon Web Services. For more information, see Amazon Resource Names (ARNs) in\n the Amazon Web Services General Reference.

", "smithy.api#length": { "min": 8, "max": 512 @@ -3485,13 +4581,50 @@ "smithy.api#required": {} } }, - "Message": { - "target": "com.amazonaws.fsx#ErrorMessage" - } + "Message": { + "target": "com.amazonaws.fsx#ErrorMessage" + } + }, + "traits": { + "smithy.api#documentation": "

The resource specified by the Amazon Resource Name (ARN) can't be found.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.fsx#ResourceType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "FILE_SYSTEM", + "name": "FILE_SYSTEM" + }, + { + "value": "VOLUME", + "name": "VOLUME" + } + ] + } + }, + "com.amazonaws.fsx#RouteTableId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 12, + "max": 21 + }, + "smithy.api#pattern": "^(rtb-[0-9a-f]{8,})$" + } + }, + "com.amazonaws.fsx#RouteTableIds": { + "type": "list", + "member": { + "target": "com.amazonaws.fsx#RouteTableId" }, "traits": { - "smithy.api#documentation": "

The resource specified by the Amazon Resource Name (ARN) can't be found.

", - "smithy.api#error": "client" + "smithy.api#length": { + "min": 0, + "max": 50 + } } }, "com.amazonaws.fsx#SecurityGroupId": { @@ -3518,6 +4651,25 @@ } } }, + "com.amazonaws.fsx#SecurityStyle": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "UNIX", + "name": "UNIX" + }, + { + "value": "NTFS", + "name": "NTFS" + }, + { + "value": "MIXED", + "name": "MIXED" + } + ] + } + }, "com.amazonaws.fsx#SelfManagedActiveDirectoryAttributes": { "type": "structure", "members": { @@ -3530,7 +4682,7 @@ "OrganizationalUnitDistinguishedName": { "target": "com.amazonaws.fsx#OrganizationalUnitDistinguishedName", "traits": { - "smithy.api#documentation": "

The fully qualified distinguished name of the organizational unit within the\n self-managed AD directory to which the Windows File Server instance is joined.

" + "smithy.api#documentation": "

The fully qualified distinguished name of the organizational unit within the\n self-managed AD directory to which the Windows File Server or ONTAP storage virtual machine (SVM) instance is joined.

" } }, "FileSystemAdministratorsGroup": { @@ -3553,7 +4705,7 @@ } }, "traits": { - "smithy.api#documentation": "

The configuration of the self-managed Microsoft Active Directory (AD) directory to\n which the Windows File Server instance is joined.

" + "smithy.api#documentation": "

The configuration of the self-managed Microsoft Active Directory (AD) directory to\n which the Windows File Server or ONTAP storage virtual machine (SVM) instance is joined.

" } }, "com.amazonaws.fsx#SelfManagedActiveDirectoryConfiguration": { @@ -3569,7 +4721,7 @@ "OrganizationalUnitDistinguishedName": { "target": "com.amazonaws.fsx#OrganizationalUnitDistinguishedName", "traits": { - "smithy.api#documentation": "

(Optional) The fully qualified distinguished name of the organizational unit within\n your self-managed AD directory that the Windows File Server instance will join. Amazon\n FSx only accepts OU as the direct parent of the file system. An example is\n OU=FSx,DC=yourdomain,DC=corp,DC=com. To learn more, see RFC 2253. If none is provided, the\n FSx file system is created in the default location of your self-managed AD directory.

\n \n

Only Organizational Unit (OU) objects can be the direct parent of the file system\n that you're creating.

\n
" + "smithy.api#documentation": "

(Optional) The fully qualified distinguished name of the organizational unit within\n your self-managed AD directory. Amazon\n FSx only accepts OU as the direct parent of the file system. An example is\n OU=FSx,DC=yourdomain,DC=corp,DC=com. To learn more, see RFC 2253. If none is provided, the\n FSx file system is created in the default location of your self-managed AD directory.

\n \n

Only Organizational Unit (OU) objects can be the direct parent of the file system\n that you're creating.

\n
" } }, "FileSystemAdministratorsGroup": { @@ -3601,7 +4753,7 @@ } }, "traits": { - "smithy.api#documentation": "

The configuration that Amazon FSx uses to join the Windows File Server instance to\n your self-managed (including on-premises) Microsoft Active Directory (AD)\n directory. For more information, see \n \n Using Amazon FSx with your self-managed Microsoft Active Directory.

" + "smithy.api#documentation": "

The configuration that Amazon FSx uses to join a Amazon FSx for Windows File Server file system or an ONTAP storage virtual machine (SVM) to\n a self-managed (including on-premises) Microsoft Active Directory (AD)\n directory. For more information, see \n \n Using Amazon FSx with your self-managed Microsoft Active Directory or \n Managing SVMs.

" } }, "com.amazonaws.fsx#SelfManagedActiveDirectoryConfigurationUpdates": { @@ -3633,7 +4785,7 @@ "com.amazonaws.fsx#ServiceLimit": { "type": "string", "traits": { - "smithy.api#documentation": "

The types of limits on your service utilization. Limits include file system count,\n total throughput capacity, total storage, and total user-initiated backups. These limits\n apply for a specific account in a specific AWS Region. You can increase some of them by\n contacting AWS Support.

", + "smithy.api#documentation": "

The types of limits on your service utilization. Limits include file system count,\n total throughput capacity, total storage, and total user-initiated backups. These limits\n apply for a specific account in a specific Amazon Web Services Region. You can increase some of them by\n contacting Amazon Web Services Support.

", "smithy.api#enum": [ { "value": "FILE_SYSTEM_COUNT", @@ -3658,6 +4810,18 @@ { "value": "TOTAL_IN_PROGRESS_COPY_BACKUPS", "name": "TOTAL_IN_PROGRESS_COPY_BACKUPS" + }, + { + "value": "STORAGE_VIRTUAL_MACHINES_PER_FILE_SYSTEM", + "name": "STORAGE_VIRTUAL_MACHINES_PER_FILE_SYSTEM" + }, + { + "value": "VOLUMES_PER_FILE_SYSTEM", + "name": "VOLUMES_PER_FILE_SYSTEM" + }, + { + "value": "TOTAL_SSD_IOPS", + "name": "TOTAL_SSD_IOPS" } ] } @@ -3677,7 +4841,7 @@ } }, "traits": { - "smithy.api#documentation": "

An error indicating that a particular service limit was exceeded. You can increase\n some service limits by contacting AWS Support.\n

", + "smithy.api#documentation": "

An error indicating that a particular service limit was exceeded. You can increase\n some service limits by contacting Amazon Web Services Support.

", "smithy.api#error": "client" } }, @@ -3688,81 +4852,349 @@ "min": 12, "max": 128 }, - "smithy.api#pattern": "^(backup-[0-9a-f]{8,})$" + "smithy.api#pattern": "^(backup-[0-9a-f]{8,})$" + } + }, + "com.amazonaws.fsx#SourceBackupUnavailable": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.fsx#ErrorMessage" + }, + "BackupId": { + "target": "com.amazonaws.fsx#BackupId" + } + }, + "traits": { + "smithy.api#documentation": "

The request was rejected because the lifecycle status of the \n source backup is not AVAILABLE.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.fsx#StartTime": { + "type": "timestamp" + }, + "com.amazonaws.fsx#Status": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "FAILED", + "name": "FAILED" + }, + { + "value": "IN_PROGRESS", + "name": "IN_PROGRESS" + }, + { + "value": "PENDING", + "name": "PENDING" + }, + { + "value": "COMPLETED", + "name": "COMPLETED" + }, + { + "value": "UPDATED_OPTIMIZING", + "name": "UPDATED_OPTIMIZING" + } + ] + } + }, + "com.amazonaws.fsx#StorageCapacity": { + "type": "integer", + "traits": { + "smithy.api#box": {}, + "smithy.api#documentation": "

The storage capacity for your Amazon FSx file system, in gibibytes.

", + "smithy.api#range": { + "min": 0, + "max": 2147483647 + } + } + }, + "com.amazonaws.fsx#StorageType": { + "type": "string", + "traits": { + "smithy.api#documentation": "

The storage type for your Amazon FSx file system.

", + "smithy.api#enum": [ + { + "value": "SSD", + "name": "SSD" + }, + { + "value": "HDD", + "name": "HDD" + } + ] + } + }, + "com.amazonaws.fsx#StorageVirtualMachine": { + "type": "structure", + "members": { + "ActiveDirectoryConfiguration": { + "target": "com.amazonaws.fsx#SvmActiveDirectoryConfiguration", + "traits": { + "smithy.api#documentation": "

Describes the Microsoft Active Directory configuration to which the SVM is joined, if applicable.

" + } + }, + "CreationTime": { + "target": "com.amazonaws.fsx#CreationTime" + }, + "Endpoints": { + "target": "com.amazonaws.fsx#SvmEndpoints", + "traits": { + "smithy.api#documentation": "

The endpoints that are used to access data or to manage the SVM\n using the NetApp ONTAP CLI, REST API, or NetApp CloudManager. They\n are the Iscsi, Management, Nfs,\n and Smb endpoints.

" + } + }, + "FileSystemId": { + "target": "com.amazonaws.fsx#FileSystemId" + }, + "Lifecycle": { + "target": "com.amazonaws.fsx#StorageVirtualMachineLifecycle", + "traits": { + "smithy.api#documentation": "

Describes the SVM's lifecycle status.

\n " + } + }, + "Name": { + "target": "com.amazonaws.fsx#StorageVirtualMachineName", + "traits": { + "smithy.api#documentation": "

The name of the SVM, if provisioned.

" + } + }, + "ResourceARN": { + "target": "com.amazonaws.fsx#ResourceARN" + }, + "StorageVirtualMachineId": { + "target": "com.amazonaws.fsx#StorageVirtualMachineId", + "traits": { + "smithy.api#documentation": "

The SVM's system generated unique ID.

" + } + }, + "Subtype": { + "target": "com.amazonaws.fsx#StorageVirtualMachineSubtype", + "traits": { + "smithy.api#documentation": "

Describes the SVM's subtype.

" + } + }, + "UUID": { + "target": "com.amazonaws.fsx#UUID", + "traits": { + "smithy.api#documentation": "

The SVM's UUID (universally unique identifier).

" + } + }, + "Tags": { + "target": "com.amazonaws.fsx#Tags" + }, + "LifecycleTransitionReason": { + "target": "com.amazonaws.fsx#LifecycleTransitionReason", + "traits": { + "smithy.api#documentation": "

Describes why the SVM lifecycle state changed.

" + } + }, + "RootVolumeSecurityStyle": { + "target": "com.amazonaws.fsx#StorageVirtualMachineRootVolumeSecurityStyle", + "traits": { + "smithy.api#documentation": "

The security style of the root volume of the SVM.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the Amazon FSx for NetApp ONTAP storage virtual machine (SVM) configuraton.

" + } + }, + "com.amazonaws.fsx#StorageVirtualMachineFilter": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.fsx#StorageVirtualMachineFilterName", + "traits": { + "smithy.api#documentation": "

The name for this filter.

" + } + }, + "Values": { + "target": "com.amazonaws.fsx#StorageVirtualMachineFilterValues", + "traits": { + "smithy.api#documentation": "

The values of the filter. These are all the values for any of the applied\n filters.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A filter used to restrict the results of describe calls for\n Amazon FSx for NetApp ONTAP storage virtual machines (SVMs). You can use multiple\n filters to return results that meet all applied filter requirements.

" + } + }, + "com.amazonaws.fsx#StorageVirtualMachineFilterName": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "file-system-id", + "name": "FILE_SYSTEM_ID" + } + ] + } + }, + "com.amazonaws.fsx#StorageVirtualMachineFilterValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[0-9a-zA-Z\\*\\.\\\\/\\?\\-\\_]*$" + } + }, + "com.amazonaws.fsx#StorageVirtualMachineFilterValues": { + "type": "list", + "member": { + "target": "com.amazonaws.fsx#StorageVirtualMachineFilterValue" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 20 + } + } + }, + "com.amazonaws.fsx#StorageVirtualMachineFilters": { + "type": "list", + "member": { + "target": "com.amazonaws.fsx#StorageVirtualMachineFilter" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1 + } + } + }, + "com.amazonaws.fsx#StorageVirtualMachineId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 21, + "max": 21 + }, + "smithy.api#pattern": "^(svm-[0-9a-f]{17,})$" + } + }, + "com.amazonaws.fsx#StorageVirtualMachineIds": { + "type": "list", + "member": { + "target": "com.amazonaws.fsx#StorageVirtualMachineId" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, + "com.amazonaws.fsx#StorageVirtualMachineLifecycle": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "CREATED", + "name": "CREATED" + }, + { + "value": "CREATING", + "name": "CREATING" + }, + { + "value": "DELETING", + "name": "DELETING" + }, + { + "value": "FAILED", + "name": "FAILED" + }, + { + "value": "MISCONFIGURED", + "name": "MISCONFIGURED" + }, + { + "value": "PENDING", + "name": "PENDING" + } + ] + } + }, + "com.amazonaws.fsx#StorageVirtualMachineName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 47 + }, + "smithy.api#pattern": "^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{1,47}$" } }, - "com.amazonaws.fsx#SourceBackupUnavailable": { + "com.amazonaws.fsx#StorageVirtualMachineNotFound": { "type": "structure", "members": { "Message": { "target": "com.amazonaws.fsx#ErrorMessage" - }, - "BackupId": { - "target": "com.amazonaws.fsx#BackupId" } }, "traits": { - "smithy.api#documentation": "

The request was rejected because the lifecycle status of the \n source backup is not AVAILABLE.

", + "smithy.api#documentation": "

No Amazon FSx for NetApp ONTAP SVMs were found based upon the supplied parameters.

", "smithy.api#error": "client" } }, - "com.amazonaws.fsx#StartTime": { - "type": "timestamp" - }, - "com.amazonaws.fsx#Status": { + "com.amazonaws.fsx#StorageVirtualMachineRootVolumeSecurityStyle": { "type": "string", "traits": { "smithy.api#enum": [ { - "value": "FAILED", - "name": "FAILED" - }, - { - "value": "IN_PROGRESS", - "name": "IN_PROGRESS" - }, - { - "value": "PENDING", - "name": "PENDING" + "value": "UNIX", + "name": "UNIX" }, { - "value": "COMPLETED", - "name": "COMPLETED" + "value": "NTFS", + "name": "NTFS" }, { - "value": "UPDATED_OPTIMIZING", - "name": "UPDATED_OPTIMIZING" + "value": "MIXED", + "name": "MIXED" } ] } }, - "com.amazonaws.fsx#StorageCapacity": { - "type": "integer", - "traits": { - "smithy.api#box": {}, - "smithy.api#documentation": "

The storage capacity for your Amazon FSx file system, in gibibytes.

", - "smithy.api#range": { - "min": 0, - "max": 2147483647 - } - } - }, - "com.amazonaws.fsx#StorageType": { + "com.amazonaws.fsx#StorageVirtualMachineSubtype": { "type": "string", "traits": { - "smithy.api#documentation": "

The storage type for your Amazon FSx file system.

", "smithy.api#enum": [ { - "value": "SSD", - "name": "SSD" + "value": "DEFAULT", + "name": "DEFAULT" }, { - "value": "HDD", - "name": "HDD" + "value": "DP_DESTINATION", + "name": "DP_DESTINATION" + }, + { + "value": "SYNC_DESTINATION", + "name": "SYNC_DESTINATION" + }, + { + "value": "SYNC_SOURCE", + "name": "SYNC_SOURCE" } ] } }, + "com.amazonaws.fsx#StorageVirtualMachines": { + "type": "list", + "member": { + "target": "com.amazonaws.fsx#StorageVirtualMachine" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, "com.amazonaws.fsx#SubnetId": { "type": "string", "traits": { @@ -3793,6 +5225,72 @@ "smithy.api#box": {} } }, + "com.amazonaws.fsx#SvmActiveDirectoryConfiguration": { + "type": "structure", + "members": { + "NetBiosName": { + "target": "com.amazonaws.fsx#NetBiosAlias", + "traits": { + "smithy.api#documentation": "

The NetBIOS name of the Active Directory computer object that is joined to your SVM.

" + } + }, + "SelfManagedActiveDirectoryConfiguration": { + "target": "com.amazonaws.fsx#SelfManagedActiveDirectoryAttributes" + } + }, + "traits": { + "smithy.api#documentation": "

Describes the configuration of the Microsoft Active Directory (AD) \n directory to which the Amazon FSx for ONTAP storage virtual machine (SVM) is joined.\n Pleae note, account credentials are not returned in the response payload.

" + } + }, + "com.amazonaws.fsx#SvmEndpoint": { + "type": "structure", + "members": { + "DNSName": { + "target": "com.amazonaws.fsx#DNSName" + }, + "IpAddresses": { + "target": "com.amazonaws.fsx#OntapEndpointIpAddresses", + "traits": { + "smithy.api#documentation": "

The SVM endpoint's IP addresses.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An Amazon FSx for NetApp ONTAP storage virtual machine (SVM) has\n four endpoints that are used to access data or to manage the SVM\n using the NetApp ONTAP CLI, REST API, or NetApp CloudManager. They\n are the Iscsi, Management, Nfs,\n and Smb endpoints.

" + } + }, + "com.amazonaws.fsx#SvmEndpoints": { + "type": "structure", + "members": { + "Iscsi": { + "target": "com.amazonaws.fsx#SvmEndpoint", + "traits": { + "smithy.api#documentation": "

An endpoint for connecting using the Internet Small Computer Systems Interface (iSCSI) protocol.

" + } + }, + "Management": { + "target": "com.amazonaws.fsx#SvmEndpoint", + "traits": { + "smithy.api#documentation": "

An endpoint for managing SVMs using the NetApp ONTAP CLI, NetApp ONTAP API, or NetApp CloudManager.

" + } + }, + "Nfs": { + "target": "com.amazonaws.fsx#SvmEndpoint", + "traits": { + "smithy.api#documentation": "

An endpoint for connecting using the Network File System (NFS) protocol.

" + } + }, + "Smb": { + "target": "com.amazonaws.fsx#SvmEndpoint", + "traits": { + "smithy.api#documentation": "

An endpoint for connecting using the Server Message Block (SMB) protocol.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An Amazon FSx for NetApp ONTAP storage virtual machine (SVM) has\n the following endpoints that are used to access data or to manage\n the SVM using the NetApp ONTAP CLI, REST API, or NetApp CloudManager.

" + } + }, "com.amazonaws.fsx#Tag": { "type": "structure", "members": { @@ -3842,10 +5340,186 @@ "com.amazonaws.fsx#TagResource": { "type": "operation", "input": { - "target": "com.amazonaws.fsx#TagResourceRequest" + "target": "com.amazonaws.fsx#TagResourceRequest" + }, + "output": { + "target": "com.amazonaws.fsx#TagResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.fsx#BadRequest" + }, + { + "target": "com.amazonaws.fsx#InternalServerError" + }, + { + "target": "com.amazonaws.fsx#NotServiceResourceError" + }, + { + "target": "com.amazonaws.fsx#ResourceDoesNotSupportTagging" + }, + { + "target": "com.amazonaws.fsx#ResourceNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

Tags an Amazon FSx resource.

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.fsx#TagResourceRequest": { + "type": "structure", + "members": { + "ResourceARN": { + "target": "com.amazonaws.fsx#ResourceARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon FSx resource that you want to\n tag.

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.fsx#Tags", + "traits": { + "smithy.api#documentation": "

A list of tags for the resource. If a tag with a given key already exists, the\n value is replaced by the one specified in this parameter.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The request object for the TagResource operation.

" + } + }, + "com.amazonaws.fsx#TagResourceResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

The response object for the TagResource operation.

" + } + }, + "com.amazonaws.fsx#TagValue": { + "type": "string", + "traits": { + "smithy.api#documentation": "

A string of 0 to 256 characters that specifies the value for a tag. Tag values can\n be null and don't have to be unique in a tag set.

", + "smithy.api#length": { + "min": 0, + "max": 256 + }, + "smithy.api#pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + } + }, + "com.amazonaws.fsx#Tags": { + "type": "list", + "member": { + "target": "com.amazonaws.fsx#Tag" + }, + "traits": { + "smithy.api#documentation": "

A list of Tag values, with a maximum of 50 elements.

", + "smithy.api#length": { + "min": 1, + "max": 50 + } + } + }, + "com.amazonaws.fsx#TaskId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 12, + "max": 128 + }, + "smithy.api#pattern": "^(task-[0-9a-f]{17,})$" + } + }, + "com.amazonaws.fsx#TaskIds": { + "type": "list", + "member": { + "target": "com.amazonaws.fsx#TaskId" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, + "com.amazonaws.fsx#TieringPolicy": { + "type": "structure", + "members": { + "CoolingPeriod": { + "target": "com.amazonaws.fsx#CoolingPeriod", + "traits": { + "smithy.api#documentation": "

Specifies the number of days that user data in a volume must remain inactive before it is considered \"cold\" \n and moved to the capacity pool. Used with the AUTO and SNAPSHOT_ONLY tiering policies. \n Enter a whole number between 2 and 183. Default values are 31 days for AUTO and 2 days for \n SNAPSHOT_ONLY.

" + } + }, + "Name": { + "target": "com.amazonaws.fsx#TieringPolicyName", + "traits": { + "smithy.api#documentation": "

Specifies the tiering policy used to transition data. Default value is SNAPSHOT_ONLY.

\n " + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the data tiering policy for an ONTAP volume. When enabled, Amazon FSx for ONTAP's intelligent\n tiering automatically transitions a volume's data between the file system's primary storage and capacity\n pool storage based on your access patterns.

" + } + }, + "com.amazonaws.fsx#TieringPolicyName": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "SNAPSHOT_ONLY", + "name": "SNAPSHOT_ONLY" + }, + { + "value": "AUTO", + "name": "AUTO" + }, + { + "value": "ALL", + "name": "ALL" + }, + { + "value": "NONE", + "name": "NONE" + } + ] + } + }, + "com.amazonaws.fsx#TotalCount": { + "type": "long", + "traits": { + "smithy.api#box": {} + } + }, + "com.amazonaws.fsx#UUID": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 36 + }, + "smithy.api#pattern": "^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{1,36}$" + } + }, + "com.amazonaws.fsx#UnsupportedOperation": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.fsx#ErrorMessage" + } + }, + "traits": { + "smithy.api#documentation": "

The requested operation is not supported for this resource or API.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.fsx#UntagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.fsx#UntagResourceRequest" }, "output": { - "target": "com.amazonaws.fsx#TagResourceResponse" + "target": "com.amazonaws.fsx#UntagResourceResponse" }, "errors": [ { @@ -3865,177 +5539,355 @@ } ], "traits": { - "smithy.api#documentation": "

Tags an Amazon FSx resource.

", + "smithy.api#documentation": "

This action removes a tag from an Amazon FSx resource.

", "smithy.api#idempotent": {} } }, - "com.amazonaws.fsx#TagResourceRequest": { + "com.amazonaws.fsx#UntagResourceRequest": { "type": "structure", "members": { "ResourceARN": { "target": "com.amazonaws.fsx#ResourceARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon FSx resource that you want to\n tag.

", + "smithy.api#documentation": "

The ARN of the Amazon FSx resource to untag.

", "smithy.api#required": {} } }, - "Tags": { - "target": "com.amazonaws.fsx#Tags", + "TagKeys": { + "target": "com.amazonaws.fsx#TagKeys", "traits": { - "smithy.api#documentation": "

A list of tags for the resource. If a tag with a given key already exists, the\n value is replaced by the one specified in this parameter.

", + "smithy.api#documentation": "

A list of keys of tags on the resource to untag. In case the tag key doesn't exist,\n the call will still succeed to be idempotent.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

The request object for the TagResource operation.

" + "smithy.api#documentation": "

The request object for UntagResource action.

" } }, - "com.amazonaws.fsx#TagResourceResponse": { + "com.amazonaws.fsx#UntagResourceResponse": { "type": "structure", "members": {}, "traits": { - "smithy.api#documentation": "

The response object for the TagResource operation.

" + "smithy.api#documentation": "

The response object for UntagResource action.

" } }, - "com.amazonaws.fsx#TagValue": { - "type": "string", - "traits": { - "smithy.api#documentation": "

A string of 0 to 256 characters that specifies the value for a tag. Tag values can\n be null and don't have to be unique in a tag set.

", - "smithy.api#length": { - "min": 0, - "max": 256 + "com.amazonaws.fsx#UpdateFileSystem": { + "type": "operation", + "input": { + "target": "com.amazonaws.fsx#UpdateFileSystemRequest" + }, + "output": { + "target": "com.amazonaws.fsx#UpdateFileSystemResponse" + }, + "errors": [ + { + "target": "com.amazonaws.fsx#BadRequest" }, - "smithy.api#pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + { + "target": "com.amazonaws.fsx#FileSystemNotFound" + }, + { + "target": "com.amazonaws.fsx#IncompatibleParameterError" + }, + { + "target": "com.amazonaws.fsx#InternalServerError" + }, + { + "target": "com.amazonaws.fsx#MissingFileSystemConfiguration" + }, + { + "target": "com.amazonaws.fsx#ServiceLimitExceeded" + }, + { + "target": "com.amazonaws.fsx#UnsupportedOperation" + } + ], + "traits": { + "smithy.api#documentation": "

Use this operation to update the configuration of an existing Amazon FSx file system. \n You can update multiple properties in a single request.

\n

For Amazon FSx for Windows File Server file systems, you can update the following \n properties:

\n \n

For Amazon FSx for Lustre file systems, you can update the following \n properties:

\n \n

For Amazon FSx for NetApp ONTAP file systems, you can update the following\n properties:

\n " } }, - "com.amazonaws.fsx#Tags": { - "type": "list", - "member": { - "target": "com.amazonaws.fsx#Tag" + "com.amazonaws.fsx#UpdateFileSystemLustreConfiguration": { + "type": "structure", + "members": { + "WeeklyMaintenanceStartTime": { + "target": "com.amazonaws.fsx#WeeklyTime", + "traits": { + "smithy.api#documentation": "

(Optional) The preferred start time to perform weekly maintenance, formatted d:HH:MM in the UTC\n time zone. d is the weekday number, from 1 through 7, beginning with Monday and ending with Sunday.

" + } + }, + "DailyAutomaticBackupStartTime": { + "target": "com.amazonaws.fsx#DailyTime" + }, + "AutomaticBackupRetentionDays": { + "target": "com.amazonaws.fsx#AutomaticBackupRetentionDays" + }, + "AutoImportPolicy": { + "target": "com.amazonaws.fsx#AutoImportPolicyType", + "traits": { + "smithy.api#documentation": "

(Optional) When you create your file system, your existing S3 objects appear as file and directory listings. \n Use this property to choose how Amazon FSx keeps your file and directory listing up to date \n as you add or modify objects in your linked S3 bucket. AutoImportPolicy can\n have the following values:

\n \n

For more information, see Automatically import updates from your S3 bucket.

" + } + }, + "DataCompressionType": { + "target": "com.amazonaws.fsx#DataCompressionType", + "traits": { + "smithy.api#documentation": "

Sets the data compression configuration for the file system. DataCompressionType\n can have the following values:

\n \n

If you don't use DataCompressionType, the file system retains\n its current data compression configuration.

\n

For more information, see Lustre data compression.

" + } + } }, "traits": { - "smithy.api#documentation": "

A list of Tag values, with a maximum of 50 elements.

", - "smithy.api#length": { - "min": 1, - "max": 50 - } + "smithy.api#documentation": "

The configuration object for Amazon FSx for Lustre file systems used in the\n UpdateFileSystem operation.

" } }, - "com.amazonaws.fsx#TaskId": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 12, - "max": 128 + "com.amazonaws.fsx#UpdateFileSystemOntapConfiguration": { + "type": "structure", + "members": { + "AutomaticBackupRetentionDays": { + "target": "com.amazonaws.fsx#AutomaticBackupRetentionDays" }, - "smithy.api#pattern": "^(task-[0-9a-f]{17,})$" + "DailyAutomaticBackupStartTime": { + "target": "com.amazonaws.fsx#DailyTime" + }, + "FsxAdminPassword": { + "target": "com.amazonaws.fsx#AdminPassword", + "traits": { + "smithy.api#documentation": "

The ONTAP administrative password for the fsxadmin user.

" + } + }, + "WeeklyMaintenanceStartTime": { + "target": "com.amazonaws.fsx#WeeklyTime" + } + }, + "traits": { + "smithy.api#documentation": "

The configuration updates for an Amazon FSx for NetApp ONTAP file system.

" } }, - "com.amazonaws.fsx#TaskIds": { - "type": "list", - "member": { - "target": "com.amazonaws.fsx#TaskId" + "com.amazonaws.fsx#UpdateFileSystemRequest": { + "type": "structure", + "members": { + "FileSystemId": { + "target": "com.amazonaws.fsx#FileSystemId", + "traits": { + "smithy.api#documentation": "

Identifies the file system that you are updating.

", + "smithy.api#required": {} + } + }, + "ClientRequestToken": { + "target": "com.amazonaws.fsx#ClientRequestToken", + "traits": { + "smithy.api#documentation": "

A string of up to 64 ASCII characters that Amazon FSx uses to ensure\n idempotent updates. This string is automatically filled on your behalf when you use\n the Command Line Interface (CLI) or an Amazon Web Services SDK.

", + "smithy.api#idempotencyToken": {} + } + }, + "StorageCapacity": { + "target": "com.amazonaws.fsx#StorageCapacity", + "traits": { + "smithy.api#documentation": "

Use this parameter to increase the storage capacity of an Amazon FSx for Windows File Server\n or Amazon FSx for Lustre file system.\n Specifies the storage capacity target value, GiB, to increase the storage capacity for the\n file system that you're updating. You cannot make a storage capacity increase request if\n there is an existing storage capacity increase request in progress.

\n

For Windows file systems, the storage capacity target value must be at least 10 percent\n (%) greater than the current storage capacity value. In order to increase storage capacity,\n the file system must have at least 16 MB/s of throughput capacity.

\n

For Lustre file systems, the storage capacity target value can be the following:

\n \n

For more information, see Managing storage\n capacity in the Amazon FSx for Windows File Server User Guide\n and Managing storage and throughput capacity in the Amazon FSx for Lustre\n User Guide.

" + } + }, + "WindowsConfiguration": { + "target": "com.amazonaws.fsx#UpdateFileSystemWindowsConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration updates for an Amazon FSx for Windows File Server file system.

" + } + }, + "LustreConfiguration": { + "target": "com.amazonaws.fsx#UpdateFileSystemLustreConfiguration" + }, + "OntapConfiguration": { + "target": "com.amazonaws.fsx#UpdateFileSystemOntapConfiguration" + } }, "traits": { - "smithy.api#length": { - "min": 0, - "max": 50 + "smithy.api#documentation": "

The request object for the UpdateFileSystem operation.

" + } + }, + "com.amazonaws.fsx#UpdateFileSystemResponse": { + "type": "structure", + "members": { + "FileSystem": { + "target": "com.amazonaws.fsx#FileSystem", + "traits": { + "smithy.api#documentation": "

A description of the file system that was updated.

" + } } + }, + "traits": { + "smithy.api#documentation": "

The response object for the UpdateFileSystem operation.

" } }, - "com.amazonaws.fsx#TotalCount": { - "type": "long", + "com.amazonaws.fsx#UpdateFileSystemWindowsConfiguration": { + "type": "structure", + "members": { + "WeeklyMaintenanceStartTime": { + "target": "com.amazonaws.fsx#WeeklyTime", + "traits": { + "smithy.api#documentation": "

The preferred start time to perform weekly maintenance, formatted d:HH:MM in the UTC\n time zone. Where d is the weekday number, from 1 through 7, with 1 = Monday and 7 = Sunday.

" + } + }, + "DailyAutomaticBackupStartTime": { + "target": "com.amazonaws.fsx#DailyTime", + "traits": { + "smithy.api#documentation": "

The preferred time to start the daily automatic backup, in the UTC time zone, for example, 02:00\n

" + } + }, + "AutomaticBackupRetentionDays": { + "target": "com.amazonaws.fsx#AutomaticBackupRetentionDays", + "traits": { + "smithy.api#documentation": "

The number of days to retain automatic daily backups. Setting this to zero (0) disables automatic daily\n backups. You can retain automatic daily backups for a maximum of 90 days. For more information, see\n Working with Automatic Daily Backups.

" + } + }, + "ThroughputCapacity": { + "target": "com.amazonaws.fsx#MegabytesPerSecond", + "traits": { + "smithy.api#documentation": "

Sets the target value for a file system's throughput capacity, in MB/s, that you are updating the file system to. Valid values are \n 8, 16, 32, 64, 128, 256, 512, 1024, 2048. You cannot make a throughput capacity update request if there is an existing throughput capacity update request in progress. For more information, \n see Managing Throughput Capacity.

" + } + }, + "SelfManagedActiveDirectoryConfiguration": { + "target": "com.amazonaws.fsx#SelfManagedActiveDirectoryConfigurationUpdates", + "traits": { + "smithy.api#documentation": "

The configuration Amazon FSx uses to join the Windows File Server instance to the\n self-managed Microsoft AD directory. You cannot make a self-managed Microsoft AD update request if there is an existing self-managed Microsoft AD update request in progress.

" + } + }, + "AuditLogConfiguration": { + "target": "com.amazonaws.fsx#WindowsAuditLogCreateConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration that Amazon FSx for Windows File Server uses to audit and log\n user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server\n file system..

" + } + } + }, "traits": { - "smithy.api#box": {} + "smithy.api#documentation": "

Updates the configuration for an existing Amazon FSx for Windows\n File Server file system. Amazon FSx only overwrites existing properties with non-null values\n provided in the request.

" } }, - "com.amazonaws.fsx#UnsupportedOperation": { + "com.amazonaws.fsx#UpdateOntapVolumeConfiguration": { "type": "structure", "members": { - "Message": { - "target": "com.amazonaws.fsx#ErrorMessage" + "JunctionPath": { + "target": "com.amazonaws.fsx#JunctionPath", + "traits": { + "smithy.api#documentation": "

Specifies the location in the SVM's namespace where the volume is mounted. \n The JunctionPath must have a leading forward slash, such as /vol3.

" + } + }, + "SecurityStyle": { + "target": "com.amazonaws.fsx#SecurityStyle", + "traits": { + "smithy.api#documentation": "

The security style for the volume, which can be UNIX.\n NTFS, or MIXED.

" + } + }, + "SizeInMegabytes": { + "target": "com.amazonaws.fsx#VolumeCapacity", + "traits": { + "smithy.api#documentation": "

Specifies the size of the volume in megabytes.

" + } + }, + "StorageEfficiencyEnabled": { + "target": "com.amazonaws.fsx#Flag", + "traits": { + "smithy.api#documentation": "

Default is false. Set to true to enable the deduplication,\n compression, and compaction storage efficiency features on the volume.

" + } + }, + "TieringPolicy": { + "target": "com.amazonaws.fsx#TieringPolicy", + "traits": { + "smithy.api#documentation": "

Update the volume's data tiering policy.

" + } } }, "traits": { - "smithy.api#documentation": "

The requested operation is not supported for this resource or API.

", - "smithy.api#error": "client" + "smithy.api#documentation": "

Used to specify changes to the ONTAP configuration for the volume you are updating.

" } }, - "com.amazonaws.fsx#UntagResource": { + "com.amazonaws.fsx#UpdateStorageVirtualMachine": { "type": "operation", "input": { - "target": "com.amazonaws.fsx#UntagResourceRequest" + "target": "com.amazonaws.fsx#UpdateStorageVirtualMachineRequest" }, "output": { - "target": "com.amazonaws.fsx#UntagResourceResponse" + "target": "com.amazonaws.fsx#UpdateStorageVirtualMachineResponse" }, "errors": [ { "target": "com.amazonaws.fsx#BadRequest" }, { - "target": "com.amazonaws.fsx#InternalServerError" + "target": "com.amazonaws.fsx#IncompatibleParameterError" }, { - "target": "com.amazonaws.fsx#NotServiceResourceError" + "target": "com.amazonaws.fsx#InternalServerError" }, { - "target": "com.amazonaws.fsx#ResourceDoesNotSupportTagging" + "target": "com.amazonaws.fsx#StorageVirtualMachineNotFound" }, { - "target": "com.amazonaws.fsx#ResourceNotFound" + "target": "com.amazonaws.fsx#UnsupportedOperation" } ], "traits": { - "smithy.api#documentation": "

This action removes a tag from an Amazon FSx resource.

", - "smithy.api#idempotent": {} + "smithy.api#documentation": "

Updates an Amazon FSx for ONTAP storage virtual machine (SVM).

" } }, - "com.amazonaws.fsx#UntagResourceRequest": { + "com.amazonaws.fsx#UpdateStorageVirtualMachineRequest": { "type": "structure", "members": { - "ResourceARN": { - "target": "com.amazonaws.fsx#ResourceARN", + "ActiveDirectoryConfiguration": { + "target": "com.amazonaws.fsx#UpdateSvmActiveDirectoryConfiguration", + "traits": { + "smithy.api#documentation": "

Updates the Microsoft Active Directory (AD) configuration for an SVM that is joined to an AD.

" + } + }, + "ClientRequestToken": { + "target": "com.amazonaws.fsx#ClientRequestToken", + "traits": { + "smithy.api#idempotencyToken": {} + } + }, + "StorageVirtualMachineId": { + "target": "com.amazonaws.fsx#StorageVirtualMachineId", "traits": { - "smithy.api#documentation": "

The ARN of the Amazon FSx resource to untag.

", + "smithy.api#documentation": "

The ID of the SVM that you want to update, in the format svm-0123456789abcdef0.

", "smithy.api#required": {} } }, - "TagKeys": { - "target": "com.amazonaws.fsx#TagKeys", + "SvmAdminPassword": { + "target": "com.amazonaws.fsx#AdminPassword", "traits": { - "smithy.api#documentation": "

A list of keys of tags on the resource to untag. In case the tag key doesn't exist,\n the call will still succeed to be idempotent.

", - "smithy.api#required": {} + "smithy.api#documentation": "

Enter a new SvmAdminPassword if you are updating it.

" } } - }, - "traits": { - "smithy.api#documentation": "

The request object for UntagResource action.

" } }, - "com.amazonaws.fsx#UntagResourceResponse": { + "com.amazonaws.fsx#UpdateStorageVirtualMachineResponse": { "type": "structure", - "members": {}, + "members": { + "StorageVirtualMachine": { + "target": "com.amazonaws.fsx#StorageVirtualMachine" + } + } + }, + "com.amazonaws.fsx#UpdateSvmActiveDirectoryConfiguration": { + "type": "structure", + "members": { + "SelfManagedActiveDirectoryConfiguration": { + "target": "com.amazonaws.fsx#SelfManagedActiveDirectoryConfigurationUpdates" + } + }, "traits": { - "smithy.api#documentation": "

The response object for UntagResource action.

" + "smithy.api#documentation": "

Updates the Microsoft Active Directory (AD) configuration of an SVM joined to an AD. \n Pleae note, account credentials are not returned in the response payload.

" } }, - "com.amazonaws.fsx#UpdateFileSystem": { + "com.amazonaws.fsx#UpdateVolume": { "type": "operation", "input": { - "target": "com.amazonaws.fsx#UpdateFileSystemRequest" + "target": "com.amazonaws.fsx#UpdateVolumeRequest" }, "output": { - "target": "com.amazonaws.fsx#UpdateFileSystemResponse" + "target": "com.amazonaws.fsx#UpdateVolumeResponse" }, "errors": [ { "target": "com.amazonaws.fsx#BadRequest" }, - { - "target": "com.amazonaws.fsx#FileSystemNotFound" - }, { "target": "com.amazonaws.fsx#IncompatibleParameterError" }, @@ -4043,144 +5895,279 @@ "target": "com.amazonaws.fsx#InternalServerError" }, { - "target": "com.amazonaws.fsx#MissingFileSystemConfiguration" - }, - { - "target": "com.amazonaws.fsx#ServiceLimitExceeded" + "target": "com.amazonaws.fsx#MissingVolumeConfiguration" }, { - "target": "com.amazonaws.fsx#UnsupportedOperation" + "target": "com.amazonaws.fsx#VolumeNotFound" } ], "traits": { - "smithy.api#documentation": "

Use this operation to update the configuration of an existing Amazon FSx file system. \n You can update multiple properties in a single request.

\n

For Amazon FSx for Windows File Server file systems, you can update the following \n properties:

\n \n

For Amazon FSx for Lustre file systems, you can update the following \n properties:

\n " + "smithy.api#documentation": "

Updates an Amazon FSx for NetApp ONTAP volume's configuration.

" } }, - "com.amazonaws.fsx#UpdateFileSystemLustreConfiguration": { + "com.amazonaws.fsx#UpdateVolumeRequest": { "type": "structure", "members": { - "WeeklyMaintenanceStartTime": { - "target": "com.amazonaws.fsx#WeeklyTime", + "ClientRequestToken": { + "target": "com.amazonaws.fsx#ClientRequestToken", "traits": { - "smithy.api#documentation": "

(Optional) The preferred start time to perform weekly maintenance, formatted d:HH:MM in the UTC\n time zone. d is the weekday number, from 1 through 7, beginning with Monday and ending with Sunday.

" + "smithy.api#idempotencyToken": {} } }, - "DailyAutomaticBackupStartTime": { - "target": "com.amazonaws.fsx#DailyTime" - }, - "AutomaticBackupRetentionDays": { - "target": "com.amazonaws.fsx#AutomaticBackupRetentionDays" - }, - "AutoImportPolicy": { - "target": "com.amazonaws.fsx#AutoImportPolicyType", + "VolumeId": { + "target": "com.amazonaws.fsx#VolumeId", "traits": { - "smithy.api#documentation": "

(Optional) When you create your file system, your existing S3 objects appear as file and directory listings. \n Use this property to choose how Amazon FSx keeps your file and directory listing up to date \n as you add or modify objects in your linked S3 bucket. AutoImportPolicy can\n have the following values:

\n \n

For more information, see Automatically import updates from your S3 bucket.

" + "smithy.api#documentation": "

Specifies the volume that you want to update, formatted fsvol-0123456789abcdef0.

", + "smithy.api#required": {} } }, - "DataCompressionType": { - "target": "com.amazonaws.fsx#DataCompressionType", + "OntapConfiguration": { + "target": "com.amazonaws.fsx#UpdateOntapVolumeConfiguration", "traits": { - "smithy.api#documentation": "

Sets the data compression configuration for the file system. DataCompressionType\n can have the following values:

\n \n

If you don't use DataCompressionType, the file system retains\n its current data compression configuration.

\n

For more information, see Lustre data compression.

" + "smithy.api#documentation": "

The ONTAP configuration of the volume you are updating.

" } } - }, - "traits": { - "smithy.api#documentation": "

The configuration object for Amazon FSx for Lustre file systems used in the\n UpdateFileSystem operation.

" } }, - "com.amazonaws.fsx#UpdateFileSystemRequest": { + "com.amazonaws.fsx#UpdateVolumeResponse": { + "type": "structure", + "members": { + "Volume": { + "target": "com.amazonaws.fsx#Volume", + "traits": { + "smithy.api#documentation": "

Returned after a successful UpdateVolume API operation, describing the volume just updated.

" + } + } + } + }, + "com.amazonaws.fsx#Volume": { "type": "structure", "members": { + "CreationTime": { + "target": "com.amazonaws.fsx#CreationTime" + }, "FileSystemId": { - "target": "com.amazonaws.fsx#FileSystemId", + "target": "com.amazonaws.fsx#FileSystemId" + }, + "Lifecycle": { + "target": "com.amazonaws.fsx#VolumeLifecycle", "traits": { - "smithy.api#documentation": "

Identifies the file system that you are updating.

", - "smithy.api#required": {} + "smithy.api#documentation": "

The lifecycle status of the volume.

\n " } }, - "ClientRequestToken": { - "target": "com.amazonaws.fsx#ClientRequestToken", + "Name": { + "target": "com.amazonaws.fsx#VolumeName", "traits": { - "smithy.api#documentation": "

A string of up to 64 ASCII characters that Amazon FSx uses to ensure\n idempotent updates. This string is automatically filled on your behalf when you use the AWS\n Command Line Interface (AWS CLI) or an AWS SDK.

", - "smithy.api#idempotencyToken": {} + "smithy.api#documentation": "

The name of the volume.

" } }, - "StorageCapacity": { - "target": "com.amazonaws.fsx#StorageCapacity", + "OntapConfiguration": { + "target": "com.amazonaws.fsx#OntapVolumeConfiguration" + }, + "ResourceARN": { + "target": "com.amazonaws.fsx#ResourceARN" + }, + "Tags": { + "target": "com.amazonaws.fsx#Tags" + }, + "VolumeId": { + "target": "com.amazonaws.fsx#VolumeId", "traits": { - "smithy.api#documentation": "

Use this parameter to increase the storage capacity of an Amazon FSx file system.\n Specifies the storage capacity target value, GiB, to increase the storage capacity for the\n file system that you're updating. You cannot make a storage capacity increase request if\n there is an existing storage capacity increase request in progress.

\n

For Windows file systems, the storage capacity target value must be at least 10 percent\n (%) greater than the current storage capacity value. In order to increase storage capacity,\n the file system must have at least 16 MB/s of throughput capacity.

\n

For Lustre file systems, the storage capacity target value can be the following:

\n \n

For more information, see Managing storage\n capacity in the Amazon FSx for Windows File Server User Guide\n and Managing storage and throughput capacity in the Amazon FSx for Lustre\n User Guide.

" + "smithy.api#documentation": "

The system-generated, unique ID of the volume.

" } }, - "WindowsConfiguration": { - "target": "com.amazonaws.fsx#UpdateFileSystemWindowsConfiguration", + "VolumeType": { + "target": "com.amazonaws.fsx#VolumeType", "traits": { - "smithy.api#documentation": "

The configuration updates for an Amazon FSx for Windows File Server file system.

" + "smithy.api#documentation": "

The type of volume; ONTAP is the only valid volume type.

" } }, - "LustreConfiguration": { - "target": "com.amazonaws.fsx#UpdateFileSystemLustreConfiguration" + "LifecycleTransitionReason": { + "target": "com.amazonaws.fsx#LifecycleTransitionReason", + "traits": { + "smithy.api#documentation": "

Describes why the volume lifecycle state changed.

" + } } }, "traits": { - "smithy.api#documentation": "

The request object for the UpdateFileSystem operation.

" + "smithy.api#documentation": "

Describes an Amazon FSx for NetApp ONTAP volume.

" } }, - "com.amazonaws.fsx#UpdateFileSystemResponse": { - "type": "structure", - "members": { - "FileSystem": { - "target": "com.amazonaws.fsx#FileSystem", - "traits": { - "smithy.api#documentation": "

A description of the file system that was updated.

" - } - } - }, + "com.amazonaws.fsx#VolumeCapacity": { + "type": "integer", "traits": { - "smithy.api#documentation": "

The response object for the UpdateFileSystem operation.

" + "smithy.api#box": {}, + "smithy.api#range": { + "min": 0, + "max": 2147483647 + } } }, - "com.amazonaws.fsx#UpdateFileSystemWindowsConfiguration": { + "com.amazonaws.fsx#VolumeFilter": { "type": "structure", "members": { - "WeeklyMaintenanceStartTime": { - "target": "com.amazonaws.fsx#WeeklyTime", + "Name": { + "target": "com.amazonaws.fsx#VolumeFilterName", "traits": { - "smithy.api#documentation": "

The preferred start time to perform weekly maintenance, formatted d:HH:MM in the UTC\n time zone. Where d is the weekday number, from 1 through 7, with 1 = Monday and 7 = Sunday.

" + "smithy.api#documentation": "

The name for this filter.

" } }, - "DailyAutomaticBackupStartTime": { - "target": "com.amazonaws.fsx#DailyTime", + "Values": { + "target": "com.amazonaws.fsx#VolumeFilterValues", "traits": { - "smithy.api#documentation": "

The preferred time to start the daily automatic backup, in the UTC time zone, for example, 02:00\n

" + "smithy.api#documentation": "

The values of the filter. These are all the values for any of the applied\n filters.

" } - }, - "AutomaticBackupRetentionDays": { - "target": "com.amazonaws.fsx#AutomaticBackupRetentionDays", - "traits": { - "smithy.api#documentation": "

The number of days to retain automatic daily backups. Setting this to zero (0) disables automatic daily\n backups. You can retain automatic daily backups for a maximum of 90 days. For more information, see\n Working with Automatic Daily Backups.

" + } + }, + "traits": { + "smithy.api#documentation": "

A filter used to restrict the results of describe calls for\n Amazon FSx for NetApp ONTAP volumes. You can use multiple\n filters to return results that meet all applied filter requirements.

" + } + }, + "com.amazonaws.fsx#VolumeFilterName": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "file-system-id", + "name": "FILE_SYSTEM_ID" + }, + { + "value": "storage-virtual-machine-id", + "name": "STORAGE_VIRTUAL_MACHINE_ID" } + ] + } + }, + "com.amazonaws.fsx#VolumeFilterValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 }, - "ThroughputCapacity": { - "target": "com.amazonaws.fsx#MegabytesPerSecond", - "traits": { - "smithy.api#documentation": "

Sets the target value for a file system's throughput capacity, in MB/s, that you are updating the file system to. Valid values are \n 8, 16, 32, 64, 128, 256, 512, 1024, 2048. You cannot make a throughput capacity update request if there is an existing throughput capacity update request in progress. For more information, \n see Managing Throughput Capacity.

" - } + "smithy.api#pattern": "^[0-9a-zA-Z\\*\\.\\\\/\\?\\-\\_]*$" + } + }, + "com.amazonaws.fsx#VolumeFilterValues": { + "type": "list", + "member": { + "target": "com.amazonaws.fsx#VolumeFilterValue" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 20 + } + } + }, + "com.amazonaws.fsx#VolumeFilters": { + "type": "list", + "member": { + "target": "com.amazonaws.fsx#VolumeFilter" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 2 + } + } + }, + "com.amazonaws.fsx#VolumeId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 23, + "max": 23 }, - "SelfManagedActiveDirectoryConfiguration": { - "target": "com.amazonaws.fsx#SelfManagedActiveDirectoryConfigurationUpdates", - "traits": { - "smithy.api#documentation": "

The configuration Amazon FSx uses to join the Windows File Server instance to the\n self-managed Microsoft AD directory. You cannot make a self-managed Microsoft AD update request if there is an existing self-managed Microsoft AD update request in progress.

" + "smithy.api#pattern": "^(fsvol-[0-9a-f]{17,})$" + } + }, + "com.amazonaws.fsx#VolumeIds": { + "type": "list", + "member": { + "target": "com.amazonaws.fsx#VolumeId" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, + "com.amazonaws.fsx#VolumeLifecycle": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "CREATING", + "name": "CREATING" + }, + { + "value": "CREATED", + "name": "CREATED" + }, + { + "value": "DELETING", + "name": "DELETING" + }, + { + "value": "FAILED", + "name": "FAILED" + }, + { + "value": "MISCONFIGURED", + "name": "MISCONFIGURED" + }, + { + "value": "PENDING", + "name": "PENDING" } + ] + } + }, + "com.amazonaws.fsx#VolumeName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 203 }, - "AuditLogConfiguration": { - "target": "com.amazonaws.fsx#WindowsAuditLogCreateConfiguration", - "traits": { - "smithy.api#documentation": "

The configuration that Amazon FSx for Windows File Server uses to audit and log\n user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server\n file system..

" - } + "smithy.api#pattern": "^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{1,203}$" + } + }, + "com.amazonaws.fsx#VolumeNotFound": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.fsx#ErrorMessage" } }, "traits": { - "smithy.api#documentation": "

Updates the configuration for an existing Amazon FSx for Windows\n File Server file system. Amazon FSx only overwrites existing properties with non-null values\n provided in the request.

" + "smithy.api#documentation": "

No Amazon FSx for NetApp ONTAP volumes were found based upon the supplied parameters.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.fsx#VolumeType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ONTAP", + "name": "ONTAP" + } + ] + } + }, + "com.amazonaws.fsx#Volumes": { + "type": "list", + "member": { + "target": "com.amazonaws.fsx#Volume" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } } }, "com.amazonaws.fsx#VpcId": { @@ -4248,7 +6235,7 @@ "AuditLogDestination": { "target": "com.amazonaws.fsx#GeneralARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the destination of the audit logs.\n The destination can be any Amazon CloudWatch Logs log group ARN or\n Amazon Kinesis Data Firehose delivery stream ARN.

\n

The name of the Amazon CloudWatch Logs log group must begin with\n the /aws/fsx prefix. The name of the Amazon Kinesis Data\n Firehouse delivery stream must begin with the aws-fsx prefix.

\n

The destination ARN (either CloudWatch Logs log group or Kinesis\n Data Firehose delivery stream) must be in the same AWS partition,\n AWS region, and AWS account as your Amazon FSx file system.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the destination of the audit logs.\n The destination can be any Amazon CloudWatch Logs log group ARN or\n Amazon Kinesis Data Firehose delivery stream ARN.

\n

The name of the Amazon CloudWatch Logs log group must begin with\n the /aws/fsx prefix. The name of the Amazon Kinesis Data\n Firehouse delivery stream must begin with the aws-fsx prefix.

\n

The destination ARN (either CloudWatch Logs log group or Kinesis\n Data Firehose delivery stream) must be in the same Amazon Web Services partition,\n Amazon Web Services Region, and Amazon Web Services account as your Amazon FSx file system.

" } } }, @@ -4276,7 +6263,7 @@ "AuditLogDestination": { "target": "com.amazonaws.fsx#GeneralARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) that specifies the destination of the audit logs.

\n

The destination can be any Amazon CloudWatch Logs log group ARN or Amazon Kinesis\n Data Firehose delivery stream ARN, with the following requirements:

\n " + "smithy.api#documentation": "

The Amazon Resource Name (ARN) that specifies the destination of the audit logs.

\n

The destination can be any Amazon CloudWatch Logs log group ARN or Amazon Kinesis\n Data Firehose delivery stream ARN, with the following requirements:

\n " } } }, @@ -4309,7 +6296,7 @@ "ActiveDirectoryId": { "target": "com.amazonaws.fsx#DirectoryId", "traits": { - "smithy.api#documentation": "

The ID for an existing AWS Managed Microsoft Active Directory instance that the file system is joined to.

" + "smithy.api#documentation": "

The ID for an existing Amazon Web Services Managed Microsoft Active Directory instance that the file system is joined to.

" } }, "SelfManagedActiveDirectoryConfiguration": { diff --git a/codegen/sdk-codegen/aws-models/iot.2015-05-28.json b/codegen/sdk-codegen/aws-models/iot.2015-05-28.json index 08c723c52f3..a35b641ee57 100644 --- a/codegen/sdk-codegen/aws-models/iot.2015-05-28.json +++ b/codegen/sdk-codegen/aws-models/iot.2015-05-28.json @@ -105,6 +105,9 @@ { "target": "com.amazonaws.iot#CreateDynamicThingGroup" }, + { + "target": "com.amazonaws.iot#CreateFleetMetric" + }, { "target": "com.amazonaws.iot#CreateJob" }, @@ -192,6 +195,9 @@ { "target": "com.amazonaws.iot#DeleteDynamicThingGroup" }, + { + "target": "com.amazonaws.iot#DeleteFleetMetric" + }, { "target": "com.amazonaws.iot#DeleteJob" }, @@ -303,6 +309,9 @@ { "target": "com.amazonaws.iot#DescribeEventConfigurations" }, + { + "target": "com.amazonaws.iot#DescribeFleetMetric" + }, { "target": "com.amazonaws.iot#DescribeIndex" }, @@ -369,6 +378,9 @@ { "target": "com.amazonaws.iot#GetBehaviorModelTrainingSummaries" }, + { + "target": "com.amazonaws.iot#GetBucketsAggregation" + }, { "target": "com.amazonaws.iot#GetCardinality" }, @@ -462,6 +474,9 @@ { "target": "com.amazonaws.iot#ListDomainConfigurations" }, + { + "target": "com.amazonaws.iot#ListFleetMetrics" + }, { "target": "com.amazonaws.iot#ListIndices" }, @@ -675,6 +690,9 @@ { "target": "com.amazonaws.iot#UpdateEventConfigurations" }, + { + "target": "com.amazonaws.iot#UpdateFleetMetric" + }, { "target": "com.amazonaws.iot#UpdateIndexingConfiguration" }, @@ -727,7 +745,7 @@ "name": "execute-api" }, "aws.protocols#restJson1": {}, - "smithy.api#documentation": "AWS IoT\n

AWS IoT provides secure, bi-directional communication between Internet-connected\n devices (such as sensors, actuators, embedded devices, or smart appliances) and the AWS\n cloud. You can discover your custom IoT-Data endpoint to communicate with, configure\n rules for data processing and integration with other services, organize resources\n associated with each device (Registry), configure logging, and create and manage\n policies and credentials to authenticate devices.

\n

The service endpoints that expose this API are listed in\n AWS IoT Core Endpoints and Quotas.\n You must use the endpoint for the region that has the resources you want to access.

\n

The service name used by AWS\n Signature Version 4 to sign the request is:\n execute-api.

\n

For more information about how AWS IoT works, see the Developer\n Guide.

\n

For information about how to use the credentials provider for AWS IoT, see Authorizing Direct Calls to AWS Services.

", + "smithy.api#documentation": "IoT\n

IoT provides secure, bi-directional communication between Internet-connected\n devices (such as sensors, actuators, embedded devices, or smart appliances) and the Amazon Web Services\n cloud. You can discover your custom IoT-Data endpoint to communicate with, configure\n rules for data processing and integration with other services, organize resources\n associated with each device (Registry), configure logging, and create and manage\n policies and credentials to authenticate devices.

\n

The service endpoints that expose this API are listed in\n Amazon Web Services IoT Core Endpoints and Quotas.\n You must use the endpoint for the region that has the resources you want to access.

\n

The service name used by Amazon Web Services\n Signature Version 4 to sign the request is:\n execute-api.

\n

For more information about how IoT works, see the Developer\n Guide.

\n

For information about how to use the credentials provider for IoT, see Authorizing Direct Calls to Amazon Web Services Services.

", "smithy.api#title": "AWS IoT" } }, @@ -777,7 +795,7 @@ "thresholdPercentage": { "target": "com.amazonaws.iot#AbortThresholdPercentage", "traits": { - "smithy.api#documentation": "

The minimum percentage of job execution failures that must occur to initiate the job abort.

\n

AWS IoT supports up to two digits after the decimal (for example, 10.9 and 10.99, but not 10.999).

", + "smithy.api#documentation": "

The minimum percentage of job execution failures that must occur to initiate the job abort.

\n

Amazon Web Services IoT Core supports up to two digits after the decimal (for example, 10.9 and 10.99, but not 10.999).

", "smithy.api#required": {} } }, @@ -842,7 +860,7 @@ } ], "traits": { - "smithy.api#documentation": "

Accepts a pending certificate transfer. The default state of the certificate is\n INACTIVE.

\n

To check for pending certificate transfers, call ListCertificates\n to enumerate your certificates.

", + "smithy.api#documentation": "

Accepts a pending certificate transfer. The default state of the certificate is\n INACTIVE.

\n

To check for pending certificate transfers, call ListCertificates\n to enumerate your certificates.

\n

Requires permission to access the AcceptCertificateTransfer action.

", "smithy.api#http": { "method": "PATCH", "uri": "/accept-certificate-transfer/{certificateId}", @@ -973,19 +991,19 @@ "iotAnalytics": { "target": "com.amazonaws.iot#IotAnalyticsAction", "traits": { - "smithy.api#documentation": "

Sends message data to an AWS IoT Analytics channel.

" + "smithy.api#documentation": "

Sends message data to an IoT Analytics channel.

" } }, "iotEvents": { "target": "com.amazonaws.iot#IotEventsAction", "traits": { - "smithy.api#documentation": "

Sends an input to an AWS IoT Events detector.

" + "smithy.api#documentation": "

Sends an input to an IoT Events detector.

" } }, "iotSiteWise": { "target": "com.amazonaws.iot#IotSiteWiseAction", "traits": { - "smithy.api#documentation": "

Sends data from the MQTT message that triggered the rule to AWS IoT SiteWise asset\n properties.

" + "smithy.api#documentation": "

Sends data from the MQTT message that triggered the rule to IoT SiteWise asset\n properties.

" } }, "stepFunctions": { @@ -1137,7 +1155,7 @@ } ], "traits": { - "smithy.api#documentation": "

Adds a thing to a billing group.

", + "smithy.api#documentation": "

Adds a thing to a billing group.

\n\t\t

Requires permission to access the AddThingToBillingGroup action.

", "smithy.api#http": { "method": "PUT", "uri": "/billing-groups/addThingToBillingGroup", @@ -1201,7 +1219,7 @@ } ], "traits": { - "smithy.api#documentation": "

Adds a thing to a thing group.

", + "smithy.api#documentation": "

Adds a thing to a thing group.

\n\t\t

Requires permission to access the AddThingToThingGroup action.

", "smithy.api#http": { "method": "PUT", "uri": "/thing-groups/addThingToThingGroup", @@ -1298,6 +1316,62 @@ } } }, + "com.amazonaws.iot#AggregationType": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.iot#AggregationTypeName", + "traits": { + "smithy.api#documentation": "

The name of the aggregation type.

", + "smithy.api#required": {} + } + }, + "values": { + "target": "com.amazonaws.iot#AggregationTypeValues", + "traits": { + "smithy.api#documentation": "

A list of the values of aggregation types.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The type of aggregation queries.

" + } + }, + "com.amazonaws.iot#AggregationTypeName": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "Statistics", + "name": "STATISTICS" + }, + { + "value": "Percentiles", + "name": "PERCENTILES" + }, + { + "value": "Cardinality", + "name": "CARDINALITY" + } + ] + } + }, + "com.amazonaws.iot#AggregationTypeValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 12 + }, + "smithy.api#pattern": "^[a-zA-Z0-9]+$" + } + }, + "com.amazonaws.iot#AggregationTypeValues": { + "type": "list", + "member": { + "target": "com.amazonaws.iot#AggregationTypeValue" + } + }, "com.amazonaws.iot#AlarmName": { "type": "string" }, @@ -1538,7 +1612,7 @@ } ], "traits": { - "smithy.api#documentation": "

Associates a group with a continuous job. The following criteria must be met:

\n ", + "smithy.api#documentation": "

Associates a group with a continuous job. The following criteria must be met:

\n \n

Requires permission to access the AssociateTargetsWithJob action.

", "smithy.api#http": { "method": "POST", "uri": "/jobs/{jobId}/targets", @@ -1573,7 +1647,7 @@ "namespaceId": { "target": "com.amazonaws.iot#NamespaceId", "traits": { - "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, AWS IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is in public preview.

\n
", + "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is in public preview.

\n
", "smithy.api#httpQuery": "namespaceId" } } @@ -1631,7 +1705,7 @@ } ], "traits": { - "smithy.api#documentation": "

Attaches the specified policy to the specified principal (certificate or other\n credential).

", + "smithy.api#documentation": "

Attaches the specified policy to the specified principal (certificate or other\n credential).

\n

Requires permission to access the AttachPolicy action.

", "smithy.api#http": { "method": "PUT", "uri": "/target-policies/{policyName}", @@ -1689,7 +1763,7 @@ ], "traits": { "smithy.api#deprecated": {}, - "smithy.api#documentation": "

Attaches the specified policy to the specified principal (certificate or other\n credential).

\n

\n Note: This API is deprecated. Please use AttachPolicy instead.

", + "smithy.api#documentation": "

Attaches the specified policy to the specified principal (certificate or other\n credential).

\n

\n Note: This action is deprecated. Please use AttachPolicy instead.

\n

Requires permission to access the AttachPrincipalPolicy action.

", "smithy.api#http": { "method": "PUT", "uri": "/principal-policies/{policyName}", @@ -1750,7 +1824,7 @@ } ], "traits": { - "smithy.api#documentation": "

Associates a Device Defender security profile with a thing group or this account. Each \n thing group or account can have up to five security profiles associated with it.

", + "smithy.api#documentation": "

Associates a Device Defender security profile with a thing group or this account. Each \n thing group or account can have up to five security profiles associated with it.

\n

Requires permission to access the AttachSecurityProfile action.

", "smithy.api#http": { "method": "PUT", "uri": "/security-profiles/{securityProfileName}/targets", @@ -1812,7 +1886,7 @@ } ], "traits": { - "smithy.api#documentation": "

Attaches the specified principal to the specified thing. A principal can be X.509\n\t\t\tcertificates, IAM users, groups, and roles, Amazon Cognito identities or federated\n\t\t\tidentities.

", + "smithy.api#documentation": "

Attaches the specified principal to the specified thing. A principal can be X.509\n\t\t\tcertificates, IAM users, groups, and roles, Amazon Cognito identities or federated\n\t\t\tidentities.

\n\t\t

Requires permission to access the AttachThingPrincipal action.

", "smithy.api#http": { "method": "PUT", "uri": "/things/{thingName}/principals", @@ -2724,7 +2798,7 @@ "signingDisabled": { "target": "com.amazonaws.iot#BooleanKey", "traits": { - "smithy.api#documentation": "

Specifies whether AWS IoT validates the token signature in an authorization request.

" + "smithy.api#documentation": "

Specifies whether IoT validates the token signature in an authorization request.

" } } }, @@ -2867,7 +2941,7 @@ "thresholdPercentage": { "target": "com.amazonaws.iot#AwsJobAbortCriteriaAbortThresholdPercentage", "traits": { - "smithy.api#documentation": "

The minimum percentage of job execution failures that must occur to initiate the job abort.

\n

AWS IoT supports up to two digits after the decimal (for example, 10.9 and 10.99, but not 10.999).

", + "smithy.api#documentation": "

The minimum percentage of job execution failures that must occur to initiate the job abort.

\n

Amazon Web Services IoT Core supports up to two digits after the decimal (for example, 10.9 and 10.99, but not 10.999).

", "smithy.api#required": {} } }, @@ -2986,7 +3060,7 @@ "rateIncreaseCriteria": { "target": "com.amazonaws.iot#AwsJobRateIncreaseCriteria", "traits": { - "smithy.api#documentation": "

The criteria to initiate the increase in rate of rollout for a job.

\n

AWS IoT supports up to one digit after the decimal (for example, 1.5, but not 1.55).

", + "smithy.api#documentation": "

The criteria to initiate the increase in rate of rollout for a job.

\n

Amazon Web Services IoT Core supports up to one digit after the decimal (for example, 1.5, but not 1.55).

", "smithy.api#required": {} } } @@ -3336,9 +3410,52 @@ "smithy.api#box": {} } }, + "com.amazonaws.iot#Bucket": { + "type": "structure", + "members": { + "keyValue": { + "target": "com.amazonaws.iot#BucketKeyValue", + "traits": { + "smithy.api#documentation": "

The value counted for the particular bucket.

" + } + }, + "count": { + "target": "com.amazonaws.iot#Count", + "traits": { + "smithy.api#documentation": "

The number of documents that have the value counted for the particular bucket.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A count of documents that meets a specific aggregation criteria.

" + } + }, + "com.amazonaws.iot#BucketKeyValue": { + "type": "string" + }, "com.amazonaws.iot#BucketName": { "type": "string" }, + "com.amazonaws.iot#Buckets": { + "type": "list", + "member": { + "target": "com.amazonaws.iot#Bucket" + } + }, + "com.amazonaws.iot#BucketsAggregationType": { + "type": "structure", + "members": { + "termsAggregation": { + "target": "com.amazonaws.iot#TermsAggregation", + "traits": { + "smithy.api#documentation": "

Performs an aggregation that will return a list of buckets. The list of buckets is a ranked list of the number of occurrences of an aggregation field value.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The type of bucketed aggregation performed.

" + } + }, "com.amazonaws.iot#CACertificate": { "type": "structure", "members": { @@ -3500,7 +3617,7 @@ } ], "traits": { - "smithy.api#documentation": "

Cancels a mitigation action task that is in progress. If the task\n is not\n in progress, an InvalidRequestException occurs.

", + "smithy.api#documentation": "

Cancels a mitigation action task that is in progress. If the task\n is not\n in progress, an InvalidRequestException occurs.

\n

Requires permission to access the CancelAuditMitigationActionsTask action.

", "smithy.api#http": { "method": "PUT", "uri": "/audit/mitigationactions/tasks/{taskId}/cancel", @@ -3548,7 +3665,7 @@ } ], "traits": { - "smithy.api#documentation": "

Cancels an audit that is in progress. The audit can be either scheduled or on demand. If the audit isn't in progress, an \"InvalidRequestException\" occurs.

", + "smithy.api#documentation": "

Cancels an audit that is in progress. The audit can be either scheduled or on demand. If the audit isn't in progress, an \"InvalidRequestException\" occurs.

\n

Requires permission to access the CancelAuditTask action.

", "smithy.api#http": { "method": "PUT", "uri": "/audit/tasks/{taskId}/cancel", @@ -3602,7 +3719,7 @@ } ], "traits": { - "smithy.api#documentation": "

Cancels a pending transfer for the specified certificate.

\n

\n Note Only the transfer source account can use this\n operation to cancel a transfer. (Transfer destinations can use RejectCertificateTransfer instead.) After transfer, AWS IoT returns the\n certificate to the source account in the INACTIVE state. After the destination account has\n accepted the transfer, the transfer cannot be cancelled.

\n

After a certificate transfer is cancelled, the status of the certificate changes from\n PENDING_TRANSFER to INACTIVE.

", + "smithy.api#documentation": "

Cancels a pending transfer for the specified certificate.

\n

\n Note Only the transfer source account can use this\n operation to cancel a transfer. (Transfer destinations can use RejectCertificateTransfer instead.) After transfer, IoT returns the\n certificate to the source account in the INACTIVE state. After the destination account has\n accepted the transfer, the transfer cannot be cancelled.

\n

After a certificate transfer is cancelled, the status of the certificate changes from\n PENDING_TRANSFER to INACTIVE.

\n

Requires permission to access the CancelCertificateTransfer action.

", "smithy.api#http": { "method": "PATCH", "uri": "/cancel-certificate-transfer/{certificateId}", @@ -3649,7 +3766,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n Cancels a Device Defender ML Detect mitigation action.\n

", + "smithy.api#documentation": "

\n Cancels a Device Defender ML Detect mitigation action.\n

\n

Requires permission to access the CancelDetectMitigationActionsTask action.

", "smithy.api#http": { "method": "PUT", "uri": "/detect/mitigationactions/tasks/{taskId}/cancel", @@ -3697,7 +3814,7 @@ } ], "traits": { - "smithy.api#documentation": "

Cancels a job.

", + "smithy.api#documentation": "

Cancels a job.

\n

Requires permission to access the CancelJob action.

", "smithy.api#http": { "method": "PUT", "uri": "/jobs/{jobId}/cancel", @@ -3731,7 +3848,7 @@ } ], "traits": { - "smithy.api#documentation": "

Cancels the execution of a job for a given thing.

", + "smithy.api#documentation": "

Cancels the execution of a job for a given thing.

\n

Requires permission to access the CancelJobExecution action.

", "smithy.api#http": { "method": "PUT", "uri": "/things/{thingName}/jobs/{jobId}/cancel", @@ -3984,13 +4101,13 @@ "ownedBy": { "target": "com.amazonaws.iot#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the AWS account that owns the certificate.

" + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the certificate.

" } }, "previousOwnedBy": { "target": "com.amazonaws.iot#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the AWS account of the previous owner of the certificate.

" + "smithy.api#documentation": "

The ID of the Amazon Web Services account of the previous owner of the certificate.

" } }, "creationDate": { @@ -4232,7 +4349,7 @@ } ], "traits": { - "smithy.api#documentation": "

Clears the default authorizer.

", + "smithy.api#documentation": "

Clears the default authorizer.

\n

Requires permission to access the ClearDefaultAuthorizer action.

", "smithy.api#http": { "method": "DELETE", "uri": "/default-authorizer", @@ -4386,7 +4503,7 @@ "awsSignerJobId": { "target": "com.amazonaws.iot#SigningJobId", "traits": { - "smithy.api#documentation": "

The ID of the AWSSignerJob which was created to sign the file.

" + "smithy.api#documentation": "

The ID of the AWSSignerJob which was created to sign the file.

" } }, "startSigningJobParameter": { @@ -4565,7 +4682,7 @@ } ], "traits": { - "smithy.api#documentation": "

Confirms a topic rule destination. When you create a rule requiring a destination, AWS\n IoT sends a confirmation message to the endpoint or base address you specify. The message\n includes a token which you pass back when calling ConfirmTopicRuleDestination\n to confirm that you own or have access to the endpoint.

", + "smithy.api#documentation": "

Confirms a topic rule destination. When you create a rule requiring a destination, IoT\n sends a confirmation message to the endpoint or base address you specify. The message\n includes a token which you pass back when calling ConfirmTopicRuleDestination\n to confirm that you own or have access to the endpoint.

\n

Requires permission to access the ConfirmTopicRuleDestination action.

", "smithy.api#http": { "method": "GET", "uri": "/confirmdestination/{confirmationToken+}", @@ -4683,7 +4800,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n Creates a Device Defender audit suppression.\n

", + "smithy.api#documentation": "

\n Creates a Device Defender audit suppression.\n

\n

Requires permission to access the CreateAuditSuppression action.

", "smithy.api#http": { "method": "POST", "uri": "/audit/suppressions/create", @@ -4770,7 +4887,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates an authorizer.

", + "smithy.api#documentation": "

Creates an authorizer.

\n

Requires permission to access the CreateAuthorizer action.

", "smithy.api#http": { "method": "POST", "uri": "/authorizer/{authorizerName}", @@ -4823,7 +4940,7 @@ "signingDisabled": { "target": "com.amazonaws.iot#BooleanKey", "traits": { - "smithy.api#documentation": "

Specifies whether AWS IoT validates the token signature in an authorization request.

" + "smithy.api#documentation": "

Specifies whether IoT validates the token signature in an authorization request.

" } } } @@ -4868,7 +4985,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a billing group.

", + "smithy.api#documentation": "

Creates a billing group.

\n\t\t

Requires permission to access the CreateBillingGroup action.

", "smithy.api#http": { "method": "POST", "uri": "/billing-groups/{billingGroupName}", @@ -4950,7 +5067,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates an X.509 certificate using the specified certificate signing\n request.

\n

\n Note: The CSR must include a public key that is either an\n RSA key with a length of at least 2048 bits or an ECC key from NIST P-256 or NIST P-384\n curves.

\n

\n Note: Reusing the same certificate signing request (CSR)\n results in a distinct certificate.

\n

You can create multiple certificates in a batch by creating a directory, copying\n multiple .csr files into that directory, and then specifying that directory on the command\n line. The following commands show how to create a batch of certificates given a batch of\n CSRs.

\n

Assuming a set of CSRs are located inside of the directory\n my-csr-directory:

\n\n

On Linux and OS X, the command is:

\n\n

$ ls my-csr-directory/ | xargs -I {} aws iot create-certificate-from-csr\n --certificate-signing-request file://my-csr-directory/{}

\n

This command lists all of the CSRs in my-csr-directory and pipes each CSR file name\n to the aws iot create-certificate-from-csr AWS CLI command to create a certificate for the\n corresponding CSR.

\n

The aws iot create-certificate-from-csr part of the command can also be run in\n parallel to speed up the certificate creation process:

\n

$ ls my-csr-directory/ | xargs -P 10 -I {} aws iot create-certificate-from-csr\n --certificate-signing-request file://my-csr-directory/{}

\n

On Windows PowerShell, the command to create certificates for all CSRs in\n my-csr-directory is:

\n

> ls -Name my-csr-directory | %{aws iot create-certificate-from-csr\n --certificate-signing-request file://my-csr-directory/$_}

\n

On a Windows command prompt, the command to create certificates for all CSRs in\n my-csr-directory is:

\n

> forfiles /p my-csr-directory /c \"cmd /c aws iot create-certificate-from-csr\n --certificate-signing-request file://@path\"

", + "smithy.api#documentation": "

Creates an X.509 certificate using the specified certificate signing\n request.

\n

\n Note: The CSR must include a public key that is either an\n RSA key with a length of at least 2048 bits or an ECC key from NIST P-256 or NIST P-384\n curves.

\n

\n Note: Reusing the same certificate signing request (CSR)\n results in a distinct certificate.

\n

Requires permission to access the CreateCertificateFromCsr action.

\n \n

You can create multiple certificates in a batch by creating a directory, copying\n multiple .csr files into that directory, and then specifying that directory on the command\n line. The following commands show how to create a batch of certificates given a batch of\n CSRs.

\n

Assuming a set of CSRs are located inside of the directory\n my-csr-directory:

\n\n

On Linux and OS X, the command is:

\n\n

$ ls my-csr-directory/ | xargs -I {} aws iot create-certificate-from-csr\n --certificate-signing-request file://my-csr-directory/{}

\n

This command lists all of the CSRs in my-csr-directory and pipes each CSR file name\n to the aws iot create-certificate-from-csr Amazon Web Services CLI command to create a certificate for the\n corresponding CSR.

\n

The aws iot create-certificate-from-csr part of the command can also be run in\n parallel to speed up the certificate creation process:

\n

$ ls my-csr-directory/ | xargs -P 10 -I {} aws iot create-certificate-from-csr\n --certificate-signing-request file://my-csr-directory/{}

\n

On Windows PowerShell, the command to create certificates for all CSRs in\n my-csr-directory is:

\n

> ls -Name my-csr-directory | %{aws iot create-certificate-from-csr\n --certificate-signing-request file://my-csr-directory/$_}

\n

On a Windows command prompt, the command to create certificates for all CSRs in\n my-csr-directory is:

\n

> forfiles /p my-csr-directory /c \"cmd /c aws iot create-certificate-from-csr\n --certificate-signing-request file://@path\"

", "smithy.api#http": { "method": "POST", "uri": "/certificates", @@ -5032,7 +5149,7 @@ } ], "traits": { - "smithy.api#documentation": "

Use this API to define a\n Custom\n Metric\n published by your devices to Device Defender.

", + "smithy.api#documentation": "

Use this API to define a\n Custom\n Metric\n published by your devices to Device Defender.

\n

Requires permission to access the CreateCustomMetric action.

", "smithy.api#http": { "method": "POST", "uri": "/custom-metric/{metricName}", @@ -5073,7 +5190,7 @@ "clientRequestToken": { "target": "com.amazonaws.iot#ClientRequestToken", "traits": { - "smithy.api#documentation": "

Each custom\n metric must have a unique client request token. If you try to create a new custom metric that\n already exists with a different token,\n an exception\n occurs. If you omit this value, AWS SDKs will automatically generate a unique client request.

", + "smithy.api#documentation": "

Each custom\n metric must have a unique client request token. If you try to create a new custom metric that\n already exists with a different token,\n an exception\n occurs. If you omit this value, Amazon Web Services SDKs will automatically generate a unique client request.

", "smithy.api#idempotencyToken": {}, "smithy.api#required": {} } @@ -5123,7 +5240,7 @@ } ], "traits": { - "smithy.api#documentation": "

Create a dimension that you can use to limit the scope of a metric used in a security profile for AWS IoT Device Defender. For example, using a TOPIC_FILTER dimension, you can narrow down the scope of the metric only to MQTT topics whose name match the pattern specified in the dimension.

", + "smithy.api#documentation": "

Create a dimension that you can use to limit the scope of a metric used in a security profile for IoT Device Defender. \n For example, using a TOPIC_FILTER dimension, you can narrow down the scope of the metric only to MQTT topics whose name match the pattern specified in the dimension.

\n

Requires permission to access the CreateDimension action.

", "smithy.api#http": { "method": "POST", "uri": "/dimensions/{name}", @@ -5165,7 +5282,7 @@ "clientRequestToken": { "target": "com.amazonaws.iot#ClientRequestToken", "traits": { - "smithy.api#documentation": "

Each dimension must have a unique client request token. If you try to create a new dimension with the same token as a dimension that already exists, an exception occurs. If you omit this value, AWS SDKs will automatically generate a unique client request.

", + "smithy.api#documentation": "

Each dimension must have a unique client request token. If you try to create a new dimension with the same token as a dimension that already exists, an exception occurs. \n If you omit this value, Amazon Web Services SDKs will automatically generate a unique client request.

", "smithy.api#idempotencyToken": {}, "smithy.api#required": {} } @@ -5224,7 +5341,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a domain configuration.

", + "smithy.api#documentation": "

Creates a domain configuration.

\n

Requires permission to access the CreateDomainConfiguration action.

", "smithy.api#http": { "method": "POST", "uri": "/domainConfigurations/{domainConfigurationName}", @@ -5252,13 +5369,13 @@ "serverCertificateArns": { "target": "com.amazonaws.iot#ServerCertificateArns", "traits": { - "smithy.api#documentation": "

The ARNs of the certificates that AWS IoT passes to the device during the TLS handshake. Currently you can specify only one certificate ARN. \n This value is not required for AWS-managed domains.

" + "smithy.api#documentation": "

The ARNs of the certificates that IoT passes to the device during the TLS handshake. Currently you can specify only one certificate ARN. \n This value is not required for Amazon Web Services-managed domains.

" } }, "validationCertificateArn": { "target": "com.amazonaws.iot#AcmCertificateArn", "traits": { - "smithy.api#documentation": "

The certificate used to validate the server certificate and prove domain name ownership. This certificate must be signed by a public certificate authority. \n This value is not required for AWS-managed domains.

" + "smithy.api#documentation": "

The certificate used to validate the server certificate and prove domain name ownership. This certificate must be signed by a public certificate authority. \n This value is not required for Amazon Web Services-managed domains.

" } }, "authorizerConfig": { @@ -5270,7 +5387,7 @@ "serviceType": { "target": "com.amazonaws.iot#ServiceType", "traits": { - "smithy.api#documentation": "

The type of service delivered by the endpoint.

\n \n

AWS IoT Core currently supports only the DATA service type.

\n
" + "smithy.api#documentation": "

The type of service delivered by the endpoint.

\n \n

Amazon Web Services IoT Core currently supports only the DATA service type.

\n
" } }, "tags": { @@ -5330,7 +5447,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a dynamic thing group.

", + "smithy.api#documentation": "

Creates a dynamic thing group.

\n\t\t

Requires permission to access the CreateDynamicThingGroup action.

", "smithy.api#http": { "method": "POST", "uri": "/dynamic-thing-groups/{thingGroupName}", @@ -5358,7 +5475,7 @@ "indexName": { "target": "com.amazonaws.iot#IndexName", "traits": { - "smithy.api#documentation": "

The dynamic thing group index name.

\n\t\t \n\t\t\t

Currently one index is supported: \"AWS_Things\".

\n\t\t
" + "smithy.api#documentation": "

The dynamic thing group index name.

\n\t\t \n\t\t\t

Currently one index is supported: AWS_Things.

\n\t\t
" } }, "queryString": { @@ -5423,6 +5540,146 @@ } } }, + "com.amazonaws.iot#CreateFleetMetric": { + "type": "operation", + "input": { + "target": "com.amazonaws.iot#CreateFleetMetricRequest" + }, + "output": { + "target": "com.amazonaws.iot#CreateFleetMetricResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iot#IndexNotReadyException" + }, + { + "target": "com.amazonaws.iot#InternalFailureException" + }, + { + "target": "com.amazonaws.iot#InvalidAggregationException" + }, + { + "target": "com.amazonaws.iot#InvalidQueryException" + }, + { + "target": "com.amazonaws.iot#InvalidRequestException" + }, + { + "target": "com.amazonaws.iot#LimitExceededException" + }, + { + "target": "com.amazonaws.iot#ResourceAlreadyExistsException" + }, + { + "target": "com.amazonaws.iot#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.iot#ServiceUnavailableException" + }, + { + "target": "com.amazonaws.iot#ThrottlingException" + }, + { + "target": "com.amazonaws.iot#UnauthorizedException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a fleet metric.

\n

Requires permission to access the CreateFleetMetric action.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/fleet-metric/{metricName}", + "code": 200 + } + } + }, + "com.amazonaws.iot#CreateFleetMetricRequest": { + "type": "structure", + "members": { + "metricName": { + "target": "com.amazonaws.iot#FleetMetricName", + "traits": { + "smithy.api#documentation": "

The name of the fleet metric to create.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "queryString": { + "target": "com.amazonaws.iot#QueryString", + "traits": { + "smithy.api#documentation": "

The search query string.

", + "smithy.api#required": {} + } + }, + "aggregationType": { + "target": "com.amazonaws.iot#AggregationType", + "traits": { + "smithy.api#documentation": "

The type of the aggregation query.

", + "smithy.api#required": {} + } + }, + "period": { + "target": "com.amazonaws.iot#FleetMetricPeriod", + "traits": { + "smithy.api#documentation": "

The time in seconds between fleet metric emissions. Range [60(1 min), 86400(1 day)] and must be multiple of 60.

", + "smithy.api#required": {} + } + }, + "aggregationField": { + "target": "com.amazonaws.iot#AggregationField", + "traits": { + "smithy.api#documentation": "

The field to aggregate.

", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.iot#FleetMetricDescription", + "traits": { + "smithy.api#documentation": "

The fleet metric description.

" + } + }, + "queryVersion": { + "target": "com.amazonaws.iot#QueryVersion", + "traits": { + "smithy.api#documentation": "

The query version.

" + } + }, + "indexName": { + "target": "com.amazonaws.iot#IndexName", + "traits": { + "smithy.api#documentation": "

The name of the index to search.

" + } + }, + "unit": { + "target": "com.amazonaws.iot#FleetMetricUnit", + "traits": { + "smithy.api#documentation": "

Used to support unit transformation such as milliseconds to seconds. The unit must be\n supported by CW metric. Default to null.

" + } + }, + "tags": { + "target": "com.amazonaws.iot#TagList", + "traits": { + "smithy.api#documentation": "

Metadata, which can be used to manage the fleet metric.

" + } + } + } + }, + "com.amazonaws.iot#CreateFleetMetricResponse": { + "type": "structure", + "members": { + "metricName": { + "target": "com.amazonaws.iot#FleetMetricName", + "traits": { + "smithy.api#documentation": "

The name of the fleet metric to create.

" + } + }, + "metricArn": { + "target": "com.amazonaws.iot#FleetMetricArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the new fleet metric.

" + } + } + } + }, "com.amazonaws.iot#CreateJob": { "type": "operation", "input": { @@ -5452,7 +5709,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a job.

", + "smithy.api#documentation": "

Creates a job.

\n

Requires permission to access the CreateJob action.

", "smithy.api#http": { "method": "PUT", "uri": "/jobs/{jobId}", @@ -5466,7 +5723,7 @@ "jobId": { "target": "com.amazonaws.iot#JobId", "traits": { - "smithy.api#documentation": "

A job identifier which must be unique for your AWS account. We recommend using a UUID. Alpha-numeric\n characters, \"-\" and \"_\" are valid for use here.

", + "smithy.api#documentation": "

A job identifier which must be unique for your Amazon Web Services account. We recommend using a UUID. Alpha-numeric\n characters, \"-\" and \"_\" are valid for use here.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -5535,7 +5792,7 @@ "namespaceId": { "target": "com.amazonaws.iot#NamespaceId", "traits": { - "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, AWS IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is in public preview.

\n
" + "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is in public preview.

\n
" } }, "jobTemplateArn": { @@ -5598,7 +5855,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a job template.

", + "smithy.api#documentation": "

Creates a job template.

\n

Requires permission to access the CreateJobTemplate action.

", "smithy.api#http": { "method": "PUT", "uri": "/job-templates/{jobTemplateId}", @@ -5705,7 +5962,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a 2048-bit RSA key pair and issues an X.509 certificate using the issued\n public key. You can also call CreateKeysAndCertificate over MQTT from a\n device, for more information, see Provisioning MQTT API.

\n

\n Note This is the only time AWS IoT issues the private key\n for this certificate, so it is important to keep it in a secure location.

", + "smithy.api#documentation": "

Creates a 2048-bit RSA key pair and issues an X.509 certificate using the issued\n public key. You can also call CreateKeysAndCertificate over MQTT from a\n device, for more information, see Provisioning MQTT API.

\n

\n Note This is the only time IoT issues the private key\n for this certificate, so it is important to keep it in a secure location.

\n

Requires permission to access the CreateKeysAndCertificate action.

", "smithy.api#http": { "method": "POST", "uri": "/keys-and-certificate", @@ -5725,7 +5982,7 @@ } }, "traits": { - "smithy.api#documentation": "

The input for the CreateKeysAndCertificate operation.

" + "smithy.api#documentation": "

The input for the CreateKeysAndCertificate operation.

\n

Requires permission to access the CreateKeysAndCertificateRequest action.

" } }, "com.amazonaws.iot#CreateKeysAndCertificateResponse": { @@ -5740,7 +5997,7 @@ "certificateId": { "target": "com.amazonaws.iot#CertificateId", "traits": { - "smithy.api#documentation": "

The ID of the certificate. AWS IoT issues a default subject name for the certificate\n (for example, AWS IoT Certificate).

" + "smithy.api#documentation": "

The ID of the certificate. IoT issues a default subject name for the certificate\n (for example, IoT Certificate).

" } }, "certificatePem": { @@ -5786,7 +6043,7 @@ } ], "traits": { - "smithy.api#documentation": "

Defines an action that can be applied to audit findings by using StartAuditMitigationActionsTask. Only certain types of mitigation actions can be applied to specific check names. For more information, see Mitigation actions. Each mitigation action can apply only one type of change.

", + "smithy.api#documentation": "

Defines an action that can be applied to audit findings by using StartAuditMitigationActionsTask. Only certain types of mitigation actions can be applied to specific check names. \n For more information, see Mitigation actions. Each mitigation action can apply only one type of change.

\n

Requires permission to access the CreateMitigationAction action.

", "smithy.api#http": { "method": "POST", "uri": "/mitigationactions/actions/{actionName}", @@ -5879,7 +6136,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates an AWS IoT OTAUpdate on a target group of things or groups.

", + "smithy.api#documentation": "

Creates an IoT OTA update on a target group of things or groups.

\n

Requires permission to access the CreateOTAUpdate action.

", "smithy.api#http": { "method": "POST", "uri": "/otaUpdates/{otaUpdateId}", @@ -5957,7 +6214,7 @@ "roleArn": { "target": "com.amazonaws.iot#RoleArn", "traits": { - "smithy.api#documentation": "

The IAM role that grants AWS IoT access to the Amazon S3, AWS IoT jobs and AWS Code Signing resources \n to create an OTA update job.

", + "smithy.api#documentation": "

The IAM role that grants Amazon Web Services IoT Core access to the Amazon S3, IoT jobs and Amazon Web Services Code Signing resources \n to create an OTA update job.

", "smithy.api#required": {} } }, @@ -5987,7 +6244,7 @@ "awsIotJobId": { "target": "com.amazonaws.iot#AwsIotJobId", "traits": { - "smithy.api#documentation": "

The AWS IoT job ID associated with the OTA update.

" + "smithy.api#documentation": "

The IoT job ID associated with the OTA update.

" } }, "otaUpdateArn": { @@ -5999,7 +6256,7 @@ "awsIotJobArn": { "target": "com.amazonaws.iot#AwsIotJobArn", "traits": { - "smithy.api#documentation": "

The AWS IoT job ARN associated with the OTA update.

" + "smithy.api#documentation": "

The IoT job ARN associated with the OTA update.

" } }, "otaUpdateStatus": { @@ -6042,7 +6299,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates an AWS IoT policy.

\n

The created policy is the default version for the policy. This operation creates a\n policy version with a version identifier of 1 and sets\n 1 as the policy's default version.

", + "smithy.api#documentation": "

Creates an IoT policy.

\n

The created policy is the default version for the policy. This operation creates a\n policy version with a version identifier of 1 and sets\n 1 as the policy's default version.

\n

Requires permission to access the CreatePolicy action.

", "smithy.api#http": { "method": "POST", "uri": "/policies/{policyName}", @@ -6146,7 +6403,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a new version of the specified AWS IoT policy. To update a policy, create a\n new policy version. A managed policy can have up to five versions. If the policy has five\n versions, you must use DeletePolicyVersion to delete an existing version\n before you create a new one.

\n

Optionally, you can set the new version as the policy's default version. The default\n version is the operative version (that is, the version that is in effect for the\n certificates to which the policy is attached).

", + "smithy.api#documentation": "

Creates a new version of the specified IoT policy. To update a policy, create a\n new policy version. A managed policy can have up to five versions. If the policy has five\n versions, you must use DeletePolicyVersion to delete an existing version\n before you create a new one.

\n

Optionally, you can set the new version as the policy's default version. The default\n version is the operative version (that is, the version that is in effect for the\n certificates to which the policy is attached).

\n

Requires permission to access the CreatePolicyVersion action.

", "smithy.api#http": { "method": "POST", "uri": "/policies/{policyName}/version", @@ -6245,7 +6502,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a provisioning claim.

", + "smithy.api#documentation": "

Creates a provisioning claim.

\n

Requires permission to access the CreateProvisioningClaim action.

", "smithy.api#http": { "method": "POST", "uri": "/provisioning-templates/{templateName}/provisioning-claim", @@ -6324,7 +6581,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a fleet provisioning template.

", + "smithy.api#documentation": "

Creates a fleet provisioning template.

\n

Requires permission to access the CreateProvisioningTemplate action.

", "smithy.api#http": { "method": "POST", "uri": "/provisioning-templates", @@ -6437,7 +6694,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a new version of a fleet provisioning template.

", + "smithy.api#documentation": "

Creates a new version of a fleet provisioning template.

\n

Requires permission to access the CreateProvisioningTemplateVersion action.

", "smithy.api#http": { "method": "POST", "uri": "/provisioning-templates/{templateName}/versions", @@ -6533,7 +6790,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a role alias.

", + "smithy.api#documentation": "

Creates a role alias.

\n

Requires permission to access the CreateRoleAlias action.

", "smithy.api#http": { "method": "POST", "uri": "/role-aliases/{roleAlias}", @@ -6562,7 +6819,7 @@ "credentialDurationSeconds": { "target": "com.amazonaws.iot#CredentialDurationSeconds", "traits": { - "smithy.api#documentation": "

How long (in seconds) the credentials will be valid.

" + "smithy.api#documentation": "

How long (in seconds) the credentials will be valid. The default value is 3,600 seconds.

" } }, "tags": { @@ -6616,7 +6873,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a scheduled audit that is run at a specified \n time interval.

", + "smithy.api#documentation": "

Creates a scheduled audit that is run at a specified \n time interval.

\n

Requires permission to access the CreateScheduledAudit action.

", "smithy.api#http": { "method": "POST", "uri": "/audit/scheduledaudits/{scheduledAuditName}", @@ -6703,7 +6960,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a Device Defender security profile.

", + "smithy.api#documentation": "

Creates a Device Defender security profile.

\n

Requires permission to access the CreateSecurityProfile action.

", "smithy.api#http": { "method": "POST", "uri": "/security-profiles/{securityProfileName}", @@ -6815,7 +7072,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a stream for delivering one or more large files in chunks over MQTT. A stream transports data\n bytes in chunks or blocks packaged as MQTT messages from a source like S3. You can have one or more files\n associated with a stream.

", + "smithy.api#documentation": "

Creates a stream for delivering one or more large files in chunks over MQTT. A stream transports data\n bytes in chunks or blocks packaged as MQTT messages from a source like S3. You can have one or more files\n associated with a stream.

\n \t

Requires permission to access the CreateStream action.

", "smithy.api#http": { "method": "POST", "uri": "/streams/{streamId}", @@ -6923,7 +7180,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a thing record in the registry. If this call is made multiple times using\n\t\t\tthe same thing name and configuration, the call will succeed. If this call is made with\n\t\t\tthe same thing name but different configuration a\n\t\t\t\tResourceAlreadyExistsException is thrown.

\n\t\t \n\t\t\t

This is a control plane operation. See Authorization for\n\t\t\t\tinformation about authorizing control plane actions.

\n\t\t
", + "smithy.api#documentation": "

Creates a thing record in the registry. If this call is made multiple times using\n\t\t\tthe same thing name and configuration, the call will succeed. If this call is made with\n\t\t\tthe same thing name but different configuration a\n\t\t\t\tResourceAlreadyExistsException is thrown.

\n\t\t \n\t\t\t

This is a control plane operation. See Authorization for\n\t\t\t\tinformation about authorizing control plane actions.

\n\t\t
\n\t\t

Requires permission to access the CreateThing action.

", "smithy.api#http": { "method": "POST", "uri": "/things/{thingName}", @@ -6954,7 +7211,7 @@ } ], "traits": { - "smithy.api#documentation": "

Create a thing group.

\n\t\t \n\t\t\t

This is a control plane operation. See Authorization for\n\t\t\t\tinformation about authorizing control plane actions.

\n\t\t
", + "smithy.api#documentation": "

Create a thing group.

\n\t\t \n\t\t\t

This is a control plane operation. See Authorization for\n\t\t\t\tinformation about authorizing control plane actions.

\n\t\t
\n\t\t

Requires permission to access the CreateThingGroup action.

", "smithy.api#http": { "method": "POST", "uri": "/thing-groups/{thingGroupName}", @@ -7105,7 +7362,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a new thing type.

", + "smithy.api#documentation": "

Creates a new thing type.

\n\t\t

Requires permission to access the CreateThingType action.

", "smithy.api#http": { "method": "POST", "uri": "/thing-types/{thingTypeName}", @@ -7193,7 +7450,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a rule. Creating rules is an administrator-level action. Any user who has\n permission to create rules will be able to access data processed by the rule.

", + "smithy.api#documentation": "

Creates a rule. Creating rules is an administrator-level action. Any user who has\n permission to create rules will be able to access data processed by the rule.

\n

Requires permission to access the CreateTopicRule action.

", "smithy.api#http": { "method": "POST", "uri": "/rules/{ruleName}", @@ -7227,7 +7484,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a topic rule destination. The destination must be confirmed prior to use.

", + "smithy.api#documentation": "

Creates a topic rule destination. The destination must be confirmed prior to use.

\n

Requires permission to access the CreateTopicRuleDestination action.

", "smithy.api#http": { "method": "POST", "uri": "/destinations", @@ -7459,7 +7716,7 @@ } ], "traits": { - "smithy.api#documentation": "

Restores the default settings for Device Defender audits for this account. Any\n configuration data you entered is deleted and all audit checks are reset to \n disabled.

", + "smithy.api#documentation": "

Restores the default settings for Device Defender audits for this account. Any\n configuration data you entered is deleted and all audit checks are reset to \n disabled.

\n

Requires permission to access the DeleteAccountAuditConfiguration action.

", "smithy.api#http": { "method": "DELETE", "uri": "/audit/configuration", @@ -7509,7 +7766,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n Deletes a Device Defender audit suppression.\n

", + "smithy.api#documentation": "

\n Deletes a Device Defender audit suppression.\n

\n

Requires permission to access the DeleteAuditSuppression action.

", "smithy.api#http": { "method": "POST", "uri": "/audit/suppressions/delete", @@ -7570,7 +7827,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes an authorizer.

", + "smithy.api#documentation": "

Deletes an authorizer.

\n

Requires permission to access the DeleteAuthorizer action.

", "smithy.api#http": { "method": "DELETE", "uri": "/authorizer/{authorizerName}", @@ -7621,7 +7878,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes the billing group.

", + "smithy.api#documentation": "

Deletes the billing group.

\n\t\t

Requires permission to access the DeleteBillingGroup action.

", "smithy.api#http": { "method": "DELETE", "uri": "/billing-groups/{billingGroupName}", @@ -7685,7 +7942,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a registered CA certificate.

", + "smithy.api#documentation": "

Deletes a registered CA certificate.

\n

Requires permission to access the DeleteCACertificate action.

", "smithy.api#http": { "method": "DELETE", "uri": "/cacertificate/{certificateId}", @@ -7748,7 +8005,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes the specified certificate.

\n

A certificate cannot be deleted if it has a policy or IoT thing attached to it or if\n its status is set to ACTIVE. To delete a certificate, first use the DetachPrincipalPolicy API to detach all policies. Next, use the UpdateCertificate API to set the certificate to the INACTIVE\n status.

", + "smithy.api#documentation": "

Deletes the specified certificate.

\n

A certificate cannot be deleted if it has a policy or IoT thing attached to it or if\n its status is set to ACTIVE. To delete a certificate, first use the DetachPolicy action to detach all policies. Next, use the UpdateCertificate action to set the certificate to the INACTIVE\n status.

\n

Requires permission to access the DeleteCertificate action.

", "smithy.api#http": { "method": "DELETE", "uri": "/certificates/{certificateId}", @@ -7815,7 +8072,7 @@ } ], "traits": { - "smithy.api#documentation": "\n

Before you can delete a custom metric, you must first remove the custom metric from all\n security profiles it's a part of.\n The\n security\n profile associated with the custom metric can be found using the ListSecurityProfiles\n API with metricName set to your custom metric name.

\n
\n

\n Deletes a Device Defender detect custom metric.\n

", + "smithy.api#documentation": "

\n Deletes a Device Defender detect custom metric.\n

\n

Requires permission to access the DeleteCustomMetric action.

\n \n

Before you can delete a custom metric, you must first remove the custom metric from all\n security profiles it's a part of.\n The\n security\n profile associated with the custom metric can be found using the ListSecurityProfiles\n API with metricName set to your custom metric name.

\n
", "smithy.api#http": { "method": "DELETE", "uri": "/custom-metric/{metricName}", @@ -7860,7 +8117,7 @@ } ], "traits": { - "smithy.api#documentation": "

Removes the specified dimension from your AWS account.

", + "smithy.api#documentation": "

Removes the specified dimension from your Amazon Web Services accounts.

\n

Requires permission to access the DeleteDimension action.

", "smithy.api#http": { "method": "DELETE", "uri": "/dimensions/{name}", @@ -7914,7 +8171,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes the specified domain configuration.

", + "smithy.api#documentation": "

Deletes the specified domain configuration.

\n

Requires permission to access the DeleteDomainConfiguration action.

", "smithy.api#http": { "method": "DELETE", "uri": "/domainConfigurations/{domainConfigurationName}", @@ -7962,7 +8219,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a dynamic thing group.

", + "smithy.api#documentation": "

Deletes a dynamic thing group.

\n\t\t

Requires permission to access the DeleteDynamicThingGroup action.

", "smithy.api#http": { "method": "DELETE", "uri": "/dynamic-thing-groups/{thingGroupName}", @@ -7994,6 +8251,60 @@ "type": "structure", "members": {} }, + "com.amazonaws.iot#DeleteFleetMetric": { + "type": "operation", + "input": { + "target": "com.amazonaws.iot#DeleteFleetMetricRequest" + }, + "errors": [ + { + "target": "com.amazonaws.iot#InternalFailureException" + }, + { + "target": "com.amazonaws.iot#InvalidRequestException" + }, + { + "target": "com.amazonaws.iot#ServiceUnavailableException" + }, + { + "target": "com.amazonaws.iot#ThrottlingException" + }, + { + "target": "com.amazonaws.iot#UnauthorizedException" + }, + { + "target": "com.amazonaws.iot#VersionConflictException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the specified fleet metric. \n Returns successfully with no error if the deletion is successful or you specify a fleet metric that doesn't exist.

\n

Requires permission to access the DeleteFleetMetric action.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/fleet-metric/{metricName}", + "code": 200 + } + } + }, + "com.amazonaws.iot#DeleteFleetMetricRequest": { + "type": "structure", + "members": { + "metricName": { + "target": "com.amazonaws.iot#FleetMetricName", + "traits": { + "smithy.api#documentation": "

The name of the fleet metric to delete.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "expectedVersion": { + "target": "com.amazonaws.iot#OptionalVersion", + "traits": { + "smithy.api#documentation": "

The expected version of the fleet metric to delete.

", + "smithy.api#httpQuery": "expectedVersion" + } + } + } + }, "com.amazonaws.iot#DeleteJob": { "type": "operation", "input": { @@ -8020,7 +8331,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a job and its related job executions.

\n

Deleting a job may take time, depending on the number of job\n executions created for the job and various other factors. While the job\n is being deleted, the status of the job will be shown as \n \"DELETION_IN_PROGRESS\". Attempting to delete or cancel a job whose status \n is already \"DELETION_IN_PROGRESS\" will result in an error.

\n

Only 10 jobs may have status \"DELETION_IN_PROGRESS\" at the same time, or\n a LimitExceededException will occur.

", + "smithy.api#documentation": "

Deletes a job and its related job executions.

\n

Deleting a job may take time, depending on the number of job\n executions created for the job and various other factors. While the job\n is being deleted, the status of the job will be shown as \n \"DELETION_IN_PROGRESS\". Attempting to delete or cancel a job whose status \n is already \"DELETION_IN_PROGRESS\" will result in an error.

\n

Only 10 jobs may have status \"DELETION_IN_PROGRESS\" at the same time, or\n a LimitExceededException will occur.

\n

Requires permission to access the DeleteJob action.

", "smithy.api#http": { "method": "DELETE", "uri": "/jobs/{jobId}", @@ -8051,7 +8362,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a job execution.

", + "smithy.api#documentation": "

Deletes a job execution.

\n

Requires permission to access the DeleteJobExecution action.

", "smithy.api#http": { "method": "DELETE", "uri": "/things/{thingName}/jobs/{jobId}/executionNumber/{executionNumber}", @@ -8096,7 +8407,7 @@ "namespaceId": { "target": "com.amazonaws.iot#NamespaceId", "traits": { - "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, AWS IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is in public preview.

\n
", + "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is in public preview.

\n
", "smithy.api#httpQuery": "namespaceId" } } @@ -8123,7 +8434,7 @@ "namespaceId": { "target": "com.amazonaws.iot#NamespaceId", "traits": { - "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, AWS IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is in public preview.

\n
", + "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is in public preview.

\n
", "smithy.api#httpQuery": "namespaceId" } } @@ -8190,7 +8501,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a defined mitigation action from your AWS account.

", + "smithy.api#documentation": "

Deletes a defined mitigation action from your Amazon Web Services accounts.

\n

Requires permission to access the DeleteMitigationAction action.

", "smithy.api#http": { "method": "DELETE", "uri": "/mitigationactions/actions/{actionName}", @@ -8247,7 +8558,7 @@ } ], "traits": { - "smithy.api#documentation": "

Delete an OTA update.

", + "smithy.api#documentation": "

Delete an OTA update.

\n

Requires permission to access the DeleteOTAUpdate action.

", "smithy.api#http": { "method": "DELETE", "uri": "/otaUpdates/{otaUpdateId}", @@ -8276,7 +8587,7 @@ "forceDeleteAWSJob": { "target": "com.amazonaws.iot#ForceDeleteAWSJob", "traits": { - "smithy.api#documentation": "

When true, deletes the AWS job created by the OTAUpdate process even if it is \"IN_PROGRESS\". Otherwise, if the \n job is not in a terminal state (\"COMPLETED\" or \"CANCELED\") an exception will occur. The default is false.

", + "smithy.api#documentation": "

When true, deletes the IoT job created by the OTAUpdate process even if it is \"IN_PROGRESS\". Otherwise, if the \n job is not in a terminal state (\"COMPLETED\" or \"CANCELED\") an exception will occur. The default is false.

", "smithy.api#httpQuery": "forceDeleteAWSJob" } } @@ -8315,7 +8626,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes the specified policy.

\n

A policy cannot be deleted if it has non-default versions or it is attached to any\n certificate.

\n

To delete a policy, use the DeletePolicyVersion API to delete all non-default\n versions of the policy; use the DetachPrincipalPolicy API to detach the policy from any\n certificate; and then use the DeletePolicy API to delete the policy.

\n

When a policy is deleted using DeletePolicy, its default version is deleted with\n it.

", + "smithy.api#documentation": "

Deletes the specified policy.

\n

A policy cannot be deleted if it has non-default versions or it is attached to any\n certificate.

\n

To delete a policy, use the DeletePolicyVersion action to delete all non-default\n versions of the policy; use the DetachPolicy action to detach the policy from any\n certificate; and then use the DeletePolicy action to delete the policy.

\n

When a policy is deleted using DeletePolicy, its default version is deleted with\n it.

\n \n

Because of the distributed nature of Amazon Web Services, it can take up to five minutes after\n a policy is detached before it's ready to be deleted.

\n
\n

Requires permission to access the DeletePolicy action.

", "smithy.api#http": { "method": "DELETE", "uri": "/policies/{policyName}", @@ -8368,7 +8679,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes the specified version of the specified policy. You cannot delete the default\n version of a policy using this API. To delete the default version of a policy, use DeletePolicy. To find out which version of a policy is marked as the default\n version, use ListPolicyVersions.

", + "smithy.api#documentation": "

Deletes the specified version of the specified policy. You cannot delete the default\n version of a policy using this action. To delete the default version of a policy, use DeletePolicy. To find out which version of a policy is marked as the default\n version, use ListPolicyVersions.

\n

Requires permission to access the DeletePolicyVersion action.

", "smithy.api#http": { "method": "DELETE", "uri": "/policies/{policyName}/version/{policyVersionId}", @@ -8432,7 +8743,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a fleet provisioning template.

", + "smithy.api#documentation": "

Deletes a fleet provisioning template.

\n

Requires permission to access the DeleteProvisioningTemplate action.

", "smithy.api#http": { "method": "DELETE", "uri": "/provisioning-templates/{templateName}", @@ -8489,7 +8800,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a fleet provisioning template version.

", + "smithy.api#documentation": "

Deletes a fleet provisioning template version.

\n

Requires permission to access the DeleteProvisioningTemplateVersion action.

", "smithy.api#http": { "method": "DELETE", "uri": "/provisioning-templates/{templateName}/versions/{versionId}", @@ -8548,7 +8859,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a CA certificate registration code.

", + "smithy.api#documentation": "

Deletes a CA certificate registration code.

\n

Requires permission to access the DeleteRegistrationCode action.

", "smithy.api#http": { "method": "DELETE", "uri": "/registrationcode", @@ -8602,7 +8913,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a role alias

", + "smithy.api#documentation": "

Deletes a role alias

\n

Requires permission to access the DeleteRoleAlias action.

", "smithy.api#http": { "method": "DELETE", "uri": "/role-aliases/{roleAlias}", @@ -8650,7 +8961,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a scheduled audit.

", + "smithy.api#documentation": "

Deletes a scheduled audit.

\n

Requires permission to access the DeleteScheduledAudit action.

", "smithy.api#http": { "method": "DELETE", "uri": "/audit/scheduledaudits/{scheduledAuditName}", @@ -8701,7 +9012,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a Device Defender security profile.

", + "smithy.api#documentation": "

Deletes a Device Defender security profile.

\n

Requires permission to access the DeleteSecurityProfile action.

", "smithy.api#http": { "method": "DELETE", "uri": "/security-profiles/{securityProfileName}", @@ -8765,7 +9076,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a stream.

", + "smithy.api#documentation": "

Deletes a stream.

\n\t\t

Requires permission to access the DeleteStream action.

", "smithy.api#http": { "method": "DELETE", "uri": "/streams/{streamId}", @@ -8825,7 +9136,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes the specified thing. Returns successfully with no error if the deletion is\n\t\t\tsuccessful or you specify a thing that doesn't exist.

", + "smithy.api#documentation": "

Deletes the specified thing. Returns successfully with no error if the deletion is\n\t\t\tsuccessful or you specify a thing that doesn't exist.

\n\t\t

Requires permission to access the DeleteThing action.

", "smithy.api#http": { "method": "DELETE", "uri": "/things/{thingName}", @@ -8856,7 +9167,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a thing group.

", + "smithy.api#documentation": "

Deletes a thing group.

\n\t\t

Requires permission to access the DeleteThingGroup action.

", "smithy.api#http": { "method": "DELETE", "uri": "/thing-groups/{thingGroupName}", @@ -8947,7 +9258,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes the specified thing type. You cannot delete a thing type if it has things\n\t\t\tassociated with it. To delete a thing type, first mark it as deprecated by calling DeprecateThingType, then remove any associated things by calling UpdateThing to change the thing type on any associated thing, and\n\t\t\tfinally use DeleteThingType to delete the thing type.

", + "smithy.api#documentation": "

Deletes the specified thing type. You cannot delete a thing type if it has things\n\t\t\tassociated with it. To delete a thing type, first mark it as deprecated by calling DeprecateThingType, then remove any associated things by calling UpdateThing to change the thing type on any associated thing, and\n\t\t\tfinally use DeleteThingType to delete the thing type.

\n\t\t

Requires permission to access the DeleteThingType action.

", "smithy.api#http": { "method": "DELETE", "uri": "/thing-types/{thingTypeName}", @@ -9001,7 +9312,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes the rule.

", + "smithy.api#documentation": "

Deletes the rule.

\n

Requires permission to access the DeleteTopicRule action.

", "smithy.api#http": { "method": "DELETE", "uri": "/rules/{ruleName}", @@ -9035,7 +9346,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a topic rule destination.

", + "smithy.api#documentation": "

Deletes a topic rule destination.

\n

Requires permission to access the DeleteTopicRuleDestination action.

", "smithy.api#http": { "method": "DELETE", "uri": "/destinations/{arn+}", @@ -9093,7 +9404,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a logging level.

", + "smithy.api#documentation": "

Deletes a logging level.

\n

Requires permission to access the DeleteV2LoggingLevel action.

", "smithy.api#http": { "method": "DELETE", "uri": "/v2LoggingLevel", @@ -9174,7 +9485,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deprecates a thing type. You can not associate new things with deprecated thing\n\t\t\ttype.

", + "smithy.api#documentation": "

Deprecates a thing type. You can not associate new things with deprecated thing\n\t\t\ttype.

\n\t\t

Requires permission to access the DeprecateThingType action.

", "smithy.api#http": { "method": "POST", "uri": "/thing-types/{thingTypeName}/deprecate", @@ -9231,7 +9542,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets information about the Device Defender audit settings for this account.\n Settings include how audit notifications are sent and which audit checks are\n enabled or disabled.

", + "smithy.api#documentation": "

Gets information about the Device Defender audit settings for this account.\n Settings include how audit notifications are sent and which audit checks are\n enabled or disabled.

\n

Requires permission to access the DescribeAccountAuditConfiguration action.

", "smithy.api#http": { "method": "GET", "uri": "/audit/configuration", @@ -9249,7 +9560,7 @@ "roleArn": { "target": "com.amazonaws.iot#RoleArn", "traits": { - "smithy.api#documentation": "

The ARN of the role that grants permission to AWS IoT to access information\n about your devices, policies, certificates, and other items as required when \n performing an audit.

\n

On the first call to UpdateAccountAuditConfiguration,\n this parameter is required.

" + "smithy.api#documentation": "

The ARN of the role that grants permission to IoT to access information\n about your devices, policies, certificates, and other items as required when \n performing an audit.

\n

On the first call to UpdateAccountAuditConfiguration,\n this parameter is required.

" } }, "auditNotificationTargetConfigurations": { @@ -9289,7 +9600,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets information about a single audit finding. Properties include the reason for\n noncompliance, the severity of the issue,\n and the start time\n when the audit that returned the\n finding.

", + "smithy.api#documentation": "

Gets information about a single audit finding. Properties include the reason for\n noncompliance, the severity of the issue,\n and the start time\n when the audit that returned the\n finding.

\n

Requires permission to access the DescribeAuditFinding action.

", "smithy.api#http": { "method": "GET", "uri": "/audit/findings/{findingId}", @@ -9509,7 +9820,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets information about a Device Defender audit.

", + "smithy.api#documentation": "

Gets information about a Device Defender audit.

\n

Requires permission to access the DescribeAuditTask action.

", "smithy.api#http": { "method": "GET", "uri": "/audit/tasks/{taskId}", @@ -9600,7 +9911,7 @@ } ], "traits": { - "smithy.api#documentation": "

Describes an authorizer.

", + "smithy.api#documentation": "

Describes an authorizer.

\n

Requires permission to access the DescribeAuthorizer action.

", "smithy.api#http": { "method": "GET", "uri": "/authorizer/{authorizerName}", @@ -9655,7 +9966,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns information about a billing group.

", + "smithy.api#documentation": "

Returns information about a billing group.

\n\t\t

Requires permission to access the DescribeBillingGroup action.

", "smithy.api#http": { "method": "GET", "uri": "/billing-groups/{billingGroupName}", @@ -9746,7 +10057,7 @@ } ], "traits": { - "smithy.api#documentation": "

Describes a registered CA certificate.

", + "smithy.api#documentation": "

Describes a registered CA certificate.

\n

Requires permission to access the DescribeCACertificate action.

", "smithy.api#http": { "method": "GET", "uri": "/cacertificate/{certificateId}", @@ -9819,7 +10130,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets information about the specified certificate.

", + "smithy.api#documentation": "

Gets information about the specified certificate.

\n

Requires permission to access the DescribeCertificate action.

", "smithy.api#http": { "method": "GET", "uri": "/certificates/{certificateId}", @@ -9880,7 +10191,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n Gets information about a Device Defender detect custom metric.\n

", + "smithy.api#documentation": "

\n Gets information about a Device Defender detect custom metric.\n

\n

Requires permission to access the DescribeCustomMetric action.

", "smithy.api#http": { "method": "GET", "uri": "/custom-metric/{metricName}", @@ -9971,7 +10282,7 @@ } ], "traits": { - "smithy.api#documentation": "

Describes the default authorizer.

", + "smithy.api#documentation": "

Describes the default authorizer.

\n

Requires permission to access the DescribeDefaultAuthorizer action.

", "smithy.api#http": { "method": "GET", "uri": "/default-authorizer", @@ -10017,7 +10328,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n Gets information about a Device Defender ML Detect mitigation action.\n

", + "smithy.api#documentation": "

\n Gets information about a Device Defender ML Detect mitigation action.\n

\n

Requires permission to access the DescribeDetectMitigationActionsTask action.

", "smithy.api#http": { "method": "GET", "uri": "/detect/mitigationactions/tasks/{taskId}", @@ -10072,7 +10383,7 @@ } ], "traits": { - "smithy.api#documentation": "

Provides details about a dimension that is defined in your AWS account.

", + "smithy.api#documentation": "

Provides details about a dimension that is defined in your Amazon Web Services accounts.

\n

Requires permission to access the DescribeDimension action.

", "smithy.api#http": { "method": "GET", "uri": "/dimensions/{name}", @@ -10163,7 +10474,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets summary information about a domain configuration.

", + "smithy.api#documentation": "

Gets summary information about a domain configuration.

\n

Requires permission to access the DescribeDomainConfiguration action.

", "smithy.api#http": { "method": "GET", "uri": "/domainConfigurations/{domainConfigurationName}", @@ -10266,7 +10577,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns a unique endpoint specific to the AWS account making the call.

", + "smithy.api#documentation": "

Returns a unique endpoint specific to the Amazon Web Services account making the call.

\n

Requires permission to access the DescribeEndpoint action.

", "smithy.api#http": { "method": "GET", "uri": "/endpoint", @@ -10280,7 +10591,7 @@ "endpointType": { "target": "com.amazonaws.iot#EndpointType", "traits": { - "smithy.api#documentation": "

The endpoint type. Valid endpoint types include:

\n \n \n \n \n

We strongly recommend that customers use the newer iot:Data-ATS endpoint type to avoid \n issues related to the widespread distrust of Symantec certificate authorities.

", + "smithy.api#documentation": "

The endpoint type. Valid endpoint types include:

\n \n \n \n \n

We strongly recommend that customers use the newer iot:Data-ATS endpoint type to avoid \n issues related to the widespread distrust of Symantec certificate authorities.

", "smithy.api#httpQuery": "endpointType" } } @@ -10320,7 +10631,7 @@ } ], "traits": { - "smithy.api#documentation": "

Describes event configurations.

", + "smithy.api#documentation": "

Describes event configurations.

\n\t\t

Requires permission to access the DescribeEventConfigurations action.

", "smithy.api#http": { "method": "GET", "uri": "/event-configurations", @@ -10355,13 +10666,13 @@ } } }, - "com.amazonaws.iot#DescribeIndex": { + "com.amazonaws.iot#DescribeFleetMetric": { "type": "operation", "input": { - "target": "com.amazonaws.iot#DescribeIndexRequest" + "target": "com.amazonaws.iot#DescribeFleetMetricRequest" }, "output": { - "target": "com.amazonaws.iot#DescribeIndexResponse" + "target": "com.amazonaws.iot#DescribeFleetMetricResponse" }, "errors": [ { @@ -10384,37 +10695,170 @@ } ], "traits": { - "smithy.api#documentation": "

Describes a search index.

", + "smithy.api#documentation": "

Gets information about the specified fleet metric.

\n

Requires permission to access the DescribeFleetMetric action.

", "smithy.api#http": { "method": "GET", - "uri": "/indices/{indexName}", + "uri": "/fleet-metric/{metricName}", "code": 200 } } }, - "com.amazonaws.iot#DescribeIndexRequest": { + "com.amazonaws.iot#DescribeFleetMetricRequest": { "type": "structure", "members": { - "indexName": { - "target": "com.amazonaws.iot#IndexName", + "metricName": { + "target": "com.amazonaws.iot#FleetMetricName", "traits": { - "smithy.api#documentation": "

The index name.

", + "smithy.api#documentation": "

The name of the fleet metric to describe.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } } } }, - "com.amazonaws.iot#DescribeIndexResponse": { + "com.amazonaws.iot#DescribeFleetMetricResponse": { "type": "structure", "members": { - "indexName": { - "target": "com.amazonaws.iot#IndexName", + "metricName": { + "target": "com.amazonaws.iot#FleetMetricName", "traits": { - "smithy.api#documentation": "

The index name.

" + "smithy.api#documentation": "

The name of the fleet metric to describe.

" } }, - "indexStatus": { + "queryString": { + "target": "com.amazonaws.iot#QueryString", + "traits": { + "smithy.api#documentation": "

The search query string.

" + } + }, + "aggregationType": { + "target": "com.amazonaws.iot#AggregationType", + "traits": { + "smithy.api#documentation": "

The type of the aggregation query.

" + } + }, + "period": { + "target": "com.amazonaws.iot#FleetMetricPeriod", + "traits": { + "smithy.api#documentation": "

The time in seconds between fleet metric emissions. Range [60(1 min), 86400(1 day)] and must be multiple of 60.

" + } + }, + "aggregationField": { + "target": "com.amazonaws.iot#AggregationField", + "traits": { + "smithy.api#documentation": "

The field to aggregate.

" + } + }, + "description": { + "target": "com.amazonaws.iot#FleetMetricDescription", + "traits": { + "smithy.api#documentation": "

The fleet metric description.

" + } + }, + "queryVersion": { + "target": "com.amazonaws.iot#QueryVersion", + "traits": { + "smithy.api#documentation": "

The query version.

" + } + }, + "indexName": { + "target": "com.amazonaws.iot#IndexName", + "traits": { + "smithy.api#documentation": "

The name of the index to search.

" + } + }, + "creationDate": { + "target": "com.amazonaws.iot#CreationDate", + "traits": { + "smithy.api#documentation": "

The date when the fleet metric is created.

" + } + }, + "lastModifiedDate": { + "target": "com.amazonaws.iot#LastModifiedDate", + "traits": { + "smithy.api#documentation": "

The date when the fleet metric is last modified.

" + } + }, + "unit": { + "target": "com.amazonaws.iot#FleetMetricUnit", + "traits": { + "smithy.api#documentation": "

Used to support unit transformation such as milliseconds to seconds. The unit must be\n supported by CW metric.

" + } + }, + "version": { + "target": "com.amazonaws.iot#Version", + "traits": { + "smithy.api#documentation": "

The version of the fleet metric.

" + } + }, + "metricArn": { + "target": "com.amazonaws.iot#FleetMetricArn", + "traits": { + "smithy.api#documentation": "

The ARN of the fleet metric to describe.

" + } + } + } + }, + "com.amazonaws.iot#DescribeIndex": { + "type": "operation", + "input": { + "target": "com.amazonaws.iot#DescribeIndexRequest" + }, + "output": { + "target": "com.amazonaws.iot#DescribeIndexResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iot#InternalFailureException" + }, + { + "target": "com.amazonaws.iot#InvalidRequestException" + }, + { + "target": "com.amazonaws.iot#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.iot#ServiceUnavailableException" + }, + { + "target": "com.amazonaws.iot#ThrottlingException" + }, + { + "target": "com.amazonaws.iot#UnauthorizedException" + } + ], + "traits": { + "smithy.api#documentation": "

Describes a search index.

\n

Requires permission to access the DescribeIndex action.

", + "smithy.api#http": { + "method": "GET", + "uri": "/indices/{indexName}", + "code": 200 + } + } + }, + "com.amazonaws.iot#DescribeIndexRequest": { + "type": "structure", + "members": { + "indexName": { + "target": "com.amazonaws.iot#IndexName", + "traits": { + "smithy.api#documentation": "

The index name.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.iot#DescribeIndexResponse": { + "type": "structure", + "members": { + "indexName": { + "target": "com.amazonaws.iot#IndexName", + "traits": { + "smithy.api#documentation": "

The index name.

" + } + }, + "indexStatus": { "target": "com.amazonaws.iot#IndexStatus", "traits": { "smithy.api#documentation": "

The index status.

" @@ -10451,7 +10895,7 @@ } ], "traits": { - "smithy.api#documentation": "

Describes a job.

", + "smithy.api#documentation": "

Describes a job.

\n

Requires permission to access the DescribeJob action.

", "smithy.api#http": { "method": "GET", "uri": "/jobs/{jobId}", @@ -10482,7 +10926,7 @@ } ], "traits": { - "smithy.api#documentation": "

Describes a job execution.

", + "smithy.api#documentation": "

Describes a job execution.

\n

Requires permission to access the DescribeJobExecution action.

", "smithy.api#http": { "method": "GET", "uri": "/things/{thingName}/jobs/{jobId}", @@ -10679,7 +11123,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets information about a mitigation action.

", + "smithy.api#documentation": "

Gets information about a mitigation action.

\n

Requires permission to access the DescribeMitigationAction action.

", "smithy.api#http": { "method": "GET", "uri": "/mitigationactions/actions/{actionName}", @@ -10742,7 +11186,7 @@ "creationDate": { "target": "com.amazonaws.iot#Timestamp", "traits": { - "smithy.api#documentation": "

The date and time when the mitigation action was added to your AWS account.

" + "smithy.api#documentation": "

The date and time when the mitigation action was added to your Amazon Web Services accounts.

" } }, "lastModifiedDate": { @@ -10779,7 +11223,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns information about a fleet provisioning template.

", + "smithy.api#documentation": "

Returns information about a fleet provisioning template.

\n

Requires permission to access the DescribeProvisioningTemplate action.

", "smithy.api#http": { "method": "GET", "uri": "/provisioning-templates/{templateName}", @@ -10891,7 +11335,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns information about a fleet provisioning template version.

", + "smithy.api#documentation": "

Returns information about a fleet provisioning template version.

\n

Requires permission to access the DescribeProvisioningTemplateVersion action.

", "smithy.api#http": { "method": "GET", "uri": "/provisioning-templates/{templateName}/versions/{versionId}", @@ -10978,7 +11422,7 @@ } ], "traits": { - "smithy.api#documentation": "

Describes a role alias.

", + "smithy.api#documentation": "

Describes a role alias.

\n

Requires permission to access the DescribeRoleAlias action.

", "smithy.api#http": { "method": "GET", "uri": "/role-aliases/{roleAlias}", @@ -11033,7 +11477,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets information about a scheduled audit.

", + "smithy.api#documentation": "

Gets information about a scheduled audit.

\n

Requires permission to access the DescribeScheduledAudit action.

", "smithy.api#http": { "method": "GET", "uri": "/audit/scheduledaudits/{scheduledAuditName}", @@ -11118,7 +11562,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets information about a Device Defender security profile.

", + "smithy.api#documentation": "

Gets information about a Device Defender security profile.

\n

Requires permission to access the DescribeSecurityProfile action.

", "smithy.api#http": { "method": "GET", "uri": "/security-profiles/{securityProfileName}", @@ -11236,7 +11680,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets information about a stream.

", + "smithy.api#documentation": "

Gets information about a stream.

\n\t\t

Requires permission to access the DescribeStream action.

", "smithy.api#http": { "method": "GET", "uri": "/streams/{streamId}", @@ -11297,7 +11741,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets information about the specified thing.

", + "smithy.api#documentation": "

Gets information about the specified thing.

\n\t\t

Requires permission to access the DescribeThing action.

", "smithy.api#http": { "method": "GET", "uri": "/things/{thingName}", @@ -11328,7 +11772,7 @@ } ], "traits": { - "smithy.api#documentation": "

Describe a thing group.

", + "smithy.api#documentation": "

Describe a thing group.

\n\t\t

Requires permission to access the DescribeThingGroup action.

", "smithy.api#http": { "method": "GET", "uri": "/thing-groups/{thingGroupName}", @@ -11440,7 +11884,7 @@ } ], "traits": { - "smithy.api#documentation": "

Describes a bulk thing provisioning task.

", + "smithy.api#documentation": "

Describes a bulk thing provisioning task.

\n\t\t

Requires permission to access the DescribeThingRegistrationTask action.

", "smithy.api#http": { "method": "GET", "uri": "/thing-registration-tasks/{taskId}", @@ -11560,7 +12004,7 @@ "defaultClientId": { "target": "com.amazonaws.iot#ClientId", "traits": { - "smithy.api#documentation": "

The default MQTT client ID. For a typical device, the thing name is also used as the default MQTT client ID. \n\t\t\tAlthough we don’t require a mapping between a thing's registry name and its use of MQTT client IDs, certificates, or \n\t\t\tshadow state, we recommend that you choose a thing name and use it as the MQTT client ID for the registry and the Device Shadow service.

\n\t\t

This lets you better organize your AWS IoT fleet without removing the flexibility of the underlying device certificate model or shadows.

" + "smithy.api#documentation": "

The default MQTT client ID. For a typical device, the thing name is also used as the default MQTT client ID. \n\t\t\tAlthough we don’t require a mapping between a thing's registry name and its use of MQTT client IDs, certificates, or \n\t\t\tshadow state, we recommend that you choose a thing name and use it as the MQTT client ID for the registry and the Device Shadow service.

\n\t\t

This lets you better organize your IoT fleet without removing the flexibility of the underlying device certificate model or shadows.

" } }, "thingName": { @@ -11639,7 +12083,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets information about the specified thing type.

", + "smithy.api#documentation": "

Gets information about the specified thing type.

\n\t\t

Requires permission to access the DescribeThingType action.

", "smithy.api#http": { "method": "GET", "uri": "/thing-types/{thingTypeName}", @@ -11744,7 +12188,7 @@ } ], "traits": { - "smithy.api#documentation": "

Detaches a policy from the specified target.

", + "smithy.api#documentation": "

Detaches a policy from the specified target.

\n \n

Because of the distributed nature of Amazon Web Services, it can take up to five minutes after\n a policy is detached before it's ready to be deleted.

\n
\n

Requires permission to access the DetachPolicy action.

", "smithy.api#http": { "method": "POST", "uri": "/target-policies/{policyName}", @@ -11799,7 +12243,7 @@ ], "traits": { "smithy.api#deprecated": {}, - "smithy.api#documentation": "

Removes the specified policy from the specified certificate.

\n

\n Note: This API is deprecated. Please use DetachPolicy instead.

", + "smithy.api#documentation": "

Removes the specified policy from the specified certificate.

\n \n

This action is deprecated. Please use DetachPolicy instead.

\n
\n

Requires permission to access the DetachPrincipalPolicy action.

", "smithy.api#http": { "method": "DELETE", "uri": "/principal-policies/{policyName}", @@ -11854,7 +12298,7 @@ } ], "traits": { - "smithy.api#documentation": "

Disassociates a Device Defender security profile from a thing group or from this account.

", + "smithy.api#documentation": "

Disassociates a Device Defender security profile from a thing group or from this account.

\n

Requires permission to access the DetachSecurityProfile action.

", "smithy.api#http": { "method": "DELETE", "uri": "/security-profiles/{securityProfileName}/targets", @@ -11916,7 +12360,7 @@ } ], "traits": { - "smithy.api#documentation": "

Detaches the specified principal from the specified thing. A principal can be X.509\n\t\t\tcertificates, IAM users, groups, and roles, Amazon Cognito identities or federated\n\t\t\tidentities.

\n\t\t \n\t\t\t

This call is asynchronous. It might take several seconds for the detachment to\n\t\t\t\tpropagate.

\n\t\t
", + "smithy.api#documentation": "

Detaches the specified principal from the specified thing. A principal can be X.509\n\t\t\tcertificates, IAM users, groups, and roles, Amazon Cognito identities or federated\n\t\t\tidentities.

\n\t\t \n\t\t\t

This call is asynchronous. It might take several seconds for the detachment to\n\t\t\t\tpropagate.

\n\t\t
\n\t\t

Requires permission to access the DetachThingPrincipal action.

", "smithy.api#http": { "method": "DELETE", "uri": "/things/{thingName}/principals", @@ -12350,7 +12794,7 @@ } ], "traits": { - "smithy.api#documentation": "

Disables the rule.

", + "smithy.api#documentation": "

Disables the rule.

\n

Requires permission to access the DisableTopicRule action.

", "smithy.api#http": { "method": "POST", "uri": "/rules/{ruleName}/disable", @@ -12374,6 +12818,9 @@ "smithy.api#documentation": "

The input for the DisableTopicRuleRequest operation.

" } }, + "com.amazonaws.iot#DisconnectReason": { + "type": "string" + }, "com.amazonaws.iot#DomainConfigurationArn": { "type": "string" }, @@ -12425,7 +12872,7 @@ } }, "traits": { - "smithy.api#documentation": "

The summary of a domain configuration. A domain configuration specifies custom IoT-specific information about a domain. \n A domain configuration can be associated with an AWS-managed domain \n (for example, dbc123defghijk.iot.us-west-2.amazonaws.com), a customer managed domain, or a default endpoint.

\n " + "smithy.api#documentation": "

The summary of a domain configuration. A domain configuration specifies custom IoT-specific information about a domain. \n A domain configuration can be associated with an Amazon Web Services-managed domain \n (for example, dbc123defghijk.iot.us-west-2.amazonaws.com), a customer managed domain, or a default endpoint.

\n " } }, "com.amazonaws.iot#DomainConfigurations": { @@ -12708,7 +13155,7 @@ } }, "traits": { - "smithy.api#documentation": "

Parameters used when defining a mitigation action that enable AWS IoT logging.

" + "smithy.api#documentation": "

Parameters used when defining a mitigation action that enable Amazon Web Services IoT Core logging.

" } }, "com.amazonaws.iot#EnableTopicRule": { @@ -12734,7 +13181,7 @@ } ], "traits": { - "smithy.api#documentation": "

Enables the rule.

", + "smithy.api#documentation": "

Enables the rule.

\n

Requires permission to access the EnableTopicRule action.

", "smithy.api#http": { "method": "POST", "uri": "/rules/{ruleName}/enable", @@ -12932,7 +13379,7 @@ "incrementFactor": { "target": "com.amazonaws.iot#IncrementFactor", "traits": { - "smithy.api#documentation": "

The exponential factor to increase the rate of rollout for a job.

\n

AWS IoT supports up to one digit after the decimal (for example, 1.5, but not 1.55).

", + "smithy.api#documentation": "

The exponential factor to increase the rate of rollout for a job.

\n

Amazon Web Services IoT Core supports up to one digit after the decimal (for example, 1.5, but not 1.55).

", "smithy.api#required": {} } }, @@ -12978,7 +13425,7 @@ "type": { "target": "com.amazonaws.iot#FieldType", "traits": { - "smithy.api#documentation": "

The datatype of the field.

" + "smithy.api#documentation": "

The data type of the field.

" } } }, @@ -13122,6 +13569,180 @@ "com.amazonaws.iot#Flag": { "type": "boolean" }, + "com.amazonaws.iot#FleetMetricArn": { + "type": "string" + }, + "com.amazonaws.iot#FleetMetricDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1024 + }, + "smithy.api#pattern": "^[\\p{Graph}\\x20]*$" + } + }, + "com.amazonaws.iot#FleetMetricName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[a-zA-Z0-9_\\-\\.]+$" + } + }, + "com.amazonaws.iot#FleetMetricNameAndArn": { + "type": "structure", + "members": { + "metricName": { + "target": "com.amazonaws.iot#FleetMetricName", + "traits": { + "smithy.api#documentation": "

The fleet metric name.

" + } + }, + "metricArn": { + "target": "com.amazonaws.iot#FleetMetricArn", + "traits": { + "smithy.api#documentation": "

The fleet metric ARN.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The name and ARN of a fleet metric.

" + } + }, + "com.amazonaws.iot#FleetMetricNameAndArnList": { + "type": "list", + "member": { + "target": "com.amazonaws.iot#FleetMetricNameAndArn" + } + }, + "com.amazonaws.iot#FleetMetricPeriod": { + "type": "integer", + "traits": { + "smithy.api#box": {}, + "smithy.api#range": { + "min": 60, + "max": 86400 + } + } + }, + "com.amazonaws.iot#FleetMetricUnit": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "Seconds", + "name": "Seconds" + }, + { + "value": "Microseconds", + "name": "Microseconds" + }, + { + "value": "Milliseconds", + "name": "Milliseconds" + }, + { + "value": "Bytes", + "name": "Bytes" + }, + { + "value": "Kilobytes", + "name": "Kilobytes" + }, + { + "value": "Megabytes", + "name": "Megabytes" + }, + { + "value": "Gigabytes", + "name": "Gigabytes" + }, + { + "value": "Terabytes", + "name": "Terabytes" + }, + { + "value": "Bits", + "name": "Bits" + }, + { + "value": "Kilobits", + "name": "Kilobits" + }, + { + "value": "Megabits", + "name": "Megabits" + }, + { + "value": "Gigabits", + "name": "Gigabits" + }, + { + "value": "Terabits", + "name": "Terabits" + }, + { + "value": "Percent", + "name": "Percent" + }, + { + "value": "Count", + "name": "Count" + }, + { + "value": "Bytes/Second", + "name": "BytesSecond" + }, + { + "value": "Kilobytes/Second", + "name": "KilobytesSecond" + }, + { + "value": "Megabytes/Second", + "name": "MegabytesSecond" + }, + { + "value": "Gigabytes/Second", + "name": "GigabytesSecond" + }, + { + "value": "Terabytes/Second", + "name": "TerabytesSecond" + }, + { + "value": "Bits/Second", + "name": "BitsSecond" + }, + { + "value": "Kilobits/Second", + "name": "KilobitsSecond" + }, + { + "value": "Megabits/Second", + "name": "MegabitsSecond" + }, + { + "value": "Gigabits/Second", + "name": "GigabitsSecond" + }, + { + "value": "Terabits/Second", + "name": "TerabitsSecond" + }, + { + "value": "Count/Second", + "name": "CountSecond" + }, + { + "value": "None", + "name": "None" + } + ] + } + }, "com.amazonaws.iot#ForceDelete": { "type": "boolean" }, @@ -13149,82 +13770,183 @@ "smithy.api#box": {} } }, - "com.amazonaws.iot#GetBehaviorModelTrainingSummaries": { + "com.amazonaws.iot#GetBehaviorModelTrainingSummaries": { + "type": "operation", + "input": { + "target": "com.amazonaws.iot#GetBehaviorModelTrainingSummariesRequest" + }, + "output": { + "target": "com.amazonaws.iot#GetBehaviorModelTrainingSummariesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iot#InternalFailureException" + }, + { + "target": "com.amazonaws.iot#InvalidRequestException" + }, + { + "target": "com.amazonaws.iot#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.iot#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

\n Returns a Device Defender's ML Detect Security Profile training model's status.\n

\n

Requires permission to access the GetBehaviorModelTrainingSummaries action.

", + "smithy.api#http": { + "method": "GET", + "uri": "/behavior-model-training/summaries", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "items": "summaries", + "pageSize": "maxResults" + } + } + }, + "com.amazonaws.iot#GetBehaviorModelTrainingSummariesRequest": { + "type": "structure", + "members": { + "securityProfileName": { + "target": "com.amazonaws.iot#SecurityProfileName", + "traits": { + "smithy.api#documentation": "

\n The name of the security profile.\n

", + "smithy.api#httpQuery": "securityProfileName" + } + }, + "maxResults": { + "target": "com.amazonaws.iot#TinyMaxResults", + "traits": { + "smithy.api#documentation": "

\n The maximum number of results to return at one time. The default is 25.\n

", + "smithy.api#httpQuery": "maxResults" + } + }, + "nextToken": { + "target": "com.amazonaws.iot#NextToken", + "traits": { + "smithy.api#documentation": "

\n The token for the next set of results.\n

", + "smithy.api#httpQuery": "nextToken" + } + } + } + }, + "com.amazonaws.iot#GetBehaviorModelTrainingSummariesResponse": { + "type": "structure", + "members": { + "summaries": { + "target": "com.amazonaws.iot#BehaviorModelTrainingSummaries", + "traits": { + "smithy.api#documentation": "

\n A list of all ML Detect behaviors and their model status for a given Security Profile.\n

" + } + }, + "nextToken": { + "target": "com.amazonaws.iot#NextToken", + "traits": { + "smithy.api#documentation": "

\n A token that can be used to retrieve the next set of results, or null if there are no additional results.\n

" + } + } + } + }, + "com.amazonaws.iot#GetBucketsAggregation": { "type": "operation", "input": { - "target": "com.amazonaws.iot#GetBehaviorModelTrainingSummariesRequest" + "target": "com.amazonaws.iot#GetBucketsAggregationRequest" }, "output": { - "target": "com.amazonaws.iot#GetBehaviorModelTrainingSummariesResponse" + "target": "com.amazonaws.iot#GetBucketsAggregationResponse" }, "errors": [ + { + "target": "com.amazonaws.iot#IndexNotReadyException" + }, { "target": "com.amazonaws.iot#InternalFailureException" }, + { + "target": "com.amazonaws.iot#InvalidAggregationException" + }, + { + "target": "com.amazonaws.iot#InvalidQueryException" + }, { "target": "com.amazonaws.iot#InvalidRequestException" }, { "target": "com.amazonaws.iot#ResourceNotFoundException" }, + { + "target": "com.amazonaws.iot#ServiceUnavailableException" + }, { "target": "com.amazonaws.iot#ThrottlingException" + }, + { + "target": "com.amazonaws.iot#UnauthorizedException" } ], "traits": { - "smithy.api#documentation": "

\n Returns a Device Defender's ML Detect Security Profile training model's status.\n

", + "smithy.api#documentation": "

Aggregates on indexed data with search queries pertaining to particular fields.

\n

Requires permission to access the GetBucketsAggregation action.

", "smithy.api#http": { - "method": "GET", - "uri": "/behavior-model-training/summaries", + "method": "POST", + "uri": "/indices/buckets", "code": 200 - }, - "smithy.api#paginated": { - "inputToken": "nextToken", - "outputToken": "nextToken", - "items": "summaries", - "pageSize": "maxResults" } } }, - "com.amazonaws.iot#GetBehaviorModelTrainingSummariesRequest": { + "com.amazonaws.iot#GetBucketsAggregationRequest": { "type": "structure", "members": { - "securityProfileName": { - "target": "com.amazonaws.iot#SecurityProfileName", + "indexName": { + "target": "com.amazonaws.iot#IndexName", "traits": { - "smithy.api#documentation": "

\n The name of the security profile.\n

", - "smithy.api#httpQuery": "securityProfileName" + "smithy.api#documentation": "

The name of the index to search.

" } }, - "maxResults": { - "target": "com.amazonaws.iot#TinyMaxResults", + "queryString": { + "target": "com.amazonaws.iot#QueryString", "traits": { - "smithy.api#documentation": "

\n The maximum number of results to return at one time. The default is 25.\n

", - "smithy.api#httpQuery": "maxResults" + "smithy.api#documentation": "

The search query string.

", + "smithy.api#required": {} } }, - "nextToken": { - "target": "com.amazonaws.iot#NextToken", + "aggregationField": { + "target": "com.amazonaws.iot#AggregationField", "traits": { - "smithy.api#documentation": "

\n The token for the next set of results.\n

", - "smithy.api#httpQuery": "nextToken" + "smithy.api#documentation": "

The aggregation field.

", + "smithy.api#required": {} + } + }, + "queryVersion": { + "target": "com.amazonaws.iot#QueryVersion", + "traits": { + "smithy.api#documentation": "

The version of the query.

" + } + }, + "bucketsAggregationType": { + "target": "com.amazonaws.iot#BucketsAggregationType", + "traits": { + "smithy.api#documentation": "

The basic control of the response shape and the bucket aggregation type to perform.

", + "smithy.api#required": {} } } } }, - "com.amazonaws.iot#GetBehaviorModelTrainingSummariesResponse": { + "com.amazonaws.iot#GetBucketsAggregationResponse": { "type": "structure", "members": { - "summaries": { - "target": "com.amazonaws.iot#BehaviorModelTrainingSummaries", + "totalCount": { + "target": "com.amazonaws.iot#Count", "traits": { - "smithy.api#documentation": "

\n A list of all ML Detect behaviors and their model status for a given Security Profile.\n

" + "smithy.api#documentation": "

The total number of documents that fit the query string criteria and contain a value for\n the Aggregation field targeted in the request.

" } }, - "nextToken": { - "target": "com.amazonaws.iot#NextToken", + "buckets": { + "target": "com.amazonaws.iot#Buckets", "traits": { - "smithy.api#documentation": "

\n A token that can be used to retrieve the next set of results, or null if there are no additional results.\n

" + "smithy.api#documentation": "

The main part of the response with a list of buckets. Each bucket contains a keyValue and a count.

\n

\n keyValue: The aggregation field value counted for the particular bucket.

\n

\n count: The number of documents that have that value.

" } } } @@ -13267,7 +13989,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the approximate count of unique values that match the query.

", + "smithy.api#documentation": "

Returns the approximate count of unique values that match the query.

\n

Requires permission to access the GetCardinality action.

", "smithy.api#http": { "method": "POST", "uri": "/indices/cardinality", @@ -13287,7 +14009,7 @@ "queryString": { "target": "com.amazonaws.iot#QueryString", "traits": { - "smithy.api#documentation": "

The search query.

", + "smithy.api#documentation": "

The search query string.

", "smithy.api#required": {} } }, @@ -13348,7 +14070,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets a list of the policies that have an effect on the authorization behavior of the\n specified device when it connects to the AWS IoT device gateway.

", + "smithy.api#documentation": "

Gets a list of the policies that have an effect on the authorization behavior of the\n specified device when it connects to the IoT device gateway.

\n

Requires permission to access the GetEffectivePolicies action.

", "smithy.api#http": { "method": "POST", "uri": "/effective-policies", @@ -13417,7 +14139,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets the indexing configuration.

", + "smithy.api#documentation": "

Gets the indexing configuration.

\n

Requires permission to access the GetIndexingConfiguration action.

", "smithy.api#http": { "method": "GET", "uri": "/indexing/config", @@ -13469,7 +14191,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets a job document.

", + "smithy.api#documentation": "

Gets a job document.

\n

Requires permission to access the GetJobDocument action.

", "smithy.api#http": { "method": "GET", "uri": "/jobs/{jobId}/job-document", @@ -13521,7 +14243,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets the logging options.

\n

NOTE: use of this command is not recommended. Use GetV2LoggingOptions\n instead.

", + "smithy.api#documentation": "

Gets the logging options.

\n

NOTE: use of this command is not recommended. Use GetV2LoggingOptions\n instead.

\n

Requires permission to access the GetLoggingOptions action.

", "smithy.api#http": { "method": "GET", "uri": "/loggingOptions", @@ -13585,7 +14307,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets an OTA update.

", + "smithy.api#documentation": "

Gets an OTA update.

\n

Requires permission to access the GetOTAUpdate action.

", "smithy.api#http": { "method": "GET", "uri": "/otaUpdates/{otaUpdateId}", @@ -13655,7 +14377,7 @@ } ], "traits": { - "smithy.api#documentation": "

Groups the aggregated values that match the query into percentile groupings. The default \n percentile groupings are: 1,5,25,50,75,95,99, although you can specify your own \n when you call GetPercentiles. This function returns a value for each \n percentile group specified (or the default percentile groupings). The percentile group \n \"1\" contains the aggregated field value that occurs in approximately one percent of the \n values that match the query. The percentile group \"5\" contains the aggregated field value \n that occurs in approximately five percent of the values that match the query, and so on. \n The result is an approximation, the more values that match the query, the more accurate \n the percentile values.

", + "smithy.api#documentation": "

Groups the aggregated values that match the query into percentile groupings. The default \n percentile groupings are: 1,5,25,50,75,95,99, although you can specify your own \n when you call GetPercentiles. This function returns a value for each \n percentile group specified (or the default percentile groupings). The percentile group \n \"1\" contains the aggregated field value that occurs in approximately one percent of the \n values that match the query. The percentile group \"5\" contains the aggregated field value \n that occurs in approximately five percent of the values that match the query, and so on. \n The result is an approximation, the more values that match the query, the more accurate \n the percentile values.

\n

Requires permission to access the GetPercentiles action.

", "smithy.api#http": { "method": "POST", "uri": "/indices/percentiles", @@ -13675,7 +14397,7 @@ "queryString": { "target": "com.amazonaws.iot#QueryString", "traits": { - "smithy.api#documentation": "

The query string.

", + "smithy.api#documentation": "

The search query string.

", "smithy.api#required": {} } }, @@ -13739,7 +14461,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets information about the specified policy with the policy document of the default\n version.

", + "smithy.api#documentation": "

Gets information about the specified policy with the policy document of the default\n version.

\n

Requires permission to access the GetPolicy action.

", "smithy.api#http": { "method": "GET", "uri": "/policies/{policyName}", @@ -13842,7 +14564,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets information about the specified policy version.

", + "smithy.api#documentation": "

Gets information about the specified policy version.

\n

Requires permission to access the GetPolicyVersion action.

", "smithy.api#http": { "method": "GET", "uri": "/policies/{policyName}/version/{policyVersionId}", @@ -13956,7 +14678,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets a registration code used to register a CA certificate with AWS IoT.

", + "smithy.api#documentation": "

Gets a registration code used to register a CA certificate with IoT.

\n

Requires permission to access the GetRegistrationCode action.

", "smithy.api#http": { "method": "GET", "uri": "/registrationcode", @@ -14023,7 +14745,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the count, average, sum, minimum, maximum, sum of squares, variance,\n and standard deviation for the specified aggregated field. If the aggregation field is of type\n String, only the count statistic is returned.

", + "smithy.api#documentation": "

Returns the count, average, sum, minimum, maximum, sum of squares, variance,\n and standard deviation for the specified aggregated field. If the aggregation field is of type\n String, only the count statistic is returned.

\n

Requires permission to access the GetStatistics action.

", "smithy.api#http": { "method": "POST", "uri": "/indices/statistics", @@ -14043,7 +14765,7 @@ "queryString": { "target": "com.amazonaws.iot#QueryString", "traits": { - "smithy.api#documentation": "

The query used to search. You can specify \"*\" for the query string to get the count of all\n indexed things in your AWS account.

", + "smithy.api#documentation": "

The query used to search. You can specify \"*\" for the query string to get the count of all\n indexed things in your Amazon Web Services account.

", "smithy.api#required": {} } }, @@ -14095,7 +14817,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets information about the rule.

", + "smithy.api#documentation": "

Gets information about the rule.

\n

Requires permission to access the GetTopicRule action.

", "smithy.api#http": { "method": "GET", "uri": "/rules/{ruleName}", @@ -14126,7 +14848,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets information about a topic rule destination.

", + "smithy.api#documentation": "

Gets information about a topic rule destination.

\n

Requires permission to access the GetTopicRuleDestination action.

", "smithy.api#http": { "method": "GET", "uri": "/destinations/{arn+}", @@ -14214,7 +14936,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets the fine grained logging options.

", + "smithy.api#documentation": "

Gets the fine grained logging options.

\n

Requires permission to access the GetV2LoggingOptions action.

", "smithy.api#http": { "method": "GET", "uri": "/v2LoggingOptions", @@ -14232,7 +14954,7 @@ "roleArn": { "target": "com.amazonaws.iot#AwsArn", "traits": { - "smithy.api#documentation": "

The IAM role ARN AWS IoT uses to write to your CloudWatch logs.

" + "smithy.api#documentation": "

The IAM role ARN IoT uses to write to your CloudWatch logs.

" } }, "defaultLogLevel": { @@ -14315,7 +15037,7 @@ "confirmationUrl": { "target": "com.amazonaws.iot#Url", "traits": { - "smithy.api#documentation": "

The URL to which AWS IoT sends a confirmation message. The value of the confirmation URL\n must be a prefix of the endpoint URL. If you do not specify a confirmation URL AWS IoT uses\n the endpoint URL as the confirmation URL. If you use substitution templates in the\n confirmationUrl, you must create and enable topic rule destinations that match each\n possible value of the substitution template before traffic is allowed to your endpoint\n URL.

" + "smithy.api#documentation": "

The URL to which IoT sends a confirmation message. The value of the confirmation URL\n must be a prefix of the endpoint URL. If you do not specify a confirmation URL IoT uses\n the endpoint URL as the confirmation URL. If you use substitution templates in the\n confirmationUrl, you must create and enable topic rule destinations that match each\n possible value of the substitution template before traffic is allowed to your endpoint\n URL.

" } }, "headers": { @@ -14433,7 +15155,7 @@ "confirmationUrl": { "target": "com.amazonaws.iot#Url", "traits": { - "smithy.api#documentation": "

The URL AWS IoT uses to confirm ownership of or access to the topic rule destination\n URL.

", + "smithy.api#documentation": "

The URL IoT uses to confirm ownership of or access to the topic rule destination\n URL.

", "smithy.api#required": {} } } @@ -14704,7 +15426,7 @@ "batchMode": { "target": "com.amazonaws.iot#BatchMode", "traits": { - "smithy.api#documentation": "

Whether to process the action as a batch. The default value is\n false.

\n

When batchMode is true and the rule SQL statement evaluates\n to an Array, each Array element is delivered as a separate message when passed by \n BatchPutMessage\n to the AWS IoT Analytics channel. The resulting array can't have more\n than 100 messages.

" + "smithy.api#documentation": "

Whether to process the action as a batch. The default value is\n false.

\n

When batchMode is true and the rule SQL statement evaluates\n to an Array, each Array element is delivered as a separate message when passed by \n BatchPutMessage\n to the IoT Analytics channel. The resulting array can't have more\n than 100 messages.

" } }, "roleArn": { @@ -14715,7 +15437,7 @@ } }, "traits": { - "smithy.api#documentation": "

Sends message data to an AWS IoT Analytics channel.

" + "smithy.api#documentation": "

Sends message data to an IoT Analytics channel.

" } }, "com.amazonaws.iot#IotEventsAction": { @@ -14724,32 +15446,32 @@ "inputName": { "target": "com.amazonaws.iot#InputName", "traits": { - "smithy.api#documentation": "

The name of the AWS IoT Events input.

", + "smithy.api#documentation": "

The name of the IoT Events input.

", "smithy.api#required": {} } }, "messageId": { "target": "com.amazonaws.iot#MessageId", "traits": { - "smithy.api#documentation": "

The ID of the message. The default messageId is a new UUID value.

\n

When batchMode is true, you can't specify a\n messageId--a new UUID value will be assigned.

\n

Assign a value to this property to ensure that only one input (message) with a given\n messageId will be processed by an AWS IoT Events detector.

" + "smithy.api#documentation": "

The ID of the message. The default messageId is a new UUID value.

\n

When batchMode is true, you can't specify a\n messageId--a new UUID value will be assigned.

\n

Assign a value to this property to ensure that only one input (message) with a given\n messageId will be processed by an IoT Events detector.

" } }, "batchMode": { "target": "com.amazonaws.iot#BatchMode", "traits": { - "smithy.api#documentation": "

Whether to process the event actions as a batch. The default value is\n false.

\n

When batchMode is true, you can't specify a\n messageId.

\n

When batchMode is true and the rule SQL statement evaluates\n to an Array, each Array element is treated as a separate message when it's sent to AWS IoT\n Events by calling \n BatchPutMessage\n . The resulting array can't have more\n than 10 messages.

" + "smithy.api#documentation": "

Whether to process the event actions as a batch. The default value is\n false.

\n

When batchMode is true, you can't specify a\n messageId.

\n

When batchMode is true and the rule SQL statement evaluates\n to an Array, each Array element is treated as a separate message when it's sent to IoT\n Events by calling \n BatchPutMessage\n . The resulting array can't have more\n than 10 messages.

" } }, "roleArn": { "target": "com.amazonaws.iot#AwsArn", "traits": { - "smithy.api#documentation": "

The ARN of the role that grants AWS IoT permission to send an input to an AWS IoT\n Events detector. (\"Action\":\"iotevents:BatchPutMessage\").

", + "smithy.api#documentation": "

The ARN of the role that grants IoT permission to send an input to an IoT\n Events detector. (\"Action\":\"iotevents:BatchPutMessage\").

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

Sends an input to an AWS IoT Events detector.

" + "smithy.api#documentation": "

Sends an input to an IoT Events detector.

" } }, "com.amazonaws.iot#IotSiteWiseAction": { @@ -14765,13 +15487,13 @@ "roleArn": { "target": "com.amazonaws.iot#AwsArn", "traits": { - "smithy.api#documentation": "

The ARN of the role that grants AWS IoT permission to send an asset property value to AWS\n IoTSiteWise. (\"Action\": \"iotsitewise:BatchPutAssetPropertyValue\"). The trust\n policy can restrict access to specific asset hierarchy paths.

", + "smithy.api#documentation": "

The ARN of the role that grants IoT permission to send an asset property value to IoT SiteWise. (\"Action\": \"iotsitewise:BatchPutAssetPropertyValue\"). The trust\n policy can restrict access to specific asset hierarchy paths.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

Describes an action to send data from an MQTT message that triggered the rule to AWS IoT\n SiteWise asset properties.

" + "smithy.api#documentation": "

Describes an action to send data from an MQTT message that triggered the rule to IoT\n SiteWise asset properties.

" } }, "com.amazonaws.iot#IsAuthenticated": { @@ -14903,7 +15625,7 @@ "namespaceId": { "target": "com.amazonaws.iot#NamespaceId", "traits": { - "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, AWS IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is in public preview.

\n
" + "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is in public preview.

\n
" } }, "jobTemplateArn": { @@ -15618,7 +16340,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the active violations for a given Device Defender security profile.

", + "smithy.api#documentation": "

Lists the active violations for a given Device Defender security profile.

\n

Requires permission to access the ListActiveViolations action.

", "smithy.api#http": { "method": "GET", "uri": "/active-violations", @@ -15728,7 +16450,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the policies attached to the specified thing group.

", + "smithy.api#documentation": "

Lists the policies attached to the specified thing group.

\n

Requires permission to access the ListAttachedPolicies action.

", "smithy.api#http": { "method": "POST", "uri": "/attached-policies/{target}", @@ -15813,7 +16535,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the findings (results) of a Device Defender audit or of the audits\n performed during a specified time period. (Findings are retained for 90 days.)

", + "smithy.api#documentation": "

Lists the findings (results) of a Device Defender audit or of the audits\n performed during a specified time period. (Findings are retained for 90 days.)

\n

Requires permission to access the ListAuditFindings action.

", "smithy.api#http": { "method": "POST", "uri": "/audit/findings", @@ -15917,7 +16639,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets the status of audit mitigation action tasks that were\n executed.

", + "smithy.api#documentation": "

Gets the status of audit mitigation action tasks that were\n executed.

\n

Requires permission to access the ListAuditMitigationActionsExecutions action.

", "smithy.api#http": { "method": "GET", "uri": "/audit/mitigationactions/executions", @@ -16010,7 +16732,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets a list of audit mitigation action tasks that match the specified filters.

", + "smithy.api#documentation": "

Gets a list of audit mitigation action tasks that match the specified filters.

\n

Requires permission to access the ListAuditMitigationActionsTasks action.

", "smithy.api#http": { "method": "GET", "uri": "/audit/mitigationactions/tasks", @@ -16117,7 +16839,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n Lists your Device Defender audit listings.\n

", + "smithy.api#documentation": "

\n Lists your Device Defender audit listings.\n

\n

Requires permission to access the ListAuditSuppressions action.

", "smithy.api#http": { "method": "POST", "uri": "/audit/suppressions/list", @@ -16197,7 +16919,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the Device Defender audits that have been performed during a given\n time period.

", + "smithy.api#documentation": "

Lists the Device Defender audits that have been performed during a given\n time period.

\n

Requires permission to access the ListAuditTasks action.

", "smithy.api#http": { "method": "GET", "uri": "/audit/tasks", @@ -16303,7 +17025,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the authorizers registered in your account.

", + "smithy.api#documentation": "

Lists the authorizers registered in your account.

\n

Requires permission to access the ListAuthorizers action.

", "smithy.api#http": { "method": "GET", "uri": "/authorizers", @@ -16390,7 +17112,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the billing groups you have created.

", + "smithy.api#documentation": "

Lists the billing groups you have created.

\n\t\t

Requires permission to access the ListBillingGroups action.

", "smithy.api#http": { "method": "GET", "uri": "/billing-groups", @@ -16473,7 +17195,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the CA certificates registered for your AWS account.

\n

The results are paginated with a default page size of 25. You can use the returned\n marker to retrieve additional results.

", + "smithy.api#documentation": "

Lists the CA certificates registered for your Amazon Web Services account.

\n

The results are paginated with a default page size of 25. You can use the returned\n marker to retrieve additional results.

\n

Requires permission to access the ListCACertificates action.

", "smithy.api#http": { "method": "GET", "uri": "/cacertificates", @@ -16522,7 +17244,7 @@ "certificates": { "target": "com.amazonaws.iot#CACertificates", "traits": { - "smithy.api#documentation": "

The CA certificates registered in your AWS account.

" + "smithy.api#documentation": "

The CA certificates registered in your Amazon Web Services account.

" } }, "nextMarker": { @@ -16562,7 +17284,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the certificates registered in your AWS account.

\n

The results are paginated with a default page size of 25. You can use the returned\n marker to retrieve additional results.

", + "smithy.api#documentation": "

Lists the certificates registered in your Amazon Web Services account.

\n

The results are paginated with a default page size of 25. You can use the returned\n marker to retrieve additional results.

\n

Requires permission to access the ListCertificates action.

", "smithy.api#http": { "method": "GET", "uri": "/certificates", @@ -16602,7 +17324,7 @@ } ], "traits": { - "smithy.api#documentation": "

List the device certificates signed by the specified CA certificate.

", + "smithy.api#documentation": "

List the device certificates signed by the specified CA certificate.

\n

Requires permission to access the ListCertificatesByCA action.

", "smithy.api#http": { "method": "GET", "uri": "/certificates-by-ca/{caCertificateId}", @@ -16742,7 +17464,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n Lists your Device Defender detect custom metrics.\n

", + "smithy.api#documentation": "

\n Lists your Device Defender detect custom metrics.\n

\n

Requires permission to access the ListCustomMetrics action.

", "smithy.api#http": { "method": "GET", "uri": "/custom-metrics", @@ -16812,7 +17534,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n Lists mitigation actions executions for a Device Defender ML Detect Security Profile.\n

", + "smithy.api#documentation": "

\n Lists mitigation actions executions for a Device Defender ML Detect Security Profile.\n

\n

Requires permission to access the ListDetectMitigationActionsExecutions action.

", "smithy.api#http": { "method": "GET", "uri": "/detect/mitigationactions/executions", @@ -16917,7 +17639,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n List of Device Defender ML Detect mitigation actions tasks.\n

", + "smithy.api#documentation": "

\n List of Device Defender ML Detect mitigation actions tasks.\n

\n

Requires permission to access the ListDetectMitigationActionsTasks action.

", "smithy.api#http": { "method": "GET", "uri": "/detect/mitigationactions/tasks", @@ -17003,7 +17725,7 @@ } ], "traits": { - "smithy.api#documentation": "

List the set of dimensions that are defined for your AWS account.

", + "smithy.api#documentation": "

List the set of dimensions that are defined for your Amazon Web Services accounts.

\n

Requires permission to access the ListDimensions action.

", "smithy.api#http": { "method": "GET", "uri": "/dimensions", @@ -17079,7 +17801,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets a list of domain configurations for the user. This list is sorted alphabetically by domain configuration name.

", + "smithy.api#documentation": "

Gets a list of domain configurations for the user. This list is sorted\n alphabetically by domain configuration name.

\n

Requires permission to access the ListDomainConfigurations action.

", "smithy.api#http": { "method": "GET", "uri": "/domainConfigurations", @@ -17136,6 +17858,82 @@ } } }, + "com.amazonaws.iot#ListFleetMetrics": { + "type": "operation", + "input": { + "target": "com.amazonaws.iot#ListFleetMetricsRequest" + }, + "output": { + "target": "com.amazonaws.iot#ListFleetMetricsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iot#InternalFailureException" + }, + { + "target": "com.amazonaws.iot#InvalidRequestException" + }, + { + "target": "com.amazonaws.iot#ServiceUnavailableException" + }, + { + "target": "com.amazonaws.iot#ThrottlingException" + }, + { + "target": "com.amazonaws.iot#UnauthorizedException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists all your fleet metrics.

\n

Requires permission to access the ListFleetMetrics action.

", + "smithy.api#http": { + "method": "GET", + "uri": "/fleet-metrics", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "items": "fleetMetrics", + "pageSize": "maxResults" + } + } + }, + "com.amazonaws.iot#ListFleetMetricsRequest": { + "type": "structure", + "members": { + "nextToken": { + "target": "com.amazonaws.iot#NextToken", + "traits": { + "smithy.api#documentation": "

To retrieve the next set of results, the nextToken value from a previous response; \n otherwise null to receive the first set of results.

", + "smithy.api#httpQuery": "nextToken" + } + }, + "maxResults": { + "target": "com.amazonaws.iot#MaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return in this operation.

", + "smithy.api#httpQuery": "maxResults" + } + } + } + }, + "com.amazonaws.iot#ListFleetMetricsResponse": { + "type": "structure", + "members": { + "fleetMetrics": { + "target": "com.amazonaws.iot#FleetMetricNameAndArnList", + "traits": { + "smithy.api#documentation": "

The list of fleet metrics objects.

" + } + }, + "nextToken": { + "target": "com.amazonaws.iot#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of results. Will not be returned if the operation has returned\n all results.

" + } + } + } + }, "com.amazonaws.iot#ListIndices": { "type": "operation", "input": { @@ -17162,7 +17960,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the search indices.

", + "smithy.api#documentation": "

Lists the search indices.

\n

Requires permission to access the ListIndices action.

", "smithy.api#http": { "method": "GET", "uri": "/indices", @@ -17235,7 +18033,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the job executions for a job.

", + "smithy.api#documentation": "

Lists the job executions for a job.

\n

Requires permission to access the ListJobExecutionsForJob action.

", "smithy.api#http": { "method": "GET", "uri": "/jobs/{jobId}/things", @@ -17323,7 +18121,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the job executions for the specified thing.

", + "smithy.api#documentation": "

Lists the job executions for the specified thing.

\n

Requires permission to access the ListJobExecutionsForThing action.

", "smithy.api#http": { "method": "GET", "uri": "/things/{thingName}/jobs", @@ -17358,7 +18156,7 @@ "namespaceId": { "target": "com.amazonaws.iot#NamespaceId", "traits": { - "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, AWS IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is in public preview.

\n
", + "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is in public preview.

\n
", "smithy.api#httpQuery": "namespaceId" } }, @@ -17415,11 +18213,17 @@ } ], "traits": { - "smithy.api#documentation": "

Returns a list of job templates.

", + "smithy.api#documentation": "

Returns a list of job templates.

\n

Requires permission to access the ListJobTemplates action.

", "smithy.api#http": { "method": "GET", "uri": "/job-templates", "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "items": "jobTemplates", + "pageSize": "maxResults" } } }, @@ -17482,7 +18286,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists jobs.

", + "smithy.api#documentation": "

Lists jobs.

\n

Requires permission to access the ListJobs action.

", "smithy.api#http": { "method": "GET", "uri": "/jobs", @@ -17544,7 +18348,7 @@ "namespaceId": { "target": "com.amazonaws.iot#NamespaceId", "traits": { - "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, AWS IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is in public preview.

\n
", + "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is in public preview.

\n
", "smithy.api#httpQuery": "namespaceId" } } @@ -17587,7 +18391,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets a list of all mitigation actions that match the specified filter criteria.

", + "smithy.api#documentation": "

Gets a list of all mitigation actions that match the specified filter criteria.

\n

Requires permission to access the ListMitigationActions action.

", "smithy.api#http": { "method": "GET", "uri": "/mitigationactions/actions", @@ -17670,7 +18474,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists OTA updates.

", + "smithy.api#documentation": "

Lists OTA updates.

\n

Requires permission to access the ListOTAUpdates action.

", "smithy.api#http": { "method": "GET", "uri": "/otaUpdates", @@ -17753,7 +18557,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists certificates that are being transferred but not yet accepted.

", + "smithy.api#documentation": "

Lists certificates that are being transferred but not yet accepted.

\n

Requires permission to access the ListOutgoingCertificates action.

", "smithy.api#http": { "method": "GET", "uri": "/certificates-out-going", @@ -17842,7 +18646,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists your policies.

", + "smithy.api#documentation": "

Lists your policies.

\n

Requires permission to access the ListPolicies action.

", "smithy.api#http": { "method": "GET", "uri": "/policies", @@ -17935,7 +18739,7 @@ ], "traits": { "smithy.api#deprecated": {}, - "smithy.api#documentation": "

Lists the principals associated with the specified policy.

\n

\n Note: This API is deprecated. Please use ListTargetsForPolicy instead.

", + "smithy.api#documentation": "

Lists the principals associated with the specified policy.

\n

\n Note: This action is deprecated. Please use ListTargetsForPolicy instead.

\n

Requires permission to access the ListPolicyPrincipals action.

", "smithy.api#http": { "method": "GET", "uri": "/policy-principals", @@ -18035,7 +18839,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the versions of the specified policy and identifies the default\n version.

", + "smithy.api#documentation": "

Lists the versions of the specified policy and identifies the default\n version.

\n

Requires permission to access the ListPolicyVersions action.

", "smithy.api#http": { "method": "GET", "uri": "/policies/{policyName}/version", @@ -18103,7 +18907,7 @@ ], "traits": { "smithy.api#deprecated": {}, - "smithy.api#documentation": "

Lists the policies attached to the specified principal. If you use an Cognito\n identity, the ID must be in AmazonCognito Identity format.

\n

\n Note: This API is deprecated. Please use ListAttachedPolicies instead.

", + "smithy.api#documentation": "

Lists the policies attached to the specified principal. If you use an Cognito\n identity, the ID must be in AmazonCognito Identity format.

\n

\n Note: This action is deprecated. Please use ListAttachedPolicies instead.

\n

Requires permission to access the ListPrincipalPolicies action.

", "smithy.api#http": { "method": "GET", "uri": "/principal-policies", @@ -18203,7 +19007,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the things associated with the specified principal. A principal can be X.509\n\t\t\tcertificates, IAM users, groups, and roles, Amazon Cognito identities or federated\n\t\t\tidentities.

", + "smithy.api#documentation": "

Lists the things associated with the specified principal. A principal can be X.509\n\t\t\tcertificates, IAM users, groups, and roles, Amazon Cognito identities or federated\n\t\t\tidentities.

\n\t\t

Requires permission to access the ListPrincipalThings action.

", "smithy.api#http": { "method": "GET", "uri": "/principals/things", @@ -18293,7 +19097,7 @@ } ], "traits": { - "smithy.api#documentation": "

A list of fleet provisioning template versions.

", + "smithy.api#documentation": "

A list of fleet provisioning template versions.

\n

Requires permission to access the ListProvisioningTemplateVersions action.

", "smithy.api#http": { "method": "GET", "uri": "/provisioning-templates/{templateName}/versions", @@ -18374,7 +19178,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the fleet provisioning templates in your AWS account.

", + "smithy.api#documentation": "

Lists the fleet provisioning templates in your Amazon Web Services account.

\n

Requires permission to access the ListProvisioningTemplates action.

", "smithy.api#http": { "method": "GET", "uri": "/provisioning-templates", @@ -18450,7 +19254,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the role aliases registered in your account.

", + "smithy.api#documentation": "

Lists the role aliases registered in your account.

\n

Requires permission to access the ListRoleAliases action.

", "smithy.api#http": { "method": "GET", "uri": "/role-aliases", @@ -18527,7 +19331,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists all of your scheduled audits.

", + "smithy.api#documentation": "

Lists all of your scheduled audits.

\n

Requires permission to access the ListScheduledAudits action.

", "smithy.api#http": { "method": "GET", "uri": "/audit/scheduledaudits", @@ -18600,7 +19404,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the Device Defender security profiles\n you've\n created. You can filter security profiles by dimension or custom metric.

\n \n

\n dimensionName and metricName cannot be used in the same request.

\n
", + "smithy.api#documentation": "

Lists the Device Defender security profiles\n you've\n created. You can filter security profiles by dimension or custom metric.

\n

Requires permission to access the ListSecurityProfiles action.

\n \n

\n dimensionName and metricName cannot be used in the same request.

\n
", "smithy.api#http": { "method": "GET", "uri": "/security-profiles", @@ -18637,7 +19441,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the Device Defender security profiles attached to a target (thing group).

", + "smithy.api#documentation": "

Lists the Device Defender security profiles attached to a target (thing group).

\n

Requires permission to access the ListSecurityProfilesForTarget action.

", "smithy.api#http": { "method": "GET", "uri": "/security-profiles-for-target", @@ -18778,7 +19582,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists all of the streams in your AWS account.

", + "smithy.api#documentation": "

Lists all of the streams in your Amazon Web Services account.

\n\t\t

Requires permission to access the ListStreams action.

", "smithy.api#http": { "method": "GET", "uri": "/streams", @@ -18867,7 +19671,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the tags (metadata) you have assigned to the resource.

", + "smithy.api#documentation": "

Lists the tags (metadata) you have assigned to the resource.

\n\t\t

Requires permission to access the ListTagsForResource action.

", "smithy.api#http": { "method": "GET", "uri": "/tags", @@ -18949,7 +19753,7 @@ } ], "traits": { - "smithy.api#documentation": "

List targets for the specified policy.

", + "smithy.api#documentation": "

List targets for the specified policy.

\n

Requires permission to access the ListTargetsForPolicy action.

", "smithy.api#http": { "method": "POST", "uri": "/policy-targets/{policyName}", @@ -19030,7 +19834,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the targets (thing groups) associated with a given Device Defender security profile.

", + "smithy.api#documentation": "

Lists the targets (thing groups) associated with a given Device Defender security profile.

\n

Requires permission to access the ListTargetsForSecurityProfile action.

", "smithy.api#http": { "method": "GET", "uri": "/security-profiles/{securityProfileName}/targets", @@ -19111,7 +19915,7 @@ } ], "traits": { - "smithy.api#documentation": "

List the thing groups in your account.

", + "smithy.api#documentation": "

List the thing groups in your account.

\n\t\t

Requires permission to access the ListThingGroups action.

", "smithy.api#http": { "method": "GET", "uri": "/thing-groups", @@ -19148,7 +19952,7 @@ } ], "traits": { - "smithy.api#documentation": "

List the thing groups to which the specified thing belongs.

", + "smithy.api#documentation": "

List the thing groups to which the specified thing belongs.

\n\t\t

Requires permission to access the ListThingGroupsForThing action.

", "smithy.api#http": { "method": "GET", "uri": "/things/{thingName}/thing-groups", @@ -19292,7 +20096,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the principals associated with the specified thing. A principal can be X.509\n\t\t\tcertificates, IAM users, groups, and roles, Amazon Cognito identities or federated\n\t\t\tidentities.

", + "smithy.api#documentation": "

Lists the principals associated with the specified thing. A principal can be X.509\n\t\t\tcertificates, IAM users, groups, and roles, Amazon Cognito identities or federated\n\t\t\tidentities.

\n\t\t

Requires permission to access the ListThingPrincipals action.

", "smithy.api#http": { "method": "GET", "uri": "/things/{thingName}/principals", @@ -19474,7 +20278,7 @@ } ], "traits": { - "smithy.api#documentation": "

List bulk thing provisioning tasks.

", + "smithy.api#documentation": "

List bulk thing provisioning tasks.

\n\t\t

Requires permission to access the ListThingRegistrationTasks action.

", "smithy.api#http": { "method": "GET", "uri": "/thing-registration-tasks", @@ -19557,7 +20361,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the existing thing types.

", + "smithy.api#documentation": "

Lists the existing thing types.

\n\t\t

Requires permission to access the ListThingTypes action.

", "smithy.api#http": { "method": "GET", "uri": "/thing-types", @@ -19646,7 +20450,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists your things. Use the attributeName and\n\t\t\t\tattributeValue parameters to filter your things.\n\t\t\tFor example, calling ListThings with attributeName=Color and\n\t\t\tattributeValue=Red retrieves all things in the registry that contain an attribute\n\t\t\t\tColor with the value Red.

\n\t\t \n\t\t\t

You will not be charged for calling this API if an Access denied error is returned. You will also not be charged if no attributes or pagination token was provided in request and no pagination token and no results were returned.

\n\t\t
", + "smithy.api#documentation": "

Lists your things. Use the attributeName and\n\t\t\t\tattributeValue parameters to filter your things.\n\t\t\tFor example, calling ListThings with attributeName=Color and\n\t\t\tattributeValue=Red retrieves all things in the registry that contain an attribute\n\t\t\t\tColor with the value Red.

\n\t\t

Requires permission to access the ListThings action.

\n\t\t\n\t\t \n\t\t\t

You will not be charged for calling this API if an Access denied error is returned. You will also not be charged if no attributes or pagination token was provided in request and no pagination token and no results were returned.

\n\t\t
", "smithy.api#http": { "method": "GET", "uri": "/things", @@ -19683,7 +20487,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the things you have added to the given billing group.

", + "smithy.api#documentation": "

Lists the things you have added to the given billing group.

\n\t\t

Requires permission to access the ListThingsInBillingGroup action.

", "smithy.api#http": { "method": "GET", "uri": "/billing-groups/{billingGroupName}/things", @@ -19764,7 +20568,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the things in the specified group.

", + "smithy.api#documentation": "

Lists the things in the specified group.

\n\t\t

Requires permission to access the ListThingsInThingGroup action.

", "smithy.api#http": { "method": "GET", "uri": "/thing-groups/{thingGroupName}/things", @@ -19922,7 +20726,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists all the topic rule destinations in your AWS account.

", + "smithy.api#documentation": "

Lists all the topic rule destinations in your Amazon Web Services account.

\n

Requires permission to access the ListTopicRuleDestinations action.

", "smithy.api#http": { "method": "GET", "uri": "/destinations", @@ -19992,7 +20796,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the rules for the specific topic.

", + "smithy.api#documentation": "

Lists the rules for the specific topic.

\n

Requires permission to access the ListTopicRules action.

", "smithy.api#http": { "method": "GET", "uri": "/rules", @@ -20085,7 +20889,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists logging levels.

", + "smithy.api#documentation": "

Lists logging levels.

\n

Requires permission to access the ListV2LoggingLevels action.

", "smithy.api#http": { "method": "GET", "uri": "/v2LoggingLevel", @@ -20162,7 +20966,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the Device Defender security profile violations discovered during the given time period. \n You can use filters to limit the results to those alerts issued for a particular security profile, \n behavior, or thing (device).

", + "smithy.api#documentation": "

Lists the Device Defender security profile violations discovered during the given time period. \n You can use filters to limit the results to those alerts issued for a particular security profile, \n behavior, or thing (device).

\n

Requires permission to access the ListViolationEvents action.

", "smithy.api#http": { "method": "GET", "uri": "/violation-events", @@ -20413,6 +21217,15 @@ "smithy.api#pattern": "^[A-Za-z0-9+/]+={0,2}$" } }, + "com.amazonaws.iot#MaxBuckets": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 10000 + } + } + }, "com.amazonaws.iot#MaxJobExecutionsPerMin": { "type": "integer", "traits": { @@ -20729,7 +21542,7 @@ "enableIoTLoggingParams": { "target": "com.amazonaws.iot#EnableIoTLoggingParams", "traits": { - "smithy.api#documentation": "

Parameters to define a mitigation action that enables AWS IoT logging at a specified level of detail.

" + "smithy.api#documentation": "

Parameters to define a mitigation action that enables Amazon Web Services IoT Core logging at a specified level of detail.

" } }, "publishFindingToSnsParams": { @@ -21113,13 +21926,13 @@ "awsIotJobId": { "target": "com.amazonaws.iot#AwsIotJobId", "traits": { - "smithy.api#documentation": "

The AWS IoT job ID associated with the OTA update.

" + "smithy.api#documentation": "

The IoT job ID associated with the OTA update.

" } }, "awsIotJobArn": { "target": "com.amazonaws.iot#AwsIotJobArn", "traits": { - "smithy.api#documentation": "

The AWS IoT job ARN associated with the OTA update.

" + "smithy.api#documentation": "

The IoT job ARN associated with the OTA update.

" } }, "errorInfo": { @@ -21218,7 +22031,7 @@ "transferredTo": { "target": "com.amazonaws.iot#AwsAccountId", "traits": { - "smithy.api#documentation": "

The AWS account to which the transfer was made.

" + "smithy.api#documentation": "

The Amazon Web Services account to which the transfer was made.

" } }, "transferDate": { @@ -21370,7 +22183,7 @@ } }, "traits": { - "smithy.api#documentation": "

Describes an AWS IoT policy.

" + "smithy.api#documentation": "

Describes an IoT policy.

" } }, "com.amazonaws.iot#PolicyArn": { @@ -21735,7 +22548,7 @@ "assetId": { "target": "com.amazonaws.iot#AssetId", "traits": { - "smithy.api#documentation": "

The ID of the AWS IoT SiteWise asset. You must specify either a propertyAlias\n or both an aliasId and a propertyId. Accepts substitution\n templates.

" + "smithy.api#documentation": "

The ID of the IoT SiteWise asset. You must specify either a propertyAlias\n or both an aliasId and a propertyId. Accepts substitution\n templates.

" } }, "propertyId": { @@ -21929,7 +22742,7 @@ } ], "traits": { - "smithy.api#documentation": "

Registers a CA certificate with AWS IoT. This CA certificate can then be used to sign\n device certificates, which can be then registered with AWS IoT. You can register up to 10\n CA certificates per AWS account that have the same subject field. This enables you to have\n up to 10 certificate authorities sign your device certificates. If you have more than one\n CA certificate registered, make sure you pass the CA certificate when you register your\n device certificates with the RegisterCertificate API.

", + "smithy.api#documentation": "

Registers a CA certificate with IoT. This CA certificate can then be used to sign\n device certificates, which can be then registered with IoT. You can register up to 10\n CA certificates per Amazon Web Services account that have the same subject field. This enables you to have\n up to 10 certificate authorities sign your device certificates. If you have more than one\n CA certificate registered, make sure you pass the CA certificate when you register your\n device certificates with the RegisterCertificate action.

\n

Requires permission to access the RegisterCACertificate action.

", "smithy.api#http": { "method": "POST", "uri": "/cacertificate", @@ -22043,7 +22856,7 @@ } ], "traits": { - "smithy.api#documentation": "

Registers a device certificate with AWS IoT. If you have more than one CA certificate\n that has the same subject field, you must specify the CA certificate that was used to sign\n the device certificate being registered.

", + "smithy.api#documentation": "

Registers a device certificate with IoT. If you have more than one CA certificate\n that has the same subject field, you must specify the CA certificate that was used to sign\n the device certificate being registered.

\n

Requires permission to access the RegisterCertificate action.

", "smithy.api#http": { "method": "POST", "uri": "/certificate/register", @@ -22216,7 +23029,7 @@ } ], "traits": { - "smithy.api#documentation": "

Provisions a thing in the device registry. RegisterThing calls other AWS IoT control\n plane APIs. These calls might exceed your account level \n AWS IoT Throttling Limits and cause throttle errors. Please contact AWS Customer Support to raise\n your throttling limits if necessary.

", + "smithy.api#documentation": "

Provisions a thing in the device registry. RegisterThing calls other IoT control\n plane APIs. These calls might exceed your account level \n IoT Throttling Limits and cause throttle errors. Please contact Amazon Web Services Customer Support to raise\n your throttling limits if necessary.

\n

Requires permission to access the RegisterThing action.

", "smithy.api#http": { "method": "POST", "uri": "/things", @@ -22364,7 +23177,7 @@ } ], "traits": { - "smithy.api#documentation": "

Rejects a pending certificate transfer. After AWS IoT rejects a certificate transfer,\n the certificate status changes from PENDING_TRANSFER to\n INACTIVE.

\n

To check for pending certificate transfers, call ListCertificates\n to enumerate your certificates.

\n

This operation can only be called by the transfer destination. After it is called,\n the certificate will be returned to the source's account in the INACTIVE state.

", + "smithy.api#documentation": "

Rejects a pending certificate transfer. After IoT rejects a certificate transfer,\n the certificate status changes from PENDING_TRANSFER to\n INACTIVE.

\n

To check for pending certificate transfers, call ListCertificates\n to enumerate your certificates.

\n

This operation can only be called by the transfer destination. After it is called,\n the certificate will be returned to the source's account in the INACTIVE state.

\n

Requires permission to access the RejectCertificateTransfer action.

", "smithy.api#http": { "method": "PATCH", "uri": "/reject-certificate-transfer/{certificateId}", @@ -22467,7 +23280,7 @@ } ], "traits": { - "smithy.api#documentation": "

Removes the given thing from the billing group.

", + "smithy.api#documentation": "

Removes the given thing from the billing group.

\n\t\t

Requires permission to access the RemoveThingFromBillingGroup action.

", "smithy.api#http": { "method": "PUT", "uri": "/billing-groups/removeThingFromBillingGroup", @@ -22531,7 +23344,7 @@ } ], "traits": { - "smithy.api#documentation": "

Remove the specified thing from the specified group.

\n\t\t

You must specify either a thingGroupArn or a\n\t\t\tthingGroupName to identify the thing group and\n\t\t\teither a thingArn or a thingName to\n\t\t\tidentify the thing to remove from the thing group.\n\t\t

", + "smithy.api#documentation": "

Remove the specified thing from the specified group.

\n\t\t

You must specify either a thingGroupArn or a\n\t\t\tthingGroupName to identify the thing group and\n\t\t\teither a thingArn or a thingName to\n\t\t\tidentify the thing to remove from the thing group.\n\t\t

\n\t\t

Requires permission to access the RemoveThingFromThingGroup action.

", "smithy.api#http": { "method": "PUT", "uri": "/thing-groups/removeThingFromThingGroup", @@ -22622,7 +23435,7 @@ } ], "traits": { - "smithy.api#documentation": "

Replaces the rule. You must specify all parameters for the new rule. Creating rules\n is an administrator-level action. Any user who has permission to create rules will be able\n to access data processed by the rule.

", + "smithy.api#documentation": "

Replaces the rule. You must specify all parameters for the new rule. Creating rules\n is an administrator-level action. Any user who has permission to create rules will be able\n to access data processed by the rule.

\n

Requires permission to access the ReplaceTopicRule action.

", "smithy.api#http": { "method": "PATCH", "uri": "/rules/{ruleName}", @@ -23249,7 +24062,7 @@ } ], "traits": { - "smithy.api#documentation": "

The query search index.

", + "smithy.api#documentation": "

The query search index.

\n

Requires permission to access the SearchIndex action.

", "smithy.api#http": { "method": "POST", "uri": "/indices/search", @@ -23591,7 +24404,7 @@ } ], "traits": { - "smithy.api#documentation": "

Sets the default authorizer. This will be used if a websocket connection is made\n without specifying an authorizer.

", + "smithy.api#documentation": "

Sets the default authorizer. This will be used if a websocket connection is made\n without specifying an authorizer.

\n

Requires permission to access the SetDefaultAuthorizer action.

", "smithy.api#http": { "method": "POST", "uri": "/default-authorizer", @@ -23654,7 +24467,7 @@ } ], "traits": { - "smithy.api#documentation": "

Sets the specified version of the specified policy as the policy's default\n (operative) version. This action affects all certificates to which the policy is attached.\n To list the principals the policy is attached to, use the ListPrincipalPolicy\n API.

", + "smithy.api#documentation": "

Sets the specified version of the specified policy as the policy's default\n (operative) version. This action affects all certificates to which the policy is attached.\n To list the principals the policy is attached to, use the ListPrincipalPolicies\n action.

\n

Requires permission to access the SetDefaultPolicyVersion action.

", "smithy.api#http": { "method": "PATCH", "uri": "/policies/{policyName}/version/{policyVersionId}", @@ -23703,7 +24516,7 @@ } ], "traits": { - "smithy.api#documentation": "

Sets the logging options.

\n

NOTE: use of this command is not recommended. Use SetV2LoggingOptions\n instead.

", + "smithy.api#documentation": "

Sets the logging options.

\n

NOTE: use of this command is not recommended. Use SetV2LoggingOptions\n instead.

\n

Requires permission to access the SetLoggingOptions action.

", "smithy.api#http": { "method": "POST", "uri": "/loggingOptions", @@ -23750,7 +24563,7 @@ } ], "traits": { - "smithy.api#documentation": "

Sets the logging level.

", + "smithy.api#documentation": "

Sets the logging level.

\n

Requires permission to access the SetV2LoggingLevel action.

", "smithy.api#http": { "method": "POST", "uri": "/v2LoggingLevel", @@ -23794,7 +24607,7 @@ } ], "traits": { - "smithy.api#documentation": "

Sets the logging options for the V2 logging service.

", + "smithy.api#documentation": "

Sets the logging options for the V2 logging service.

\n

Requires permission to access the SetV2LoggingOptions action.

", "smithy.api#http": { "method": "POST", "uri": "/v2LoggingOptions", @@ -24018,7 +24831,7 @@ } ], "traits": { - "smithy.api#documentation": "

Starts a task that applies a set of mitigation actions to the specified target.

", + "smithy.api#documentation": "

Starts a task that applies a set of mitigation actions to the specified target.

\n

Requires permission to access the StartAuditMitigationActionsTask action.

", "smithy.api#http": { "method": "POST", "uri": "/audit/mitigationactions/tasks/{taskId}", @@ -24047,7 +24860,7 @@ "auditCheckToActionsMapping": { "target": "com.amazonaws.iot#AuditCheckToActionsMapping", "traits": { - "smithy.api#documentation": "

For an audit check, specifies which mitigation actions to apply. Those actions must be defined in your AWS account.

", + "smithy.api#documentation": "

For an audit check, specifies which mitigation actions to apply. Those actions must be defined in your Amazon Web Services accounts.

", "smithy.api#required": {} } }, @@ -24098,7 +24911,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n Starts a Device Defender ML Detect mitigation actions task.\n

", + "smithy.api#documentation": "

\n Starts a Device Defender ML Detect mitigation actions task.\n

\n

Requires permission to access the StartDetectMitigationActionsTask action.

", "smithy.api#http": { "method": "PUT", "uri": "/detect/mitigationactions/tasks/{taskId}", @@ -24152,7 +24965,7 @@ "clientRequestToken": { "target": "com.amazonaws.iot#ClientRequestToken", "traits": { - "smithy.api#documentation": "

\n Each mitigation action task must have a unique client request token. If you try to create a new task with the same token as a task that already exists, an exception occurs. If you omit this value, AWS SDKs will automatically generate a unique client request.\n

", + "smithy.api#documentation": "

\n Each mitigation action task must have a unique client request token. If you try to create a new task with the same token as a task that already exists, an exception occurs. If you omit this value, Amazon Web Services SDKs will automatically generate a unique client request.\n

", "smithy.api#idempotencyToken": {}, "smithy.api#required": {} } @@ -24193,7 +25006,7 @@ } ], "traits": { - "smithy.api#documentation": "

Starts an on-demand Device Defender audit.

", + "smithy.api#documentation": "

Starts an on-demand Device Defender audit.

\n

Requires permission to access the StartOnDemandAuditTask action.

", "smithy.api#http": { "method": "POST", "uri": "/audit/tasks", @@ -24273,7 +25086,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a bulk thing provisioning task.

", + "smithy.api#documentation": "

Creates a bulk thing provisioning task.

\n\t\t

Requires permission to access the StartThingRegistrationTask action.

", "smithy.api#http": { "method": "POST", "uri": "/thing-registration-tasks", @@ -24495,7 +25308,7 @@ } ], "traits": { - "smithy.api#documentation": "

Cancels a bulk thing provisioning task.

", + "smithy.api#documentation": "

Cancels a bulk thing provisioning task.

\n\t\t

Requires permission to access the StopThingRegistrationTask action.

", "smithy.api#http": { "method": "PUT", "uri": "/thing-registration-tasks/{taskId}/cancel", @@ -24643,7 +25456,7 @@ "roleArn": { "target": "com.amazonaws.iot#RoleArn", "traits": { - "smithy.api#documentation": "

An IAM role AWS IoT assumes to access your S3 files.

" + "smithy.api#documentation": "

An IAM role IoT assumes to access your S3 files.

" } } }, @@ -24837,7 +25650,7 @@ } ], "traits": { - "smithy.api#documentation": "

Adds to or modifies the tags of the given resource. Tags are metadata which can be\n\t\t\tused to manage a resource.

", + "smithy.api#documentation": "

Adds to or modifies the tags of the given resource. Tags are metadata which can be\n\t\t\tused to manage a resource.

\n\t\t

Requires permission to access the TagResource action.

", "smithy.api#http": { "method": "POST", "uri": "/tags", @@ -25081,6 +25894,20 @@ "smithy.api#box": {} } }, + "com.amazonaws.iot#TermsAggregation": { + "type": "structure", + "members": { + "maxBuckets": { + "target": "com.amazonaws.iot#MaxBuckets", + "traits": { + "smithy.api#documentation": "

The number of buckets to return in the response. Default to 10.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Performs an aggregation that will return a list of buckets. The list of buckets is a ranked list of the number of occurrences of an aggregation field value.

" + } + }, "com.amazonaws.iot#TestAuthorization": { "type": "operation", "input": { @@ -25113,7 +25940,7 @@ } ], "traits": { - "smithy.api#documentation": "

Tests if a specified principal is authorized to perform an AWS IoT action on a\n specified resource. Use this to test and debug the authorization behavior of devices that\n connect to the AWS IoT device gateway.

", + "smithy.api#documentation": "

Tests if a specified principal is authorized to perform an IoT action on a\n specified resource. Use this to test and debug the authorization behavior of devices that\n connect to the IoT device gateway.

\n

Requires permission to access the TestAuthorization action.

", "smithy.api#http": { "method": "POST", "uri": "/test-authorization", @@ -25207,7 +26034,7 @@ } ], "traits": { - "smithy.api#documentation": "

Tests a custom authorization behavior by invoking a specified custom authorizer. Use\n this to test and debug the custom authorization behavior of devices that connect to the AWS\n IoT device gateway.

", + "smithy.api#documentation": "

Tests a custom authorization behavior by invoking a specified custom authorizer. Use\n this to test and debug the custom authorization behavior of devices that connect to the IoT\n device gateway.

\n

Requires permission to access the TestInvokeAuthorizer action.

", "smithy.api#http": { "method": "POST", "uri": "/authorizer/{authorizerName}/test", @@ -25346,13 +26173,19 @@ "connected": { "target": "com.amazonaws.iot#Boolean", "traits": { - "smithy.api#documentation": "

True if the thing is connected to the AWS IoT service; false if it is not\n connected.

" + "smithy.api#documentation": "

True if the thing is connected to the Amazon Web Services IoT Core service; false if it is not\n connected.

" } }, "timestamp": { "target": "com.amazonaws.iot#ConnectivityTimestamp", "traits": { - "smithy.api#documentation": "

The epoch time (in milliseconds) when the thing last connected or disconnected. If the\n thing has been disconnected for more than a few weeks, the time value might be missing.

" + "smithy.api#documentation": "

The epoch time (in milliseconds) when the thing last connected or disconnected. If the\n thing has been disconnected for approximately an hour, the time value might be missing.

" + } + }, + "disconnectReason": { + "target": "com.amazonaws.iot#DisconnectReason", + "traits": { + "smithy.api#documentation": "

The reason why the client is disconnected.

" } } }, @@ -25417,7 +26250,7 @@ "connectivity": { "target": "com.amazonaws.iot#ThingConnectivity", "traits": { - "smithy.api#documentation": "

Indicates whether the thing is connected to the AWS IoT service.

" + "smithy.api#documentation": "

Indicates whether the thing is connected to the Amazon Web Services IoT Core service.

" } } }, @@ -25642,7 +26475,7 @@ "thingConnectivityIndexingMode": { "target": "com.amazonaws.iot#ThingConnectivityIndexingMode", "traits": { - "smithy.api#documentation": "

Thing connectivity indexing mode. Valid values are:

\n " + "smithy.api#documentation": "

Thing connectivity indexing mode. Valid values are:

\n " } }, "managedFields": { @@ -26300,7 +27133,7 @@ "sql": { "target": "com.amazonaws.iot#SQL", "traits": { - "smithy.api#documentation": "

The SQL statement used to query the topic. For more information, see AWS IoT SQL\n Reference in the AWS IoT Developer Guide.

", + "smithy.api#documentation": "

The SQL statement used to query the topic. For more information, see IoT SQL\n Reference in the IoT Developer Guide.

", "smithy.api#required": {} } }, @@ -26409,7 +27242,7 @@ } ], "traits": { - "smithy.api#documentation": "

Transfers the specified certificate to the specified AWS account.

\n

You can cancel the transfer until it is acknowledged by the recipient.

\n

No notification is sent to the transfer destination's account. It is up to the caller\n to notify the transfer target.

\n

The certificate being transferred must not be in the ACTIVE state. You can use the\n UpdateCertificate API to deactivate it.

\n

The certificate must not have any policies attached to it. You can use the\n DetachPrincipalPolicy API to detach them.

", + "smithy.api#documentation": "

Transfers the specified certificate to the specified Amazon Web Services account.

\n

Requires permission to access the TransferCertificate action.

\n \n

You can cancel the transfer until it is acknowledged by the recipient.

\n

No notification is sent to the transfer destination's account. It is up to the caller\n to notify the transfer target.

\n

The certificate being transferred must not be in the ACTIVE state. You can use the\n UpdateCertificate action to deactivate it.

\n

The certificate must not have any policies attached to it. You can use the\n DetachPolicy action to detach them.

", "smithy.api#http": { "method": "PATCH", "uri": "/transfer-certificate/{certificateId}", @@ -26431,7 +27264,7 @@ "targetAwsAccount": { "target": "com.amazonaws.iot#AwsAccountId", "traits": { - "smithy.api#documentation": "

The AWS account.

", + "smithy.api#documentation": "

The Amazon Web Services account.

", "smithy.api#httpQuery": "targetAwsAccount", "smithy.api#required": {} } @@ -26512,7 +27345,7 @@ } }, "traits": { - "smithy.api#documentation": "

Data used to transfer a certificate to an AWS account.

" + "smithy.api#documentation": "

Data used to transfer a certificate to an Amazon Web Services account.

" } }, "com.amazonaws.iot#UnauthorizedException": { @@ -26566,7 +27399,7 @@ } ], "traits": { - "smithy.api#documentation": "

Removes the given tags (metadata) from the resource.

", + "smithy.api#documentation": "

Removes the given tags (metadata) from the resource.

\n\t\t

Requires permission to access the UntagResource action.

", "smithy.api#http": { "method": "POST", "uri": "/untag", @@ -26617,7 +27450,7 @@ } ], "traits": { - "smithy.api#documentation": "

Configures or reconfigures the Device Defender audit settings for this account.\n Settings include how audit notifications are sent and which audit checks are\n enabled or disabled.

", + "smithy.api#documentation": "

Configures or reconfigures the Device Defender audit settings for this account.\n Settings include how audit notifications are sent and which audit checks are\n enabled or disabled.

\n

Requires permission to access the UpdateAccountAuditConfiguration action.

", "smithy.api#http": { "method": "PATCH", "uri": "/audit/configuration", @@ -26631,7 +27464,7 @@ "roleArn": { "target": "com.amazonaws.iot#RoleArn", "traits": { - "smithy.api#documentation": "

The Amazon\n Resource Name\n (ARN)\n of the role that grants permission\n to\n AWS IoT to access information about your devices, policies,\n certificates,\n and other items as required when performing an audit.

" + "smithy.api#documentation": "

The Amazon\n Resource Name\n (ARN)\n of the role that grants permission\n to\n IoT to access information about your devices, policies,\n certificates,\n and other items as required when performing an audit.

" } }, "auditNotificationTargetConfigurations": { @@ -26754,7 +27587,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates an authorizer.

", + "smithy.api#documentation": "

Updates an authorizer.

\n

Requires permission to access the UpdateAuthorizer action.

", "smithy.api#http": { "method": "PUT", "uri": "/authorizer/{authorizerName}", @@ -26842,7 +27675,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates information about the billing group.

", + "smithy.api#documentation": "

Updates information about the billing group.

\n\t\t

Requires permission to access the UpdateBillingGroup action.

", "smithy.api#http": { "method": "PATCH", "uri": "/billing-groups/{billingGroupName}", @@ -26913,7 +27746,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates a registered CA certificate.

", + "smithy.api#documentation": "

Updates a registered CA certificate.

\n

Requires permission to access the UpdateCACertificate action.

", "smithy.api#http": { "method": "PUT", "uri": "/cacertificate/{certificateId}", @@ -27007,7 +27840,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates the status of the specified certificate. This operation is\n idempotent.

\n

Certificates must be in the ACTIVE state to authenticate devices that use\n a certificate to connect to AWS IoT.

\n

Within a few minutes of updating a certificate from the ACTIVE state to any other\n state, AWS IoT disconnects all devices that used that certificate to connect. Devices cannot\n use a certificate that is not in the ACTIVE state to reconnect.

", + "smithy.api#documentation": "

Updates the status of the specified certificate. This operation is\n idempotent.

\n

Requires permission to access the UpdateCertificate action.

\n \n

Certificates must be in the ACTIVE state to authenticate devices that use\n a certificate to connect to IoT.

\n

Within a few minutes of updating a certificate from the ACTIVE state to any other\n state, IoT disconnects all devices that used that certificate to connect. Devices cannot\n use a certificate that is not in the ACTIVE state to reconnect.

", "smithy.api#http": { "method": "PUT", "uri": "/certificates/{certificateId}", @@ -27029,7 +27862,7 @@ "newStatus": { "target": "com.amazonaws.iot#CertificateStatus", "traits": { - "smithy.api#documentation": "

The new status.

\n

\n Note: Setting the status to PENDING_TRANSFER or PENDING_ACTIVATION will result\n in an exception being thrown. PENDING_TRANSFER and PENDING_ACTIVATION are statuses used internally by AWS IoT. They \n are not intended for developer use.

\n

\n Note: The status value REGISTER_INACTIVE is deprecated and\n should not be used.

", + "smithy.api#documentation": "

The new status.

\n

\n Note: Setting the status to PENDING_TRANSFER or PENDING_ACTIVATION will result\n in an exception being thrown. PENDING_TRANSFER and PENDING_ACTIVATION are statuses used internally by IoT. They \n are not intended for developer use.

\n

\n Note: The status value REGISTER_INACTIVE is deprecated and\n should not be used.

", "smithy.api#httpQuery": "newStatus", "smithy.api#required": {} } @@ -27062,7 +27895,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates a\n Device Defender detect custom metric.

", + "smithy.api#documentation": "

Updates a\n Device Defender detect custom metric.

\n

Requires permission to access the UpdateCustomMetric action.

", "smithy.api#http": { "method": "PATCH", "uri": "/custom-metric/{metricName}", @@ -27169,7 +28002,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates the definition for a dimension. You\n cannot\n change the type of a dimension after\n it is created (you can delete it and\n recreate\n it).

", + "smithy.api#documentation": "

Updates the definition for a dimension. You\n cannot\n change the type of a dimension after\n it is created (you can delete it and\n recreate\n it).

\n

Requires permission to access the UpdateDimension action.

", "smithy.api#http": { "method": "PATCH", "uri": "/dimensions/{name}", @@ -27270,7 +28103,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates values stored in the domain configuration. Domain configurations for default endpoints can't be updated.

", + "smithy.api#documentation": "

Updates values stored in the domain configuration. Domain configurations for default\n endpoints can't be updated.

\n

Requires permission to access the UpdateDomainConfiguration action.

", "smithy.api#http": { "method": "PUT", "uri": "/domainConfigurations/{domainConfigurationName}", @@ -27355,7 +28188,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates a dynamic thing group.

", + "smithy.api#documentation": "

Updates a dynamic thing group.

\n\t\t

Requires permission to access the UpdateDynamicThingGroup action.

", "smithy.api#http": { "method": "PATCH", "uri": "/dynamic-thing-groups/{thingGroupName}", @@ -27390,7 +28223,7 @@ "indexName": { "target": "com.amazonaws.iot#IndexName", "traits": { - "smithy.api#documentation": "

The dynamic thing group index to update.

\n\t\t \n\t\t\t

Currently one index is supported: 'AWS_Things'.

\n\t\t
" + "smithy.api#documentation": "

The dynamic thing group index to update.

\n\t\t \n\t\t\t

Currently one index is supported: AWS_Things.

\n\t\t
" } }, "queryString": { @@ -27438,7 +28271,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates the event configurations.

", + "smithy.api#documentation": "

Updates the event configurations.

\n\t\t

Requires permission to access the UpdateEventConfigurations action.

", "smithy.api#http": { "method": "PATCH", "uri": "/event-configurations", @@ -27461,6 +28294,120 @@ "type": "structure", "members": {} }, + "com.amazonaws.iot#UpdateFleetMetric": { + "type": "operation", + "input": { + "target": "com.amazonaws.iot#UpdateFleetMetricRequest" + }, + "errors": [ + { + "target": "com.amazonaws.iot#IndexNotReadyException" + }, + { + "target": "com.amazonaws.iot#InternalFailureException" + }, + { + "target": "com.amazonaws.iot#InvalidAggregationException" + }, + { + "target": "com.amazonaws.iot#InvalidQueryException" + }, + { + "target": "com.amazonaws.iot#InvalidRequestException" + }, + { + "target": "com.amazonaws.iot#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.iot#ServiceUnavailableException" + }, + { + "target": "com.amazonaws.iot#ThrottlingException" + }, + { + "target": "com.amazonaws.iot#UnauthorizedException" + }, + { + "target": "com.amazonaws.iot#VersionConflictException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates the data for a fleet metric.

\n

Requires permission to access the UpdateFleetMetric action.

", + "smithy.api#http": { + "method": "PATCH", + "uri": "/fleet-metric/{metricName}", + "code": 200 + } + } + }, + "com.amazonaws.iot#UpdateFleetMetricRequest": { + "type": "structure", + "members": { + "metricName": { + "target": "com.amazonaws.iot#FleetMetricName", + "traits": { + "smithy.api#documentation": "

The name of the fleet metric to update.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "queryString": { + "target": "com.amazonaws.iot#QueryString", + "traits": { + "smithy.api#documentation": "

The search query string.

" + } + }, + "aggregationType": { + "target": "com.amazonaws.iot#AggregationType", + "traits": { + "smithy.api#documentation": "

The type of the aggregation query.

" + } + }, + "period": { + "target": "com.amazonaws.iot#FleetMetricPeriod", + "traits": { + "smithy.api#documentation": "

The time in seconds between fleet metric emissions. Range [60(1 min), 86400(1 day)] and must be multiple of 60.

" + } + }, + "aggregationField": { + "target": "com.amazonaws.iot#AggregationField", + "traits": { + "smithy.api#documentation": "

The field to aggregate.

" + } + }, + "description": { + "target": "com.amazonaws.iot#FleetMetricDescription", + "traits": { + "smithy.api#documentation": "

The description of the fleet metric.

" + } + }, + "queryVersion": { + "target": "com.amazonaws.iot#QueryVersion", + "traits": { + "smithy.api#documentation": "

The version of the query.

" + } + }, + "indexName": { + "target": "com.amazonaws.iot#IndexName", + "traits": { + "smithy.api#documentation": "

The name of the index to search.

", + "smithy.api#required": {} + } + }, + "unit": { + "target": "com.amazonaws.iot#FleetMetricUnit", + "traits": { + "smithy.api#documentation": "

Used to support unit transformation such as milliseconds to seconds. The unit must be\n supported by CW metric.

" + } + }, + "expectedVersion": { + "target": "com.amazonaws.iot#OptionalVersion", + "traits": { + "smithy.api#documentation": "

The expected version of the fleet metric record in the registry.

" + } + } + } + }, "com.amazonaws.iot#UpdateIndexingConfiguration": { "type": "operation", "input": { @@ -27487,7 +28434,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates the search configuration.

", + "smithy.api#documentation": "

Updates the search configuration.

\n

Requires permission to access the UpdateIndexingConfiguration action.

", "smithy.api#http": { "method": "POST", "uri": "/indexing/config", @@ -27536,7 +28483,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates supported fields of the specified job.

", + "smithy.api#documentation": "

Updates supported fields of the specified job.

\n

Requires permission to access the UpdateJob action.

", "smithy.api#http": { "method": "PATCH", "uri": "/jobs/{jobId}", @@ -27588,7 +28535,7 @@ "namespaceId": { "target": "com.amazonaws.iot#NamespaceId", "traits": { - "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, AWS IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is in public preview.

\n
", + "smithy.api#documentation": "

The namespace used to indicate that a job is a customer-managed job.

\n

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that \n contain the value in the following format.

\n

\n $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/\n

\n \n

The namespaceId feature is in public preview.

\n
", "smithy.api#httpQuery": "namespaceId" } } @@ -27617,7 +28564,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates the definition for the specified mitigation action.

", + "smithy.api#documentation": "

Updates the definition for the specified mitigation action.

\n

Requires permission to access the UpdateMitigationAction action.

", "smithy.api#http": { "method": "PATCH", "uri": "/mitigationactions/actions/{actionName}", @@ -27693,7 +28640,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates a fleet provisioning template.

", + "smithy.api#documentation": "

Updates a fleet provisioning template.

\n

Requires permission to access the UpdateProvisioningTemplate action.

", "smithy.api#http": { "method": "PATCH", "uri": "/provisioning-templates/{templateName}", @@ -27783,7 +28730,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates a role alias.

", + "smithy.api#documentation": "

Updates a role alias.

\n

Requires permission to access the UpdateRoleAlias action.

", "smithy.api#http": { "method": "PUT", "uri": "/role-aliases/{roleAlias}", @@ -27856,7 +28803,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates a scheduled audit, including which checks are performed and\n how often the audit takes place.

", + "smithy.api#documentation": "

Updates a scheduled audit, including which checks are performed and\n how often the audit takes place.

\n

Requires permission to access the UpdateScheduledAudit action.

", "smithy.api#http": { "method": "PATCH", "uri": "/audit/scheduledaudits/{scheduledAuditName}", @@ -27938,7 +28885,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates a Device Defender security profile.

", + "smithy.api#documentation": "

Updates a Device Defender security profile.

\n

Requires permission to access the UpdateSecurityProfile action.

", "smithy.api#http": { "method": "PATCH", "uri": "/security-profiles/{securityProfileName}", @@ -28114,7 +29061,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates an existing stream. The stream version will be incremented by one.

", + "smithy.api#documentation": "

Updates an existing stream. The stream version will be incremented by one.

\n\t\t

Requires permission to access the UpdateStream action.

", "smithy.api#http": { "method": "PUT", "uri": "/streams/{streamId}", @@ -28214,7 +29161,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates the data for a thing.

", + "smithy.api#documentation": "

Updates the data for a thing.

\n\t\t

Requires permission to access the UpdateThing action.

", "smithy.api#http": { "method": "PATCH", "uri": "/things/{thingName}", @@ -28248,7 +29195,7 @@ } ], "traits": { - "smithy.api#documentation": "

Update a thing group.

", + "smithy.api#documentation": "

Update a thing group.

\n\t\t

Requires permission to access the UpdateThingGroup action.

", "smithy.api#http": { "method": "PATCH", "uri": "/thing-groups/{thingGroupName}", @@ -28316,7 +29263,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates the groups to which the thing belongs.

", + "smithy.api#documentation": "

Updates the groups to which the thing belongs.

\n\t\t

Requires permission to access the UpdateThingGroupsForThing action.

", "smithy.api#http": { "method": "PUT", "uri": "/thing-groups/updateThingGroupsForThing", @@ -28430,7 +29377,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates a topic rule destination. You use this to change the status, endpoint URL, or\n confirmation URL of the destination.

", + "smithy.api#documentation": "

Updates a topic rule destination. You use this to change the status, endpoint URL, or\n confirmation URL of the destination.

\n

Requires permission to access the UpdateTopicRuleDestination action.

", "smithy.api#http": { "method": "PATCH", "uri": "/destinations", @@ -28499,7 +29446,7 @@ } ], "traits": { - "smithy.api#documentation": "

Validates a Device Defender security profile behaviors specification.

", + "smithy.api#documentation": "

Validates a Device Defender security profile behaviors specification.

\n

Requires permission to access the ValidateSecurityProfileBehaviors action.

", "smithy.api#http": { "method": "POST", "uri": "/security-profile-behaviors/validate", diff --git a/codegen/sdk-codegen/aws-models/kms.2014-11-01.json b/codegen/sdk-codegen/aws-models/kms.2014-11-01.json index 0bcfff74784..bbf10ef837c 100644 --- a/codegen/sdk-codegen/aws-models/kms.2014-11-01.json +++ b/codegen/sdk-codegen/aws-models/kms.2014-11-01.json @@ -75,7 +75,7 @@ "TargetKeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

String that contains the key identifier of the CMK associated with the alias.

" + "smithy.api#documentation": "

String that contains the key identifier of the KMS key associated with the alias.

" } }, "CreationDate": { @@ -87,7 +87,7 @@ "LastUpdatedDate": { "target": "com.amazonaws.kms#DateType", "traits": { - "smithy.api#documentation": "

Date and time that the alias was most recently associated with a CMK in the account and Region. Formatted as Unix time.

" + "smithy.api#documentation": "

Date and time that the alias was most recently associated with a KMS key in the account and Region. Formatted as Unix time.

" } } }, @@ -113,6 +113,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "AlreadyExists", + "httpResponseCode": 409 + }, "smithy.api#documentation": "

The request was rejected because it attempted to create a resource that already\n exists.

", "smithy.api#error": "client", "smithy.api#httpError": 409 @@ -156,7 +160,7 @@ } ], "traits": { - "smithy.api#documentation": "

Cancels the deletion of a customer master key (CMK). When this operation succeeds, the key\n state of the CMK is Disabled. To enable the CMK, use EnableKey.

\n

For more information about scheduling and canceling deletion of a CMK, see Deleting Customer Master\n Keys in the AWS Key Management Service Developer Guide.

\n

The CMK that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your CMK in the AWS Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a CMK in a different AWS account.

\n

\n Required permissions: kms:CancelKeyDeletion (key policy)

\n

\n Related operations: ScheduleKeyDeletion\n

" + "smithy.api#documentation": "

Cancels the deletion of a KMS key. When this operation succeeds, the key\n state of the KMS key is Disabled. To enable the KMS key, use EnableKey.

\n

For more information about scheduling and canceling deletion of a KMS key, see Deleting KMS keys in the Key Management Service Developer Guide.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n

\n Required permissions: kms:CancelKeyDeletion (key policy)

\n

\n Related operations: ScheduleKeyDeletion\n

" } }, "com.amazonaws.kms#CancelKeyDeletionRequest": { @@ -165,7 +169,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Identifies the customer master key (CMK) whose deletion is being canceled.

\n

Specify the key ID or key ARN of the CMK.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

Identifies the KMS key whose deletion is being canceled.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } } @@ -177,7 +181,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the CMK whose deletion is canceled.

" + "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the KMS key whose deletion is canceled.

" } } } @@ -208,7 +212,11 @@ } }, "traits": { - "smithy.api#documentation": "

The request was rejected because the specified AWS CloudHSM cluster is already associated with a\n custom key store or it shares a backup history with a cluster that is associated with a custom\n key store. Each custom key store must be associated with a different AWS CloudHSM cluster.

\n

Clusters that share a backup history have the same cluster certificate. To view the\n cluster certificate of a cluster, use the DescribeClusters operation.

", + "aws.protocols#awsQueryError": { + "code": "CloudHsmClusterInUseException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the specified CloudHSM cluster is already associated with a\n custom key store or it shares a backup history with a cluster that is associated with a custom\n key store. Each custom key store must be associated with a different CloudHSM cluster.

\n

Clusters that share a backup history have the same cluster certificate. To view the\n cluster certificate of a cluster, use the DescribeClusters operation.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -221,7 +229,11 @@ } }, "traits": { - "smithy.api#documentation": "

The request was rejected because the associated AWS CloudHSM cluster did not meet the\n configuration requirements for a custom key store.

\n\n \n

For information about the requirements for an AWS CloudHSM cluster that is associated with a\n custom key store, see Assemble the Prerequisites\n in the AWS Key Management Service Developer Guide. For information about creating a private subnet for an AWS CloudHSM cluster,\n see Create a Private\n Subnet in the AWS CloudHSM User Guide. For information about cluster security groups, see\n Configure a Default Security\n Group in the \n AWS CloudHSM User Guide\n .

", + "aws.protocols#awsQueryError": { + "code": "CloudHsmClusterInvalidConfigurationException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the associated CloudHSM cluster did not meet the\n configuration requirements for a custom key store.

\n\n \n

For information about the requirements for an CloudHSM cluster that is associated with a\n custom key store, see Assemble the Prerequisites\n in the Key Management Service Developer Guide. For information about creating a private subnet for an CloudHSM cluster,\n see Create a Private\n Subnet in the CloudHSM User Guide. For information about cluster security groups, see\n Configure a Default Security\n Group in the \n CloudHSM User Guide\n .

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -234,7 +246,11 @@ } }, "traits": { - "smithy.api#documentation": "

The request was rejected because the AWS CloudHSM cluster that is associated with the custom key\n store is not active. Initialize and activate the cluster and try the command again. For\n detailed instructions, see Getting Started in the AWS CloudHSM User Guide.

", + "aws.protocols#awsQueryError": { + "code": "CloudHsmClusterNotActiveException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the CloudHSM cluster that is associated with the custom key\n store is not active. Initialize and activate the cluster and try the command again. For\n detailed instructions, see Getting Started in the CloudHSM User Guide.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -247,7 +263,11 @@ } }, "traits": { - "smithy.api#documentation": "

The request was rejected because AWS KMS cannot find the AWS CloudHSM cluster with the specified\n cluster ID. Retry the request with a different cluster ID.

", + "aws.protocols#awsQueryError": { + "code": "CloudHsmClusterNotFoundException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because KMS cannot find the CloudHSM cluster with the specified\n cluster ID. Retry the request with a different cluster ID.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -260,7 +280,11 @@ } }, "traits": { - "smithy.api#documentation": "

The request was rejected because the specified AWS CloudHSM cluster has a different cluster\n certificate than the original cluster. You cannot use the operation to specify an unrelated\n cluster.

\n

Specify a cluster that shares a backup history with the original cluster. This includes\n clusters that were created from a backup of the current cluster, and clusters that were\n created from the same backup that produced the current cluster.

\n

Clusters that share a backup history have the same cluster certificate. To view the\n cluster certificate of a cluster, use the DescribeClusters operation.

", + "aws.protocols#awsQueryError": { + "code": "CloudHsmClusterNotRelatedException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the specified CloudHSM cluster has a different cluster\n certificate than the original cluster. You cannot use the operation to specify an unrelated\n cluster.

\n

Specify a cluster that shares a backup history with the original cluster. This includes\n clusters that were created from a backup of the current cluster, and clusters that were\n created from the same backup that produced the current cluster.

\n

Clusters that share a backup history have the same cluster certificate. To view the\n cluster certificate of a cluster, use the DescribeClusters operation.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -291,7 +315,7 @@ } ], "traits": { - "smithy.api#documentation": "

Connects or reconnects a custom key store to its associated AWS CloudHSM cluster.

\n

The custom key store must be connected before you can create customer master keys (CMKs)\n in the key store or use the CMKs it contains. You can disconnect and reconnect a custom key\n store at any time.

\n

To connect a custom key store, its associated AWS CloudHSM cluster must have at least one active\n HSM. To get the number of active HSMs in a cluster, use the DescribeClusters operation. To add HSMs\n to the cluster, use the CreateHsm operation. Also, the \n kmsuser crypto\n user (CU) must not be logged into the cluster. This prevents AWS KMS from using this\n account to log in.

\n

The connection process can take an extended amount of time to complete; up to 20 minutes.\n This operation starts the connection process, but it does not wait for it to complete. When it\n succeeds, this operation quickly returns an HTTP 200 response and a JSON object with no\n properties. However, this response does not indicate that the custom key store is connected.\n To get the connection state of the custom key store, use the DescribeCustomKeyStores operation.

\n

During the connection process, AWS KMS finds the AWS CloudHSM cluster that is associated with the\n custom key store, creates the connection infrastructure, connects to the cluster, logs into\n the AWS CloudHSM client as the kmsuser CU, and rotates its password.

\n

The ConnectCustomKeyStore operation might fail for various reasons. To find\n the reason, use the DescribeCustomKeyStores operation and see the\n ConnectionErrorCode in the response. For help interpreting the\n ConnectionErrorCode, see CustomKeyStoresListEntry.

\n

To fix the failure, use the DisconnectCustomKeyStore operation to\n disconnect the custom key store, correct the error, use the UpdateCustomKeyStore operation if necessary, and then use\n ConnectCustomKeyStore again.

\n

If you are having trouble connecting or disconnecting a custom key store, see Troubleshooting a Custom Key\n Store in the AWS Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a custom key store in a different AWS account.

\n \n

\n Required permissions: kms:ConnectCustomKeyStore (IAM policy)

\n

\n Related operations\n

\n " + "smithy.api#documentation": "

Connects or reconnects a custom key store to its associated CloudHSM cluster.

\n

The custom key store must be connected before you can create KMS keys\n in the key store or use the KMS keys it contains. You can disconnect and reconnect a custom key\n store at any time.

\n

To connect a custom key store, its associated CloudHSM cluster must have at least one active\n HSM. To get the number of active HSMs in a cluster, use the DescribeClusters operation. To add HSMs\n to the cluster, use the CreateHsm operation. Also, the \n kmsuser crypto\n user (CU) must not be logged into the cluster. This prevents KMS from using this\n account to log in.

\n

The connection process can take an extended amount of time to complete; up to 20 minutes.\n This operation starts the connection process, but it does not wait for it to complete. When it\n succeeds, this operation quickly returns an HTTP 200 response and a JSON object with no\n properties. However, this response does not indicate that the custom key store is connected.\n To get the connection state of the custom key store, use the DescribeCustomKeyStores operation.

\n

During the connection process, KMS finds the CloudHSM cluster that is associated with the\n custom key store, creates the connection infrastructure, connects to the cluster, logs into\n the CloudHSM client as the kmsuser CU, and rotates its password.

\n

The ConnectCustomKeyStore operation might fail for various reasons. To find\n the reason, use the DescribeCustomKeyStores operation and see the\n ConnectionErrorCode in the response. For help interpreting the\n ConnectionErrorCode, see CustomKeyStoresListEntry.

\n

To fix the failure, use the DisconnectCustomKeyStore operation to\n disconnect the custom key store, correct the error, use the UpdateCustomKeyStore operation if necessary, and then use\n ConnectCustomKeyStore again.

\n

If you are having trouble connecting or disconnecting a custom key store, see Troubleshooting a Custom Key\n Store in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:ConnectCustomKeyStore (IAM policy)

\n

\n Related operations\n

\n " } }, "com.amazonaws.kms#ConnectCustomKeyStoreRequest": { @@ -409,7 +433,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a friendly name for a customer master key (CMK).

\n \n

Adding, deleting, or updating an alias can allow or deny permission to the CMK. For details, see Using ABAC in AWS KMS in the AWS Key Management Service Developer Guide.

\n
\n

You can use an alias to identify a CMK in the AWS KMS console, in the DescribeKey operation and in cryptographic operations, such as Encrypt and\n GenerateDataKey. You can also change the CMK that's associated with the\n alias (UpdateAlias) or delete the alias (DeleteAlias) at\n any time. These operations don't affect the underlying CMK.

\n

You can associate the alias with any customer managed CMK in the same AWS Region. Each\n alias is associated with only one CMK at a time, but a CMK can have multiple aliases. A valid\n CMK is required. You can't create an alias without a CMK.

\n

The alias must be unique in the account and Region, but you can have aliases with the same\n name in different Regions. For detailed information about aliases, see Using aliases in the\n AWS Key Management Service Developer Guide.

\n

This operation does not return a response. To get the alias that you created, use the\n ListAliases operation.

\n

The CMK that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your CMK in the AWS Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on an alias in a different AWS account.

\n \n

\n Required permissions\n

\n \n

For details, see Controlling access to aliases in the AWS Key Management Service Developer Guide.

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Creates a friendly name for a KMS key.

\n \n

Adding, deleting, or updating an alias can allow or deny permission to the KMS key. For details, see Using ABAC in KMS in the Key Management Service Developer Guide.

\n
\n

You can use an alias to identify a KMS key in the KMS console, in the DescribeKey operation and in cryptographic operations, such as Encrypt and\n GenerateDataKey. You can also change the KMS key that's associated with the\n alias (UpdateAlias) or delete the alias (DeleteAlias) at\n any time. These operations don't affect the underlying KMS key.

\n

You can associate the alias with any customer managed key in the same Amazon Web Services Region. Each\n alias is associated with only one KMS key at a time, but a KMS key can have multiple aliases. A valid KMS key is required. You can't create an alias without a KMS key.

\n

The alias must be unique in the account and Region, but you can have aliases with the same\n name in different Regions. For detailed information about aliases, see Using aliases in the\n Key Management Service Developer Guide.

\n

This operation does not return a response. To get the alias that you created, use the\n ListAliases operation.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on an alias in a different Amazon Web Services account.

\n \n

\n Required permissions\n

\n \n

For details, see Controlling access to aliases in the Key Management Service Developer Guide.

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#CreateAliasRequest": { @@ -418,14 +442,14 @@ "AliasName": { "target": "com.amazonaws.kms#AliasNameType", "traits": { - "smithy.api#documentation": "

Specifies the alias name. This value must begin with alias/ followed by a\n name, such as alias/ExampleAlias.

\n

The AliasName value must be string of 1-256 characters. It can contain only alphanumeric characters,\n forward slashes (/), underscores (_), and dashes (-). The alias name cannot begin with alias/aws/. The alias/aws/ prefix is reserved\n for AWS managed CMKs.

", + "smithy.api#documentation": "

Specifies the alias name. This value must begin with alias/ followed by a\n name, such as alias/ExampleAlias.

\n

The AliasName value must be string of 1-256 characters. It can contain only alphanumeric characters,\n forward slashes (/), underscores (_), and dashes (-). The alias name cannot begin with alias/aws/. The alias/aws/ prefix is reserved\n for Amazon Web Services managed keys.

", "smithy.api#required": {} } }, "TargetKeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Associates the alias with the specified customer managed CMK. The CMK must be\n in the same AWS Region.

\n

A valid CMK ID is required. If you supply a null or empty string value, this operation\n returns an error.

\n

For help finding the key ID and ARN, see Finding the Key ID and\n ARN in the AWS Key Management Service Developer Guide.

\n \n

Specify the key ID or key ARN of the CMK.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

Associates the alias with the specified customer managed key. The KMS key must be\n in the same Amazon Web Services Region.

\n

A valid key ID is required. If you supply a null or empty string value, this operation\n returns an error.

\n

For help finding the key ID and ARN, see Finding the Key ID and\n ARN in the \n Key Management Service Developer Guide\n .

\n \n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } } @@ -463,7 +487,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a custom key store that is associated with an AWS CloudHSM cluster that you own and\n manage.

\n

This operation is part of the Custom Key Store feature feature in AWS KMS, which\ncombines the convenience and extensive integration of AWS KMS with the isolation and control of a\nsingle-tenant key store.

\n

Before you create the custom key store, you must assemble\n the required elements, including an AWS CloudHSM cluster that fulfills the requirements for a custom\n key store. For details about the required elements, see Assemble the Prerequisites\n in the AWS Key Management Service Developer Guide.

\n

When the operation completes successfully, it returns the ID of the new custom key store.\n Before you can use your new custom key store, you need to use the ConnectCustomKeyStore operation to connect the new key store to its AWS CloudHSM\n cluster. Even if you are not going to use your custom key store immediately, you might want to\n connect it to verify that all settings are correct and then disconnect it until you are ready\n to use it.

\n

For help with failures, see Troubleshooting a Custom Key Store in the\n AWS Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a custom key store in a different AWS account.

\n

\n Required permissions: kms:CreateCustomKeyStore (IAM policy).

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Creates a custom key store that is associated with an CloudHSM cluster that you own and\n manage.

\n

This operation is part of the Custom Key Store feature feature in KMS, which\ncombines the convenience and extensive integration of KMS with the isolation and control of a\nsingle-tenant key store.

\n

Before you create the custom key store, you must assemble\n the required elements, including an CloudHSM cluster that fulfills the requirements for a custom\n key store. For details about the required elements, see Assemble the Prerequisites\n in the Key Management Service Developer Guide.

\n

When the operation completes successfully, it returns the ID of the new custom key store.\n Before you can use your new custom key store, you need to use the ConnectCustomKeyStore operation to connect the new key store to its CloudHSM\n cluster. Even if you are not going to use your custom key store immediately, you might want to\n connect it to verify that all settings are correct and then disconnect it until you are ready\n to use it.

\n

For help with failures, see Troubleshooting a Custom Key Store in the\n Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.

\n

\n Required permissions: kms:CreateCustomKeyStore (IAM policy).

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#CreateCustomKeyStoreRequest": { @@ -472,14 +496,14 @@ "CustomKeyStoreName": { "target": "com.amazonaws.kms#CustomKeyStoreNameType", "traits": { - "smithy.api#documentation": "

Specifies a friendly name for the custom key store. The name must be unique in your AWS\n account.

", + "smithy.api#documentation": "

Specifies a friendly name for the custom key store. The name must be unique in your Amazon Web Services account.

", "smithy.api#required": {} } }, "CloudHsmClusterId": { "target": "com.amazonaws.kms#CloudHsmClusterIdType", "traits": { - "smithy.api#documentation": "

Identifies the AWS CloudHSM cluster for the custom key store. Enter the cluster ID of any active\n AWS CloudHSM cluster that is not already associated with a custom key store. To find the cluster ID,\n use the DescribeClusters operation.

", + "smithy.api#documentation": "

Identifies the CloudHSM cluster for the custom key store. Enter the cluster ID of any active\n CloudHSM cluster that is not already associated with a custom key store. To find the cluster ID,\n use the DescribeClusters operation.

", "smithy.api#required": {} } }, @@ -493,7 +517,7 @@ "KeyStorePassword": { "target": "com.amazonaws.kms#KeyStorePasswordType", "traits": { - "smithy.api#documentation": "

Enter the password of the \n kmsuser crypto user\n (CU) account in the specified AWS CloudHSM cluster. AWS KMS logs into the cluster as this\n user to manage key material on your behalf.

\n

The password must be a string of 7 to 32 characters. Its value is case sensitive.

\n

This parameter tells AWS KMS the kmsuser account password; it does not change\n the password in the AWS CloudHSM cluster.

", + "smithy.api#documentation": "

Enter the password of the \n kmsuser crypto user\n (CU) account in the specified CloudHSM cluster. KMS logs into the cluster as this\n user to manage key material on your behalf.

\n

The password must be a string of 7 to 32 characters. Its value is case sensitive.

\n

This parameter tells KMS the kmsuser account password; it does not change\n the password in the CloudHSM cluster.

", "smithy.api#required": {} } } @@ -545,7 +569,7 @@ } ], "traits": { - "smithy.api#documentation": "

Adds a grant to a customer master key (CMK).

\n

A grant is a policy instrument that allows AWS principals to use AWS\n KMS customer master keys (CMKs) in cryptographic operations. It also can allow them to view a\n CMK (DescribeKey) and create and manage grants. When authorizing access to a\n CMK, grants are considered along with key policies and IAM policies. Grants are often used for\n temporary permissions because you can create one, use its permissions, and delete it without\n changing your key policies or IAM policies.

\n

For detailed information about grants, including grant terminology, see Using grants in the\n \n AWS Key Management Service Developer Guide\n . For examples of working with grants in several\n programming languages, see Programming grants.

\n

The CreateGrant operation returns a GrantToken and a\n GrantId.

\n \n

For information about symmetric and asymmetric CMKs, see Using Symmetric and Asymmetric CMKs in the AWS Key Management Service Developer Guide. For more information about grants, see Grants in the\n \n AWS Key Management Service Developer Guide\n .

\n

The CMK that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your CMK in the AWS Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation on a CMK in a different AWS account, specify the key\n ARN in the value of the KeyId parameter.

\n

\n Required permissions: kms:CreateGrant (key policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Adds a grant to a KMS key.

\n

A grant is a policy instrument that allows Amazon Web Services principals to use KMS keys in cryptographic operations. It also can allow them to view a KMS key (DescribeKey) and create and manage grants. When authorizing access to a KMS key, grants are considered along with key policies and IAM policies. Grants are often used for\n temporary permissions because you can create one, use its permissions, and delete it without\n changing your key policies or IAM policies.

\n

For detailed information about grants, including grant terminology, see Using grants in the\n \n Key Management Service Developer Guide\n . For examples of working with grants in several\n programming languages, see Programming grants.

\n

The CreateGrant operation returns a GrantToken and a\n GrantId.

\n \n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation on a KMS key in a different Amazon Web Services account, specify the key\n ARN in the value of the KeyId parameter.

\n

\n Required permissions: kms:CreateGrant (key policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#CreateGrantRequest": { @@ -554,46 +578,46 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Identifies the customer master key (CMK) for the grant. The grant gives principals permission to use this CMK.

\n \n

Specify the key ID or key ARN of the CMK. To specify a CMK in a\ndifferent AWS account, you must use the key ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

Identifies the KMS key for the grant. The grant gives principals permission to use this KMS key.

\n \n

Specify the key ID or key ARN of the KMS key. To specify a KMS key in a\ndifferent Amazon Web Services account, you must use the key ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } }, "GranteePrincipal": { "target": "com.amazonaws.kms#PrincipalIdType", "traits": { - "smithy.api#documentation": "

The identity that gets the permissions specified in the grant.

\n

To specify the principal, use the Amazon Resource Name (ARN) of an AWS\n principal. Valid AWS principals include AWS accounts (root), IAM users, IAM roles, federated\n users, and assumed role users. For examples of the ARN syntax to use for specifying a\n principal, see AWS Identity and Access\n Management (IAM) in the Example ARNs section of the AWS General\n Reference.

", + "smithy.api#documentation": "

The identity that gets the permissions specified in the grant.

\n

To specify the principal, use the Amazon Resource Name (ARN) of an Amazon Web Services principal. Valid Amazon Web Services principals include Amazon Web Services accounts (root), IAM users, IAM roles, federated\n users, and assumed role users. For examples of the ARN syntax to use for specifying a\n principal, see Amazon Web Services Identity and Access\n Management (IAM) in the Example ARNs section of the Amazon Web Services General\n Reference.

", "smithy.api#required": {} } }, "RetiringPrincipal": { "target": "com.amazonaws.kms#PrincipalIdType", "traits": { - "smithy.api#documentation": "

The principal that is given permission to retire the grant by using RetireGrant operation.

\n

To specify the principal, use the Amazon Resource Name (ARN) of an AWS\n principal. Valid AWS principals include AWS accounts (root), IAM users, federated users, and\n assumed role users. For examples of the ARN syntax to use for specifying a principal, see\n AWS Identity and Access Management (IAM) in the Example ARNs section of the\n AWS General Reference.

" + "smithy.api#documentation": "

The principal that has permission to use the RetireGrant operation to\n retire the grant.

\n

To specify the principal, use the Amazon Resource Name (ARN) of an Amazon Web Services principal. Valid Amazon Web Services principals include Amazon Web Services accounts (root), IAM users, federated users, and\n assumed role users. For examples of the ARN syntax to use for specifying a principal, see\n Amazon Web Services Identity and Access Management (IAM) in the Example ARNs section of the\n Amazon Web Services General Reference.

\n

The grant determines the retiring principal. Other principals might have permission to\n retire the grant or revoke the grant. For details, see RevokeGrant and\n Retiring and revoking grants in the Key Management Service Developer Guide.

" } }, "Operations": { "target": "com.amazonaws.kms#GrantOperationList", "traits": { - "smithy.api#documentation": "

A list of operations that the grant permits.

\n

The operation must be supported on the CMK. For example, you cannot create a grant for a\n symmetric CMK that allows the Sign operation, or a grant for an asymmetric\n CMK that allows the GenerateDataKey operation. If you try, AWS KMS returns a\n ValidationError exception. For details, see Grant operations in the\n AWS Key Management Service Developer Guide.

", + "smithy.api#documentation": "

A list of operations that the grant permits.

\n

The operation must be supported on the KMS key. For example, you cannot create a grant for a\n symmetric KMS key that allows the Sign operation, or a grant for an asymmetric KMS key that allows the GenerateDataKey operation. If you try, KMS returns a\n ValidationError exception. For details, see Grant operations in the\n Key Management Service Developer Guide.

", "smithy.api#required": {} } }, "Constraints": { "target": "com.amazonaws.kms#GrantConstraints", "traits": { - "smithy.api#documentation": "

Specifies a grant constraint.

\n

AWS KMS supports the EncryptionContextEquals and\n EncryptionContextSubset grant constraints. Each constraint value can include up\n to 8 encryption context pairs. The encryption context value in each constraint cannot exceed\n 384 characters.

\n

These grant constraints allow a cryptographic operation only when the encryption context in the\n request matches (EncryptionContextEquals) or includes\n (EncryptionContextSubset) the encryption context specified in this structure.\n For more information about encryption context, see Encryption Context in the\n \n AWS Key Management Service Developer Guide\n . For information about grant constraints, see Using\n grant constraints in the AWS Key Management Service Developer Guide.

\n

The encryption context grant constraints are supported only on operations that include an\n encryption context. You cannot use an encryption context grant constraint for cryptographic\n operations with asymmetric CMKs or for management operations, such as DescribeKey or RetireGrant.

" + "smithy.api#documentation": "

Specifies a grant constraint.

\n

KMS supports the EncryptionContextEquals and\n EncryptionContextSubset grant constraints. Each constraint value can include up\n to 8 encryption context pairs. The encryption context value in each constraint cannot exceed\n 384 characters.

\n

These grant constraints allow the permissions in the grant only when the encryption\n context in the request matches (EncryptionContextEquals) or includes\n (EncryptionContextSubset) the encryption context specified in this structure.\n For information about grant constraints, see Using grant\n constraints in the Key Management Service Developer Guide. For more information about encryption context,\n see Encryption\n Context in the \n Key Management Service Developer Guide\n .

\n

The encryption context grant constraints are supported only on operations that include an\n encryption context. You cannot use an encryption context grant constraint for cryptographic\n operations with asymmetric KMS keys or for management operations, such as DescribeKey or RetireGrant.

" } }, "GrantTokens": { "target": "com.amazonaws.kms#GrantTokenList", "traits": { - "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token in the\n AWS Key Management Service Developer Guide.

" + "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token and Using a grant token in the\n Key Management Service Developer Guide.

" } }, "Name": { "target": "com.amazonaws.kms#GrantNameType", "traits": { - "smithy.api#documentation": "

A friendly name for the grant. Use this value to prevent the unintended\n creation of duplicate grants when retrying this request.

\n

When this value is absent, all CreateGrant requests result in a new grant\n with a unique GrantId even if all the supplied parameters are identical. This can\n result in unintended duplicates when you retry the CreateGrant request.

\n

When this value is present, you can retry a CreateGrant request with\n identical parameters; if the grant already exists, the original GrantId is\n returned without creating a new grant. Note that the returned grant token is unique with every\n CreateGrant request, even when a duplicate GrantId is returned.\n All grant tokens for the same grant ID can be used interchangeably.

" + "smithy.api#documentation": "

A friendly name for the grant. Use this value to prevent the unintended\n creation of duplicate grants when retrying this request.

\n

When this value is absent, all CreateGrant requests result in a new grant\n with a unique GrantId even if all the supplied parameters are identical. This can\n result in unintended duplicates when you retry the CreateGrant request.

\n

When this value is present, you can retry a CreateGrant request with\n identical parameters; if the grant already exists, the original GrantId is\n returned without creating a new grant. Note that the returned grant token is unique with every\n CreateGrant request, even when a duplicate GrantId is returned.\n All grant tokens for the same grant ID can be used interchangeably.

" } } } @@ -604,7 +628,7 @@ "GrantToken": { "target": "com.amazonaws.kms#GrantTokenType", "traits": { - "smithy.api#documentation": "

The grant token.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token in the\n AWS Key Management Service Developer Guide.

" + "smithy.api#documentation": "

The grant token.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token and Using a grant token in the\n Key Management Service Developer Guide.

" } }, "GrantId": { @@ -656,7 +680,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a unique customer managed customer master key (CMK) in your AWS\n account and Region.

\n\n

You can use the CreateKey operation to create symmetric or asymmetric\n CMKs.

\n \n

For information about symmetric and asymmetric CMKs, see Using Symmetric and Asymmetric CMKs in the AWS Key Management Service Developer Guide.

\n\n\n

To create different types of CMKs, use the following guidance:

\n\n
\n
Asymmetric CMKs
\n
\n

To create an asymmetric CMK, use the CustomerMasterKeySpec parameter to\n specify the type of key material in the CMK. Then, use the KeyUsage\n parameter to determine whether the CMK will be used to encrypt and decrypt or sign and\n verify. You can't change these properties after the CMK is created.

\n

\n
\n
Symmetric CMKs
\n
\n

When creating a symmetric CMK, you don't need to specify the\n CustomerMasterKeySpec or KeyUsage parameters. The default\n value for CustomerMasterKeySpec, SYMMETRIC_DEFAULT, and the\n default value for KeyUsage, ENCRYPT_DECRYPT, are the only\n valid values for symmetric CMKs.

\n

\n
\n
Multi-Region primary keys
\n
Imported key material
\n
\n

To create a multi-Region primary key in the local AWS Region,\n use the MultiRegion parameter with a value of True. To create\n a multi-Region replica key, that is, a CMK with the same key ID and\n key material as a primary key, but in a different AWS Region, use the ReplicateKey operation. To change a replica key to a primary key, and its\n primary key to a replica key, use the UpdatePrimaryRegion\n operation.

\n

This operation supports multi-Region keys, an AWS KMS feature that lets you create multiple\n interoperable CMKs in different AWS Regions. Because these CMKs have the same key ID, key\n material, and other metadata, you can use them to encrypt data in one AWS Region and decrypt\n it in a different AWS Region without making a cross-Region call or exposing the plaintext data. For more information about multi-Region keys, see Using multi-Region keys in the AWS Key Management Service Developer Guide.

\n

You can create symmetric and asymmetric multi-Region keys and multi-Region keys with\n imported key material. You cannot create multi-Region keys in a custom key store.

\n

\n
\n
\n

To import your own key material, begin by creating a symmetric CMK with no key\n material. To do this, use the Origin parameter of CreateKey\n with a value of EXTERNAL. Next, use GetParametersForImport operation to get a public key and import token, and use the public key to encrypt\n your key material. Then, use ImportKeyMaterial with your import token\n to import the key material. For step-by-step instructions, see Importing Key Material in the \n AWS Key Management Service Developer Guide\n . You\n cannot import the key material into an asymmetric CMK.

\n

To create a multi-Region primary key with imported key material, use the\n Origin parameter of CreateKey with a value of\n EXTERNAL and the MultiRegion parameter with a value of\n True. To create replicas of the multi-Region primary key, use the ReplicateKey operation. For more information about multi-Region keys, see Using multi-Region keys in the AWS Key Management Service Developer Guide.

\n

\n
\n
Custom key store
\n
\n

To create a symmetric CMK in a custom key store, use the\n CustomKeyStoreId parameter to specify the custom key store. You must also\n use the Origin parameter with a value of AWS_CLOUDHSM. The\n AWS CloudHSM cluster that is associated with the custom key store must have at least two active\n HSMs in different Availability Zones in the AWS Region.

\n

You cannot create an asymmetric CMK or a multi-Region CMK in a custom key store. For\n information about custom key stores in AWS KMS see Using Custom Key Stores in\n the \n AWS Key Management Service Developer Guide\n .

\n
\n
\n

\n Cross-account use: No. You cannot use this operation to\n create a CMK in a different AWS account.

\n\n

\n Required permissions: kms:CreateKey (IAM policy). To use the\n Tags parameter, kms:TagResource (IAM policy). For examples and information about related\n permissions, see Allow a user to create\n CMKs in the AWS Key Management Service Developer Guide.

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Creates a unique customer managed KMS key in your Amazon Web Services account and Region.

\n \n

KMS is replacing the term customer master key (CMK) with KMS key and KMS key. The concept has not changed. To prevent breaking changes, KMS is keeping some variations of this term.

\n
\n\n

You can use the CreateKey operation to create symmetric or asymmetric KMS keys.

\n \n

For information about symmetric and asymmetric KMS keys, see Using Symmetric and Asymmetric KMS keys in the Key Management Service Developer Guide.

\n\n\n

To create different types of KMS keys, use the following guidance:

\n\n
\n
Asymmetric KMS keys
\n
\n

To create an asymmetric KMS key, use the KeySpec parameter to specify\n the type of key material in the KMS key. Then, use the KeyUsage parameter\n to determine whether the KMS key will be used to encrypt and decrypt or sign and verify.\n You can't change these properties after the KMS key is created.

\n

\n
\n
Symmetric KMS keys
\n
\n

When creating a symmetric KMS key, you don't need to specify the\n KeySpec or KeyUsage parameters. The default value for\n KeySpec, SYMMETRIC_DEFAULT, and the default value for\n KeyUsage, ENCRYPT_DECRYPT, are the only valid values for\n symmetric KMS keys.

\n

\n
\n
Multi-Region primary keys
\n
Imported key material
\n
\n

To create a multi-Region primary key in the local Amazon Web Services Region,\n use the MultiRegion parameter with a value of True. To create\n a multi-Region replica key, that is, a KMS key with the same key ID and\n key material as a primary key, but in a different Amazon Web Services Region, use the ReplicateKey operation. To change a replica key to a primary key, and its\n primary key to a replica key, use the UpdatePrimaryRegion\n operation.

\n

This operation supports multi-Region keys, an KMS feature that lets you create multiple\n interoperable KMS keys in different Amazon Web Services Regions. Because these KMS keys have the same key ID, key\n material, and other metadata, you can use them interchangeably to encrypt data in one Amazon Web Services Region and decrypt\n it in a different Amazon Web Services Region without re-encrypting the data or making a cross-Region call. For more information about multi-Region keys, see Using multi-Region keys in the Key Management Service Developer Guide.

\n

You can create symmetric and asymmetric multi-Region keys and multi-Region keys with\n imported key material. You cannot create multi-Region keys in a custom key store.

\n

\n
\n
\n

To import your own key material, begin by creating a symmetric KMS key with no key\n material. To do this, use the Origin parameter of CreateKey\n with a value of EXTERNAL. Next, use GetParametersForImport operation to get a public key and import token, and use the public key to encrypt\n your key material. Then, use ImportKeyMaterial with your import token\n to import the key material. For step-by-step instructions, see Importing Key Material in the \n Key Management Service Developer Guide\n . You\n cannot import the key material into an asymmetric KMS key.

\n

To create a multi-Region primary key with imported key material, use the\n Origin parameter of CreateKey with a value of\n EXTERNAL and the MultiRegion parameter with a value of\n True. To create replicas of the multi-Region primary key, use the ReplicateKey operation. For more information about multi-Region keys, see Using multi-Region keys in the Key Management Service Developer Guide.

\n

\n
\n
Custom key store
\n
\n

To create a symmetric KMS key in a custom key store, use the\n CustomKeyStoreId parameter to specify the custom key store. You must also\n use the Origin parameter with a value of AWS_CLOUDHSM. The\n CloudHSM cluster that is associated with the custom key store must have at least two active\n HSMs in different Availability Zones in the Amazon Web Services Region.

\n

You cannot create an asymmetric KMS key in a custom key store. For information about\n custom key stores in KMS see Using Custom Key Stores in\n the \n Key Management Service Developer Guide\n .

\n
\n
\n

\n Cross-account use: No. You cannot use this operation to\n create a KMS key in a different Amazon Web Services account.

\n\n

\n Required permissions: kms:CreateKey (IAM policy). To use the\n Tags parameter, kms:TagResource (IAM policy). For examples and information about related\n permissions, see Allow a user to create KMS keys in the Key Management Service Developer Guide.

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#CreateKeyRequest": { @@ -665,55 +689,64 @@ "Policy": { "target": "com.amazonaws.kms#PolicyType", "traits": { - "smithy.api#documentation": "

The key policy to attach to the CMK.

\n

If you provide a key policy, it must meet the following criteria:

\n \n

If you do not provide a key policy, AWS KMS attaches a default key policy to the CMK. For\n more information, see Default Key Policy in the\n AWS Key Management Service Developer Guide.

\n

The key policy size quota is 32 kilobytes (32768 bytes).

\n

For help writing and formatting a JSON policy document, see the IAM JSON Policy Reference in the \n IAM User Guide\n .

" + "smithy.api#documentation": "

The key policy to attach to the KMS key.

\n

If you provide a key policy, it must meet the following criteria:

\n \n

If you do not provide a key policy, KMS attaches a default key policy to the KMS key. For\n more information, see Default Key Policy in the\n Key Management Service Developer Guide.

\n

The key policy size quota is 32 kilobytes (32768 bytes).

\n

For help writing and formatting a JSON policy document, see the IAM JSON Policy Reference in the \n Identity and Access Management User Guide\n .

" } }, "Description": { "target": "com.amazonaws.kms#DescriptionType", "traits": { - "smithy.api#documentation": "

A description of the CMK.

\n

Use a description that helps you decide whether the CMK is\n appropriate for a task. The default value is an empty string (no description).

" + "smithy.api#documentation": "

A description of the KMS key.

\n

Use a description that helps you decide whether the KMS key is\n appropriate for a task. The default value is an empty string (no description).

\n

To set or change the description after the key is created, use UpdateKeyDescription.

" } }, "KeyUsage": { "target": "com.amazonaws.kms#KeyUsageType", "traits": { - "smithy.api#documentation": "

Determines the cryptographic operations for which you can use the CMK. The default value is\n ENCRYPT_DECRYPT. This parameter is required only for asymmetric CMKs. You can't\n change the KeyUsage value after the CMK is created.

\n

Select only one valid value.

\n " + "smithy.api#documentation": "

Determines the cryptographic operations for which you can use the KMS key. The default value is\n ENCRYPT_DECRYPT. This parameter is required only for asymmetric KMS keys. You can't\n change the KeyUsage value after the KMS key is created.

\n

Select only one valid value.

\n " } }, "CustomerMasterKeySpec": { "target": "com.amazonaws.kms#CustomerMasterKeySpec", "traits": { - "smithy.api#documentation": "

Specifies the type of CMK to create. The default value, SYMMETRIC_DEFAULT,\n creates a CMK with a 256-bit symmetric key for encryption and decryption. For help choosing a\n key spec for your CMK, see How to Choose Your CMK\n Configuration in the AWS Key Management Service Developer\n Guide.

\n

The CustomerMasterKeySpec determines whether the CMK contains a symmetric key\n or an asymmetric key pair. It also determines the encryption algorithms or signing algorithms\n that the CMK supports. You can't change the CustomerMasterKeySpec after the CMK\n is created. To further restrict the algorithms that can be used with the CMK, use a condition\n key in its key policy or IAM policy. For more information, see kms:EncryptionAlgorithm or kms:Signing Algorithm in the AWS Key Management Service Developer\n Guide.

\n \n

\n AWS services that\n are integrated with AWS KMS use symmetric CMKs to protect your data. These\n services do not support asymmetric CMKs. For help determining whether a CMK is symmetric or\n asymmetric, see Identifying Symmetric and Asymmetric\n CMKs in the AWS Key Management Service Developer\n Guide.

\n
\n

AWS KMS supports the following key specs for CMKs:

\n " + "smithy.api#deprecated": { + "message": "This parameter has been deprecated. Instead, use the KeySpec parameter." + }, + "smithy.api#documentation": "

Instead, use the KeySpec parameter.

\n

The KeySpec and CustomerMasterKeySpec parameters work the same way. Only the names differ. We recommend that you use KeySpec parameter in your code. However, to avoid breaking changes, KMS will support both parameters.

" + } + }, + "KeySpec": { + "target": "com.amazonaws.kms#KeySpec", + "traits": { + "smithy.api#documentation": "

Specifies the type of KMS key to create. The default value, SYMMETRIC_DEFAULT,\n creates a KMS key with a 256-bit symmetric key for encryption and decryption. For help choosing a\n key spec for your KMS key, see How to Choose Your KMS key\n Configuration in the \n Key Management Service Developer Guide\n .

\n

The KeySpec determines whether the KMS key contains a symmetric key or an\n asymmetric key pair. It also determines the encryption algorithms or signing algorithms that\n the KMS key supports. You can't change the KeySpec after the KMS key is created.\n To further restrict the algorithms that can be used with the KMS key, use a condition key in\n its key policy or IAM policy. For more information, see kms:EncryptionAlgorithm or kms:Signing Algorithm in the \n Key Management Service Developer Guide\n .

\n \n

\n Amazon Web Services services that\n are integrated with KMS use symmetric KMS keys to protect your data. These\n services do not support asymmetric KMS keys. For help determining whether a KMS key is symmetric or\n asymmetric, see Identifying Symmetric and Asymmetric KMS keys in the Key Management Service Developer\n Guide.

\n
\n

KMS supports the following key specs for KMS keys:

\n " } }, "Origin": { "target": "com.amazonaws.kms#OriginType", "traits": { - "smithy.api#documentation": "

The source of the key material for the CMK. You cannot change the origin after you create\n the CMK. The default is AWS_KMS, which means that AWS KMS creates the key\n material.

\n

To create a CMK with no key material (for imported key material), set the value to\n EXTERNAL. For more information about importing key material into AWS KMS, see\n Importing Key\n Material in the AWS Key Management Service Developer Guide. This value is valid only for symmetric CMKs.

\n

To create a CMK in an AWS KMS custom key store and create its key material in the associated\n AWS CloudHSM cluster, set this value to AWS_CLOUDHSM. You must also use the\n CustomKeyStoreId parameter to identify the custom key store. This value is\n valid only for symmetric CMKs.

" + "smithy.api#documentation": "

The source of the key material for the KMS key. You cannot change the origin after you create\n the KMS key. The default is AWS_KMS, which means that KMS creates the key\n material.

\n

To create a KMS key with no key material (for imported key material), set the value to\n EXTERNAL. For more information about importing key material into KMS, see\n Importing Key\n Material in the Key Management Service Developer Guide. This value is valid only for symmetric KMS keys.

\n

To create a KMS key in an KMS custom key store and create its key material in the associated\n CloudHSM cluster, set this value to AWS_CLOUDHSM. You must also use the\n CustomKeyStoreId parameter to identify the custom key store. This value is\n valid only for symmetric KMS keys.

" } }, "CustomKeyStoreId": { "target": "com.amazonaws.kms#CustomKeyStoreIdType", "traits": { - "smithy.api#documentation": "

Creates the CMK in the specified custom key store and the key material in its associated\n AWS CloudHSM cluster. To create a CMK in a custom key store, you must also specify the\n Origin parameter with a value of AWS_CLOUDHSM. The AWS CloudHSM cluster\n that is associated with the custom key store must have at least two active HSMs, each in a\n different Availability Zone in the Region.

\n

This parameter is valid only for symmetric CMKs and regional CMKs. You cannot create an\n asymmetric CMK or a multi-Region CMK in a custom key store.

\n

To find the ID of a custom key store, use the DescribeCustomKeyStores operation.

\n

The response includes the custom key store ID and the ID of the AWS CloudHSM cluster.

\n

This operation is part of the Custom Key Store feature feature in AWS KMS, which\ncombines the convenience and extensive integration of AWS KMS with the isolation and control of a\nsingle-tenant key store.

" + "smithy.api#documentation": "

Creates the KMS key in the specified custom key store and the key material in its associated\n CloudHSM cluster. To create a KMS key in a custom key store, you must also specify the\n Origin parameter with a value of AWS_CLOUDHSM. The CloudHSM cluster\n that is associated with the custom key store must have at least two active HSMs, each in a\n different Availability Zone in the Region.

\n

This parameter is valid only for symmetric KMS keys and regional KMS keys. You cannot create an\n asymmetric KMS key or a multi-Region key in a custom key store.

\n

To find the ID of a custom key store, use the DescribeCustomKeyStores operation.

\n

The response includes the custom key store ID and the ID of the CloudHSM cluster.

\n

This operation is part of the Custom Key Store feature feature in KMS, which\ncombines the convenience and extensive integration of KMS with the isolation and control of a\nsingle-tenant key store.

" } }, "BypassPolicyLockoutSafetyCheck": { "target": "com.amazonaws.kms#BooleanType", "traits": { - "smithy.api#documentation": "

A flag to indicate whether to bypass the key policy lockout safety check.

\n \n

Setting this value to true increases the risk that the CMK becomes unmanageable. Do not\n set this value to true indiscriminately.

\n

For more information, refer to the scenario in the Default Key Policy section in the \n AWS Key Management Service Developer Guide\n .

\n
\n

Use this parameter only when you include a policy in the request and you intend to prevent\n the principal that is making the request from making a subsequent PutKeyPolicy request on the CMK.

\n

The default value is false.

" + "smithy.api#documentation": "

A flag to indicate whether to bypass the key policy lockout safety check.

\n \n

Setting this value to true increases the risk that the KMS key becomes unmanageable. Do not\n set this value to true indiscriminately.

\n

For more information, refer to the scenario in the Default Key Policy section in the \n Key Management Service Developer Guide\n .

\n
\n

Use this parameter only when you include a policy in the request and you intend to prevent\n the principal that is making the request from making a subsequent PutKeyPolicy request on the KMS key.

\n

The default value is false.

" } }, "Tags": { "target": "com.amazonaws.kms#TagList", "traits": { - "smithy.api#documentation": "

Assigns one or more tags to the CMK. Use this parameter to tag the CMK when it is created.\n To tag an existing CMK, use the TagResource operation.

\n \n

Tagging or untagging a CMK can allow or deny permission to the\n CMK. For details, see Using ABAC in AWS KMS in the AWS Key Management Service Developer Guide.

\n
\n

To use this parameter, you must have kms:TagResource permission in an IAM policy.

\n

Each tag consists of a tag key and a tag value. Both the tag key and the tag value are\n required, but the tag value can be an empty (null) string. You cannot have more than one tag\n on a CMK with the same tag key. If you specify an existing tag key with a different tag value,\n AWS KMS replaces the current tag value with the specified one.

\n

When you assign tags to an AWS resource, AWS generates a cost allocation\n report with usage and costs aggregated by tags. Tags can also be used to control access to a CMK. For details,\n see Tagging Keys.

" + "smithy.api#documentation": "

Assigns one or more tags to the KMS key. Use this parameter to tag the KMS key when it is created.\n To tag an existing KMS key, use the TagResource operation.

\n \n

Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see Using ABAC in KMS in the Key Management Service Developer Guide.

\n
\n

To use this parameter, you must have kms:TagResource permission in an IAM policy.

\n

Each tag consists of a tag key and a tag value. Both the tag key and the tag value are\n required, but the tag value can be an empty (null) string. You cannot have more than one tag\n on a KMS key with the same tag key. If you specify an existing tag key with a different tag value,\n KMS replaces the current tag value with the specified one.

\n

When you add tags to an Amazon Web Services resource, Amazon Web Services generates a cost allocation\n report with usage and costs aggregated by tags. Tags can also be used to control access to a KMS key. For details,\n see Tagging Keys.

" } }, "MultiRegion": { "target": "com.amazonaws.kms#NullableBooleanType", "traits": { - "smithy.api#documentation": "

Creates a multi-Region primary key that you can replicate into other AWS Regions. You\n cannot change this value after you create the CMK.

\n

For a multi-Region key, set this parameter to True. For a single-Region CMK,\n omit this parameter or set it to False. The default value is\n False.

\n

This operation supports multi-Region keys, an AWS KMS feature that lets you create multiple\n interoperable CMKs in different AWS Regions. Because these CMKs have the same key ID, key\n material, and other metadata, you can use them to encrypt data in one AWS Region and decrypt\n it in a different AWS Region without making a cross-Region call or exposing the plaintext data. For more information about multi-Region keys, see Using multi-Region keys in the AWS Key Management Service Developer Guide.

\n

This value creates a primary key, not a replica. To create a\n replica key, use the ReplicateKey operation.

\n

You can create a symmetric or asymmetric multi-Region CMK, and you can create a\n multi-Region CMK with imported key material. However, you cannot create a multi-Region CMK in\n a custom key store.

" + "smithy.api#documentation": "

Creates a multi-Region primary key that you can replicate into other Amazon Web Services Regions. You\n cannot change this value after you create the KMS key.

\n

For a multi-Region key, set this parameter to True. For a single-Region KMS key,\n omit this parameter or set it to False. The default value is\n False.

\n

This operation supports multi-Region keys, an KMS feature that lets you create multiple\n interoperable KMS keys in different Amazon Web Services Regions. Because these KMS keys have the same key ID, key\n material, and other metadata, you can use them interchangeably to encrypt data in one Amazon Web Services Region and decrypt\n it in a different Amazon Web Services Region without re-encrypting the data or making a cross-Region call. For more information about multi-Region keys, see Using multi-Region keys in the Key Management Service Developer Guide.

\n

This value creates a primary key, not a replica. To create a\n replica key, use the ReplicateKey operation.

\n

You can create a symmetric or asymmetric multi-Region key, and you can create a\n multi-Region key with imported key material. However, you cannot create a multi-Region key in\n a custom key store.

" } } } @@ -724,7 +757,7 @@ "KeyMetadata": { "target": "com.amazonaws.kms#KeyMetadata", "traits": { - "smithy.api#documentation": "

Metadata associated with the CMK.

" + "smithy.api#documentation": "

Metadata associated with the KMS key.

" } } } @@ -737,7 +770,11 @@ } }, "traits": { - "smithy.api#documentation": "

The request was rejected because the custom key store contains AWS KMS customer master keys\n (CMKs). After verifying that you do not need to use the CMKs, use the ScheduleKeyDeletion operation to delete the CMKs. After they are deleted, you\n can delete the custom key store.

", + "aws.protocols#awsQueryError": { + "code": "CustomKeyStoreHasCMKsException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the custom key store contains KMS keys. After verifying that you do not need to use the KMS keys, use the ScheduleKeyDeletion operation to delete the KMS keys. After they are deleted, you\n can delete the custom key store.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -759,6 +796,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "CustomKeyStoreInvalidStateException", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

The request was rejected because of the ConnectionState of the custom key\n store. To get the ConnectionState of a custom key store, use the DescribeCustomKeyStores operation.

\n

This exception is thrown under the following conditions:

\n ", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -772,6 +813,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "CustomKeyStoreNameInUseException", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

The request was rejected because the specified custom key store name is already assigned\n to another custom key store in the account. Try again with a custom key store name that is\n unique in the account.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -794,7 +839,11 @@ } }, "traits": { - "smithy.api#documentation": "

The request was rejected because AWS KMS cannot find a custom key store with the specified\n key store name or ID.

", + "aws.protocols#awsQueryError": { + "code": "CustomKeyStoreNotFoundException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because KMS cannot find a custom key store with the specified\n key store name or ID.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -823,25 +872,25 @@ "CloudHsmClusterId": { "target": "com.amazonaws.kms#CloudHsmClusterIdType", "traits": { - "smithy.api#documentation": "

A unique identifier for the AWS CloudHSM cluster that is associated with the custom key\n store.

" + "smithy.api#documentation": "

A unique identifier for the CloudHSM cluster that is associated with the custom key\n store.

" } }, "TrustAnchorCertificate": { "target": "com.amazonaws.kms#TrustAnchorCertificateType", "traits": { - "smithy.api#documentation": "

The trust anchor certificate of the associated AWS CloudHSM cluster. When you initialize the\n cluster, you create this certificate and save it in the customerCA.crt\n file.

" + "smithy.api#documentation": "

The trust anchor certificate of the associated CloudHSM cluster. When you initialize the\n cluster, you create this certificate and save it in the customerCA.crt\n file.

" } }, "ConnectionState": { "target": "com.amazonaws.kms#ConnectionStateType", "traits": { - "smithy.api#documentation": "

Indicates whether the custom key store is connected to its AWS CloudHSM cluster.

\n

You can create and use CMKs in your custom key stores only when its connection state is\n CONNECTED.

\n

The value is DISCONNECTED if the key store has never been connected or you\n use the DisconnectCustomKeyStore operation to disconnect it. If the value is\n CONNECTED but you are having trouble using the custom key store, make sure that\n its associated AWS CloudHSM cluster is active and contains at least one active HSM.

\n

A value of FAILED indicates that an attempt to connect was unsuccessful. The\n ConnectionErrorCode field in the response indicates the cause of the failure.\n For help resolving a connection failure, see Troubleshooting a Custom Key Store in the\n AWS Key Management Service Developer Guide.

" + "smithy.api#documentation": "

Indicates whether the custom key store is connected to its CloudHSM cluster.

\n

You can create and use KMS keys in your custom key stores only when its connection state is\n CONNECTED.

\n

The value is DISCONNECTED if the key store has never been connected or you\n use the DisconnectCustomKeyStore operation to disconnect it. If the value is\n CONNECTED but you are having trouble using the custom key store, make sure that\n its associated CloudHSM cluster is active and contains at least one active HSM.

\n

A value of FAILED indicates that an attempt to connect was unsuccessful. The\n ConnectionErrorCode field in the response indicates the cause of the failure.\n For help resolving a connection failure, see Troubleshooting a Custom Key Store in the\n Key Management Service Developer Guide.

" } }, "ConnectionErrorCode": { "target": "com.amazonaws.kms#ConnectionErrorCodeType", "traits": { - "smithy.api#documentation": "

Describes the connection error. This field appears in the response only when the\n ConnectionState is FAILED. For help resolving these errors, see\n How to\n Fix a Connection Failure in AWS Key Management Service Developer Guide.

\n

Valid values are:

\n " + "smithy.api#documentation": "

Describes the connection error. This field appears in the response only when the\n ConnectionState is FAILED. For help resolving these errors, see\n How to\n Fix a Connection Failure in Key Management Service Developer Guide.

\n

Valid values are:

\n " } }, "CreationDate": { @@ -858,6 +907,9 @@ "com.amazonaws.kms#CustomerMasterKeySpec": { "type": "string", "traits": { + "smithy.api#deprecated": { + "message": "This enum has been deprecated. Instead, use the KeySpec enum." + }, "smithy.api#enum": [ { "value": "RSA_2048", @@ -988,7 +1040,7 @@ } ], "traits": { - "smithy.api#documentation": "

Decrypts ciphertext that was encrypted by a AWS KMS customer master key (CMK) using any of\n the following operations:

\n \n

You can use this operation to decrypt ciphertext that was encrypted under a symmetric or\n asymmetric CMK. When the CMK is asymmetric, you must specify the CMK and the encryption\n algorithm that was used to encrypt the ciphertext. For information about symmetric and asymmetric CMKs, see Using Symmetric and Asymmetric CMKs in the AWS Key Management Service Developer Guide.

\n

The Decrypt operation also decrypts ciphertext that was encrypted outside of AWS KMS by the\n public key in an AWS KMS asymmetric CMK. However, it cannot decrypt ciphertext produced by other\n libraries, such as the AWS Encryption\n SDK or Amazon S3 client-side encryption. These libraries return a ciphertext format that\n is incompatible with AWS KMS.

\n

If the ciphertext was encrypted under a symmetric CMK, the KeyId parameter is\n optional. AWS KMS can get this information from metadata that it adds to the symmetric\n ciphertext blob. This feature adds durability to your implementation by ensuring that\n authorized users can decrypt ciphertext decades after it was encrypted, even if they've lost\n track of the CMK ID. However, specifying the CMK is always recommended as a best practice.\n When you use the KeyId parameter to specify a CMK, AWS KMS only uses the CMK you\n specify. If the ciphertext was encrypted under a different CMK, the Decrypt\n operation fails. This practice ensures that you use the CMK that you intend.

\n

Whenever possible, use key policies to give users permission to call the\n Decrypt operation on a particular CMK, instead of using IAM policies.\n Otherwise, you might create an IAM user policy that gives the user Decrypt\n permission on all CMKs. This user could decrypt ciphertext that was encrypted by CMKs in other\n accounts if the key policy for the cross-account CMK permits it. If you must use an IAM policy\n for Decrypt permissions, limit the user to particular CMKs or particular trusted\n accounts. For details, see Best practices for IAM policies in the AWS Key Management Service Developer Guide.

\n

The CMK that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your CMK in the AWS Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. You can decrypt a ciphertext\n using a CMK in a different AWS account.

\n \n

\n Required permissions: kms:Decrypt (key policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Decrypts ciphertext that was encrypted by a KMS key using any of\n the following operations:

\n \n

You can use this operation to decrypt ciphertext that was encrypted under a symmetric or\n asymmetric KMS key. When the KMS key is asymmetric, you must specify the KMS key and the encryption\n algorithm that was used to encrypt the ciphertext. For information about symmetric and asymmetric KMS keys, see Using Symmetric and Asymmetric KMS keys in the Key Management Service Developer Guide.

\n

The Decrypt operation also decrypts ciphertext that was encrypted outside of KMS by the\n public key in an KMS asymmetric KMS key. However, it cannot decrypt ciphertext produced by other\n libraries, such as the Amazon Web Services Encryption\n SDK or Amazon S3 client-side encryption. These libraries return a ciphertext format that\n is incompatible with KMS.

\n

If the ciphertext was encrypted under a symmetric KMS key, the KeyId parameter is\n optional. KMS can get this information from metadata that it adds to the symmetric\n ciphertext blob. This feature adds durability to your implementation by ensuring that\n authorized users can decrypt ciphertext decades after it was encrypted, even if they've lost\n track of the key ID. However, specifying the KMS key is always recommended as a best practice.\n When you use the KeyId parameter to specify a KMS key, KMS only uses the KMS key you\n specify. If the ciphertext was encrypted under a different KMS key, the Decrypt\n operation fails. This practice ensures that you use the KMS key that you intend.

\n

Whenever possible, use key policies to give users permission to call the\n Decrypt operation on a particular KMS key, instead of using IAM policies.\n Otherwise, you might create an IAM user policy that gives the user Decrypt\n permission on all KMS keys. This user could decrypt ciphertext that was encrypted by KMS keys in other\n accounts if the key policy for the cross-account KMS key permits it. If you must use an IAM policy\n for Decrypt permissions, limit the user to particular KMS keys or particular trusted\n accounts. For details, see Best practices for IAM policies in the Key Management Service Developer Guide.

\n

Applications in Amazon Web Services Nitro Enclaves can call this operation by using the Amazon Web Services Nitro Enclaves Development Kit. For information about the supporting parameters, see How Amazon Web Services Nitro Enclaves use KMS in the Key Management Service Developer Guide.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:Decrypt (key policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#DecryptRequest": { @@ -1004,25 +1056,25 @@ "EncryptionContext": { "target": "com.amazonaws.kms#EncryptionContextType", "traits": { - "smithy.api#documentation": "

Specifies the encryption context to use when decrypting the data.\n An encryption context is valid only for cryptographic operations with a symmetric CMK. The standard asymmetric encryption algorithms that AWS KMS uses do not support an encryption context.

\n

An encryption context is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric CMK, but it is highly recommended.

\n

For more information, see\n Encryption\n Context in the AWS Key Management Service Developer Guide.

" + "smithy.api#documentation": "

Specifies the encryption context to use when decrypting the data.\n An encryption context is valid only for cryptographic operations with a symmetric KMS key. The standard asymmetric encryption algorithms that KMS uses do not support an encryption context.

\n

An encryption context is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric KMS key, but it is highly recommended.

\n

For more information, see\n Encryption\n Context in the Key Management Service Developer Guide.

" } }, "GrantTokens": { "target": "com.amazonaws.kms#GrantTokenList", "traits": { - "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a newly created\n grant that has not yet achieved eventual consistency. Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token in the\n AWS Key Management Service Developer Guide.

" + "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token and Using a grant token in the\n Key Management Service Developer Guide.

" } }, "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Specifies the customer master key (CMK) that AWS KMS uses to decrypt the ciphertext. Enter a\n key ID of the CMK that was used to encrypt the ciphertext.

\n

This parameter is required only when the ciphertext was encrypted under an asymmetric CMK.\n If you used a symmetric CMK, AWS KMS can get the CMK from metadata that it adds to the\n symmetric ciphertext blob. However, it is always recommended as a best practice. This practice\n ensures that you use the CMK that you intend.

\n \n

To specify a CMK, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

" + "smithy.api#documentation": "

Specifies the KMS key that KMS uses to decrypt the ciphertext. Enter a\n key ID of the KMS key that was used to encrypt the ciphertext.

\n\n

This parameter is required only when the ciphertext was encrypted under an asymmetric KMS key.\n If you used a symmetric KMS key, KMS can get the KMS key from metadata that it adds to the\n symmetric ciphertext blob. However, it is always recommended as a best practice. This practice\n ensures that you use the KMS key that you intend.

\n \n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

" } }, "EncryptionAlgorithm": { "target": "com.amazonaws.kms#EncryptionAlgorithmSpec", "traits": { - "smithy.api#documentation": "

Specifies the encryption algorithm that will be used to decrypt the ciphertext. Specify\n the same algorithm that was used to encrypt the data. If you specify a different algorithm,\n the Decrypt operation fails.

\n

This parameter is required only when the ciphertext was encrypted under an asymmetric CMK.\n The default value, SYMMETRIC_DEFAULT, represents the only supported algorithm\n that is valid for symmetric CMKs.

" + "smithy.api#documentation": "

Specifies the encryption algorithm that will be used to decrypt the ciphertext. Specify\n the same algorithm that was used to encrypt the data. If you specify a different algorithm,\n the Decrypt operation fails.

\n

This parameter is required only when the ciphertext was encrypted under an asymmetric KMS key.\n The default value, SYMMETRIC_DEFAULT, represents the only supported algorithm\n that is valid for symmetric KMS keys.

" } } } @@ -1033,13 +1085,13 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the CMK that was used to decrypt the ciphertext.

" + "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the KMS key that was used to decrypt the ciphertext.

" } }, "Plaintext": { "target": "com.amazonaws.kms#PlaintextType", "traits": { - "smithy.api#documentation": "

Decrypted plaintext data. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

" + "smithy.api#documentation": "

Decrypted plaintext data. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

" } }, "EncryptionAlgorithm": { @@ -1070,7 +1122,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes the specified alias.

\n \n

Adding, deleting, or updating an alias can allow or deny permission to the CMK. For details, see Using ABAC in AWS KMS in the AWS Key Management Service Developer Guide.

\n
\n

Because an alias is not a property of a CMK, you can delete and change the aliases of a\n CMK without affecting the CMK. Also, aliases do not appear in the response from the DescribeKey operation. To get the aliases of all CMKs, use the ListAliases operation.

\n

Each CMK can have multiple aliases. To change the alias of a CMK, use DeleteAlias to delete the current alias and CreateAlias to\n create a new alias. To associate an existing alias with a different customer master key (CMK),\n call UpdateAlias.

\n

\n Cross-account use: No. You cannot perform this operation on an alias in a different AWS account.

\n

\n Required permissions\n

\n \n

For details, see Controlling access to aliases in the AWS Key Management Service Developer Guide.

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Deletes the specified alias.

\n \n

Adding, deleting, or updating an alias can allow or deny permission to the KMS key. For details, see Using ABAC in KMS in the Key Management Service Developer Guide.

\n
\n

Because an alias is not a property of a KMS key, you can delete and change the aliases of a KMS key without affecting the KMS key. Also, aliases do not appear in the response from the DescribeKey operation. To get the aliases of all KMS keys, use the ListAliases operation.

\n

Each KMS key can have multiple aliases. To change the alias of a KMS key, use DeleteAlias to delete the current alias and CreateAlias to\n create a new alias. To associate an existing alias with a different KMS key,\n call UpdateAlias.

\n

\n Cross-account use: No. You cannot perform this operation on an alias in a different Amazon Web Services account.

\n

\n Required permissions\n

\n \n

For details, see Controlling access to aliases in the Key Management Service Developer Guide.

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#DeleteAliasRequest": { @@ -1108,7 +1160,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a custom key store. This operation does not delete the AWS CloudHSM cluster that is\n associated with the custom key store, or affect any users or keys in the cluster.

\n

The custom key store that you delete cannot contain any AWS KMS customer master keys (CMKs). Before\n deleting the key store, verify that you will never need to use any of the CMKs in the key\n store for any cryptographic operations. Then, use ScheduleKeyDeletion to delete the\n AWS KMS customer master keys (CMKs) from the key store. When the scheduled waiting period\n expires, the ScheduleKeyDeletion operation deletes the CMKs. Then it makes a best\n effort to delete the key material from the associated cluster. However, you might need to\n manually delete the orphaned key\n material from the cluster and its backups.

\n

After all CMKs are deleted from AWS KMS, use DisconnectCustomKeyStore to\n disconnect the key store from AWS KMS. Then, you can delete the custom key store.

\n

Instead of deleting the custom key store, consider using DisconnectCustomKeyStore to disconnect it from AWS KMS. While the key store is\n disconnected, you cannot create or use the CMKs in the key store. But, you do not need to\n delete CMKs and you can reconnect a disconnected custom key store at any time.

\n

If the operation succeeds, it returns a JSON object with no\nproperties.

\n

This operation is part of the Custom Key Store feature feature in AWS KMS, which\ncombines the convenience and extensive integration of AWS KMS with the isolation and control of a\nsingle-tenant key store.

\n\n

\n Cross-account use: No. You cannot perform this operation on a custom key store in a different AWS account.

\n \n

\n Required permissions: kms:DeleteCustomKeyStore (IAM policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Deletes a custom key store. This operation does not delete the CloudHSM cluster that is\n associated with the custom key store, or affect any users or keys in the cluster.

\n

The custom key store that you delete cannot contain any KMS KMS keys. Before\n deleting the key store, verify that you will never need to use any of the KMS keys in the key\n store for any cryptographic operations. Then, use ScheduleKeyDeletion to delete the\n KMS keys from the key store. When the scheduled waiting period\n expires, the ScheduleKeyDeletion operation deletes the KMS keys. Then it makes a best\n effort to delete the key material from the associated cluster. However, you might need to\n manually delete the orphaned key\n material from the cluster and its backups.

\n

After all KMS keys are deleted from KMS, use DisconnectCustomKeyStore to\n disconnect the key store from KMS. Then, you can delete the custom key store.

\n

Instead of deleting the custom key store, consider using DisconnectCustomKeyStore to disconnect it from KMS. While the key store is\n disconnected, you cannot create or use the KMS keys in the key store. But, you do not need to\n delete KMS keys and you can reconnect a disconnected custom key store at any time.

\n

If the operation succeeds, it returns a JSON object with no\nproperties.

\n

This operation is part of the Custom Key Store feature feature in KMS, which\ncombines the convenience and extensive integration of KMS with the isolation and control of a\nsingle-tenant key store.

\n\n

\n Cross-account use: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:DeleteCustomKeyStore (IAM policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#DeleteCustomKeyStoreRequest": { @@ -1153,7 +1205,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes key material that you previously imported. This operation makes the specified\n customer master key (CMK) unusable. For more information about importing key material into\n AWS KMS, see Importing Key\n Material in the AWS Key Management Service Developer Guide.

\n

When the specified CMK is in the PendingDeletion state, this operation does\n not change the CMK's state. Otherwise, it changes the CMK's state to\n PendingImport.

\n

After you delete key material, you can use ImportKeyMaterial to reimport\n the same key material into the CMK.

\n

The CMK that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your CMK in the AWS Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a CMK in a different AWS account.

\n \n

\n Required permissions: kms:DeleteImportedKeyMaterial (key policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Deletes key material that you previously imported. This operation makes the specified\n KMS key unusable. For more information about importing key material into\n KMS, see Importing Key\n Material in the Key Management Service Developer Guide.

\n

When the specified KMS key is in the PendingDeletion state, this operation does\n not change the KMS key's state. Otherwise, it changes the KMS key's state to\n PendingImport.

\n

After you delete key material, you can use ImportKeyMaterial to reimport\n the same key material into the KMS key.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:DeleteImportedKeyMaterial (key policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#DeleteImportedKeyMaterialRequest": { @@ -1162,7 +1214,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Identifies the CMK from which you are deleting imported key material. The\n Origin of the CMK must be EXTERNAL.

\n

Specify the key ID or key ARN of the CMK.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

Identifies the KMS key from which you are deleting imported key material. The\n Origin of the KMS key must be EXTERNAL.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } } @@ -1176,6 +1228,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "DependencyTimeout", + "httpResponseCode": 503 + }, "smithy.api#documentation": "

The system timed out while trying to fulfill the request. The request can be\n retried.

", "smithy.api#error": "server", "smithy.api#httpError": 503 @@ -1201,7 +1257,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets information about custom key stores in the account and Region.

\n

This operation is part of the Custom Key Store feature feature in AWS KMS, which\ncombines the convenience and extensive integration of AWS KMS with the isolation and control of a\nsingle-tenant key store.

\n

By default, this operation returns information about all custom key stores in the account and\n Region. To get only information about a particular custom key store, use either the\n CustomKeyStoreName or CustomKeyStoreId parameter (but not\n both).

\n

To determine whether the custom key store is connected to its AWS CloudHSM cluster, use the\n ConnectionState element in the response. If an attempt to connect the custom\n key store failed, the ConnectionState value is FAILED and the\n ConnectionErrorCode element in the response indicates the cause of the failure.\n For help interpreting the ConnectionErrorCode, see CustomKeyStoresListEntry.

\n

Custom key stores have a DISCONNECTED connection state if the key store has\n never been connected or you use the DisconnectCustomKeyStore operation to\n disconnect it. If your custom key store state is CONNECTED but you are having\n trouble using it, make sure that its associated AWS CloudHSM cluster is active and contains the\n minimum number of HSMs required for the operation, if any.

\n

For help repairing your custom key store, see the Troubleshooting Custom Key Stores topic in the\n AWS Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a custom key store in a different AWS account.

\n

\n Required permissions: kms:DescribeCustomKeyStores (IAM policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Gets information about custom key stores in the account and Region.

\n

This operation is part of the Custom Key Store feature feature in KMS, which\ncombines the convenience and extensive integration of KMS with the isolation and control of a\nsingle-tenant key store.

\n

By default, this operation returns information about all custom key stores in the account and\n Region. To get only information about a particular custom key store, use either the\n CustomKeyStoreName or CustomKeyStoreId parameter (but not\n both).

\n

To determine whether the custom key store is connected to its CloudHSM cluster, use the\n ConnectionState element in the response. If an attempt to connect the custom\n key store failed, the ConnectionState value is FAILED and the\n ConnectionErrorCode element in the response indicates the cause of the failure.\n For help interpreting the ConnectionErrorCode, see CustomKeyStoresListEntry.

\n

Custom key stores have a DISCONNECTED connection state if the key store has\n never been connected or you use the DisconnectCustomKeyStore operation to\n disconnect it. If your custom key store state is CONNECTED but you are having\n trouble using it, make sure that its associated CloudHSM cluster is active and contains the\n minimum number of HSMs required for the operation, if any.

\n

For help repairing your custom key store, see the Troubleshooting Custom Key Stores topic in the\n Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.

\n

\n Required permissions: kms:DescribeCustomKeyStores (IAM policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#DescribeCustomKeyStoresRequest": { @@ -1222,7 +1278,7 @@ "Limit": { "target": "com.amazonaws.kms#LimitType", "traits": { - "smithy.api#documentation": "

Use this parameter to specify the maximum number of items to return. When this\n value is present, AWS KMS does not return more than the specified number of items, but it might\n return fewer.

" + "smithy.api#documentation": "

Use this parameter to specify the maximum number of items to return. When this\n value is present, KMS does not return more than the specified number of items, but it might\n return fewer.

" } }, "Marker": { @@ -1279,7 +1335,7 @@ } ], "traits": { - "smithy.api#documentation": "

Provides detailed information about a customer master key (CMK). You can run\n DescribeKey on a customer managed CMK or an AWS managed\n CMK.

\n

This detailed information includes the key ARN, creation date (and deletion date, if\n applicable), the key state, and the origin and expiration date (if any) of the key material.\n For CMKs in custom key stores, it includes information about the custom key store, such as the\n key store ID and the AWS CloudHSM cluster ID. It includes fields, like KeySpec, that\n help you distinguish symmetric from asymmetric CMKs. It also provides information that is\n particularly important to asymmetric CMKs, such as the key usage (encryption or signing) and\n the encryption algorithms or signing algorithms that the CMK supports.

\n

\n DescribeKey does not return the following information:

\n \n

If you call the DescribeKey operation on a predefined AWS\n alias, that is, an AWS alias with no key ID, AWS KMS creates an AWS managed CMK.\n Then, it associates the alias with the new CMK, and returns the KeyId and\n Arn of the new CMK in the response.

\n

\n Cross-account use: Yes. To perform this operation with a CMK in a different AWS account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:DescribeKey (key policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Provides detailed information about a KMS key. You can run\n DescribeKey on a customer managed key or an Amazon Web Services managed key.

\n

This detailed information includes the key ARN, creation date (and deletion date, if\n applicable), the key state, and the origin and expiration date (if any) of the key material.\n It includes fields, like KeySpec, that help you distinguish symmetric from\n asymmetric KMS keys. It also provides information that is particularly important to asymmetric\n keys, such as the key usage (encryption or signing) and the encryption algorithms or signing\n algorithms that the KMS key supports. For KMS keys in custom key stores, it includes information about\n the custom key store, such as the key store ID and the CloudHSM cluster ID. For multi-Region\n keys, it displays the primary key and all related replica keys.

\n

\n DescribeKey does not return the following information:

\n \n

If you call the DescribeKey operation on a predefined Amazon Web Services alias, that is, an Amazon Web Services alias with no key ID, KMS creates an Amazon Web Services managed key.\n Then, it associates the alias with the new KMS key, and returns the KeyId and\n Arn of the new KMS key in the response.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:DescribeKey (key policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#DescribeKeyRequest": { @@ -1288,14 +1344,14 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Describes the specified customer master key (CMK).

\n

If you specify a predefined AWS alias (an AWS alias with no key ID), KMS associates the\n alias with an AWS\n managed CMK and returns its KeyId and Arn in the\n response.

\n

To specify a CMK, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "smithy.api#documentation": "

Describes the specified KMS key.

\n

If you specify a predefined Amazon Web Services alias (an Amazon Web Services alias with no key ID), KMS associates the\n alias with an Amazon Web Services managed key and returns its KeyId and Arn in the\n response.

\n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", "smithy.api#required": {} } }, "GrantTokens": { "target": "com.amazonaws.kms#GrantTokenList", "traits": { - "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token in the\n AWS Key Management Service Developer Guide.

" + "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token and Using a grant token in the\n Key Management Service Developer Guide.

" } } } @@ -1343,7 +1399,7 @@ } ], "traits": { - "smithy.api#documentation": "

Sets the state of a customer master key (CMK) to disabled. This change temporarily\n prevents use of the CMK for cryptographic operations.

\n

For more information about how key state affects the use of a CMK, see Key state: Effect on your CMK in the \n AWS Key Management Service Developer Guide\n .

\n

The CMK that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your CMK in the AWS Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a CMK in a different AWS account.

\n \n

\n Required permissions: kms:DisableKey (key policy)

\n

\n Related operations: EnableKey\n

" + "smithy.api#documentation": "

Sets the state of a KMS key to disabled. This change temporarily\n prevents use of the KMS key for cryptographic operations.

\n

For more information about how key state affects the use of a KMS key, see Key state: Effect on your KMS key in the \n Key Management Service Developer Guide\n .

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:DisableKey (key policy)

\n

\n Related operations: EnableKey\n

" } }, "com.amazonaws.kms#DisableKeyRequest": { @@ -1352,7 +1408,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Identifies the customer master key (CMK) to disable.

\n

Specify the key ID or key ARN of the CMK.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

Identifies the KMS key to disable.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } } @@ -1387,7 +1443,7 @@ } ], "traits": { - "smithy.api#documentation": "

Disables automatic\n rotation of the key material for the specified symmetric customer master key\n (CMK).

\n

You cannot enable automatic rotation of asymmetric CMKs, CMKs with imported key material, or CMKs in a custom key store. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key.

\n

The CMK that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your CMK in the AWS Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a CMK in a different AWS account.

\n \n

\n Required permissions: kms:DisableKeyRotation (key policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Disables automatic\n rotation of the key material for the specified symmetric KMS key.

\n

You cannot enable automatic rotation of asymmetric KMS keys, KMS keys with imported key material, or KMS keys in a custom key store. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:DisableKeyRotation (key policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#DisableKeyRotationRequest": { @@ -1396,7 +1452,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Identifies a symmetric customer master key (CMK). You cannot enable or disable automatic\n rotation of asymmetric CMKs, CMKs\n with imported key\n material, or CMKs in a custom key store.

\n

Specify the key ID or key ARN of the CMK.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

Identifies a symmetric KMS key. You cannot enable or disable automatic\n rotation of asymmetric KMS keys, KMS keys\n with imported key\n material, or KMS keys in a custom key store.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } } @@ -1410,7 +1466,11 @@ } }, "traits": { - "smithy.api#documentation": "

The request was rejected because the specified CMK is not enabled.

", + "aws.protocols#awsQueryError": { + "code": "Disabled", + "httpResponseCode": 409 + }, + "smithy.api#documentation": "

The request was rejected because the specified KMS key is not enabled.

", "smithy.api#error": "client", "smithy.api#httpError": 409 } @@ -1435,7 +1495,7 @@ } ], "traits": { - "smithy.api#documentation": "

Disconnects the custom key store from its associated AWS CloudHSM cluster. While a custom key\n store is disconnected, you can manage the custom key store and its customer master keys\n (CMKs), but you cannot create or use CMKs in the custom key store. You can reconnect the\n custom key store at any time.

\n \n

While a custom key store is disconnected, all attempts to create customer master keys\n (CMKs) in the custom key store or to use existing CMKs in cryptographic operations will\n fail. This action can prevent users from storing and accessing sensitive data.

\n
\n

\n

To find the connection state of a custom key store, use the DescribeCustomKeyStores operation. To reconnect a custom key store, use the\n ConnectCustomKeyStore operation.

\n

If the operation succeeds, it returns a JSON object with no\nproperties.

\n

This operation is part of the Custom Key Store feature feature in AWS KMS, which\ncombines the convenience and extensive integration of AWS KMS with the isolation and control of a\nsingle-tenant key store.

\n\n

\n Cross-account use: No. You cannot perform this operation on a custom key store in a different AWS account.

\n \n

\n Required permissions: kms:DisconnectCustomKeyStore (IAM policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Disconnects the custom key store from its associated CloudHSM cluster. While a custom key\n store is disconnected, you can manage the custom key store and its KMS keys, but you cannot create or use KMS keys in the custom key store. You can reconnect the\n custom key store at any time.

\n \n

While a custom key store is disconnected, all attempts to create KMS keys in the custom key store or to use existing KMS keys in cryptographic operations will\n fail. This action can prevent users from storing and accessing sensitive data.

\n
\n

\n

To find the connection state of a custom key store, use the DescribeCustomKeyStores operation. To reconnect a custom key store, use the\n ConnectCustomKeyStore operation.

\n

If the operation succeeds, it returns a JSON object with no\nproperties.

\n

This operation is part of the Custom Key Store feature feature in KMS, which\ncombines the convenience and extensive integration of KMS with the isolation and control of a\nsingle-tenant key store.

\n\n

\n Cross-account use: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:DisconnectCustomKeyStore (IAM policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#DisconnectCustomKeyStoreRequest": { @@ -1480,7 +1540,7 @@ } ], "traits": { - "smithy.api#documentation": "

Sets the key state of a customer master key (CMK) to enabled. This allows you to use the\n CMK for cryptographic operations.

\n

The CMK that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your CMK in the AWS Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a CMK in a different AWS account.

\n \n

\n Required permissions: kms:EnableKey (key policy)

\n

\n Related operations: DisableKey\n

" + "smithy.api#documentation": "

Sets the key state of a KMS key to enabled. This allows you to use the KMS key for cryptographic operations.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:EnableKey (key policy)

\n

\n Related operations: DisableKey\n

" } }, "com.amazonaws.kms#EnableKeyRequest": { @@ -1489,7 +1549,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Identifies the customer master key (CMK) to enable.

\n

Specify the key ID or key ARN of the CMK.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

Identifies the KMS key to enable.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } } @@ -1524,7 +1584,7 @@ } ], "traits": { - "smithy.api#documentation": "

Enables automatic rotation\n of the key material for the specified symmetric customer master key (CMK).

\n

You cannot enable automatic rotation of asymmetric CMKs, CMKs with imported key material, or CMKs in a custom key store. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key.

\n

The CMK that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your CMK in the AWS Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a CMK in a different AWS account.

\n \n

\n Required permissions: kms:EnableKeyRotation (key policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Enables automatic rotation\n of the key material for the specified symmetric KMS key.

\n

You cannot enable automatic rotation of asymmetric KMS keys, KMS keys with imported key material, or KMS keys in a custom key store. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:EnableKeyRotation (key policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#EnableKeyRotationRequest": { @@ -1533,7 +1593,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Identifies a symmetric customer master key (CMK). You cannot enable automatic rotation of asymmetric CMKs, CMKs with imported key material, or CMKs in a custom key store. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key.

\n \n

Specify the key ID or key ARN of the CMK.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

Identifies a symmetric KMS key. You cannot enable automatic rotation of asymmetric KMS keys, KMS keys with imported key material, or KMS keys in a custom key store. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key.

\n \n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } } @@ -1574,7 +1634,7 @@ } ], "traits": { - "smithy.api#documentation": "

Encrypts plaintext into ciphertext by using a customer master key (CMK). The\n Encrypt operation has two primary use cases:

\n \n\n

You don't need to use the Encrypt operation to encrypt a data key. The GenerateDataKey and GenerateDataKeyPair operations return a\n plaintext data key and an encrypted copy of that data key.

\n\n

When you encrypt data, you must specify a symmetric or asymmetric CMK to use in the\n encryption operation. The CMK must have a KeyUsage value of\n ENCRYPT_DECRYPT. To find the KeyUsage of a CMK, use the DescribeKey operation.

\n\n

If you use a symmetric CMK, you can use an encryption context to add additional security\n to your encryption operation. If you specify an EncryptionContext when encrypting\n data, you must specify the same encryption context (a case-sensitive exact match) when\n decrypting the data. Otherwise, the request to decrypt fails with an\n InvalidCiphertextException. For more information, see Encryption\n Context in the AWS Key Management Service Developer Guide.

\n

If you specify an asymmetric CMK, you must also specify the encryption algorithm. The\n algorithm must be compatible with the CMK type.

\n \n

When you use an asymmetric CMK to encrypt or reencrypt data, be sure to record the CMK and encryption algorithm that you choose. You will be required to provide the same CMK and encryption algorithm when you decrypt the data. If the CMK and algorithm do not match the values used to encrypt the data, the decrypt operation fails.

\n

You are not required to supply the CMK ID and encryption algorithm when you decrypt with symmetric CMKs because AWS KMS stores this information in the ciphertext blob. AWS KMS cannot store metadata in ciphertext generated with asymmetric keys. The standard format for asymmetric key ciphertext does not include configurable fields.

\n
\n\n\n

The maximum size of the data that you can encrypt varies with the type of CMK and the\n encryption algorithm that you choose.

\n \n

The CMK that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your CMK in the AWS Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a CMK in a different AWS account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:Encrypt (key policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Encrypts plaintext into ciphertext by using a KMS key. The\n Encrypt operation has two primary use cases:

\n \n\n

You don't need to use the Encrypt operation to encrypt a data key. The GenerateDataKey and GenerateDataKeyPair operations return a\n plaintext data key and an encrypted copy of that data key.

\n\n

When you encrypt data, you must specify a symmetric or asymmetric KMS key to use in the\n encryption operation. The KMS key must have a KeyUsage value of\n ENCRYPT_DECRYPT. To find the KeyUsage of a KMS key, use the DescribeKey operation.

\n\n

If you use a symmetric KMS key, you can use an encryption context to add additional security\n to your encryption operation. If you specify an EncryptionContext when encrypting\n data, you must specify the same encryption context (a case-sensitive exact match) when\n decrypting the data. Otherwise, the request to decrypt fails with an\n InvalidCiphertextException. For more information, see Encryption\n Context in the Key Management Service Developer Guide.

\n

If you specify an asymmetric KMS key, you must also specify the encryption algorithm. The\n algorithm must be compatible with the KMS key type.

\n \n

When you use an asymmetric KMS key to encrypt or reencrypt data, be sure to record the KMS key and encryption algorithm that you choose. You will be required to provide the same KMS key and encryption algorithm when you decrypt the data. If the KMS key and algorithm do not match the values used to encrypt the data, the decrypt operation fails.

\n

You are not required to supply the key ID and encryption algorithm when you decrypt with symmetric KMS keys because KMS stores this information in the ciphertext blob. KMS cannot store metadata in ciphertext generated with asymmetric keys. The standard format for asymmetric key ciphertext does not include configurable fields.

\n
\n\n\n

The maximum size of the data that you can encrypt varies with the type of KMS key and the\n encryption algorithm that you choose.

\n \n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:Encrypt (key policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#EncryptRequest": { @@ -1583,7 +1643,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Identifies the customer master key (CMK) to use in the encryption operation.

\n

To specify a CMK, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "smithy.api#documentation": "

Identifies the KMS key to use in the encryption operation.

\n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", "smithy.api#required": {} } }, @@ -1597,19 +1657,19 @@ "EncryptionContext": { "target": "com.amazonaws.kms#EncryptionContextType", "traits": { - "smithy.api#documentation": "

Specifies the encryption context that will be used to encrypt the data.\n An encryption context is valid only for cryptographic operations with a symmetric CMK. The standard asymmetric encryption algorithms that AWS KMS uses do not support an encryption context.

\n

An encryption context is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric CMK, but it is highly recommended.

\n

For more information, see\n Encryption\n Context in the AWS Key Management Service Developer Guide.

" + "smithy.api#documentation": "

Specifies the encryption context that will be used to encrypt the data.\n An encryption context is valid only for cryptographic operations with a symmetric KMS key. The standard asymmetric encryption algorithms that KMS uses do not support an encryption context.

\n

An encryption context is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric KMS key, but it is highly recommended.

\n

For more information, see\n Encryption\n Context in the Key Management Service Developer Guide.

" } }, "GrantTokens": { "target": "com.amazonaws.kms#GrantTokenList", "traits": { - "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token in the\n AWS Key Management Service Developer Guide.

" + "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token and Using a grant token in the\n Key Management Service Developer Guide.

" } }, "EncryptionAlgorithm": { "target": "com.amazonaws.kms#EncryptionAlgorithmSpec", "traits": { - "smithy.api#documentation": "

Specifies the encryption algorithm that AWS KMS will use to encrypt the plaintext message.\n The algorithm must be compatible with the CMK that you specify.

\n

This parameter is required only for asymmetric CMKs. The default value,\n SYMMETRIC_DEFAULT, is the algorithm used for symmetric CMKs. If you are using\n an asymmetric CMK, we recommend RSAES_OAEP_SHA_256.

" + "smithy.api#documentation": "

Specifies the encryption algorithm that KMS will use to encrypt the plaintext message.\n The algorithm must be compatible with the KMS key that you specify.

\n

This parameter is required only for asymmetric KMS keys. The default value,\n SYMMETRIC_DEFAULT, is the algorithm used for symmetric KMS keys. If you are using\n an asymmetric KMS key, we recommend RSAES_OAEP_SHA_256.

" } } } @@ -1620,13 +1680,13 @@ "CiphertextBlob": { "target": "com.amazonaws.kms#CiphertextType", "traits": { - "smithy.api#documentation": "

The encrypted plaintext. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

" + "smithy.api#documentation": "

The encrypted plaintext. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

" } }, "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the CMK that was used to encrypt the plaintext.

" + "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the KMS key that was used to encrypt the plaintext.

" } }, "EncryptionAlgorithm": { @@ -1703,6 +1763,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "ExpiredImportTokenException", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

The request was rejected because the specified import token is expired. Use GetParametersForImport to get a new import token and public key, use the new\n public key to encrypt the key material, and then try the request again.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -1743,7 +1807,7 @@ } ], "traits": { - "smithy.api#documentation": "

Generates a unique symmetric data key for client-side encryption. This operation returns a\n plaintext copy of the data key and a copy that is encrypted under a customer master key (CMK)\n that you specify. You can use the plaintext key to encrypt your data outside of AWS KMS and\n store the encrypted data key with the encrypted data.

\n\n

\n GenerateDataKey returns a unique data key for each request. The bytes in the\n plaintext key are not related to the caller or the CMK.

\n\n

To generate a data key, specify the symmetric CMK that will be used to encrypt the data\n key. You cannot use an asymmetric CMK to generate data keys. To get the type of your CMK, use\n the DescribeKey operation. You must also specify the length of the data key.\n Use either the KeySpec or NumberOfBytes parameters (but not both).\n For 128-bit and 256-bit data keys, use the KeySpec parameter.

\n\n

To get only an encrypted copy of the data key, use GenerateDataKeyWithoutPlaintext. To generate an asymmetric data key pair, use\n the GenerateDataKeyPair or GenerateDataKeyPairWithoutPlaintext operation. To get a cryptographically secure\n random byte string, use GenerateRandom.

\n\n

You can use the optional encryption context to add additional security to the encryption\n operation. If you specify an EncryptionContext, you must specify the same\n encryption context (a case-sensitive exact match) when decrypting the encrypted data key.\n Otherwise, the request to decrypt fails with an InvalidCiphertextException. For more information, see Encryption Context in the\n AWS Key Management Service Developer Guide.

\n

The CMK that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your CMK in the AWS Key Management Service Developer Guide.

\n

\n How to use your\n data key\n

\n

We recommend that you use the following pattern to encrypt data locally in your\n application. You can write your own code or use a client-side encryption library, such as the\n AWS Encryption SDK, the Amazon DynamoDB Encryption Client, or\n Amazon S3\n client-side encryption to do these tasks for you.

\n

To encrypt data outside of AWS KMS:

\n
    \n
  1. \n

    Use the GenerateDataKey operation to get a data key.

    \n
  2. \n
  3. \n

    Use the plaintext data key (in the Plaintext field of the response) to\n encrypt your data outside of AWS KMS. Then erase the plaintext data key from memory.

    \n
  4. \n
  5. \n

    Store the encrypted data key (in the CiphertextBlob field of the\n response) with the encrypted data.

    \n
  6. \n
\n

To decrypt data outside of AWS KMS:

\n
    \n
  1. \n

    Use the Decrypt operation to decrypt the encrypted data key. The\n operation returns a plaintext copy of the data key.

    \n
  2. \n
  3. \n

    Use the plaintext data key to decrypt data outside of AWS KMS, then erase the plaintext\n data key from memory.

    \n
  4. \n
\n

\n Cross-account use: Yes. To perform this operation with a CMK in a different AWS account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:GenerateDataKey (key policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Generates a unique symmetric data key for client-side encryption. This operation returns a\n plaintext copy of the data key and a copy that is encrypted under a KMS key\n that you specify. You can use the plaintext key to encrypt your data outside of KMS and\n store the encrypted data key with the encrypted data.

\n\n

\n GenerateDataKey returns a unique data key for each request. The bytes in the\n plaintext key are not related to the caller or the KMS key.

\n\n

To generate a data key, specify the symmetric KMS key that will be used to encrypt the data\n key. You cannot use an asymmetric KMS key to generate data keys. To get the type of your KMS key, use\n the DescribeKey operation. You must also specify the length of the data key.\n Use either the KeySpec or NumberOfBytes parameters (but not both).\n For 128-bit and 256-bit data keys, use the KeySpec parameter.

\n\n

To get only an encrypted copy of the data key, use GenerateDataKeyWithoutPlaintext. To generate an asymmetric data key pair, use\n the GenerateDataKeyPair or GenerateDataKeyPairWithoutPlaintext operation. To get a cryptographically secure\n random byte string, use GenerateRandom.

\n\n

You can use the optional encryption context to add additional security to the encryption\n operation. If you specify an EncryptionContext, you must specify the same\n encryption context (a case-sensitive exact match) when decrypting the encrypted data key.\n Otherwise, the request to decrypt fails with an InvalidCiphertextException. For more information, see Encryption Context in the\n Key Management Service Developer Guide.

\n

Applications in Amazon Web Services Nitro Enclaves can call this operation by using the Amazon Web Services Nitro Enclaves Development Kit. For information about the supporting parameters, see How Amazon Web Services Nitro Enclaves use KMS in the Key Management Service Developer Guide.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n How to use your data key\n

\n

We recommend that you use the following pattern to encrypt data locally in your application.\n You can write your own code or use a client-side encryption library, such as the Amazon Web Services Encryption SDK, the Amazon DynamoDB Encryption Client, or\n Amazon S3\n client-side encryption to do these tasks for you.

\n

To encrypt data outside of KMS:

\n
    \n
  1. \n

    Use the GenerateDataKey operation to get a data key.

    \n
  2. \n
  3. \n

    Use the plaintext data key (in the Plaintext field of the response) to\n encrypt your data outside of KMS. Then erase the plaintext data key from memory.

    \n
  4. \n
  5. \n

    Store the encrypted data key (in the CiphertextBlob field of the\n response) with the encrypted data.

    \n
  6. \n
\n

To decrypt data outside of KMS:

\n
    \n
  1. \n

    Use the Decrypt operation to decrypt the encrypted data key. The\n operation returns a plaintext copy of the data key.

    \n
  2. \n
  3. \n

    Use the plaintext data key to decrypt data outside of KMS, then erase the plaintext\n data key from memory.

    \n
  4. \n
\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:GenerateDataKey (key policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#GenerateDataKeyPair": { @@ -1784,7 +1848,7 @@ } ], "traits": { - "smithy.api#documentation": "

Generates a unique asymmetric data key pair. The GenerateDataKeyPair\n operation returns a plaintext public key, a plaintext private key, and a copy of the private\n key that is encrypted under the symmetric CMK you specify. You can use the data key pair to\n perform asymmetric cryptography outside of AWS KMS.

\n\n

\n GenerateDataKeyPair returns a unique data key pair for each request. The\n bytes in the keys are not related to the caller or the CMK that is used to encrypt the private\n key.

\n\n

You can use the public key that GenerateDataKeyPair returns to encrypt data\n or verify a signature outside of AWS KMS. Then, store the encrypted private key with the data.\n When you are ready to decrypt data or sign a message, you can use the Decrypt operation to decrypt the encrypted private key.

\n\n

To generate a data key pair, you must specify a symmetric customer master key (CMK) to\n encrypt the private key in a data key pair. You cannot use an asymmetric CMK or a CMK in a\n custom key store. To get the type and origin of your CMK, use the DescribeKey operation.

\n\n

If you are using the data key pair to encrypt data, or for any operation where you don't\n immediately need a private key, consider using the GenerateDataKeyPairWithoutPlaintext operation.\n GenerateDataKeyPairWithoutPlaintext returns a plaintext public key and an\n encrypted private key, but omits the plaintext private key that you need only to decrypt\n ciphertext or sign a message. Later, when you need to decrypt the data or sign a message, use\n the Decrypt operation to decrypt the encrypted private key in the data key\n pair.

\n\n

You can use the optional encryption context to add additional security to the encryption\n operation. If you specify an EncryptionContext, you must specify the same\n encryption context (a case-sensitive exact match) when decrypting the encrypted data key.\n Otherwise, the request to decrypt fails with an InvalidCiphertextException. For more information, see Encryption Context in the\n AWS Key Management Service Developer Guide.

\n

The CMK that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your CMK in the AWS Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a CMK in a different AWS account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:GenerateDataKeyPair (key policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Generates a unique asymmetric data key pair. The GenerateDataKeyPair\n operation returns a plaintext public key, a plaintext private key, and a copy of the private\n key that is encrypted under the symmetric KMS key you specify. You can use the data key pair to\n perform asymmetric cryptography and implement digital signatures outside of KMS.

\n\n

You can use the public key that GenerateDataKeyPair returns to encrypt data\n or verify a signature outside of KMS. Then, store the encrypted private key with the data.\n When you are ready to decrypt data or sign a message, you can use the Decrypt operation to decrypt the encrypted private key.

\n\n

To generate a data key pair, you must specify a symmetric KMS key to\n encrypt the private key in a data key pair. You cannot use an asymmetric KMS key or a KMS key in a\n custom key store. To get the type and origin of your KMS key, use the DescribeKey operation.

\n

Use the KeyPairSpec parameter to choose an RSA or Elliptic Curve (ECC) data\n key pair. KMS recommends that your use ECC key pairs for signing, and use RSA key pairs\n for either encryption or signing, but not both. However, KMS cannot enforce any restrictions\n on the use of data key pairs outside of KMS.

\n \n

If you are using the data key pair to encrypt data, or for any operation where you don't\n immediately need a private key, consider using the GenerateDataKeyPairWithoutPlaintext operation.\n GenerateDataKeyPairWithoutPlaintext returns a plaintext public key and an\n encrypted private key, but omits the plaintext private key that you need only to decrypt\n ciphertext or sign a message. Later, when you need to decrypt the data or sign a message, use\n the Decrypt operation to decrypt the encrypted private key in the data key\n pair.

\n\n

\n GenerateDataKeyPair returns a unique data key pair for each request. The\n bytes in the keys are not related to the caller or the KMS key that is used to encrypt the private\n key. The public key is a DER-encoded X.509 SubjectPublicKeyInfo, as specified in RFC 5280. The\n private key is a DER-encoded PKCS8 PrivateKeyInfo, as specified in RFC\n 5958.

\n \n

You can use the optional encryption context to add additional security to the encryption\n operation. If you specify an EncryptionContext, you must specify the same\n encryption context (a case-sensitive exact match) when decrypting the encrypted data key.\n Otherwise, the request to decrypt fails with an InvalidCiphertextException. For more information, see Encryption Context in the\n Key Management Service Developer Guide.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:GenerateDataKeyPair (key policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#GenerateDataKeyPairRequest": { @@ -1793,27 +1857,27 @@ "EncryptionContext": { "target": "com.amazonaws.kms#EncryptionContextType", "traits": { - "smithy.api#documentation": "

Specifies the encryption context that will be used when encrypting the private key in the\n data key pair.

\n

An encryption context is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric CMK, but it is highly recommended.

\n

For more information, see\n Encryption\n Context in the AWS Key Management Service Developer Guide.

" + "smithy.api#documentation": "

Specifies the encryption context that will be used when encrypting the private key in the\n data key pair.

\n

An encryption context is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric KMS key, but it is highly recommended.

\n

For more information, see\n Encryption\n Context in the Key Management Service Developer Guide.

" } }, "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Specifies the symmetric CMK that encrypts the private key in the data key pair. You cannot\n specify an asymmetric CMK or a CMK in a custom key store. To get the type and origin of your\n CMK, use the DescribeKey operation.

\n \n

To specify a CMK, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "smithy.api#documentation": "

Specifies the symmetric KMS key that encrypts the private key in the data key pair. You cannot\n specify an asymmetric KMS key or a KMS key in a custom key store. To get the type and origin of your KMS key, use the DescribeKey operation.

\n \n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", "smithy.api#required": {} } }, "KeyPairSpec": { "target": "com.amazonaws.kms#DataKeyPairSpec", "traits": { - "smithy.api#documentation": "

Determines the type of data key pair that is generated.

\n

The AWS KMS rule that restricts the use of asymmetric RSA CMKs to encrypt and decrypt or to sign and verify (but not both), and the rule that permits you to use ECC CMKs only to sign and verify, are not effective outside of AWS KMS.

", + "smithy.api#documentation": "

Determines the type of data key pair that is generated.

\n

The KMS rule that restricts the use of asymmetric RSA KMS keys to encrypt and decrypt or to sign and verify (but not both), and the rule that permits you to use ECC KMS keys only to sign and verify, are not effective on data key pairs, which are used outside of KMS.

", "smithy.api#required": {} } }, "GrantTokens": { "target": "com.amazonaws.kms#GrantTokenList", "traits": { - "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token in the\n AWS Key Management Service Developer Guide.

" + "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token and Using a grant token in the\n Key Management Service Developer Guide.

" } } } @@ -1824,13 +1888,13 @@ "PrivateKeyCiphertextBlob": { "target": "com.amazonaws.kms#CiphertextType", "traits": { - "smithy.api#documentation": "

The encrypted copy of the private key. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

" + "smithy.api#documentation": "

The encrypted copy of the private key. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

" } }, "PrivateKeyPlaintext": { "target": "com.amazonaws.kms#PlaintextType", "traits": { - "smithy.api#documentation": "

The plaintext copy of the private key. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

" + "smithy.api#documentation": "

The plaintext copy of the private key. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

" } }, "PublicKey": { @@ -1842,7 +1906,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the CMK that encrypted the private key.

" + "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the KMS key that encrypted the private key.

" } }, "KeyPairSpec": { @@ -1891,7 +1955,7 @@ } ], "traits": { - "smithy.api#documentation": "

Generates a unique asymmetric data key pair. The\n GenerateDataKeyPairWithoutPlaintext operation returns a plaintext public key\n and a copy of the private key that is encrypted under the symmetric CMK you specify. Unlike\n GenerateDataKeyPair, this operation does not return a plaintext private\n key.

\n

To generate a data key pair, you must specify a symmetric customer master key (CMK) to\n encrypt the private key in the data key pair. You cannot use an asymmetric CMK or a CMK in a\n custom key store. To get the type and origin of your CMK, use the KeySpec field\n in the DescribeKey response.

\n

You can use the public key that GenerateDataKeyPairWithoutPlaintext returns\n to encrypt data or verify a signature outside of AWS KMS. Then, store the encrypted private key\n with the data. When you are ready to decrypt data or sign a message, you can use the Decrypt operation to decrypt the encrypted private key.

\n

\n GenerateDataKeyPairWithoutPlaintext returns a unique data key pair for each\n request. The bytes in the key are not related to the caller or CMK that is used to encrypt the\n private key.

\n\n

You can use the optional encryption context to add additional security to the encryption\n operation. If you specify an EncryptionContext, you must specify the same\n encryption context (a case-sensitive exact match) when decrypting the encrypted data key.\n Otherwise, the request to decrypt fails with an InvalidCiphertextException. For more information, see Encryption Context in the\n AWS Key Management Service Developer Guide.

\n

The CMK that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your CMK in the AWS Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a CMK in a different AWS account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:GenerateDataKeyPairWithoutPlaintext (key policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Generates a unique asymmetric data key pair. The\n GenerateDataKeyPairWithoutPlaintext operation returns a plaintext public key\n and a copy of the private key that is encrypted under the symmetric KMS key you specify. Unlike\n GenerateDataKeyPair, this operation does not return a plaintext private\n key.

\n

You can use the public key that GenerateDataKeyPairWithoutPlaintext returns\n to encrypt data or verify a signature outside of KMS. Then, store the encrypted private key\n with the data. When you are ready to decrypt data or sign a message, you can use the Decrypt operation to decrypt the encrypted private key.

\n

To generate a data key pair, you must specify a symmetric KMS key to\n encrypt the private key in a data key pair. You cannot use an asymmetric KMS key or a KMS key in a\n custom key store. To get the type and origin of your KMS key, use the DescribeKey operation.

\n

Use the KeyPairSpec parameter to choose an RSA or Elliptic Curve (ECC) data\n key pair. KMS recommends that your use ECC key pairs for signing, and use RSA key pairs\n for either encryption or signing, but not both. However, KMS cannot enforce any restrictions\n on the use of data key pairs outside of KMS.

\n

\n GenerateDataKeyPairWithoutPlaintext returns a unique data key pair for each\n request. The bytes in the key are not related to the caller or KMS key that is used to encrypt the\n private key. The public key is a DER-encoded X.509 SubjectPublicKeyInfo, as specified in\n RFC 5280.

\n\n

You can use the optional encryption context to add additional security to the encryption\n operation. If you specify an EncryptionContext, you must specify the same\n encryption context (a case-sensitive exact match) when decrypting the encrypted data key.\n Otherwise, the request to decrypt fails with an InvalidCiphertextException. For more information, see Encryption Context in the\n Key Management Service Developer Guide.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:GenerateDataKeyPairWithoutPlaintext (key policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#GenerateDataKeyPairWithoutPlaintextRequest": { @@ -1900,27 +1964,27 @@ "EncryptionContext": { "target": "com.amazonaws.kms#EncryptionContextType", "traits": { - "smithy.api#documentation": "

Specifies the encryption context that will be used when encrypting the private key in the\n data key pair.

\n

An encryption context is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric CMK, but it is highly recommended.

\n

For more information, see\n Encryption\n Context in the AWS Key Management Service Developer Guide.

" + "smithy.api#documentation": "

Specifies the encryption context that will be used when encrypting the private key in the\n data key pair.

\n

An encryption context is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric KMS key, but it is highly recommended.

\n

For more information, see\n Encryption\n Context in the Key Management Service Developer Guide.

" } }, "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Specifies the CMK that encrypts the private key in the data key pair. You must specify a\n symmetric CMK. You cannot use an asymmetric CMK or a CMK in a custom key store. To get the\n type and origin of your CMK, use the DescribeKey operation.

\n

To specify a CMK, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "smithy.api#documentation": "

Specifies the KMS key that encrypts the private key in the data key pair. You must specify a\n symmetric KMS key. You cannot use an asymmetric KMS key or a KMS key in a custom key store. To get the\n type and origin of your KMS key, use the DescribeKey operation.

\n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", "smithy.api#required": {} } }, "KeyPairSpec": { "target": "com.amazonaws.kms#DataKeyPairSpec", "traits": { - "smithy.api#documentation": "

Determines the type of data key pair that is generated.

\n

The AWS KMS rule that restricts the use of asymmetric RSA CMKs to encrypt and decrypt or to sign and verify (but not both), and the rule that permits you to use ECC CMKs only to sign and verify, are not effective outside of AWS KMS.

", + "smithy.api#documentation": "

Determines the type of data key pair that is generated.

\n

The KMS rule that restricts the use of asymmetric RSA KMS keys to encrypt and decrypt or to sign and verify (but not both), and the rule that permits you to use ECC KMS keys only to sign and verify, are not effective on data key pairs, which are used outside of KMS.

", "smithy.api#required": {} } }, "GrantTokens": { "target": "com.amazonaws.kms#GrantTokenList", "traits": { - "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token in the\n AWS Key Management Service Developer Guide.

" + "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token and Using a grant token in the\n Key Management Service Developer Guide.

" } } } @@ -1931,7 +1995,7 @@ "PrivateKeyCiphertextBlob": { "target": "com.amazonaws.kms#CiphertextType", "traits": { - "smithy.api#documentation": "

The encrypted copy of the private key. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

" + "smithy.api#documentation": "

The encrypted copy of the private key. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

" } }, "PublicKey": { @@ -1943,7 +2007,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the CMK that encrypted the private key.

" + "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the KMS key that encrypted the private key.

" } }, "KeyPairSpec": { @@ -1960,14 +2024,14 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Identifies the symmetric CMK that encrypts the data key.

\n \n

To specify a CMK, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "smithy.api#documentation": "

Identifies the symmetric KMS key that encrypts the data key.

\n \n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", "smithy.api#required": {} } }, "EncryptionContext": { "target": "com.amazonaws.kms#EncryptionContextType", "traits": { - "smithy.api#documentation": "

Specifies the encryption context that will be used when encrypting the data key.

\n

An encryption context is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric CMK, but it is highly recommended.

\n

For more information, see\n Encryption\n Context in the AWS Key Management Service Developer Guide.

" + "smithy.api#documentation": "

Specifies the encryption context that will be used when encrypting the data key.

\n

An encryption context is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric KMS key, but it is highly recommended.

\n

For more information, see\n Encryption\n Context in the Key Management Service Developer Guide.

" } }, "NumberOfBytes": { @@ -1985,7 +2049,7 @@ "GrantTokens": { "target": "com.amazonaws.kms#GrantTokenList", "traits": { - "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token in the\n AWS Key Management Service Developer Guide.

" + "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token and Using a grant token in the\n Key Management Service Developer Guide.

" } } } @@ -1996,19 +2060,19 @@ "CiphertextBlob": { "target": "com.amazonaws.kms#CiphertextType", "traits": { - "smithy.api#documentation": "

The encrypted copy of the data key. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

" + "smithy.api#documentation": "

The encrypted copy of the data key. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

" } }, "Plaintext": { "target": "com.amazonaws.kms#PlaintextType", "traits": { - "smithy.api#documentation": "

The plaintext data key. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded. Use this data key to encrypt your data outside of\n KMS. Then, remove it from memory as soon as possible.

" + "smithy.api#documentation": "

The plaintext data key. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded. Use this data key to encrypt your data outside of\n KMS. Then, remove it from memory as soon as possible.

" } }, "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the CMK that encrypted the data key.

" + "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the KMS key that encrypted the data key.

" } } } @@ -2048,7 +2112,7 @@ } ], "traits": { - "smithy.api#documentation": "

Generates a unique symmetric data key. This operation returns a data key that is encrypted\n under a customer master key (CMK) that you specify. To request an asymmetric data key pair,\n use the GenerateDataKeyPair or GenerateDataKeyPairWithoutPlaintext operations.

\n

\n GenerateDataKeyWithoutPlaintext is identical to the GenerateDataKey operation except that returns only the encrypted copy of the\n data key. This operation is useful for systems that need to encrypt data at some point, but\n not immediately. When you need to encrypt the data, you call the Decrypt\n operation on the encrypted copy of the key.

\n

It's also useful in distributed systems with different levels of trust. For example, you\n might store encrypted data in containers. One component of your system creates new containers\n and stores an encrypted data key with each container. Then, a different component puts the\n data into the containers. That component first decrypts the data key, uses the plaintext data\n key to encrypt data, puts the encrypted data into the container, and then destroys the\n plaintext data key. In this system, the component that creates the containers never sees the\n plaintext data key.

\n

\n GenerateDataKeyWithoutPlaintext returns a unique data key for each request.\n The bytes in the keys are not related to the caller or CMK that is used to encrypt the private\n key.

\n\n

To generate a data key, you must specify the symmetric customer master key (CMK) that is\n used to encrypt the data key. You cannot use an asymmetric CMK to generate a data key. To get\n the type of your CMK, use the DescribeKey operation.

\n\n

If the operation succeeds, you will find the encrypted copy of the data key in the\n CiphertextBlob field.

\n\n

You can use the optional encryption context to add additional security to the encryption\n operation. If you specify an EncryptionContext, you must specify the same\n encryption context (a case-sensitive exact match) when decrypting the encrypted data key.\n Otherwise, the request to decrypt fails with an InvalidCiphertextException. For more information, see Encryption Context in the\n AWS Key Management Service Developer Guide.

\n

The CMK that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your CMK in the AWS Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a CMK in a different AWS account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:GenerateDataKeyWithoutPlaintext (key policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Generates a unique symmetric data key. This operation returns a data key that is encrypted\n under a KMS key that you specify. To request an asymmetric data key pair,\n use the GenerateDataKeyPair or GenerateDataKeyPairWithoutPlaintext operations.

\n

\n GenerateDataKeyWithoutPlaintext is identical to the GenerateDataKey operation except that returns only the encrypted copy of the\n data key. This operation is useful for systems that need to encrypt data at some point, but\n not immediately. When you need to encrypt the data, you call the Decrypt\n operation on the encrypted copy of the key.

\n

It's also useful in distributed systems with different levels of trust. For example, you\n might store encrypted data in containers. One component of your system creates new containers\n and stores an encrypted data key with each container. Then, a different component puts the\n data into the containers. That component first decrypts the data key, uses the plaintext data\n key to encrypt data, puts the encrypted data into the container, and then destroys the\n plaintext data key. In this system, the component that creates the containers never sees the\n plaintext data key.

\n

\n GenerateDataKeyWithoutPlaintext returns a unique data key for each request.\n The bytes in the keys are not related to the caller or KMS key that is used to encrypt the private\n key.

\n\n

To generate a data key, you must specify the symmetric KMS key that is\n used to encrypt the data key. You cannot use an asymmetric KMS key to generate a data key. To get\n the type of your KMS key, use the DescribeKey operation.

\n\n

If the operation succeeds, you will find the encrypted copy of the data key in the\n CiphertextBlob field.

\n\n

You can use the optional encryption context to add additional security to the encryption\n operation. If you specify an EncryptionContext, you must specify the same\n encryption context (a case-sensitive exact match) when decrypting the encrypted data key.\n Otherwise, the request to decrypt fails with an InvalidCiphertextException. For more information, see Encryption Context in the\n Key Management Service Developer Guide.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:GenerateDataKeyWithoutPlaintext (key policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#GenerateDataKeyWithoutPlaintextRequest": { @@ -2057,14 +2121,14 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

The identifier of the symmetric customer master key (CMK) that encrypts the data\n key.

\n

To specify a CMK, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "smithy.api#documentation": "

The identifier of the symmetric KMS key that encrypts the data\n key.

\n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", "smithy.api#required": {} } }, "EncryptionContext": { "target": "com.amazonaws.kms#EncryptionContextType", "traits": { - "smithy.api#documentation": "

Specifies the encryption context that will be used when encrypting the data key.

\n

An encryption context is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric CMK, but it is highly recommended.

\n

For more information, see\n Encryption\n Context in the AWS Key Management Service Developer Guide.

" + "smithy.api#documentation": "

Specifies the encryption context that will be used when encrypting the data key.

\n

An encryption context is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric KMS key, but it is highly recommended.

\n

For more information, see\n Encryption\n Context in the Key Management Service Developer Guide.

" } }, "KeySpec": { @@ -2082,7 +2146,7 @@ "GrantTokens": { "target": "com.amazonaws.kms#GrantTokenList", "traits": { - "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token in the\n AWS Key Management Service Developer Guide.

" + "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token and Using a grant token in the\n Key Management Service Developer Guide.

" } } } @@ -2093,13 +2157,13 @@ "CiphertextBlob": { "target": "com.amazonaws.kms#CiphertextType", "traits": { - "smithy.api#documentation": "

The encrypted data key. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

" + "smithy.api#documentation": "

The encrypted data key. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

" } }, "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the CMK that encrypted the data key.

" + "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the KMS key that encrypted the data key.

" } } } @@ -2127,7 +2191,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns a random byte string that is cryptographically secure.

\n

By default, the random byte string is generated in AWS KMS. To generate the byte string in\n the AWS CloudHSM cluster that is associated with a custom key store, specify the custom key store\n ID.

\n

For more information about entropy and random number generation, see AWS Key Management Service Cryptographic Details.

\n \n

\n Required permissions: kms:GenerateRandom (IAM policy)

" + "smithy.api#documentation": "

Returns a random byte string that is cryptographically secure.

\n

By default, the random byte string is generated in KMS. To generate the byte string in\n the CloudHSM cluster that is associated with a custom key store, specify the custom key store\n ID.

\n

Applications in Amazon Web Services Nitro Enclaves can call this operation by using the Amazon Web Services Nitro Enclaves Development Kit. For information about the supporting parameters, see How Amazon Web Services Nitro Enclaves use KMS in the Key Management Service Developer Guide.

\n

For more information about entropy and random number generation, see Key Management Service Cryptographic Details.

\n \n

\n Required permissions: kms:GenerateRandom (IAM policy)

" } }, "com.amazonaws.kms#GenerateRandomRequest": { @@ -2142,7 +2206,7 @@ "CustomKeyStoreId": { "target": "com.amazonaws.kms#CustomKeyStoreIdType", "traits": { - "smithy.api#documentation": "

Generates the random byte string in the AWS CloudHSM cluster that is associated with the\n specified custom key store. To find the ID of a custom key store, use the DescribeCustomKeyStores operation.

" + "smithy.api#documentation": "

Generates the random byte string in the CloudHSM cluster that is associated with the\n specified custom key store. To find the ID of a custom key store, use the DescribeCustomKeyStores operation.

" } } } @@ -2153,7 +2217,7 @@ "Plaintext": { "target": "com.amazonaws.kms#PlaintextType", "traits": { - "smithy.api#documentation": "

The random byte string. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

" + "smithy.api#documentation": "

The random byte string. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

" } } } @@ -2184,7 +2248,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets a key policy attached to the specified customer master key (CMK).

\n

\n Cross-account use: No. You cannot perform this operation on a CMK in a different AWS account.

\n \n

\n Required permissions: kms:GetKeyPolicy (key policy)

\n

\n Related operations: PutKeyPolicy\n

" + "smithy.api#documentation": "

Gets a key policy attached to the specified KMS key.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:GetKeyPolicy (key policy)

\n

\n Related operations: PutKeyPolicy\n

" } }, "com.amazonaws.kms#GetKeyPolicyRequest": { @@ -2193,7 +2257,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Gets the key policy for the specified customer master key (CMK).

\n

Specify the key ID or key ARN of the CMK.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

Gets the key policy for the specified KMS key.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } }, @@ -2246,7 +2310,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets a Boolean value that indicates whether automatic rotation of the key material is\n enabled for the specified customer master key (CMK).

\n

You cannot enable automatic rotation of asymmetric CMKs, CMKs with imported key material, or CMKs in a custom key store. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key. The key rotation status for these CMKs is always false.

\n

The CMK that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your CMK in the AWS Key Management Service Developer Guide.

\n \n

\n Cross-account use: Yes. To perform this operation on a CMK in a different AWS account, specify the key\n ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:GetKeyRotationStatus (key policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Gets a Boolean value that indicates whether automatic rotation of the key material is\n enabled for the specified KMS key.

\n

You cannot enable automatic rotation of asymmetric KMS keys, KMS keys with imported key material, or KMS keys in a custom key store. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key. The key rotation status for these KMS keys is always false.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n \n

\n Cross-account use: Yes. To perform this operation on a KMS key in a different Amazon Web Services account, specify the key\n ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:GetKeyRotationStatus (key policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#GetKeyRotationStatusRequest": { @@ -2255,7 +2319,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Gets the rotation status for the specified customer master key (CMK).

\n

Specify the key ID or key ARN of the CMK. To specify a CMK in a\ndifferent AWS account, you must use the key ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

Gets the rotation status for the specified KMS key.

\n

Specify the key ID or key ARN of the KMS key. To specify a KMS key in a\ndifferent Amazon Web Services account, you must use the key ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } } @@ -2301,7 +2365,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the items you need to import key material into a symmetric, customer managed\n customer master key (CMK). For more information about importing key material into AWS KMS, see\n Importing Key\n Material in the AWS Key Management Service Developer Guide.

\n

This operation returns a public key and an import token. Use the public key to encrypt the\n symmetric key material. Store the import token to send with a subsequent ImportKeyMaterial request.

\n

You must specify the key ID of the symmetric CMK into which you will import key material.\n This CMK's Origin must be EXTERNAL. You must also specify the\n wrapping algorithm and type of wrapping key (public key) that you will use to encrypt the key\n material. You cannot perform this operation on an asymmetric CMK or on any CMK in a different AWS account.

\n

To import key material, you must use the public key and import token from the same\n response. These items are valid for 24 hours. The expiration date and time appear in the\n GetParametersForImport response. You cannot use an expired token in an ImportKeyMaterial request. If your key and token expire, send another\n GetParametersForImport request.

\n

The CMK that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your CMK in the AWS Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a CMK in a different AWS account.

\n \n

\n Required permissions: kms:GetParametersForImport (key policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Returns the items you need to import key material into a symmetric, customer managed\n KMS key. For more information about importing key material into KMS, see\n Importing Key\n Material in the Key Management Service Developer Guide.

\n

This operation returns a public key and an import token. Use the public key to encrypt the\n symmetric key material. Store the import token to send with a subsequent ImportKeyMaterial request.

\n

You must specify the key ID of the symmetric KMS key into which you will import key material.\n This KMS key's Origin must be EXTERNAL. You must also specify the\n wrapping algorithm and type of wrapping key (public key) that you will use to encrypt the key\n material. You cannot perform this operation on an asymmetric KMS key or on any KMS key in a different Amazon Web Services account.

\n

To import key material, you must use the public key and import token from the same\n response. These items are valid for 24 hours. The expiration date and time appear in the\n GetParametersForImport response. You cannot use an expired token in an ImportKeyMaterial request. If your key and token expire, send another\n GetParametersForImport request.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:GetParametersForImport (key policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#GetParametersForImportRequest": { @@ -2310,14 +2374,14 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

The identifier of the symmetric CMK into which you will import key material. The\n Origin of the CMK must be EXTERNAL.

\n

Specify the key ID or key ARN of the CMK.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

The identifier of the symmetric KMS key into which you will import key material. The\n Origin of the KMS key must be EXTERNAL.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } }, "WrappingAlgorithm": { "target": "com.amazonaws.kms#AlgorithmSpec", "traits": { - "smithy.api#documentation": "

The algorithm you will use to encrypt the key material before importing it with ImportKeyMaterial. For more information, see Encrypt the Key Material\n in the AWS Key Management Service Developer Guide.

", + "smithy.api#documentation": "

The algorithm you will use to encrypt the key material before importing it with ImportKeyMaterial. For more information, see Encrypt the Key Material\n in the Key Management Service Developer Guide.

", "smithy.api#required": {} } }, @@ -2336,7 +2400,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the CMK to use in a subsequent ImportKeyMaterial\n request. This is the same CMK specified in the GetParametersForImport\n request.

" + "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the KMS key to use in a subsequent ImportKeyMaterial\n request. This is the same KMS key specified in the GetParametersForImport\n request.

" } }, "ImportToken": { @@ -2400,7 +2464,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the public key of an asymmetric CMK. Unlike the private key of a asymmetric CMK,\n which never leaves AWS KMS unencrypted, callers with kms:GetPublicKey permission\n can download the public key of an asymmetric CMK. You can share the public key to allow others\n to encrypt messages and verify signatures outside of AWS KMS. For information about symmetric and asymmetric CMKs, see Using Symmetric and Asymmetric CMKs in the AWS Key Management Service Developer Guide.

\n

You do not need to download the public key. Instead, you can use the public key within\n AWS KMS by calling the Encrypt, ReEncrypt, or Verify operations with the identifier of an asymmetric CMK. When you use the\n public key within AWS KMS, you benefit from the authentication, authorization, and logging that\n are part of every AWS KMS operation. You also reduce of risk of encrypting data that cannot be\n decrypted. These features are not effective outside of AWS KMS. For details, see Special\n Considerations for Downloading Public Keys.

\n

To help you use the public key safely outside of AWS KMS, GetPublicKey returns\n important information about the public key in the response, including:

\n \n

Although AWS KMS cannot enforce these restrictions on external operations, it is crucial\n that you use this information to prevent the public key from being used improperly. For\n example, you can prevent a public signing key from being used encrypt data, or prevent a\n public key from being used with an encryption algorithm that is not supported by AWS KMS. You\n can also avoid errors, such as using the wrong signing algorithm in a verification\n operation.

\n

The CMK that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your CMK in the AWS Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a CMK in a different AWS account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:GetPublicKey (key policy)

\n

\n Related operations: CreateKey\n

" + "smithy.api#documentation": "

Returns the public key of an asymmetric KMS key. Unlike the private key of a asymmetric KMS key,\n which never leaves KMS unencrypted, callers with kms:GetPublicKey permission\n can download the public key of an asymmetric KMS key. You can share the public key to allow others\n to encrypt messages and verify signatures outside of KMS. For information about symmetric and asymmetric KMS keys, see Using Symmetric and Asymmetric KMS keys in the Key Management Service Developer Guide.

\n

You do not need to download the public key. Instead, you can use the public key within\n KMS by calling the Encrypt, ReEncrypt, or Verify operations with the identifier of an asymmetric KMS key. When you use the\n public key within KMS, you benefit from the authentication, authorization, and logging that\n are part of every KMS operation. You also reduce of risk of encrypting data that cannot be\n decrypted. These features are not effective outside of KMS. For details, see Special\n Considerations for Downloading Public Keys.

\n

To help you use the public key safely outside of KMS, GetPublicKey returns\n important information about the public key in the response, including:

\n \n

Although KMS cannot enforce these restrictions on external operations, it is crucial\n that you use this information to prevent the public key from being used improperly. For\n example, you can prevent a public signing key from being used encrypt data, or prevent a\n public key from being used with an encryption algorithm that is not supported by KMS. You\n can also avoid errors, such as using the wrong signing algorithm in a verification\n operation.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:GetPublicKey (key policy)

\n

\n Related operations: CreateKey\n

" } }, "com.amazonaws.kms#GetPublicKeyRequest": { @@ -2409,14 +2473,14 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Identifies the asymmetric CMK that includes the public key.

\n \n

To specify a CMK, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "smithy.api#documentation": "

Identifies the asymmetric KMS key that includes the public key.

\n \n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", "smithy.api#required": {} } }, "GrantTokens": { "target": "com.amazonaws.kms#GrantTokenList", "traits": { - "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token in the\n AWS Key Management Service Developer Guide.

" + "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token and Using a grant token in the\n Key Management Service Developer Guide.

" } } } @@ -2427,17 +2491,26 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the asymmetric CMK from which the public key was downloaded.

" + "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the asymmetric KMS key from which the public key was downloaded.

" } }, "PublicKey": { "target": "com.amazonaws.kms#PublicKeyType", "traits": { - "smithy.api#documentation": "

The exported public key.

\n

The value is a DER-encoded X.509 public key, also known as\n SubjectPublicKeyInfo (SPKI), as defined in RFC 5280. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

\n

" + "smithy.api#documentation": "

The exported public key.

\n

The value is a DER-encoded X.509 public key, also known as\n SubjectPublicKeyInfo (SPKI), as defined in RFC 5280. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

\n

" } }, "CustomerMasterKeySpec": { "target": "com.amazonaws.kms#CustomerMasterKeySpec", + "traits": { + "smithy.api#deprecated": { + "message": "This field has been deprecated. Instead, use the KeySpec field." + }, + "smithy.api#documentation": "

Instead, use the KeySpec field in the GetPublicKey response.

\n

The KeySpec and CustomerMasterKeySpec fields have the same value. We recommend that you use the KeySpec field in your code. However, to avoid breaking changes, KMS will support both fields.

" + } + }, + "KeySpec": { + "target": "com.amazonaws.kms#KeySpec", "traits": { "smithy.api#documentation": "

The type of the of the public key that was downloaded.

" } @@ -2445,19 +2518,19 @@ "KeyUsage": { "target": "com.amazonaws.kms#KeyUsageType", "traits": { - "smithy.api#documentation": "

The permitted use of the public key. Valid values are ENCRYPT_DECRYPT or\n SIGN_VERIFY.

\n

This information is critical. If a public key with SIGN_VERIFY key usage\n encrypts data outside of AWS KMS, the ciphertext cannot be decrypted.

" + "smithy.api#documentation": "

The permitted use of the public key. Valid values are ENCRYPT_DECRYPT or\n SIGN_VERIFY.

\n

This information is critical. If a public key with SIGN_VERIFY key usage\n encrypts data outside of KMS, the ciphertext cannot be decrypted.

" } }, "EncryptionAlgorithms": { "target": "com.amazonaws.kms#EncryptionAlgorithmSpecList", "traits": { - "smithy.api#documentation": "

The encryption algorithms that AWS KMS supports for this key.

\n

This information is critical. If a public key encrypts data outside of AWS KMS by using an\n unsupported encryption algorithm, the ciphertext cannot be decrypted.

\n

This field appears in the response only when the KeyUsage of the public key\n is ENCRYPT_DECRYPT.

" + "smithy.api#documentation": "

The encryption algorithms that KMS supports for this key.

\n

This information is critical. If a public key encrypts data outside of KMS by using an\n unsupported encryption algorithm, the ciphertext cannot be decrypted.

\n

This field appears in the response only when the KeyUsage of the public key\n is ENCRYPT_DECRYPT.

" } }, "SigningAlgorithms": { "target": "com.amazonaws.kms#SigningAlgorithmSpecList", "traits": { - "smithy.api#documentation": "

The signing algorithms that AWS KMS supports for this key.

\n

This field appears in the response only when the KeyUsage of the public key\n is SIGN_VERIFY.

" + "smithy.api#documentation": "

The signing algorithms that KMS supports for this key.

\n

This field appears in the response only when the KeyUsage of the public key\n is SIGN_VERIFY.

" } } } @@ -2479,7 +2552,7 @@ } }, "traits": { - "smithy.api#documentation": "

Use this structure to allow cryptographic operations in the grant only when the operation request\n includes the specified encryption context.

\n

AWS KMS applies the grant constraints only to cryptographic operations that support an\n encryption context, that is, all cryptographic operations with a symmetric CMK. Grant\n constraints are not applied to operations that do not support an encryption context, such as\n cryptographic operations with asymmetric CMKs and management operations, such as DescribeKey or RetireGrant.

\n \n

In a cryptographic operation, the encryption context in the decryption operation must be\n an exact, case-sensitive match for the keys and values in the encryption context of the\n encryption operation. Only the order of the pairs can vary.

\n

However, in a grant constraint, the key in each key-value pair is not case sensitive,\n but the value is case sensitive.

\n

To avoid confusion, do not use multiple encryption context pairs that differ only by\n case. To require a fully case-sensitive encryption context, use the\n kms:EncryptionContext: and kms:EncryptionContextKeys conditions\n in an IAM or key policy. For details, see kms:EncryptionContext: in the \n AWS Key Management Service Developer Guide\n .

\n
" + "smithy.api#documentation": "

Use this structure to allow cryptographic operations in the grant only when the operation request\n includes the specified encryption context.

\n

KMS applies the grant constraints only to cryptographic operations that support an\n encryption context, that is, all cryptographic operations with a symmetric KMS key. Grant\n constraints are not applied to operations that do not support an encryption context, such as\n cryptographic operations with asymmetric KMS keys and management operations, such as DescribeKey or RetireGrant.

\n \n

In a cryptographic operation, the encryption context in the decryption operation must be\n an exact, case-sensitive match for the keys and values in the encryption context of the\n encryption operation. Only the order of the pairs can vary.

\n

However, in a grant constraint, the key in each key-value pair is not case sensitive,\n but the value is case sensitive.

\n

To avoid confusion, do not use multiple encryption context pairs that differ only by\n case. To require a fully case-sensitive encryption context, use the\n kms:EncryptionContext: and kms:EncryptionContextKeys conditions\n in an IAM or key policy. For details, see kms:EncryptionContext: in the \n Key Management Service Developer Guide\n .

\n
" } }, "com.amazonaws.kms#GrantIdType": { @@ -2503,7 +2576,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

The unique identifier for the customer master key (CMK) to which the grant applies.

" + "smithy.api#documentation": "

The unique identifier for the KMS key to which the grant applies.

" } }, "GrantId": { @@ -2527,7 +2600,7 @@ "GranteePrincipal": { "target": "com.amazonaws.kms#PrincipalIdType", "traits": { - "smithy.api#documentation": "

The identity that gets the permissions in the grant.

\n

The GranteePrincipal field in the ListGrants response usually contains the\n user or role designated as the grantee principal in the grant. However, when the grantee\n principal in the grant is an AWS service, the GranteePrincipal field contains\n the service\n principal, which might represent several different grantee principals.

" + "smithy.api#documentation": "

The identity that gets the permissions in the grant.

\n

The GranteePrincipal field in the ListGrants response usually contains the\n user or role designated as the grantee principal in the grant. However, when the grantee\n principal in the grant is an Amazon Web Services service, the GranteePrincipal field contains\n the service\n principal, which might represent several different grantee principals.

" } }, "RetiringPrincipal": { @@ -2539,7 +2612,7 @@ "IssuingAccount": { "target": "com.amazonaws.kms#PrincipalIdType", "traits": { - "smithy.api#documentation": "

The AWS account under which the grant was issued.

" + "smithy.api#documentation": "

The Amazon Web Services account under which the grant was issued.

" } }, "Operations": { @@ -2700,7 +2773,7 @@ } ], "traits": { - "smithy.api#documentation": "

Imports key material into an existing symmetric AWS KMS customer master key (CMK) that was\n created without key material. After you successfully import key material into a CMK, you can\n reimport the same key material into that CMK, but you cannot import different key\n material.

\n

You cannot perform this operation on an asymmetric CMK or on any CMK in a different AWS account. For more information about creating CMKs with no key material and\n then importing key material, see Importing Key Material in the\n AWS Key Management Service Developer Guide.

\n

Before using this operation, call GetParametersForImport. Its response\n includes a public key and an import token. Use the public key to encrypt the key material.\n Then, submit the import token from the same GetParametersForImport\n response.

\n

When calling this operation, you must specify the following values:

\n \n

When this operation is successful, the key state of the CMK changes from\n PendingImport to Enabled, and you can use the CMK.

\n

If this operation fails, use the exception to help determine the problem. If the error is\n related to the key material, the import token, or wrapping key, use GetParametersForImport to get a new public key and import token for the CMK and\n repeat the import procedure. For help, see How To Import Key\n Material in the AWS Key Management Service Developer Guide.

\n

The CMK that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your CMK in the AWS Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a CMK in a different AWS account.

\n \n

\n Required permissions: kms:ImportKeyMaterial (key policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Imports key material into an existing symmetric KMS KMS key that was\n created without key material. After you successfully import key material into a KMS key, you can\n reimport the same key material into that KMS key, but you cannot import different key\n material.

\n

You cannot perform this operation on an asymmetric KMS key or on any KMS key in a different Amazon Web Services account. For more information about creating KMS keys with no key material and\n then importing key material, see Importing Key Material in the\n Key Management Service Developer Guide.

\n

Before using this operation, call GetParametersForImport. Its response\n includes a public key and an import token. Use the public key to encrypt the key material.\n Then, submit the import token from the same GetParametersForImport\n response.

\n

When calling this operation, you must specify the following values:

\n \n

When this operation is successful, the key state of the KMS key changes from\n PendingImport to Enabled, and you can use the KMS key.

\n

If this operation fails, use the exception to help determine the problem. If the error is\n related to the key material, the import token, or wrapping key, use GetParametersForImport to get a new public key and import token for the KMS key and\n repeat the import procedure. For help, see How To Import Key\n Material in the Key Management Service Developer Guide.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:ImportKeyMaterial (key policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#ImportKeyMaterialRequest": { @@ -2709,7 +2782,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

The identifier of the symmetric CMK that receives the imported key material. The CMK's\n Origin must be EXTERNAL. This must be the same CMK specified in\n the KeyID parameter of the corresponding GetParametersForImport\n request.

\n

Specify the key ID or key ARN of the CMK.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

The identifier of the symmetric KMS key that receives the imported key material. The KMS key's\n Origin must be EXTERNAL. This must be the same KMS key specified in\n the KeyID parameter of the corresponding GetParametersForImport\n request.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } }, @@ -2730,7 +2803,7 @@ "ValidTo": { "target": "com.amazonaws.kms#DateType", "traits": { - "smithy.api#documentation": "

The time at which the imported key material expires. When the key material expires, AWS KMS\n deletes the key material and the CMK becomes unusable. You must omit this parameter when the\n ExpirationModel parameter is set to KEY_MATERIAL_DOES_NOT_EXPIRE.\n Otherwise it is required.

" + "smithy.api#documentation": "

The time at which the imported key material expires. When the key material expires, KMS\n deletes the key material and the KMS key becomes unusable. You must omit this parameter when the\n ExpirationModel parameter is set to KEY_MATERIAL_DOES_NOT_EXPIRE.\n Otherwise it is required.

" } }, "ExpirationModel": { @@ -2753,7 +2826,11 @@ } }, "traits": { - "smithy.api#documentation": "

The request was rejected because the specified CMK cannot decrypt the data. The\n KeyId in a Decrypt request and the SourceKeyId\n in a ReEncrypt request must identify the same CMK that was used to encrypt\n the ciphertext.

", + "aws.protocols#awsQueryError": { + "code": "IncorrectKeyException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the specified KMS key cannot decrypt the data. The\n KeyId in a Decrypt request and the SourceKeyId\n in a ReEncrypt request must identify the same KMS key that was used to encrypt\n the ciphertext.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -2766,7 +2843,11 @@ } }, "traits": { - "smithy.api#documentation": "

The request was rejected because the key material in the request is, expired, invalid, or\n is not the same key material that was previously imported into this customer master key\n (CMK).

", + "aws.protocols#awsQueryError": { + "code": "IncorrectKeyMaterialException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the key material in the request is, expired, invalid, or\n is not the same key material that was previously imported into this KMS key.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -2779,7 +2860,11 @@ } }, "traits": { - "smithy.api#documentation": "

The request was rejected because the trust anchor certificate in the request is not the\n trust anchor certificate for the specified AWS CloudHSM cluster.

\n

When you initialize the cluster, you create the trust anchor certificate and save it in the\n customerCA.crt file.

", + "aws.protocols#awsQueryError": { + "code": "IncorrectTrustAnchorException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the trust anchor certificate in the request is not the\n trust anchor certificate for the specified CloudHSM cluster.

\n

When you initialize the cluster, you create the trust anchor certificate and save it in the\n customerCA.crt file.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -2792,6 +2877,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidAliasName", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

The request was rejected because the specified alias name is not valid.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -2805,6 +2894,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidArn", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

The request was rejected because a specified ARN, or an ARN in a key policy, is not\n valid.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -2818,7 +2911,11 @@ } }, "traits": { - "smithy.api#documentation": "

From the Decrypt or ReEncrypt operation, the request\n was rejected because the specified ciphertext, or additional authenticated data incorporated\n into the ciphertext, such as the encryption context, is corrupted, missing, or otherwise\n invalid.

\n

From the ImportKeyMaterial operation, the request was rejected because\n AWS KMS could not decrypt the encrypted (wrapped) key material.

", + "aws.protocols#awsQueryError": { + "code": "InvalidCiphertext", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

From the Decrypt or ReEncrypt operation, the request\n was rejected because the specified ciphertext, or additional authenticated data incorporated\n into the ciphertext, such as the encryption context, is corrupted, missing, or otherwise\n invalid.

\n

From the ImportKeyMaterial operation, the request was rejected because\n KMS could not decrypt the encrypted (wrapped) key material.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -2831,6 +2928,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidGrantId", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

The request was rejected because the specified GrantId is not valid.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -2844,6 +2945,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidGrantToken", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

The request was rejected because the specified grant token is not valid.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -2857,7 +2962,11 @@ } }, "traits": { - "smithy.api#documentation": "

The request was rejected because the provided import token is invalid or is associated\n with a different customer master key (CMK).

", + "aws.protocols#awsQueryError": { + "code": "InvalidImportTokenException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the provided import token is invalid or is associated\n with a different KMS key.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -2870,7 +2979,11 @@ } }, "traits": { - "smithy.api#documentation": "

The request was rejected for one of the following reasons:

\n \n

For encrypting, decrypting, re-encrypting, and generating data keys, the\n KeyUsage must be ENCRYPT_DECRYPT. For signing and verifying, the\n KeyUsage must be SIGN_VERIFY. To find the KeyUsage of\n a CMK, use the DescribeKey operation.

\n

To find the encryption or signing algorithms supported for a particular CMK, use the DescribeKey operation.

", + "aws.protocols#awsQueryError": { + "code": "InvalidKeyUsage", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected for one of the following reasons:

\n \n

For encrypting, decrypting, re-encrypting, and generating data keys, the\n KeyUsage must be ENCRYPT_DECRYPT. For signing and verifying, the\n KeyUsage must be SIGN_VERIFY. To find the KeyUsage of\n a KMS key, use the DescribeKey operation.

\n

To find the encryption or signing algorithms supported for a particular KMS key, use the DescribeKey operation.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -2883,6 +2996,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidMarker", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

The request was rejected because the marker that specifies where pagination should next\n begin is not valid.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -2896,6 +3013,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "KMSInternal", + "httpResponseCode": 500 + }, "smithy.api#documentation": "

The request was rejected because an internal exception occurred. The request can be\n retried.

", "smithy.api#error": "server", "smithy.api#httpError": 500 @@ -2909,7 +3030,11 @@ } }, "traits": { - "smithy.api#documentation": "

The request was rejected because the signature verification failed. Signature verification\n fails when it cannot confirm that signature was produced by signing the specified message with\n the specified CMK and signing algorithm.

", + "aws.protocols#awsQueryError": { + "code": "KMSInvalidSignature", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because the signature verification failed. Signature verification\n fails when it cannot confirm that signature was produced by signing the specified message with\n the specified KMS key and signing algorithm.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -2922,7 +3047,11 @@ } }, "traits": { - "smithy.api#documentation": "

The request was rejected because the state of the specified resource is not valid for this\n request.

\n

For more information about how key state affects the use of a CMK, see How Key State Affects Use of a\n Customer Master Key in the \n AWS Key Management Service Developer Guide\n .

", + "aws.protocols#awsQueryError": { + "code": "KMSInvalidStateException", + "httpResponseCode": 409 + }, + "smithy.api#documentation": "

The request was rejected because the state of the specified resource is not valid for this\n request.

\n

For more information about how key state affects the use of a KMS key, see Key state: Effect on your KMS key in the \n Key Management Service Developer Guide\n .

", "smithy.api#error": "client", "smithy.api#httpError": 409 } @@ -2983,133 +3112,181 @@ "AWSAccountId": { "target": "com.amazonaws.kms#AWSAccountIdType", "traits": { - "smithy.api#documentation": "

The twelve-digit account ID of the AWS account that owns the CMK.

" + "smithy.api#documentation": "

The twelve-digit account ID of the Amazon Web Services account that owns the KMS key.

" } }, "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

The globally unique identifier for the CMK.

", + "smithy.api#documentation": "

The globally unique identifier for the KMS key.

", "smithy.api#required": {} } }, "Arn": { "target": "com.amazonaws.kms#ArnType", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the CMK. For examples, see AWS Key Management Service\n (AWS KMS) in the Example ARNs section of the AWS General\n Reference.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the KMS key. For examples, see Key Management Service\n (KMS) in the Example ARNs section of the Amazon Web Services General\n Reference.

" } }, "CreationDate": { "target": "com.amazonaws.kms#DateType", "traits": { - "smithy.api#documentation": "

The date and time when the CMK was created.

" + "smithy.api#documentation": "

The date and time when the KMS key was created.

" } }, "Enabled": { "target": "com.amazonaws.kms#BooleanType", "traits": { - "smithy.api#documentation": "

Specifies whether the CMK is enabled. When KeyState is Enabled\n this value is true, otherwise it is false.

" + "smithy.api#documentation": "

Specifies whether the KMS key is enabled. When KeyState is Enabled\n this value is true, otherwise it is false.

" } }, "Description": { "target": "com.amazonaws.kms#DescriptionType", "traits": { - "smithy.api#documentation": "

The description of the CMK.

" + "smithy.api#documentation": "

The description of the KMS key.

" } }, "KeyUsage": { "target": "com.amazonaws.kms#KeyUsageType", "traits": { - "smithy.api#documentation": "

The cryptographic operations for which you can use the CMK.

" + "smithy.api#documentation": "

The cryptographic operations for which you can use the KMS key.

" } }, "KeyState": { "target": "com.amazonaws.kms#KeyState", "traits": { - "smithy.api#documentation": "

The current status of the CMK.

\n

For more information about how key state affects the use of a CMK, see Key state: Effect on your CMK\n in the AWS Key Management Service Developer Guide.

" + "smithy.api#documentation": "

The current status of the KMS key.

\n

For more information about how key state affects the use of a KMS key, see Key state: Effect on your KMS key\n in the Key Management Service Developer Guide.

" } }, "DeletionDate": { "target": "com.amazonaws.kms#DateType", "traits": { - "smithy.api#documentation": "

The date and time after which AWS KMS deletes this CMK. This value is present only when the\n CMK is scheduled for deletion, that is, when its KeyState is\n PendingDeletion.

\n

When the primary key in a multi-Region key is scheduled for deletion but still has replica\n keys, its key state is PendingReplicaDeletion and the length of its waiting\n period is displayed in the PendingDeletionWindowInDays field.

" + "smithy.api#documentation": "

The date and time after which KMS deletes this KMS key. This value is present only when the KMS key is scheduled for deletion, that is, when its KeyState is\n PendingDeletion.

\n

When the primary key in a multi-Region key is scheduled for deletion but still has replica\n keys, its key state is PendingReplicaDeletion and the length of its waiting\n period is displayed in the PendingDeletionWindowInDays field.

" } }, "ValidTo": { "target": "com.amazonaws.kms#DateType", "traits": { - "smithy.api#documentation": "

The time at which the imported key material expires. When the key material expires, AWS KMS\n deletes the key material and the CMK becomes unusable. This value is present only for CMKs\n whose Origin is EXTERNAL and whose ExpirationModel is\n KEY_MATERIAL_EXPIRES, otherwise this value is omitted.

" + "smithy.api#documentation": "

The time at which the imported key material expires. When the key material expires, KMS\n deletes the key material and the KMS key becomes unusable. This value is present only for KMS keys\n whose Origin is EXTERNAL and whose ExpirationModel is\n KEY_MATERIAL_EXPIRES, otherwise this value is omitted.

" } }, "Origin": { "target": "com.amazonaws.kms#OriginType", "traits": { - "smithy.api#documentation": "

The source of the CMK's key material. When this value is AWS_KMS, AWS KMS\n created the key material. When this value is EXTERNAL, the key material was\n imported from your existing key management infrastructure or the CMK lacks key material. When\n this value is AWS_CLOUDHSM, the key material was created in the AWS CloudHSM cluster\n associated with a custom key store.

" + "smithy.api#documentation": "

The source of the key material for the KMS key. When this value is AWS_KMS, KMS\n created the key material. When this value is EXTERNAL, the key material was\n imported or the KMS key doesn't have any key material. When\n this value is AWS_CLOUDHSM, the key material was created in the CloudHSM cluster\n associated with a custom key store.

" } }, "CustomKeyStoreId": { "target": "com.amazonaws.kms#CustomKeyStoreIdType", "traits": { - "smithy.api#documentation": "

A unique identifier for the custom key store that contains the CMK. This value is present\n only when the CMK is created in a custom key store.

" + "smithy.api#documentation": "

A unique identifier for the custom key store that contains the KMS key. This value is present\n only when the KMS key is created in a custom key store.

" } }, "CloudHsmClusterId": { "target": "com.amazonaws.kms#CloudHsmClusterIdType", "traits": { - "smithy.api#documentation": "

The cluster ID of the AWS CloudHSM cluster that contains the key material for the CMK. When you\n create a CMK in a custom key store, AWS KMS creates the key material for the CMK in the\n associated AWS CloudHSM cluster. This value is present only when the CMK is created in a custom key\n store.

" + "smithy.api#documentation": "

The cluster ID of the CloudHSM cluster that contains the key material for the KMS key. When you\n create a KMS key in a custom key store, KMS creates the key material for the KMS key in the\n associated CloudHSM cluster. This value is present only when the KMS key is created in a custom key\n store.

" } }, "ExpirationModel": { "target": "com.amazonaws.kms#ExpirationModelType", "traits": { - "smithy.api#documentation": "

Specifies whether the CMK's key material expires. This value is present only when\n Origin is EXTERNAL, otherwise this value is omitted.

" + "smithy.api#documentation": "

Specifies whether the KMS key's key material expires. This value is present only when\n Origin is EXTERNAL, otherwise this value is omitted.

" } }, "KeyManager": { "target": "com.amazonaws.kms#KeyManagerType", "traits": { - "smithy.api#documentation": "

The manager of the CMK. CMKs in your AWS account are either customer managed or AWS\n managed. For more information about the difference, see Customer Master Keys in the\n AWS Key Management Service Developer Guide.

" + "smithy.api#documentation": "

The manager of the KMS key. KMS keys in your Amazon Web Services account are either customer managed or Amazon Web Services managed. For more information about the difference, see KMS keys in the\n Key Management Service Developer Guide.

" } }, "CustomerMasterKeySpec": { "target": "com.amazonaws.kms#CustomerMasterKeySpec", "traits": { - "smithy.api#documentation": "

Describes the type of key material in the CMK.

" + "smithy.api#deprecated": { + "message": "This field has been deprecated. Instead, use the KeySpec field." + }, + "smithy.api#documentation": "

Instead, use the KeySpec field.

\n

The KeySpec and CustomerMasterKeySpec fields have the same value. We recommend that you use the KeySpec field in your code. However, to avoid breaking changes, KMS will support both fields.

" + } + }, + "KeySpec": { + "target": "com.amazonaws.kms#KeySpec", + "traits": { + "smithy.api#documentation": "

Describes the type of key material in the KMS key.

" } }, "EncryptionAlgorithms": { "target": "com.amazonaws.kms#EncryptionAlgorithmSpecList", "traits": { - "smithy.api#documentation": "

The encryption algorithms that the CMK supports. You cannot use the CMK with other\n encryption algorithms within AWS KMS.

\n

This value is present only when the KeyUsage of the CMK is\n ENCRYPT_DECRYPT.

" + "smithy.api#documentation": "

The encryption algorithms that the KMS key supports. You cannot use the KMS key with other\n encryption algorithms within KMS.

\n

This value is present only when the KeyUsage of the KMS key is\n ENCRYPT_DECRYPT.

" } }, "SigningAlgorithms": { "target": "com.amazonaws.kms#SigningAlgorithmSpecList", "traits": { - "smithy.api#documentation": "

The signing algorithms that the CMK supports. You cannot use the CMK with other signing\n algorithms within AWS KMS.

\n

This field appears only when the KeyUsage of the CMK is\n SIGN_VERIFY.

" + "smithy.api#documentation": "

The signing algorithms that the KMS key supports. You cannot use the KMS key with other signing\n algorithms within KMS.

\n

This field appears only when the KeyUsage of the KMS key is\n SIGN_VERIFY.

" } }, "MultiRegion": { "target": "com.amazonaws.kms#NullableBooleanType", "traits": { - "smithy.api#documentation": "

Indicates whether the CMK is a multi-Region (True) or regional\n (False) key. This value is True for multi-Region primary and\n replica CMKs and False for regional CMKs.

\n

For more information about multi-Region keys, see Using multi-Region keys in the AWS Key Management Service Developer Guide.

" + "smithy.api#documentation": "

Indicates whether the KMS key is a multi-Region (True) or regional\n (False) key. This value is True for multi-Region primary and\n replica keys and False for regional KMS keys.

\n

For more information about multi-Region keys, see Using multi-Region keys in the Key Management Service Developer Guide.

" } }, "MultiRegionConfiguration": { "target": "com.amazonaws.kms#MultiRegionConfiguration", "traits": { - "smithy.api#documentation": "

Lists the primary and replica CMKs in same multi-Region CMK. This field is present only\n when the value of the MultiRegion field is True.

\n

For more information about any listed CMK, use the DescribeKey\n operation.

\n " + "smithy.api#documentation": "

Lists the primary and replica keys in same multi-Region key. This field is present only\n when the value of the MultiRegion field is True.

\n

For more information about any listed KMS key, use the DescribeKey\n operation.

\n " } }, "PendingDeletionWindowInDays": { "target": "com.amazonaws.kms#PendingWindowInDaysType", "traits": { - "smithy.api#documentation": "

The waiting period before the primary key in a multi-Region key is deleted. This waiting\n period begins when the last of its replica keys is deleted. This value is present only when\n the KeyState of the CMK is PendingReplicaDeletion. That indicates\n that the CMK is the primary key in a multi-Region key, it is scheduled for deletion, and it\n still has existing replica keys.

\n

When a regional CMK or a replica key in a multi-Region key is scheduled for deletion, its\n deletion date is displayed in the DeletionDate field. However, when the primary\n key in a multi-Region key is scheduled for deletion, its waiting period doesn't begin until\n all of its replica keys are deleted. This value displays that waiting period. When the last\n replica key in the multi-Region key is deleted, the KeyState of the scheduled\n primary key changes from PendingReplicaDeletion to PendingDeletion\n and the deletion date appears in the DeletionDate field.

" + "smithy.api#documentation": "

The waiting period before the primary key in a multi-Region key is deleted. This waiting\n period begins when the last of its replica keys is deleted. This value is present only when\n the KeyState of the KMS key is PendingReplicaDeletion. That indicates\n that the KMS key is the primary key in a multi-Region key, it is scheduled for deletion, and it\n still has existing replica keys.

\n

When a single-Region KMS key or a multi-Region replica key is scheduled for deletion, its\n deletion date is displayed in the DeletionDate field. However, when the primary\n key in a multi-Region key is scheduled for deletion, its waiting period doesn't begin until\n all of its replica keys are deleted. This value displays that waiting period. When the last\n replica key in the multi-Region key is deleted, the KeyState of the scheduled\n primary key changes from PendingReplicaDeletion to PendingDeletion\n and the deletion date appears in the DeletionDate field.

" } } }, "traits": { - "smithy.api#documentation": "

Contains metadata about a customer master key (CMK).

\n

This data type is used as a response element for the CreateKey and DescribeKey operations.

" + "smithy.api#documentation": "

Contains metadata about a KMS key.

\n

This data type is used as a response element for the CreateKey and DescribeKey operations.

" + } + }, + "com.amazonaws.kms#KeySpec": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "RSA_2048", + "name": "RSA_2048" + }, + { + "value": "RSA_3072", + "name": "RSA_3072" + }, + { + "value": "RSA_4096", + "name": "RSA_4096" + }, + { + "value": "ECC_NIST_P256", + "name": "ECC_NIST_P256" + }, + { + "value": "ECC_NIST_P384", + "name": "ECC_NIST_P384" + }, + { + "value": "ECC_NIST_P521", + "name": "ECC_NIST_P521" + }, + { + "value": "ECC_SECG_P256K1", + "name": "ECC_SECG_P256K1" + }, + { + "value": "SYMMETRIC_DEFAULT", + "name": "SYMMETRIC_DEFAULT" + } + ] } }, "com.amazonaws.kms#KeyState": { @@ -3169,7 +3346,11 @@ } }, "traits": { - "smithy.api#documentation": "

The request was rejected because the specified CMK was not available. You can retry the\n request.

", + "aws.protocols#awsQueryError": { + "code": "KeyUnavailable", + "httpResponseCode": 500 + }, + "smithy.api#documentation": "

The request was rejected because the specified KMS key was not available. You can retry the\n request.

", "smithy.api#error": "server", "smithy.api#httpError": 500 } @@ -3197,7 +3378,11 @@ } }, "traits": { - "smithy.api#documentation": "

The request was rejected because a quota was exceeded. For more information, see Quotas in the\n AWS Key Management Service Developer Guide.

", + "aws.protocols#awsQueryError": { + "code": "LimitExceeded", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request was rejected because a quota was exceeded. For more information, see Quotas in the\n Key Management Service Developer Guide.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -3238,7 +3423,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets a list of aliases in the caller's AWS account and region. For more information about\n aliases, see CreateAlias.

\n

By default, the ListAliases operation returns all aliases in the account and\n region. To get only the aliases associated with a particular customer master key (CMK), use\n the KeyId parameter.

\n

The ListAliases response can include aliases that you created and associated\n with your customer managed CMKs, and aliases that AWS created and associated with AWS managed\n CMKs in your account. You can recognize AWS aliases because their names have the format\n aws/, such as aws/dynamodb.

\n

The response might also include aliases that have no TargetKeyId field. These\n are predefined aliases that AWS has created but has not yet associated with a CMK. Aliases\n that AWS creates in your account, including predefined aliases, do not count against your\n AWS KMS aliases\n quota.

\n

\n Cross-account use: No. ListAliases does not\n return aliases in other AWS accounts.

\n \n \n

\n Required permissions: kms:ListAliases (IAM policy)

\n

For details, see Controlling access to aliases in the AWS Key Management Service Developer Guide.

\n

\n Related operations:\n

\n ", + "smithy.api#documentation": "

Gets a list of aliases in the caller's Amazon Web Services account and region. For more information about\n aliases, see CreateAlias.

\n

By default, the ListAliases operation returns all aliases in the account and\n region. To get only the aliases associated with a particular KMS key, use\n the KeyId parameter.

\n

The ListAliases response can include aliases that you created and associated\n with your customer managed keys, and aliases that Amazon Web Services created and associated with Amazon Web Services managed keys in your account. You can recognize Amazon Web Services aliases because their names have the format\n aws/, such as aws/dynamodb.

\n

The response might also include aliases that have no TargetKeyId field. These\n are predefined aliases that Amazon Web Services has created but has not yet associated with a KMS key. Aliases\n that Amazon Web Services creates in your account, including predefined aliases, do not count against your\n KMS aliases\n quota.

\n

\n Cross-account use: No. ListAliases does not\n return aliases in other Amazon Web Services accounts.

\n \n

\n Required permissions: kms:ListAliases (IAM policy)

\n

For details, see Controlling access to aliases in the Key Management Service Developer Guide.

\n

\n Related operations:\n

\n ", "smithy.api#paginated": { "inputToken": "Marker", "outputToken": "NextMarker", @@ -3253,13 +3438,13 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Lists only aliases that are associated with the specified CMK. Enter a CMK in your AWS\n account.

\n

This parameter is optional. If you omit it, ListAliases returns all aliases\n in the account and Region.

\n \n

Specify the key ID or key ARN of the CMK.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

" + "smithy.api#documentation": "

Lists only aliases that are associated with the specified KMS key. Enter a KMS key in your Amazon Web Services account.

\n

This parameter is optional. If you omit it, ListAliases returns all aliases\n in the account and Region.

\n \n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

" } }, "Limit": { "target": "com.amazonaws.kms#LimitType", "traits": { - "smithy.api#documentation": "

Use this parameter to specify the maximum number of items to return. When this\n value is present, AWS KMS does not return more than the specified number of items, but it might\n return fewer.

\n

This value is optional. If you include a value, it must be between 1\n and 100, inclusive. If you do not include a value, it defaults to 50.

" + "smithy.api#documentation": "

Use this parameter to specify the maximum number of items to return. When this\n value is present, KMS does not return more than the specified number of items, but it might\n return fewer.

\n

This value is optional. If you include a value, it must be between 1\n and 100, inclusive. If you do not include a value, it defaults to 50.

" } }, "Marker": { @@ -3325,7 +3510,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets a list of all grants for the specified customer master key (CMK).

\n

You must specify the CMK in all requests. You can filter the grant list by grant ID\n or grantee principal.

\n \n

The GranteePrincipal field in the ListGrants response usually contains the\n user or role designated as the grantee principal in the grant. However, when the grantee\n principal in the grant is an AWS service, the GranteePrincipal field contains\n the service\n principal, which might represent several different grantee principals.

\n
\n

\n Cross-account use: Yes. To perform this operation on a CMK in a different AWS account, specify the key\n ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:ListGrants (key policy)

\n

\n Related operations:\n

\n ", + "smithy.api#documentation": "

Gets a list of all grants for the specified KMS key.

\n

You must specify the KMS key in all requests. You can filter the grant list by grant ID\n or grantee principal.

\n

For detailed information about grants, including grant terminology, see Using grants in the\n \n Key Management Service Developer Guide\n . For examples of working with grants in several\n programming languages, see Programming grants.

\n \n

The GranteePrincipal field in the ListGrants response usually contains the\n user or role designated as the grantee principal in the grant. However, when the grantee\n principal in the grant is an Amazon Web Services service, the GranteePrincipal field contains\n the service\n principal, which might represent several different grantee principals.

\n
\n

\n Cross-account use: Yes. To perform this operation on a KMS key in a different Amazon Web Services account, specify the key\n ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:ListGrants (key policy)

\n

\n Related operations:\n

\n ", "smithy.api#paginated": { "inputToken": "Marker", "outputToken": "NextMarker", @@ -3340,7 +3525,7 @@ "Limit": { "target": "com.amazonaws.kms#LimitType", "traits": { - "smithy.api#documentation": "

Use this parameter to specify the maximum number of items to return. When this\n value is present, AWS KMS does not return more than the specified number of items, but it might\n return fewer.

\n

This value is optional. If you include a value, it must be between 1\n and 100, inclusive. If you do not include a value, it defaults to 50.

" + "smithy.api#documentation": "

Use this parameter to specify the maximum number of items to return. When this\n value is present, KMS does not return more than the specified number of items, but it might\n return fewer.

\n

This value is optional. If you include a value, it must be between 1\n and 100, inclusive. If you do not include a value, it defaults to 50.

" } }, "Marker": { @@ -3352,7 +3537,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Returns only grants for the specified customer master key (CMK). This parameter is\n required.

\n

Specify the key ID or key ARN of the CMK. To specify a CMK in a\ndifferent AWS account, you must use the key ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

Returns only grants for the specified KMS key. This parameter is\n required.

\n

Specify the key ID or key ARN of the KMS key. To specify a KMS key in a\ndifferent Amazon Web Services account, you must use the key ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } }, @@ -3419,7 +3604,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets the names of the key policies that are attached to a customer master key (CMK). This\n operation is designed to get policy names that you can use in a GetKeyPolicy\n operation. However, the only valid policy name is default.

\n

\n Cross-account use: No. You cannot perform this operation on a CMK in a different AWS account.

\n \n

\n Required permissions: kms:ListKeyPolicies (key policy)

\n

\n Related operations:\n

\n ", + "smithy.api#documentation": "

Gets the names of the key policies that are attached to a KMS key. This\n operation is designed to get policy names that you can use in a GetKeyPolicy\n operation. However, the only valid policy name is default.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:ListKeyPolicies (key policy)

\n

\n Related operations:\n

\n ", "smithy.api#paginated": { "inputToken": "Marker", "outputToken": "NextMarker", @@ -3434,14 +3619,14 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Gets the names of key policies for the specified customer master key (CMK).

\n

Specify the key ID or key ARN of the CMK.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

Gets the names of key policies for the specified KMS key.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } }, "Limit": { "target": "com.amazonaws.kms#LimitType", "traits": { - "smithy.api#documentation": "

Use this parameter to specify the maximum number of items to return. When this\n value is present, AWS KMS does not return more than the specified number of items, but it might\n return fewer.

\n

This value is optional. If you include a value, it must be between\n 1 and 1000, inclusive. If you do not include a value, it defaults to 100.

\n

Only one policy can be attached to a key.

" + "smithy.api#documentation": "

Use this parameter to specify the maximum number of items to return. When this\n value is present, KMS does not return more than the specified number of items, but it might\n return fewer.

\n

This value is optional. If you include a value, it must be between\n 1 and 1000, inclusive. If you do not include a value, it defaults to 100.

\n

Only one policy can be attached to a key.

" } }, "Marker": { @@ -3495,7 +3680,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets a list of all customer master keys (CMKs) in the caller's AWS account and\n Region.

\n

\n Cross-account use: No. You cannot perform this operation on a CMK in a different AWS account.

\n \n

\n Required permissions: kms:ListKeys (IAM policy)

\n

\n Related operations:\n

\n ", + "smithy.api#documentation": "

Gets a list of all KMS keys in the caller's Amazon Web Services account and\n Region.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:ListKeys (IAM policy)

\n

\n Related operations:\n

\n ", "smithy.api#paginated": { "inputToken": "Marker", "outputToken": "NextMarker", @@ -3510,7 +3695,7 @@ "Limit": { "target": "com.amazonaws.kms#LimitType", "traits": { - "smithy.api#documentation": "

Use this parameter to specify the maximum number of items to return. When this\n value is present, AWS KMS does not return more than the specified number of items, but it might\n return fewer.

\n

This value is optional. If you include a value, it must be between\n 1 and 1000, inclusive. If you do not include a value, it defaults to 100.

" + "smithy.api#documentation": "

Use this parameter to specify the maximum number of items to return. When this\n value is present, KMS does not return more than the specified number of items, but it might\n return fewer.

\n

This value is optional. If you include a value, it must be between\n 1 and 1000, inclusive. If you do not include a value, it defaults to 100.

" } }, "Marker": { @@ -3527,7 +3712,7 @@ "Keys": { "target": "com.amazonaws.kms#KeyList", "traits": { - "smithy.api#documentation": "

A list of customer master keys (CMKs).

" + "smithy.api#documentation": "

A list of KMS keys.

" } }, "NextMarker": { @@ -3567,7 +3752,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns all tags on the specified customer master key (CMK).

\n

For general information about tags, including the format and syntax, see Tagging AWS resources in\n the Amazon Web Services General Reference. For information about using\n tags in AWS KMS, see Tagging\n keys.

\n

\n Cross-account use: No. You cannot perform this operation on a CMK in a different AWS account.

\n \n

\n Required permissions: kms:ListResourceTags (key policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Returns all tags on the specified KMS key.

\n

For general information about tags, including the format and syntax, see Tagging Amazon Web Services resources in\n the Amazon Web Services General Reference. For information about using\n tags in KMS, see Tagging\n keys.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:ListResourceTags (key policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#ListResourceTagsRequest": { @@ -3576,14 +3761,14 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Gets tags on the specified customer master key (CMK).

\n

Specify the key ID or key ARN of the CMK.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

Gets tags on the specified KMS key.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } }, "Limit": { "target": "com.amazonaws.kms#LimitType", "traits": { - "smithy.api#documentation": "

Use this parameter to specify the maximum number of items to return. When this\n value is present, AWS KMS does not return more than the specified number of items, but it might\n return fewer.

\n

This value is optional. If you include a value, it must be between 1 and 50, inclusive. If\n you do not include a value, it defaults to 50.

" + "smithy.api#documentation": "

Use this parameter to specify the maximum number of items to return. When this\n value is present, KMS does not return more than the specified number of items, but it might\n return fewer.

\n

This value is optional. If you include a value, it must be between 1 and 50, inclusive. If\n you do not include a value, it defaults to 50.

" } }, "Marker": { @@ -3600,7 +3785,7 @@ "Tags": { "target": "com.amazonaws.kms#TagList", "traits": { - "smithy.api#documentation": "

A list of tags. Each tag consists of a tag key and a tag value.

\n \n

Tagging or untagging a CMK can allow or deny permission to the\n CMK. For details, see Using ABAC in AWS KMS in the AWS Key Management Service Developer Guide.

\n
" + "smithy.api#documentation": "

A list of tags. Each tag consists of a tag key and a tag value.

\n \n

Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see Using ABAC in KMS in the Key Management Service Developer Guide.

\n
" } }, "NextMarker": { @@ -3643,7 +3828,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns information about all grants in the AWS account and Region that have the specified\n retiring principal. For more information about grants, see Grants in the\n \n AWS Key Management Service Developer Guide\n .

\n

You can specify any principal in your AWS account. The grants that are returned include\n grants for CMKs in your AWS account and other AWS accounts.

\n

You might use this operation to determine which grants you may retire. To retire a grant,\n use the RetireGrant operation.

\n

\n Cross-account use: You must specify a principal in your\n AWS account. However, this operation can return grants in any AWS account. You do not need\n kms:ListRetirableGrants permission (or any other additional permission) in any\n AWS account other than your own.

\n \n

\n Required permissions: kms:ListRetirableGrants (IAM policy) in your AWS\n account.

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Returns information about all grants in the Amazon Web Services account and Region that have the specified\n retiring principal.

\n

You can specify any principal in your Amazon Web Services account. The grants that are returned include\n grants for KMS keys in your Amazon Web Services account and other Amazon Web Services accounts. You might use this operation to\n determine which grants you may retire. To retire a grant, use the RetireGrant operation.

\n

For detailed information about grants, including grant terminology, see Using grants in the\n \n Key Management Service Developer Guide\n . For examples of working with grants in several\n programming languages, see Programming grants.

\n

\n Cross-account use: You must specify a principal in your\n Amazon Web Services account. However, this operation can return grants in any Amazon Web Services account. You do not need\n kms:ListRetirableGrants permission (or any other additional permission) in any\n Amazon Web Services account other than your own.

\n \n

\n Required permissions: kms:ListRetirableGrants (IAM policy) in your Amazon Web Services account.

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#ListRetirableGrantsRequest": { @@ -3652,7 +3837,7 @@ "Limit": { "target": "com.amazonaws.kms#LimitType", "traits": { - "smithy.api#documentation": "

Use this parameter to specify the maximum number of items to return. When this\n value is present, AWS KMS does not return more than the specified number of items, but it might\n return fewer.

\n

This value is optional. If you include a value, it must be between 1\n and 100, inclusive. If you do not include a value, it defaults to 50.

" + "smithy.api#documentation": "

Use this parameter to specify the maximum number of items to return. When this\n value is present, KMS does not return more than the specified number of items, but it might\n return fewer.

\n

This value is optional. If you include a value, it must be between 1\n and 100, inclusive. If you do not include a value, it defaults to 50.

" } }, "Marker": { @@ -3664,7 +3849,7 @@ "RetiringPrincipal": { "target": "com.amazonaws.kms#PrincipalIdType", "traits": { - "smithy.api#documentation": "

The retiring principal for which to list grants. Enter a principal in your AWS\n account.

\n

To specify the retiring principal, use the Amazon Resource Name (ARN) of an AWS\n principal. Valid AWS principals include AWS accounts (root), IAM users, federated users, and\n assumed role users. For examples of the ARN syntax for specifying a principal, see AWS\n Identity and Access Management (IAM) in the Example ARNs section of the\n Amazon Web Services General Reference.

", + "smithy.api#documentation": "

The retiring principal for which to list grants. Enter a principal in your Amazon Web Services account.

\n

To specify the retiring principal, use the Amazon Resource Name (ARN) of an Amazon Web Services principal. Valid Amazon Web Services principals include Amazon Web Services accounts (root), IAM users, federated users, and\n assumed role users. For examples of the ARN syntax for specifying a principal, see Amazon Web Services Identity and Access Management (IAM) in the Example ARNs section of the\n Amazon Web Services General Reference.

", "smithy.api#required": {} } } @@ -3678,6 +3863,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "MalformedPolicyDocument", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

The request was rejected because the specified policy is not syntactically or semantically\n correct.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -3714,24 +3903,24 @@ "MultiRegionKeyType": { "target": "com.amazonaws.kms#MultiRegionKeyType", "traits": { - "smithy.api#documentation": "

Indicates whether the CMK is a PRIMARY or REPLICA key.

" + "smithy.api#documentation": "

Indicates whether the KMS key is a PRIMARY or REPLICA key.

" } }, "PrimaryKey": { "target": "com.amazonaws.kms#MultiRegionKey", "traits": { - "smithy.api#documentation": "

Displays the key ARN and Region of the primary key. This field includes the current CMK if\n it is the primary key.

" + "smithy.api#documentation": "

Displays the key ARN and Region of the primary key. This field includes the current KMS key if\n it is the primary key.

" } }, "ReplicaKeys": { "target": "com.amazonaws.kms#MultiRegionKeyList", "traits": { - "smithy.api#documentation": "

displays the key ARNs and Regions of all replica keys. This field includes the current CMK\n if it is a replica key.

" + "smithy.api#documentation": "

displays the key ARNs and Regions of all replica keys. This field includes the current KMS key\n if it is a replica key.

" } } }, "traits": { - "smithy.api#documentation": "

Describes the configuration of this multi-Region CMK. This field appears only when the CMK\n is a primary or replica of a multi-Region CMK.

\n

For more information about any listed CMK, use the DescribeKey\n operation.

" + "smithy.api#documentation": "

Describes the configuration of this multi-Region key. This field appears only when the KMS key\n is a primary or replica of a multi-Region key.

\n

For more information about any listed KMS key, use the DescribeKey\n operation.

" } }, "com.amazonaws.kms#MultiRegionKey": { @@ -3746,7 +3935,7 @@ "Region": { "target": "com.amazonaws.kms#RegionType", "traits": { - "smithy.api#documentation": "

Displays the AWS Region of a primary or replica key in a multi-Region key.

" + "smithy.api#documentation": "

Displays the Amazon Web Services Region of a primary or replica key in a multi-Region key.

" } } }, @@ -3783,6 +3972,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "NotFound", + "httpResponseCode": 404 + }, "smithy.api#documentation": "

The request was rejected because the specified entity or resource could not be\n found.

", "smithy.api#error": "client", "smithy.api#httpError": 404 @@ -3920,7 +4113,7 @@ } ], "traits": { - "smithy.api#documentation": "

Attaches a key policy to the specified customer master key (CMK).

\n

For more information about key policies, see Key Policies in the AWS Key Management Service Developer Guide.\n For help writing and formatting a JSON policy document, see the IAM JSON Policy Reference in the \n IAM User Guide\n . For examples of adding a key policy in multiple programming languages,\n see Setting a key policy in the AWS Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a CMK in a different AWS account.

\n \n

\n Required permissions: kms:PutKeyPolicy (key policy)

\n

\n Related operations: GetKeyPolicy\n

" + "smithy.api#documentation": "

Attaches a key policy to the specified KMS key.

\n

For more information about key policies, see Key Policies in the Key Management Service Developer Guide.\n For help writing and formatting a JSON policy document, see the IAM JSON Policy Reference in the \n Identity and Access Management User Guide\n . For examples of adding a key policy in multiple programming languages,\n see Setting a key policy in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:PutKeyPolicy (key policy)

\n

\n Related operations: GetKeyPolicy\n

" } }, "com.amazonaws.kms#PutKeyPolicyRequest": { @@ -3929,7 +4122,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Sets the key policy on the specified customer master key (CMK).

\n

Specify the key ID or key ARN of the CMK.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

Sets the key policy on the specified KMS key.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } }, @@ -3943,14 +4136,14 @@ "Policy": { "target": "com.amazonaws.kms#PolicyType", "traits": { - "smithy.api#documentation": "

The key policy to attach to the CMK.

\n

The key policy must meet the following criteria:

\n \n

The key policy cannot exceed 32 kilobytes (32768 bytes). For more information, see Resource Quotas in the\n AWS Key Management Service Developer Guide.

", + "smithy.api#documentation": "

The key policy to attach to the KMS key.

\n

The key policy must meet the following criteria:

\n \n

The key policy cannot exceed 32 kilobytes (32768 bytes). For more information, see Resource Quotas in the\n Key Management Service Developer Guide.

", "smithy.api#required": {} } }, "BypassPolicyLockoutSafetyCheck": { "target": "com.amazonaws.kms#BooleanType", "traits": { - "smithy.api#documentation": "

A flag to indicate whether to bypass the key policy lockout safety check.

\n \n

Setting this value to true increases the risk that the CMK becomes unmanageable. Do not\n set this value to true indiscriminately.

\n

For more information, refer to the scenario in the Default Key Policy section in the AWS Key Management Service Developer Guide.

\n
\n

Use this parameter only when you intend to prevent the principal that is making the\n request from making a subsequent PutKeyPolicy request on the CMK.

\n

The default value is false.

" + "smithy.api#documentation": "

A flag to indicate whether to bypass the key policy lockout safety check.

\n \n

Setting this value to true increases the risk that the KMS key becomes unmanageable. Do not\n set this value to true indiscriminately.

\n

For more information, refer to the scenario in the Default Key Policy section in the Key Management Service Developer Guide.

\n
\n

Use this parameter only when you intend to prevent the principal that is making the\n request from making a subsequent PutKeyPolicy request on the KMS key.

\n

The default value is false.

" } } } @@ -3996,7 +4189,7 @@ } ], "traits": { - "smithy.api#documentation": "

Decrypts ciphertext and then reencrypts it entirely within AWS KMS. You can use this\n operation to change the customer master key (CMK) under which data is encrypted, such as when\n you manually rotate a CMK or change the CMK that protects a ciphertext. You can also\n use it to reencrypt ciphertext under the same CMK, such as to change the encryption\n context of a ciphertext.

\n

The ReEncrypt operation can decrypt ciphertext that was encrypted by using an\n AWS KMS CMK in an AWS KMS operation, such as Encrypt or GenerateDataKey. It can also decrypt ciphertext that was encrypted by using the\n public key of an asymmetric CMK outside\n of AWS KMS. However, it cannot decrypt ciphertext produced by other libraries, such as the\n AWS Encryption SDK or Amazon S3 client-side\n encryption. These libraries return a ciphertext format that is incompatible with\n AWS KMS.

\n

When you use the ReEncrypt operation, you need to provide information for the\n decrypt operation and the subsequent encrypt operation.

\n \n \n \n \n

The CMK that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your CMK in the AWS Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. The source CMK and destination\n CMK can be in different AWS accounts. Either or both CMKs can be in a different account than\n the caller.

\n\n

\n Required permissions:

\n \n

To permit reencryption from or to a CMK, include the \"kms:ReEncrypt*\"\n permission in your key policy. This permission is\n automatically included in the key policy when you use the console to create a CMK. But you\n must include it manually when you create a CMK programmatically or when you use the PutKeyPolicy operation to set a key policy.

\n \n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Decrypts ciphertext and then reencrypts it entirely within KMS. You can use this\n operation to change the KMS key under which data is encrypted, such as when\n you manually rotate a KMS key or change the KMS key that protects a ciphertext. You can also\n use it to reencrypt ciphertext under the same KMS key, such as to change the encryption\n context of a ciphertext.

\n

The ReEncrypt operation can decrypt ciphertext that was encrypted by using an\n KMS KMS key in an KMS operation, such as Encrypt or GenerateDataKey. It can also decrypt ciphertext that was encrypted by using the\n public key of an asymmetric KMS key outside of KMS. However, it cannot decrypt ciphertext\n produced by other libraries, such as the Amazon Web Services Encryption SDK or Amazon S3 client-side encryption.\n These libraries return a ciphertext format that is incompatible with KMS.

\n

When you use the ReEncrypt operation, you need to provide information for the\n decrypt operation and the subsequent encrypt operation.

\n \n \n \n \n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. The source KMS key and destination KMS key can be in different Amazon Web Services accounts. Either or both KMS keys can be in a different account than\n the caller. To specify a KMS key in a different account, you must use its key ARN or alias\n ARN.

\n\n

\n Required permissions:

\n \n

To permit reencryption from or to a KMS key, include the \"kms:ReEncrypt*\"\n permission in your key policy. This permission is\n automatically included in the key policy when you use the console to create a KMS key. But you\n must include it manually when you create a KMS key programmatically or when you use the PutKeyPolicy operation to set a key policy.

\n \n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#ReEncryptRequest": { @@ -4012,44 +4205,44 @@ "SourceEncryptionContext": { "target": "com.amazonaws.kms#EncryptionContextType", "traits": { - "smithy.api#documentation": "

Specifies the encryption context to use to decrypt the ciphertext. Enter the same\n encryption context that was used to encrypt the ciphertext.

\n

An encryption context is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric CMK, but it is highly recommended.

\n

For more information, see\n Encryption\n Context in the AWS Key Management Service Developer Guide.

" + "smithy.api#documentation": "

Specifies the encryption context to use to decrypt the ciphertext. Enter the same\n encryption context that was used to encrypt the ciphertext.

\n

An encryption context is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric KMS key, but it is highly recommended.

\n

For more information, see\n Encryption\n Context in the Key Management Service Developer Guide.

" } }, "SourceKeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Specifies the customer master key (CMK) that\n AWS KMS will use to decrypt the ciphertext before it is re-encrypted. Enter a key ID of the CMK\n that was used to encrypt the ciphertext.

\n

This parameter is required only when the ciphertext was encrypted under an asymmetric CMK.\n If you used a symmetric CMK, AWS KMS can get the CMK from metadata that it adds to the\n symmetric ciphertext blob. However, it is always recommended as a best practice. This practice\n ensures that you use the CMK that you intend.

\n \n

To specify a CMK, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

" + "smithy.api#documentation": "

Specifies the KMS key that\n KMS will use to decrypt the ciphertext before it is re-encrypted. Enter a key ID of the KMS key\n that was used to encrypt the ciphertext.

\n

This parameter is required only when the ciphertext was encrypted under an asymmetric KMS key.\n If you used a symmetric KMS key, KMS can get the KMS key from metadata that it adds to the\n symmetric ciphertext blob. However, it is always recommended as a best practice. This practice\n ensures that you use the KMS key that you intend.

\n \n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

" } }, "DestinationKeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

A unique identifier for the CMK that is used to reencrypt the data. Specify a symmetric or\n asymmetric CMK with a KeyUsage value of ENCRYPT_DECRYPT. To find the\n KeyUsage value of a CMK, use the DescribeKey\n operation.

\n

To specify a CMK, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "smithy.api#documentation": "

A unique identifier for the KMS key that is used to reencrypt the data. Specify a symmetric or\n asymmetric KMS key with a KeyUsage value of ENCRYPT_DECRYPT. To find the\n KeyUsage value of a KMS key, use the DescribeKey\n operation.

\n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", "smithy.api#required": {} } }, "DestinationEncryptionContext": { "target": "com.amazonaws.kms#EncryptionContextType", "traits": { - "smithy.api#documentation": "

Specifies that encryption context to use when the reencrypting the data.

\n

A destination encryption context is valid only when the destination CMK is a symmetric\n CMK. The standard ciphertext format for asymmetric CMKs does not include fields for\n metadata.

\n

An encryption context is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric CMK, but it is highly recommended.

\n

For more information, see\n Encryption\n Context in the AWS Key Management Service Developer Guide.

" + "smithy.api#documentation": "

Specifies that encryption context to use when the reencrypting the data.

\n

A destination encryption context is valid only when the destination KMS key is a symmetric KMS key. The standard ciphertext format for asymmetric KMS keys does not include fields for\n metadata.

\n

An encryption context is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric KMS key, but it is highly recommended.

\n

For more information, see\n Encryption\n Context in the Key Management Service Developer Guide.

" } }, "SourceEncryptionAlgorithm": { "target": "com.amazonaws.kms#EncryptionAlgorithmSpec", "traits": { - "smithy.api#documentation": "

Specifies the encryption algorithm that AWS KMS will use to decrypt the ciphertext before it\n is reencrypted. The default value, SYMMETRIC_DEFAULT, represents the algorithm\n used for symmetric CMKs.

\n

Specify the same algorithm that was used to encrypt the ciphertext. If you specify a\n different algorithm, the decrypt attempt fails.

\n

This parameter is required only when the ciphertext was encrypted under an asymmetric\n CMK.

" + "smithy.api#documentation": "

Specifies the encryption algorithm that KMS will use to decrypt the ciphertext before it\n is reencrypted. The default value, SYMMETRIC_DEFAULT, represents the algorithm\n used for symmetric KMS keys.

\n

Specify the same algorithm that was used to encrypt the ciphertext. If you specify a\n different algorithm, the decrypt attempt fails.

\n

This parameter is required only when the ciphertext was encrypted under an asymmetric KMS key.

" } }, "DestinationEncryptionAlgorithm": { "target": "com.amazonaws.kms#EncryptionAlgorithmSpec", "traits": { - "smithy.api#documentation": "

Specifies the encryption algorithm that AWS KMS will use to reecrypt the data after it has\n decrypted it. The default value, SYMMETRIC_DEFAULT, represents the encryption\n algorithm used for symmetric CMKs.

\n

This parameter is required only when the destination CMK is an asymmetric CMK.

" + "smithy.api#documentation": "

Specifies the encryption algorithm that KMS will use to reecrypt the data after it has\n decrypted it. The default value, SYMMETRIC_DEFAULT, represents the encryption\n algorithm used for symmetric KMS keys.

\n

This parameter is required only when the destination KMS key is an asymmetric KMS key.

" } }, "GrantTokens": { "target": "com.amazonaws.kms#GrantTokenList", "traits": { - "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token in the\n AWS Key Management Service Developer Guide.

" + "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token and Using a grant token in the\n Key Management Service Developer Guide.

" } } } @@ -4060,19 +4253,19 @@ "CiphertextBlob": { "target": "com.amazonaws.kms#CiphertextType", "traits": { - "smithy.api#documentation": "

The reencrypted data. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

" + "smithy.api#documentation": "

The reencrypted data. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

" } }, "SourceKeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Unique identifier of the CMK used to originally encrypt the data.

" + "smithy.api#documentation": "

Unique identifier of the KMS key used to originally encrypt the data.

" } }, "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the CMK that was used to reencrypt the data.

" + "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the KMS key that was used to reencrypt the data.

" } }, "SourceEncryptionAlgorithm": { @@ -4140,7 +4333,7 @@ } ], "traits": { - "smithy.api#documentation": "

Replicates a multi-Region key into the specified Region. This operation creates a\n multi-Region replica key based on a multi-Region primary key in a different Region of the same\n AWS partition. You can create multiple replicas of a primary key, but each must be in a\n different Region. To create a multi-Region primary key, use the CreateKey\n operation.

\n

This operation supports multi-Region keys, an AWS KMS feature that lets you create multiple\n interoperable CMKs in different AWS Regions. Because these CMKs have the same key ID, key\n material, and other metadata, you can use them to encrypt data in one AWS Region and decrypt\n it in a different AWS Region without making a cross-Region call or exposing the plaintext data. For more information about multi-Region keys, see Using multi-Region keys in the AWS Key Management Service Developer Guide.

\n

A replica key is a fully-functional CMK that can be used\n independently of its primary and peer replica keys. A primary key and its replica keys share\n properties that make them interoperable. They have the same key ID and key material. They also\n have the same key\n spec, key\n usage, key\n material origin, and automatic key rotation status. AWS KMS automatically synchronizes these shared\n properties among related multi-Region keys. All other properties of a replica key can differ,\n including its key\n policy, tags, aliases, and key\n state. AWS KMS pricing and quotas for CMKs apply to each primary key and replica\n key.

\n

When this operation completes, the new replica key has a transient key state of\n Creating. This key state changes to Enabled (or\n PendingImport) after a few seconds when the process of creating the new replica\n key is complete. While the key state is Creating, you can manage key, but you\n cannot yet use it in cryptographic operations. If you are creating and using the replica key\n programmatically, retry on KMSInvalidStateException or call\n DescribeKey to check its KeyState value before using it. For\n details about the Creating key state, see Key state: Effect on your CMK in the\n AWS Key Management Service Developer Guide.

\n

The AWS CloudTrail log of a ReplicateKey operation records a\n ReplicateKey operation in the primary key's Region and a CreateKey operation in the replica key's Region.

\n

If you replicate a multi-Region primary key with imported key material, the replica key is\n created with no key material. You must import the same key material that you imported into the\n primary key. For details, see Importing key material into multi-Region keys in the AWS Key Management Service Developer Guide.

\n

To convert a replica key to a primary key, use the UpdatePrimaryRegion\n operation.

\n \n

\n ReplicateKey uses different default values for the KeyPolicy and\n Tags parameters than those used in the AWS KMS console. For details, see the\n parameter descriptions.

\n
\n

\n Cross-account use: No. You cannot use this operation to\n create a CMK in a different AWS account.

\n

\n Required permissions:

\n \n

\n Related operations\n

\n " + "smithy.api#documentation": "

Replicates a multi-Region key into the specified Region. This operation creates a\n multi-Region replica key based on a multi-Region primary key in a different Region of the same\n Amazon Web Services partition. You can create multiple replicas of a primary key, but each must be in a\n different Region. To create a multi-Region primary key, use the CreateKey\n operation.

\n

This operation supports multi-Region keys, an KMS feature that lets you create multiple\n interoperable KMS keys in different Amazon Web Services Regions. Because these KMS keys have the same key ID, key\n material, and other metadata, you can use them interchangeably to encrypt data in one Amazon Web Services Region and decrypt\n it in a different Amazon Web Services Region without re-encrypting the data or making a cross-Region call. For more information about multi-Region keys, see Using multi-Region keys in the Key Management Service Developer Guide.

\n

A replica key is a fully-functional KMS key that can be used\n independently of its primary and peer replica keys. A primary key and its replica keys share\n properties that make them interoperable. They have the same key ID and key material. They also\n have the same key\n spec, key\n usage, key\n material origin, and automatic key rotation status. KMS automatically synchronizes these shared\n properties among related multi-Region keys. All other properties of a replica key can differ,\n including its key\n policy, tags, aliases, and key\n state. KMS pricing and quotas for KMS keys apply to each primary key and replica\n key.

\n

When this operation completes, the new replica key has a transient key state of\n Creating. This key state changes to Enabled (or\n PendingImport) after a few seconds when the process of creating the new replica\n key is complete. While the key state is Creating, you can manage key, but you\n cannot yet use it in cryptographic operations. If you are creating and using the replica key\n programmatically, retry on KMSInvalidStateException or call\n DescribeKey to check its KeyState value before using it. For\n details about the Creating key state, see Key state: Effect on your KMS key in the\n Key Management Service Developer Guide.

\n

The CloudTrail log of a ReplicateKey operation records a\n ReplicateKey operation in the primary key's Region and a CreateKey operation in the replica key's Region.

\n

If you replicate a multi-Region primary key with imported key material, the replica key is\n created with no key material. You must import the same key material that you imported into the\n primary key. For details, see Importing key material into multi-Region keys in the Key Management Service Developer Guide.

\n

To convert a replica key to a primary key, use the UpdatePrimaryRegion\n operation.

\n \n

\n ReplicateKey uses different default values for the KeyPolicy and\n Tags parameters than those used in the KMS console. For details, see the\n parameter descriptions.

\n
\n

\n Cross-account use: No. You cannot use this operation to\n create a replica key in a different Amazon Web Services account.

\n

\n Required permissions:

\n \n

\n Related operations\n

\n " } }, "com.amazonaws.kms#ReplicateKeyRequest": { @@ -4149,39 +4342,39 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Identifies the multi-Region primary key that is being replicated. To determine whether a\n CMK is a multi-Region primary key, use the DescribeKey operation to check\n the value of the MultiRegionKeyType property.

\n \n

Specify the key ID or key ARN of a multi-Region primary key.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

Identifies the multi-Region primary key that is being replicated. To determine whether a KMS key is a multi-Region primary key, use the DescribeKey operation to check\n the value of the MultiRegionKeyType property.

\n \n

Specify the key ID or key ARN of a multi-Region primary key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } }, "ReplicaRegion": { "target": "com.amazonaws.kms#RegionType", "traits": { - "smithy.api#documentation": "

The Region ID of the AWS Region for this replica key.

\n

Enter the Region ID, such as us-east-1 or ap-southeast-2. For a\n list of AWS Regions in which AWS KMS is supported, see AWS KMS service endpoints in the\n Amazon Web Services General Reference.

\n

The replica must be in a different AWS Region than its primary key and other replicas of\n that primary key, but in the same AWS partition. AWS KMS must be available in the replica\n Region. If the Region is not enabled by default, the AWS account must be enabled in the\n Region.

\n

For information about AWS partitions, see Amazon Resource Names (ARNs) in the\n Amazon Web Services General Reference. For information about enabling and disabling Regions, see Enabling a\n Region and Disabling a Region in the\n Amazon Web Services General Reference.

", + "smithy.api#documentation": "

The Region ID of the Amazon Web Services Region for this replica key.

\n

Enter the Region ID, such as us-east-1 or ap-southeast-2. For a\n list of Amazon Web Services Regions in which KMS is supported, see KMS service endpoints in the\n Amazon Web Services General Reference.

\n

The replica must be in a different Amazon Web Services Region than its primary key and other replicas of\n that primary key, but in the same Amazon Web Services partition. KMS must be available in the replica\n Region. If the Region is not enabled by default, the Amazon Web Services account must be enabled in the\n Region.

\n

For information about Amazon Web Services partitions, see Amazon Resource Names (ARNs) in the\n Amazon Web Services General Reference. For information about enabling and disabling Regions, see Enabling a\n Region and Disabling a Region in the\n Amazon Web Services General Reference.

", "smithy.api#required": {} } }, "Policy": { "target": "com.amazonaws.kms#PolicyType", "traits": { - "smithy.api#documentation": "

The key policy to attach to the CMK. This parameter is optional. If you do not provide a key policy, AWS KMS attaches the default key policy to the CMK.

\n

The key policy is not a shared property of multi-Region keys. You can specify the same key\n policy or a different key policy for each key in a set of related multi-Region keys. AWS KMS\n does not synchronize this property.

\n

If you provide a key policy, it must meet the following criteria:

\n " + "smithy.api#documentation": "

The key policy to attach to the KMS key. This parameter is optional. If you do not provide a key policy, KMS attaches the default key policy to the KMS key.

\n

The key policy is not a shared property of multi-Region keys. You can specify the same key\n policy or a different key policy for each key in a set of related multi-Region keys. KMS\n does not synchronize this property.

\n

If you provide a key policy, it must meet the following criteria:

\n " } }, "BypassPolicyLockoutSafetyCheck": { "target": "com.amazonaws.kms#BooleanType", "traits": { - "smithy.api#documentation": "

A flag to indicate whether to bypass the key policy lockout safety check.

\n \n

Setting this value to true increases the risk that the CMK becomes unmanageable. Do not\n set this value to true indiscriminately.

\n

For more information, refer to the scenario in the Default Key Policy section in the AWS Key Management Service Developer Guide.

\n
\n

Use this parameter only when you intend to prevent the principal that is making the\n request from making a subsequent PutKeyPolicy request on the CMK.

\n

The default value is false.

" + "smithy.api#documentation": "

A flag to indicate whether to bypass the key policy lockout safety check.

\n \n

Setting this value to true increases the risk that the KMS key becomes unmanageable. Do not\n set this value to true indiscriminately.

\n

For more information, refer to the scenario in the Default Key Policy section in the Key Management Service Developer Guide.

\n
\n

Use this parameter only when you intend to prevent the principal that is making the\n request from making a subsequent PutKeyPolicy request on the KMS key.

\n

The default value is false.

" } }, "Description": { "target": "com.amazonaws.kms#DescriptionType", "traits": { - "smithy.api#documentation": "

A description of the CMK. Use a description that helps you decide whether the CMK is\n appropriate for a task. The default value is an empty string (no description).

\n

The description is not a shared property of multi-Region keys. You can specify the same\n description or a different description for each key in a set of related multi-Region keys. AWS\n KMS does not synchronize this property.

" + "smithy.api#documentation": "

A description of the KMS key. The default value is an empty string (no description).

\n

The description is not a shared property of multi-Region keys. You can specify the same\n description or a different description for each key in a set of related multi-Region keys. KMS does not synchronize this property.

" } }, "Tags": { "target": "com.amazonaws.kms#TagList", "traits": { - "smithy.api#documentation": "

Assigns one or more tags to the replica key. Use this parameter to tag the CMK when it is created.\n To tag an existing CMK, use the TagResource operation.

\n \n

Tagging or untagging a CMK can allow or deny permission to the\n CMK. For details, see Using ABAC in AWS KMS in the AWS Key Management Service Developer Guide.

\n
\n

To use this parameter, you must have kms:TagResource permission in an IAM policy.

\n

Tags are not a shared property of multi-Region keys. You can specify the same tags or\n different tags for each key in a set of related multi-Region keys. AWS KMS does not\n synchronize this property.

\n

Each tag consists of a tag key and a tag value. Both the tag key and the tag value are\n required, but the tag value can be an empty (null) string. You cannot have more than one tag\n on a CMK with the same tag key. If you specify an existing tag key with a different tag value,\n AWS KMS replaces the current tag value with the specified one.

\n

When you assign tags to an AWS resource, AWS generates a cost allocation\n report with usage and costs aggregated by tags. Tags can also be used to control access to a CMK. For details,\n see Tagging Keys.

" + "smithy.api#documentation": "

Assigns one or more tags to the replica key. Use this parameter to tag the KMS key when it is created.\n To tag an existing KMS key, use the TagResource operation.

\n \n

Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see Using ABAC in KMS in the Key Management Service Developer Guide.

\n
\n

To use this parameter, you must have kms:TagResource permission in an IAM policy.

\n

Tags are not a shared property of multi-Region keys. You can specify the same tags or\n different tags for each key in a set of related multi-Region keys. KMS does not\n synchronize this property.

\n

Each tag consists of a tag key and a tag value. Both the tag key and the tag value are\n required, but the tag value can be an empty (null) string. You cannot have more than one tag\n on a KMS key with the same tag key. If you specify an existing tag key with a different tag value,\n KMS replaces the current tag value with the specified one.

\n

When you add tags to an Amazon Web Services resource, Amazon Web Services generates a cost allocation\n report with usage and costs aggregated by tags. Tags can also be used to control access to a KMS key. For details,\n see Tagging Keys.

" } } } @@ -4192,7 +4385,7 @@ "ReplicaKeyMetadata": { "target": "com.amazonaws.kms#KeyMetadata", "traits": { - "smithy.api#documentation": "

Displays details about the new replica CMK, including its Amazon Resource Name (key\n ARN) and key state. It also includes the ARN and AWS Region of its primary key and other\n replica keys.

" + "smithy.api#documentation": "

Displays details about the new replica key, including its Amazon Resource Name (key\n ARN) and key state. It also includes the ARN and Amazon Web Services Region of its primary key and other\n replica keys.

" } }, "ReplicaPolicy": { @@ -4238,7 +4431,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a grant. Typically, you retire a grant when you no longer need its permissions. To\n identify the grant to retire, use a grant token, or both the grant ID and a\n key identifier (key ID or key ARN) of the customer master key (CMK). The CreateGrant operation returns both values.

\n

This operation can be called by the retiring principal for a grant,\n by the grantee principal if the grant allows the RetireGrant\n operation, and by the AWS account (root user) in which the grant is created. It can also be\n called by principals to whom permission for retiring a grant is delegated. For details, see\n Retiring and\n revoking grants in the AWS Key Management Service Developer Guide.

\n

For detailed information about grants, including grant terminology, see Using grants in the\n \n AWS Key Management Service Developer Guide\n . For examples of working with grants in several\n programming languages, see Programming grants.

\n

\n Cross-account use: Yes. You can retire a grant on a CMK\n in a different AWS account.

\n

\n Required permissions::Permission to retire a grant is\n determined primarily by the grant. For details, see Retiring and revoking grants in the AWS Key Management Service Developer Guide.

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Deletes a grant. Typically, you retire a grant when you no longer need its permissions. To\n identify the grant to retire, use a grant token, or both the grant ID and a\n key identifier (key ID or key ARN) of the KMS key. The CreateGrant operation returns both values.

\n

This operation can be called by the retiring principal for a grant,\n by the grantee principal if the grant allows the RetireGrant\n operation, and by the Amazon Web Services account (root user) in which the grant is created. It can also be\n called by principals to whom permission for retiring a grant is delegated. For details, see\n Retiring and\n revoking grants in the Key Management Service Developer Guide.

\n

For detailed information about grants, including grant terminology, see Using grants in the\n \n Key Management Service Developer Guide\n . For examples of working with grants in several\n programming languages, see Programming grants.

\n

\n Cross-account use: Yes. You can retire a grant on a KMS key\n in a different Amazon Web Services account.

\n

\n Required permissions::Permission to retire a grant is\n determined primarily by the grant. For details, see Retiring and revoking grants in the Key Management Service Developer Guide.

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#RetireGrantRequest": { @@ -4247,19 +4440,19 @@ "GrantToken": { "target": "com.amazonaws.kms#GrantTokenType", "traits": { - "smithy.api#documentation": "

Identifies the grant to be retired. You can use a grant token to identify a new grant even\n before it has achieved eventual consistency.

\n

Only the CreateGrant operation returns a grant token. For details, see\n Grant token\n and Eventual consistency in the AWS Key Management Service Developer Guide.

" + "smithy.api#documentation": "

Identifies the grant to be retired. You can use a grant token to identify a new grant even\n before it has achieved eventual consistency.

\n

Only the CreateGrant operation returns a grant token. For details, see\n Grant token\n and Eventual consistency in the Key Management Service Developer Guide.

" } }, "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

The key ARN CMK associated with the grant. To find the key ARN, use the ListKeys operation.

\n

For example: arn:aws:kms:us-east-2:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

" + "smithy.api#documentation": "

The key ARN KMS key associated with the grant. To find the key ARN, use the ListKeys operation.

\n

For example: arn:aws:kms:us-east-2:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

" } }, "GrantId": { "target": "com.amazonaws.kms#GrantIdType", "traits": { - "smithy.api#documentation": "

Identifies the grant to retire. To get the grant ID, use CreateGrant,\n ListGrants, or ListRetirableGrants.

\n " + "smithy.api#documentation": "

Identifies the grant to retire. To get the grant ID, use CreateGrant,\n ListGrants, or ListRetirableGrants.

\n " } } } @@ -4290,7 +4483,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes the specified grant. You revoke a grant to terminate the permissions that the\n grant allows. For more\n information, see Retiring and revoking grants in\n the \n AWS Key Management Service Developer Guide\n .

\n

When you create, retire, or revoke a grant, there might be a brief delay, usually less than five minutes, until the grant is available throughout AWS KMS. This state is known as eventual consistency. For details, see Eventual consistency in\n the \n AWS Key Management Service Developer Guide\n .

\n

\n Cross-account use: Yes. To perform this operation on a CMK in a different AWS account, specify the key\n ARN in the value of the KeyId parameter.

\n

\n Required permissions: kms:RevokeGrant (key policy).

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Deletes the specified grant. You revoke a grant to terminate the permissions that the\n grant allows. For more\n information, see Retiring and revoking grants in\n the \n Key Management Service Developer Guide\n .

\n

When you create, retire, or revoke a grant, there might be a brief delay, usually less than five minutes, until the grant is available throughout KMS. This state is known as eventual consistency. For details, see Eventual consistency in\n the \n Key Management Service Developer Guide\n .

\n

For detailed information about grants, including grant terminology, see Using grants in the\n \n Key Management Service Developer Guide\n . For examples of working with grants in several\n programming languages, see Programming grants.

\n

\n Cross-account use: Yes. To perform this operation on a KMS key in a different Amazon Web Services account, specify the key\n ARN in the value of the KeyId parameter.

\n

\n Required permissions: kms:RevokeGrant (key policy).

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#RevokeGrantRequest": { @@ -4299,14 +4492,14 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

A unique identifier for the customer master key (CMK) associated with the grant. To get\n the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

\n \n

Specify the key ID or key ARN of the CMK. To specify a CMK in a\ndifferent AWS account, you must use the key ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

A unique identifier for the KMS key associated with the grant. To get\n the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

\n \n

Specify the key ID or key ARN of the KMS key. To specify a KMS key in a\ndifferent Amazon Web Services account, you must use the key ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } }, "GrantId": { "target": "com.amazonaws.kms#GrantIdType", "traits": { - "smithy.api#documentation": "

Identifies the grant to revoke. To get the grant ID, use CreateGrant,\n ListGrants, or ListRetirableGrants.

", + "smithy.api#documentation": "

Identifies the grant to revoke. To get the grant ID, use CreateGrant,\n ListGrants, or ListRetirableGrants.

", "smithy.api#required": {} } } @@ -4338,7 +4531,7 @@ } ], "traits": { - "smithy.api#documentation": "

Schedules the deletion of a customer master key (CMK). By default, AWS KMS applies a waiting\n period of 30 days, but you can specify a waiting period of 7-30 days. When this operation is\n successful, the key state of the CMK changes to PendingDeletion and the key can't\n be used in any cryptographic operations. It remains in this state for the duration of the\n waiting period. Before the waiting period ends, you can use CancelKeyDeletion to cancel the deletion of the CMK. After the waiting period ends, AWS KMS deletes the CMK,\n its key material, and all AWS KMS data associated with it, including all aliases that refer to\n it.

\n \n

Deleting a CMK is a destructive and potentially dangerous operation. When a CMK is\n deleted, all data that was encrypted under the CMK is unrecoverable. (The only exception is\n a multi-Region replica key.) To prevent the use of a CMK without deleting it, use DisableKey.

\n
\n

If you schedule deletion of a CMK from a custom key store, when the waiting period\n expires, ScheduleKeyDeletion deletes the CMK from AWS KMS. Then AWS KMS makes a best\n effort to delete the key material from the associated AWS CloudHSM cluster. However, you might need\n to manually delete the orphaned key\n material from the cluster and its backups.

\n

You can schedule the deletion of a multi-Region primary key and its replica keys at any\n time. However, AWS KMS will not delete a multi-Region primary key with existing replica keys. If\n you schedule the deletion of a primary key with replicas, its key state changes to\n PendingReplicaDeletion and it cannot be replicated or used in cryptographic\n operations. This status can continue indefinitely. When the last of its replicas keys is\n deleted (not just scheduled), the key state of the primary key changes to\n PendingDeletion and its waiting period (PendingWindowInDays)\n begins. For details, see Deleting multi-Region keys in the AWS Key Management Service Developer Guide.

\n

For more information about scheduling a CMK for deletion, see Deleting Customer Master Keys in the\n AWS Key Management Service Developer Guide.

\n

The CMK that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your CMK in the AWS Key Management Service Developer Guide.

\n \n

\n Cross-account use: No. You cannot perform this operation on a CMK in a different AWS account.

\n \n \n

\n Required permissions: kms:ScheduleKeyDeletion (key policy)

\n

\n Related operations\n

\n " + "smithy.api#documentation": "

Schedules the deletion of a KMS key. By default, KMS applies a waiting\n period of 30 days, but you can specify a waiting period of 7-30 days. When this operation is\n successful, the key state of the KMS key changes to PendingDeletion and the key can't\n be used in any cryptographic operations. It remains in this state for the duration of the\n waiting period. Before the waiting period ends, you can use CancelKeyDeletion to cancel the deletion of the KMS key. After the waiting period ends, KMS deletes the KMS key,\n its key material, and all KMS data associated with it, including all aliases that refer to\n it.

\n \n

Deleting a KMS key is a destructive and potentially dangerous operation. When a KMS key is\n deleted, all data that was encrypted under the KMS key is unrecoverable. (The only exception is\n a multi-Region replica key.) To prevent the use of a KMS key without deleting it, use DisableKey.

\n
\n

If you schedule deletion of a KMS key from a custom key store, when the waiting period\n expires, ScheduleKeyDeletion deletes the KMS key from KMS. Then KMS makes a best\n effort to delete the key material from the associated CloudHSM cluster. However, you might need\n to manually delete the orphaned key\n material from the cluster and its backups.

\n

You can schedule the deletion of a multi-Region primary key and its replica keys at any\n time. However, KMS will not delete a multi-Region primary key with existing replica keys. If\n you schedule the deletion of a primary key with replicas, its key state changes to\n PendingReplicaDeletion and it cannot be replicated or used in cryptographic\n operations. This status can continue indefinitely. When the last of its replicas keys is\n deleted (not just scheduled), the key state of the primary key changes to\n PendingDeletion and its waiting period (PendingWindowInDays)\n begins. For details, see Deleting multi-Region keys in the Key Management Service Developer Guide.

\n

For more information about scheduling a KMS key for deletion, see Deleting KMS keys in the\n Key Management Service Developer Guide.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n \n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n \n \n

\n Required permissions: kms:ScheduleKeyDeletion (key policy)

\n

\n Related operations\n

\n " } }, "com.amazonaws.kms#ScheduleKeyDeletionRequest": { @@ -4347,14 +4540,14 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

The unique identifier of the customer master key (CMK) to delete.

\n \n

Specify the key ID or key ARN of the CMK.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

The unique identifier of the KMS key to delete.

\n \n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } }, "PendingWindowInDays": { "target": "com.amazonaws.kms#PendingWindowInDaysType", "traits": { - "smithy.api#documentation": "

The waiting period, specified in number of days. After the waiting period ends, AWS KMS\n deletes the customer master key (CMK).

\n

If the CMK is a multi-Region primary key with replicas, the waiting period begins when the\n last of its replica keys is deleted. Otherwise, the waiting period begins immediately.

\n

This value is optional. If you include a value, it must be between 7 and 30, inclusive. If\n you do not include a value, it defaults to 30.

" + "smithy.api#documentation": "

The waiting period, specified in number of days. After the waiting period ends, KMS\n deletes the KMS key.

\n

If the KMS key is a multi-Region primary key with replicas, the waiting period begins when the\n last of its replica keys is deleted. Otherwise, the waiting period begins immediately.

\n

This value is optional. If you include a value, it must be between 7 and 30, inclusive. If\n you do not include a value, it defaults to 30.

" } } } @@ -4365,25 +4558,25 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the CMK whose deletion is scheduled.

" + "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the KMS key whose deletion is scheduled.

" } }, "DeletionDate": { "target": "com.amazonaws.kms#DateType", "traits": { - "smithy.api#documentation": "

The date and time after which AWS KMS deletes the customer master key (CMK).

\n

If the CMK is a multi-Region primary key with replica keys, this field does not appear.\n The deletion date for the primary key isn't known until its last replica key is\n deleted.

" + "smithy.api#documentation": "

The date and time after which KMS deletes the KMS key.

\n

If the KMS key is a multi-Region primary key with replica keys, this field does not appear.\n The deletion date for the primary key isn't known until its last replica key is\n deleted.

" } }, "KeyState": { "target": "com.amazonaws.kms#KeyState", "traits": { - "smithy.api#documentation": "

The current status of the CMK.

\n

For more information about how key state affects the use of a CMK, see Key state: Effect on your CMK\n in the AWS Key Management Service Developer Guide.

" + "smithy.api#documentation": "

The current status of the KMS key.

\n

For more information about how key state affects the use of a KMS key, see Key state: Effect on your KMS key\n in the Key Management Service Developer Guide.

" } }, "PendingWindowInDays": { "target": "com.amazonaws.kms#PendingWindowInDaysType", "traits": { - "smithy.api#documentation": "

The waiting period before the CMK is deleted.

\n

If the CMK is a multi-Region primary key with replicas, the waiting period begins when the\n last of its replica keys is deleted. Otherwise, the waiting period begins immediately.

" + "smithy.api#documentation": "

The waiting period before the KMS key is deleted.

\n

If the KMS key is a multi-Region primary key with replicas, the waiting period begins when the\n last of its replica keys is deleted. Otherwise, the waiting period begins immediately.

" } } } @@ -4423,7 +4616,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a digital\n signature for a message or message digest by using the private key in an asymmetric\n CMK. To verify the signature, use the Verify operation, or use the public\n key in the same asymmetric CMK outside of AWS KMS. For information about symmetric and asymmetric CMKs, see Using Symmetric and Asymmetric CMKs in the AWS Key Management Service Developer Guide.

\n

Digital signatures are generated and verified by using asymmetric key pair, such as an RSA\n or ECC pair that is represented by an asymmetric customer master key (CMK). The key owner (or\n an authorized user) uses their private key to sign a message. Anyone with the public key can\n verify that the message was signed with that particular private key and that the message\n hasn't changed since it was signed.

\n

To use the Sign operation, provide the following information:

\n \n \n

When signing a message, be sure to record the CMK and the signing algorithm. This\n information is required to verify the signature.

\n
\n

To verify the signature that this operation generates, use the Verify\n operation. Or use the GetPublicKey operation to download the public key and\n then use the public key to verify the signature outside of AWS KMS.

\n

The CMK that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your CMK in the AWS Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a CMK in a different AWS account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:Sign (key policy)

\n

\n Related operations: Verify\n

" + "smithy.api#documentation": "

Creates a digital\n signature for a message or message digest by using the private key in an asymmetric KMS key. To verify the signature, use the Verify operation, or use the public\n key in the same asymmetric KMS key outside of KMS. For information about symmetric and asymmetric KMS keys, see Using Symmetric and Asymmetric KMS keys in the Key Management Service Developer Guide.

\n

Digital signatures are generated and verified by using asymmetric key pair, such as an RSA\n or ECC pair that is represented by an asymmetric KMS key. The key owner (or\n an authorized user) uses their private key to sign a message. Anyone with the public key can\n verify that the message was signed with that particular private key and that the message\n hasn't changed since it was signed.

\n

To use the Sign operation, provide the following information:

\n \n \n

When signing a message, be sure to record the KMS key and the signing algorithm. This\n information is required to verify the signature.

\n
\n

To verify the signature that this operation generates, use the Verify\n operation. Or use the GetPublicKey operation to download the public key and\n then use the public key to verify the signature outside of KMS.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:Sign (key policy)

\n

\n Related operations: Verify\n

" } }, "com.amazonaws.kms#SignRequest": { @@ -4432,33 +4625,33 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Identifies an asymmetric CMK. AWS KMS uses the private key in the asymmetric CMK to sign the\n message. The KeyUsage type of the CMK must be SIGN_VERIFY. To find\n the KeyUsage of a CMK, use the DescribeKey operation.

\n \n

To specify a CMK, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "smithy.api#documentation": "

Identifies an asymmetric KMS key. KMS uses the private key in the asymmetric KMS key to sign the\n message. The KeyUsage type of the KMS key must be SIGN_VERIFY. To find\n the KeyUsage of a KMS key, use the DescribeKey operation.

\n \n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", "smithy.api#required": {} } }, "Message": { "target": "com.amazonaws.kms#PlaintextType", "traits": { - "smithy.api#documentation": "

Specifies the message or message digest to sign. Messages can be 0-4096 bytes. To sign a\n larger message, provide the message digest.

\n

If you provide a message, AWS KMS generates a hash digest of the message and then signs\n it.

", + "smithy.api#documentation": "

Specifies the message or message digest to sign. Messages can be 0-4096 bytes. To sign a\n larger message, provide the message digest.

\n

If you provide a message, KMS generates a hash digest of the message and then signs\n it.

", "smithy.api#required": {} } }, "MessageType": { "target": "com.amazonaws.kms#MessageType", "traits": { - "smithy.api#documentation": "

Tells AWS KMS whether the value of the Message parameter is a message or\n message digest. The default value, RAW, indicates a message. To indicate a message digest,\n enter DIGEST.

" + "smithy.api#documentation": "

Tells KMS whether the value of the Message parameter is a message or\n message digest. The default value, RAW, indicates a message. To indicate a message digest,\n enter DIGEST.

" } }, "GrantTokens": { "target": "com.amazonaws.kms#GrantTokenList", "traits": { - "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token in the\n AWS Key Management Service Developer Guide.

" + "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token and Using a grant token in the\n Key Management Service Developer Guide.

" } }, "SigningAlgorithm": { "target": "com.amazonaws.kms#SigningAlgorithmSpec", "traits": { - "smithy.api#documentation": "

Specifies the signing algorithm to use when signing the message.

\n

Choose an algorithm that is compatible with the type and size of the specified asymmetric\n CMK.

", + "smithy.api#documentation": "

Specifies the signing algorithm to use when signing the message.

\n

Choose an algorithm that is compatible with the type and size of the specified asymmetric KMS key.

", "smithy.api#required": {} } } @@ -4470,13 +4663,13 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the asymmetric CMK that was used to sign the message.

" + "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the asymmetric KMS key that was used to sign the message.

" } }, "Signature": { "target": "com.amazonaws.kms#CiphertextType", "traits": { - "smithy.api#documentation": "

The cryptographic signature that was generated for the message.

\n \n

When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

" + "smithy.api#documentation": "

The cryptographic signature that was generated for the message.

\n \n

When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

" } }, "SigningAlgorithm": { @@ -4555,7 +4748,7 @@ } }, "traits": { - "smithy.api#documentation": "

A key-value pair. A tag consists of a tag key and a tag value. Tag keys and tag values are\n both required, but tag values can be empty (null) strings.

\n

For information about the rules that apply to tag keys and tag values, see User-Defined Tag Restrictions in the AWS Billing and Cost Management User\n Guide.

" + "smithy.api#documentation": "

A key-value pair. A tag consists of a tag key and a tag value. Tag keys and tag values are\n both required, but tag values can be empty (null) strings.

\n

For information about the rules that apply to tag keys and tag values, see User-Defined Tag Restrictions in the Amazon Web Services Billing and Cost Management User\n Guide.

" } }, "com.amazonaws.kms#TagException": { @@ -4566,6 +4759,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "TagException", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

The request was rejected because one or more tags are not valid.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -4618,7 +4815,7 @@ } ], "traits": { - "smithy.api#documentation": "

Adds or edits tags on a customer managed CMK.

\n \n

Tagging or untagging a CMK can allow or deny permission to the\n CMK. For details, see Using ABAC in AWS KMS in the AWS Key Management Service Developer Guide.

\n
\n

Each tag consists of a tag key and a tag value, both of which are case-sensitive strings.\n The tag value can be an empty (null) string. To add a tag, specify a new tag key and a tag\n value. To edit a tag, specify an existing tag key and a new tag value.

\n

You can use this operation to tag a customer managed CMK, but you cannot\n tag an AWS\n managed CMK, an AWS owned CMK, a custom key store, or\n an alias.

\n

You can also add tags to a CMK while creating it (CreateKey) or replicating it (ReplicateKey).

\n

For information about using tags in AWS KMS, see Tagging keys. For general information about\n tags, including the format and syntax, see Tagging AWS resources in the Amazon\n Web Services General Reference.

\n

The CMK that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your CMK in the AWS Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a CMK in a different AWS account.

\n \n

\n Required permissions: kms:TagResource (key policy)

\n

\n Related operations\n

\n " + "smithy.api#documentation": "

Adds or edits tags on a customer managed key.

\n \n

Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see Using ABAC in KMS in the Key Management Service Developer Guide.

\n
\n

Each tag consists of a tag key and a tag value, both of which are case-sensitive strings.\n The tag value can be an empty (null) string. To add a tag, specify a new tag key and a tag\n value. To edit a tag, specify an existing tag key and a new tag value.

\n

You can use this operation to tag a customer managed key, but you cannot\n tag an Amazon Web Services managed key, an Amazon Web Services owned key, a custom key store, or\n an alias.

\n

You can also add tags to a KMS key while creating it (CreateKey) or replicating it (ReplicateKey).

\n

For information about using tags in KMS, see Tagging keys. For general information about\n tags, including the format and syntax, see Tagging Amazon Web Services resources in the Amazon\n Web Services General Reference.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:TagResource (key policy)

\n

\n Related operations\n

\n " } }, "com.amazonaws.kms#TagResourceRequest": { @@ -4627,14 +4824,14 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Identifies a customer managed CMK in the account and Region.

\n \n

Specify the key ID or key ARN of the CMK.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

Identifies a customer managed key in the account and Region.

\n \n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } }, "Tags": { "target": "com.amazonaws.kms#TagList", "traits": { - "smithy.api#documentation": "

One or more tags.

\n

Each tag consists of a tag key and a tag value. The tag value can be an empty (null)\n string.

\n

You cannot have more than one tag on a CMK with the same tag key. If you specify an\n existing tag key with a different tag value, AWS KMS replaces the current tag value with the\n specified one.

", + "smithy.api#documentation": "

One or more tags.

\n

Each tag consists of a tag key and a tag value. The tag value can be an empty (null)\n string.

\n

You cannot have more than one tag on a KMS key with the same tag key. If you specify an\n existing tag key with a different tag value, KMS replaces the current tag value with the\n specified one.

", "smithy.api#required": {} } } @@ -4810,7 +5007,7 @@ "name": "kms" }, "aws.protocols#awsJson1_1": {}, - "smithy.api#documentation": "AWS Key Management Service\n

AWS Key Management Service (AWS KMS) is an encryption and key management web service. This guide describes\n the AWS KMS operations that you can call programmatically. For general information about AWS KMS,\n see the \n AWS Key Management Service Developer Guide\n .

\n \n

AWS provides SDKs that consist of libraries and sample code for various programming\n languages and platforms (Java, Ruby, .Net, macOS, Android, etc.). The SDKs provide a\n convenient way to create programmatic access to AWS KMS and other AWS services. For example,\n the SDKs take care of tasks such as signing requests (see below), managing errors, and\n retrying requests automatically. For more information about the AWS SDKs, including how to\n download and install them, see Tools for Amazon Web\n Services.

\n
\n

We recommend that you use the AWS SDKs to make programmatic API calls to AWS KMS.

\n

Clients must support TLS (Transport Layer Security) 1.0. We recommend TLS 1.2. Clients\n must also support cipher suites with Perfect Forward Secrecy (PFS) such as Ephemeral\n Diffie-Hellman (DHE) or Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). Most modern systems\n such as Java 7 and later support these modes.

\n

\n Signing Requests\n

\n

Requests must be signed by using an access key ID and a secret access key. We strongly\n recommend that you do not use your AWS account (root) access key ID and\n secret key for everyday work with AWS KMS. Instead, use the access key ID and secret access key\n for an IAM user. You can also use the AWS Security Token Service to generate temporary\n security credentials that you can use to sign requests.

\n

All AWS KMS operations require Signature Version 4.

\n

\n Logging API Requests\n

\n

AWS KMS supports AWS CloudTrail, a service that logs AWS API calls and related events for your AWS\n account and delivers them to an Amazon S3 bucket that you specify. By using the information\n collected by CloudTrail, you can determine what requests were made to AWS KMS, who made the request,\n when it was made, and so on. To learn more about CloudTrail, including how to turn it on and find\n your log files, see the AWS CloudTrail User Guide.

\n

\n Additional Resources\n

\n

For more information about credentials and request signing, see the following:

\n \n

\n Commonly Used API Operations\n

\n

Of the API operations discussed in this guide, the following will prove the most useful\n for most applications. You will likely perform operations other than these, such as creating\n keys and assigning policies, by using the console.

\n ", + "smithy.api#documentation": "Key Management Service\n

Key Management Service (KMS) is an encryption and key management web service. This guide describes\n the KMS operations that you can call programmatically. For general information about KMS,\n see the \n Key Management Service Developer Guide\n .

\n \n

KMS is replacing the term customer master key (CMK) with KMS key and KMS key. The concept has not changed. To prevent breaking changes, KMS is keeping some variations of this term.

\n

Amazon Web Services provides SDKs that consist of libraries and sample code for various programming\n languages and platforms (Java, Ruby, .Net, macOS, Android, etc.). The SDKs provide a\n convenient way to create programmatic access to KMS and other Amazon Web Services services. For example,\n the SDKs take care of tasks such as signing requests (see below), managing errors, and\n retrying requests automatically. For more information about the Amazon Web Services SDKs, including how to\n download and install them, see Tools for Amazon Web\n Services.

\n
\n

We recommend that you use the Amazon Web Services SDKs to make programmatic API calls to KMS.

\n

Clients must support TLS (Transport Layer Security) 1.0. We recommend TLS 1.2. Clients\n must also support cipher suites with Perfect Forward Secrecy (PFS) such as Ephemeral\n Diffie-Hellman (DHE) or Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). Most modern systems\n such as Java 7 and later support these modes.

\n

\n Signing Requests\n

\n

Requests must be signed by using an access key ID and a secret access key. We strongly\n recommend that you do not use your Amazon Web Services account (root) access key ID and\n secret key for everyday work with KMS. Instead, use the access key ID and secret access key\n for an IAM user. You can also use the Amazon Web Services Security Token Service to generate temporary\n security credentials that you can use to sign requests.

\n

All KMS operations require Signature Version 4.

\n

\n Logging API Requests\n

\n

KMS supports CloudTrail, a service that logs Amazon Web Services API calls and related events for your Amazon Web Services account and delivers them to an Amazon S3 bucket that you specify. By using the information\n collected by CloudTrail, you can determine what requests were made to KMS, who made the request,\n when it was made, and so on. To learn more about CloudTrail, including how to turn it on and find\n your log files, see the CloudTrail User Guide.

\n

\n Additional Resources\n

\n

For more information about credentials and request signing, see the following:

\n \n

\n Commonly Used API Operations\n

\n

Of the API operations discussed in this guide, the following will prove the most useful\n for most applications. You will likely perform operations other than these, such as creating\n keys and assigning policies, by using the console.

\n ", "smithy.api#title": "AWS Key Management Service", "smithy.api#xmlNamespace": { "uri": "https://trent.amazonaws.com/doc/2014-11-01/" @@ -4834,6 +5031,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "UnsupportedOperation", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

The request was rejected because a specified parameter is not supported or a specified\n resource is not valid for this operation.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -4862,7 +5063,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes tags from a customer managed CMK. To delete a tag,\n specify the tag key and the CMK.

\n \n

Tagging or untagging a CMK can allow or deny permission to the\n CMK. For details, see Using ABAC in AWS KMS in the AWS Key Management Service Developer Guide.

\n
\n

When it succeeds, the UntagResource operation doesn't return any output.\n Also, if the specified tag key isn't found on the CMK, it doesn't throw an exception or return\n a response. To confirm that the operation worked, use the ListResourceTags operation.

\n \n

For information about using tags in AWS KMS, see Tagging keys. For general information about\n tags, including the format and syntax, see Tagging AWS resources in the Amazon\n Web Services General Reference.

\n

The CMK that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your CMK in the AWS Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a CMK in a different AWS account.

\n \n

\n Required permissions: kms:UntagResource (key policy)

\n

\n Related operations\n

\n " + "smithy.api#documentation": "

Deletes tags from a customer managed key. To delete a tag,\n specify the tag key and the KMS key.

\n \n

Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see Using ABAC in KMS in the Key Management Service Developer Guide.

\n
\n

When it succeeds, the UntagResource operation doesn't return any output.\n Also, if the specified tag key isn't found on the KMS key, it doesn't throw an exception or return\n a response. To confirm that the operation worked, use the ListResourceTags operation.

\n \n

For information about using tags in KMS, see Tagging keys. For general information about\n tags, including the format and syntax, see Tagging Amazon Web Services resources in the Amazon\n Web Services General Reference.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:UntagResource (key policy)

\n

\n Related operations\n

\n " } }, "com.amazonaws.kms#UntagResourceRequest": { @@ -4871,7 +5072,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Identifies the CMK from which you are removing tags.

\n \n

Specify the key ID or key ARN of the CMK.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

Identifies the KMS key from which you are removing tags.

\n \n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } }, @@ -4907,7 +5108,7 @@ } ], "traits": { - "smithy.api#documentation": "

Associates an existing AWS KMS alias with a different customer master key (CMK). Each alias\n is associated with only one CMK at a time, although a CMK can have multiple aliases. The alias\n and the CMK must be in the same AWS account and Region.

\n \n

Adding, deleting, or updating an alias can allow or deny permission to the CMK. For details, see Using ABAC in AWS KMS in the AWS Key Management Service Developer Guide.

\n
\n

The current and new CMK must be the same type (both symmetric or both asymmetric), and\n they must have the same key usage (ENCRYPT_DECRYPT or SIGN_VERIFY).\n This restriction prevents errors in code that uses aliases. If you must assign an alias to a\n different type of CMK, use DeleteAlias to delete the old alias and CreateAlias to create a new alias.

\n

You cannot use UpdateAlias to change an alias name. To change an alias name,\n use DeleteAlias to delete the old alias and CreateAlias to\n create a new alias.

\n

Because an alias is not a property of a CMK, you can create, update, and delete the\n aliases of a CMK without affecting the CMK. Also, aliases do not appear in the response from\n the DescribeKey operation. To get the aliases of all CMKs in the account,\n use the ListAliases operation.

\n

The CMK that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your CMK in the AWS Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a CMK in a different AWS account.

\n

\n Required permissions\n

\n \n

For details, see Controlling access to aliases in the AWS Key Management Service Developer Guide.

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Associates an existing KMS alias with a different KMS key. Each alias\n is associated with only one KMS key at a time, although a KMS key can have multiple aliases. The alias\n and the KMS key must be in the same Amazon Web Services account and Region.

\n \n

Adding, deleting, or updating an alias can allow or deny permission to the KMS key. For details, see Using ABAC in KMS in the Key Management Service Developer Guide.

\n
\n

The current and new KMS key must be the same type (both symmetric or both asymmetric), and\n they must have the same key usage (ENCRYPT_DECRYPT or SIGN_VERIFY).\n This restriction prevents errors in code that uses aliases. If you must assign an alias to a\n different type of KMS key, use DeleteAlias to delete the old alias and CreateAlias to create a new alias.

\n

You cannot use UpdateAlias to change an alias name. To change an alias name,\n use DeleteAlias to delete the old alias and CreateAlias to\n create a new alias.

\n

Because an alias is not a property of a KMS key, you can create, update, and delete the\n aliases of a KMS key without affecting the KMS key. Also, aliases do not appear in the response from\n the DescribeKey operation. To get the aliases of all KMS keys in the account,\n use the ListAliases operation.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n

\n Required permissions\n

\n \n

For details, see Controlling access to aliases in the Key Management Service Developer Guide.

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#UpdateAliasRequest": { @@ -4916,14 +5117,14 @@ "AliasName": { "target": "com.amazonaws.kms#AliasNameType", "traits": { - "smithy.api#documentation": "

Identifies the alias that is changing its CMK. This value must begin with\n alias/ followed by the alias name, such as alias/ExampleAlias. You\n cannot use UpdateAlias to change the alias name.

", + "smithy.api#documentation": "

Identifies the alias that is changing its KMS key. This value must begin with\n alias/ followed by the alias name, such as alias/ExampleAlias. You\n cannot use UpdateAlias to change the alias name.

", "smithy.api#required": {} } }, "TargetKeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Identifies the customer managed CMK to associate with the alias. You don't have permission to\n associate an alias with an AWS managed CMK.

\n

The CMK must be in the same AWS account and Region as the alias. Also, the new target CMK\n must be the same type as the current target CMK (both symmetric or both asymmetric) and they\n must have the same key usage.

\n

Specify the key ID or key ARN of the CMK.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

\n

To verify that the alias\n is mapped to the correct CMK, use ListAliases.

", + "smithy.api#documentation": "

Identifies the customer managed key to associate with the alias. You don't have permission\n to associate an alias with an Amazon Web Services managed key.

\n

The KMS key must be in the same Amazon Web Services account and Region as the alias. Also, the new target KMS key\n must be the same type as the current target KMS key (both symmetric or both asymmetric) and they\n must have the same key usage.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

\n

To verify that the alias\n is mapped to the correct KMS key, use ListAliases.

", "smithy.api#required": {} } } @@ -4964,7 +5165,7 @@ } ], "traits": { - "smithy.api#documentation": "

Changes the properties of a custom key store. Use the CustomKeyStoreId\n parameter to identify the custom key store you want to edit. Use the remaining parameters to\n change the properties of the custom key store.

\n

You can only update a custom key store that is disconnected. To disconnect the custom key\n store, use DisconnectCustomKeyStore. To reconnect the custom key store after\n the update completes, use ConnectCustomKeyStore. To find the connection\n state of a custom key store, use the DescribeCustomKeyStores\n operation.

\n

Use the parameters of UpdateCustomKeyStore to edit your keystore\n settings.

\n \n

If the operation succeeds, it returns a JSON object with no\nproperties.

\n

This operation is part of the Custom Key Store feature feature in AWS KMS, which\ncombines the convenience and extensive integration of AWS KMS with the isolation and control of a\nsingle-tenant key store.

\n\n

\n Cross-account use: No. You cannot perform this operation on a custom key store in a different AWS account.

\n

\n Required permissions: kms:UpdateCustomKeyStore (IAM policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Changes the properties of a custom key store. Use the CustomKeyStoreId\n parameter to identify the custom key store you want to edit. Use the remaining parameters to\n change the properties of the custom key store.

\n

You can only update a custom key store that is disconnected. To disconnect the custom key\n store, use DisconnectCustomKeyStore. To reconnect the custom key store after\n the update completes, use ConnectCustomKeyStore. To find the connection\n state of a custom key store, use the DescribeCustomKeyStores\n operation.

\n

Use the parameters of UpdateCustomKeyStore to edit your keystore\n settings.

\n \n

If the operation succeeds, it returns a JSON object with no\nproperties.

\n

This operation is part of the Custom Key Store feature feature in KMS, which\ncombines the convenience and extensive integration of KMS with the isolation and control of a\nsingle-tenant key store.

\n\n

\n Cross-account use: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.

\n

\n Required permissions: kms:UpdateCustomKeyStore (IAM policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#UpdateCustomKeyStoreRequest": { @@ -4980,19 +5181,19 @@ "NewCustomKeyStoreName": { "target": "com.amazonaws.kms#CustomKeyStoreNameType", "traits": { - "smithy.api#documentation": "

Changes the friendly name of the custom key store to the value that you specify. The\n custom key store name must be unique in the AWS account.

" + "smithy.api#documentation": "

Changes the friendly name of the custom key store to the value that you specify. The\n custom key store name must be unique in the Amazon Web Services account.

" } }, "KeyStorePassword": { "target": "com.amazonaws.kms#KeyStorePasswordType", "traits": { - "smithy.api#documentation": "

Enter the current password of the kmsuser crypto user (CU) in the AWS CloudHSM\n cluster that is associated with the custom key store.

\n

This parameter tells AWS KMS the current password of the kmsuser crypto user\n (CU). It does not set or change the password of any users in the AWS CloudHSM cluster.

" + "smithy.api#documentation": "

Enter the current password of the kmsuser crypto user (CU) in the CloudHSM\n cluster that is associated with the custom key store.

\n

This parameter tells KMS the current password of the kmsuser crypto user\n (CU). It does not set or change the password of any users in the CloudHSM cluster.

" } }, "CloudHsmClusterId": { "target": "com.amazonaws.kms#CloudHsmClusterIdType", "traits": { - "smithy.api#documentation": "

Associates the custom key store with a related AWS CloudHSM cluster.

\n

Enter the cluster ID of the cluster that you used to create the custom key store or a\n cluster that shares a backup history and has the same cluster certificate as the original\n cluster. You cannot use this parameter to associate a custom key store with an unrelated\n cluster. In addition, the replacement cluster must fulfill the requirements for\n a cluster associated with a custom key store. To view the cluster certificate of a cluster,\n use the DescribeClusters operation.

" + "smithy.api#documentation": "

Associates the custom key store with a related CloudHSM cluster.

\n

Enter the cluster ID of the cluster that you used to create the custom key store or a\n cluster that shares a backup history and has the same cluster certificate as the original\n cluster. You cannot use this parameter to associate a custom key store with an unrelated\n cluster. In addition, the replacement cluster must fulfill the requirements for\n a cluster associated with a custom key store. To view the cluster certificate of a cluster,\n use the DescribeClusters operation.

" } } } @@ -5024,7 +5225,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates the description of a customer master key (CMK). To see the description of a CMK,\n use DescribeKey.

\n

The CMK that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your CMK in the AWS Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a CMK in a different AWS account.

\n \n

\n Required permissions: kms:UpdateKeyDescription (key policy)

\n

\n Related operations\n

\n " + "smithy.api#documentation": "

Updates the description of a KMS key. To see the description of a KMS key,\n use DescribeKey.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:UpdateKeyDescription (key policy)

\n

\n Related operations\n

\n " } }, "com.amazonaws.kms#UpdateKeyDescriptionRequest": { @@ -5033,14 +5234,14 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Updates the description of the specified customer master key (CMK).

\n

Specify the key ID or key ARN of the CMK.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

Updates the description of the specified KMS key.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } }, "Description": { "target": "com.amazonaws.kms#DescriptionType", "traits": { - "smithy.api#documentation": "

New description for the CMK.

", + "smithy.api#documentation": "

New description for the KMS key.

", "smithy.api#required": {} } } @@ -5072,7 +5273,7 @@ } ], "traits": { - "smithy.api#documentation": "

Changes the primary key of a multi-Region key.

\n

This operation changes the replica key in the specified Region to a primary key and\n changes the former primary key to a replica key. For example, suppose you have a primary key\n in us-east-1 and a replica key in eu-west-2. If you run\n UpdatePrimaryRegion with a PrimaryRegion value of\n eu-west-2, the primary key is now the key in eu-west-2, and the\n key in us-east-1 becomes a replica key. For details, see

\n

This operation supports multi-Region keys, an AWS KMS feature that lets you create multiple\n interoperable CMKs in different AWS Regions. Because these CMKs have the same key ID, key\n material, and other metadata, you can use them to encrypt data in one AWS Region and decrypt\n it in a different AWS Region without making a cross-Region call or exposing the plaintext data. For more information about multi-Region keys, see Using multi-Region keys in the AWS Key Management Service Developer Guide.

\n

The primary key of a multi-Region key is the source for properties\n that are always shared by primary and replica keys, including the key material, key ID, key spec, key usage, key material\n origin, and automatic\n key rotation. It's the only key that can be replicated. You cannot delete the primary\n key until all replicas are deleted.

\n

The key ID and primary Region that you specify uniquely identify the replica key that will\n become the primary key. The primary Region must already have a replica key. This operation\n does not create a CMK in the specified Region. To find the replica keys, use the DescribeKey operation on the primary key or any replica key. To create a replica\n key, use the ReplicateKey operation.

\n

You can run this operation while using the affected multi-Region keys in cryptographic\n operations. This operation should not delay, interrupt, or cause failures in cryptographic\n operations.

\n

Even after this operation completes, the process of updating the primary Region might\n still be in progress for a few more seconds. Operations such as DescribeKey might\n display both the old and new primary keys as replicas. The old and new primary keys have a\n transient key state of Updating. The original key state is restored when the\n update is complete. While the key state is Updating, you can use the keys in\n cryptographic operations, but you cannot replicate the new primary key or perform certain\n management operations, such as enabling or disabling these keys. For details about the\n Updating key state, see Key state:\n Effect on your CMK in the AWS Key Management Service Developer Guide.

\n

This operation does not return any output. To verify that primary key is changed, use the\n DescribeKey operation.

\n

\n Cross-account use: No. You cannot use this operation in a\n different AWS account.

\n

\n Required permissions:

\n \n

\n Related operations\n

\n " + "smithy.api#documentation": "

Changes the primary key of a multi-Region key.

\n

This operation changes the replica key in the specified Region to a primary key and\n changes the former primary key to a replica key. For example, suppose you have a primary key\n in us-east-1 and a replica key in eu-west-2. If you run\n UpdatePrimaryRegion with a PrimaryRegion value of\n eu-west-2, the primary key is now the key in eu-west-2, and the\n key in us-east-1 becomes a replica key. For details, see Updating the primary Region in the Key Management Service Developer Guide.

\n

This operation supports multi-Region keys, an KMS feature that lets you create multiple\n interoperable KMS keys in different Amazon Web Services Regions. Because these KMS keys have the same key ID, key\n material, and other metadata, you can use them interchangeably to encrypt data in one Amazon Web Services Region and decrypt\n it in a different Amazon Web Services Region without re-encrypting the data or making a cross-Region call. For more information about multi-Region keys, see Using multi-Region keys in the Key Management Service Developer Guide.

\n

The primary key of a multi-Region key is the source for properties\n that are always shared by primary and replica keys, including the key material, key ID, key spec, key usage, key material\n origin, and automatic\n key rotation. It's the only key that can be replicated. You cannot delete the primary\n key until all replica keys are deleted.

\n

The key ID and primary Region that you specify uniquely identify the replica key that will\n become the primary key. The primary Region must already have a replica key. This operation\n does not create a KMS key in the specified Region. To find the replica keys, use the DescribeKey operation on the primary key or any replica key. To create a replica\n key, use the ReplicateKey operation.

\n

You can run this operation while using the affected multi-Region keys in cryptographic\n operations. This operation should not delay, interrupt, or cause failures in cryptographic\n operations.

\n

Even after this operation completes, the process of updating the primary Region might\n still be in progress for a few more seconds. Operations such as DescribeKey might\n display both the old and new primary keys as replicas. The old and new primary keys have a\n transient key state of Updating. The original key state is restored when the\n update is complete. While the key state is Updating, you can use the keys in\n cryptographic operations, but you cannot replicate the new primary key or perform certain\n management operations, such as enabling or disabling these keys. For details about the\n Updating key state, see Key state:\n Effect on your KMS key in the Key Management Service Developer Guide.

\n

This operation does not return any output. To verify that primary key is changed, use the\n DescribeKey operation.

\n

\n Cross-account use: No. You cannot use this operation in a\n different Amazon Web Services account.

\n

\n Required permissions:

\n \n

\n Related operations\n

\n " } }, "com.amazonaws.kms#UpdatePrimaryRegionRequest": { @@ -5081,14 +5282,14 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Identifies the current primary key. When the operation completes, this CMK will be a\n replica key.

\n \n

Specify the key ID or key ARN of a multi-Region primary key.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

Identifies the current primary key. When the operation completes, this KMS key will be a\n replica key.

\n \n

Specify the key ID or key ARN of a multi-Region primary key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } }, "PrimaryRegion": { "target": "com.amazonaws.kms#RegionType", "traits": { - "smithy.api#documentation": "

The AWS Region of the new primary key. Enter the Region ID, such as us-east-1\n or ap-southeast-2. There must be an existing replica key in this Region.

\n

When the operation completes, the multi-Region key in this Region will be the primary\n key.

", + "smithy.api#documentation": "

The Amazon Web Services Region of the new primary key. Enter the Region ID, such as us-east-1\n or ap-southeast-2. There must be an existing replica key in this Region.

\n

When the operation completes, the multi-Region key in this Region will be the primary\n key.

", "smithy.api#required": {} } } @@ -5132,7 +5333,7 @@ } ], "traits": { - "smithy.api#documentation": "

Verifies a digital signature that was generated by the Sign operation.

\n

\n

Verification confirms that an authorized user signed the message with the specified CMK\n and signing algorithm, and the message hasn't changed since it was signed. If the signature is\n verified, the value of the SignatureValid field in the response is\n True. If the signature verification fails, the Verify operation\n fails with an KMSInvalidSignatureException exception.

\n

A digital signature is generated by using the private key in an asymmetric CMK. The\n signature is verified by using the public key in the same asymmetric CMK.\n For information about symmetric and asymmetric CMKs, see Using Symmetric and Asymmetric CMKs in the AWS Key Management Service Developer Guide.

\n

To verify a digital signature, you can use the Verify operation. Specify the\n same asymmetric CMK, message, and signing algorithm that were used to produce the\n signature.

\n

You can also verify the digital signature by using the public key of the CMK outside of\n AWS KMS. Use the GetPublicKey operation to download the public key in the\n asymmetric CMK and then use the public key to verify the signature outside of AWS KMS. The\n advantage of using the Verify operation is that it is performed within AWS KMS. As\n a result, it's easy to call, the operation is performed within the FIPS boundary, it is logged\n in AWS CloudTrail, and you can use key policy and IAM policy to determine who is authorized to use\n the CMK to verify signatures.

\n

The CMK that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your CMK in the AWS Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a CMK in a different AWS account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:Verify (key policy)

\n

\n Related operations: Sign\n

" + "smithy.api#documentation": "

Verifies a digital signature that was generated by the Sign operation.

\n

\n

Verification confirms that an authorized user signed the message with the specified KMS key\n and signing algorithm, and the message hasn't changed since it was signed. If the signature is\n verified, the value of the SignatureValid field in the response is\n True. If the signature verification fails, the Verify operation\n fails with an KMSInvalidSignatureException exception.

\n

A digital signature is generated by using the private key in an asymmetric KMS key. The\n signature is verified by using the public key in the same asymmetric KMS key.\n For information about symmetric and asymmetric KMS keys, see Using Symmetric and Asymmetric KMS keys in the Key Management Service Developer Guide.

\n

To verify a digital signature, you can use the Verify operation. Specify the\n same asymmetric KMS key, message, and signing algorithm that were used to produce the\n signature.

\n

You can also verify the digital signature by using the public key of the KMS key outside of\n KMS. Use the GetPublicKey operation to download the public key in the\n asymmetric KMS key and then use the public key to verify the signature outside of KMS. The\n advantage of using the Verify operation is that it is performed within KMS. As\n a result, it's easy to call, the operation is performed within the FIPS boundary, it is logged\n in CloudTrail, and you can use key policy and IAM policy to determine who is authorized to use\n the KMS key to verify signatures.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:Verify (key policy)

\n

\n Related operations: Sign\n

" } }, "com.amazonaws.kms#VerifyRequest": { @@ -5141,7 +5342,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Identifies the asymmetric CMK that will be used to verify the signature. This must be the\n same CMK that was used to generate the signature. If you specify a different CMK, the\n signature verification fails.

\n

To specify a CMK, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "smithy.api#documentation": "

Identifies the asymmetric KMS key that will be used to verify the signature. This must be the\n same KMS key that was used to generate the signature. If you specify a different KMS key, the\n signature verification fails.

\n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", "smithy.api#required": {} } }, @@ -5155,7 +5356,7 @@ "MessageType": { "target": "com.amazonaws.kms#MessageType", "traits": { - "smithy.api#documentation": "

Tells AWS KMS whether the value of the Message parameter is a message or\n message digest. The default value, RAW, indicates a message. To indicate a message digest,\n enter DIGEST.

\n \n

Use the DIGEST value only when the value of the Message\n parameter is a message digest. If you use the DIGEST value with a raw message,\n the security of the verification operation can be compromised.

\n
" + "smithy.api#documentation": "

Tells KMS whether the value of the Message parameter is a message or\n message digest. The default value, RAW, indicates a message. To indicate a message digest,\n enter DIGEST.

\n \n

Use the DIGEST value only when the value of the Message\n parameter is a message digest. If you use the DIGEST value with a raw message,\n the security of the verification operation can be compromised.

\n
" } }, "Signature": { @@ -5175,7 +5376,7 @@ "GrantTokens": { "target": "com.amazonaws.kms#GrantTokenList", "traits": { - "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token in the\n AWS Key Management Service Developer Guide.

" + "smithy.api#documentation": "

A list of grant tokens.

\n

Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see Grant token and Using a grant token in the\n Key Management Service Developer Guide.

" } } } @@ -5186,7 +5387,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the asymmetric CMK that was used to verify the signature.

" + "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the asymmetric KMS key that was used to verify the signature.

" } }, "SignatureValid": { diff --git a/codegen/sdk-codegen/aws-models/lexmodelbuildingservice.2017-04-19.json b/codegen/sdk-codegen/aws-models/lexmodelbuildingservice.2017-04-19.json index c865be54da6..726483e460e 100644 --- a/codegen/sdk-codegen/aws-models/lexmodelbuildingservice.2017-04-19.json +++ b/codegen/sdk-codegen/aws-models/lexmodelbuildingservice.2017-04-19.json @@ -4232,6 +4232,10 @@ { "value": "ja-JP", "name": "JA_JP" + }, + { + "value": "ko-KR", + "name": "KO_KR" } ] } diff --git a/codegen/sdk-codegen/aws-models/mediatailor.2018-04-23.json b/codegen/sdk-codegen/aws-models/mediatailor.2018-04-23.json index 5c29c5a6312..da17d9db34a 100644 --- a/codegen/sdk-codegen/aws-models/mediatailor.2018-04-23.json +++ b/codegen/sdk-codegen/aws-models/mediatailor.2018-04-23.json @@ -256,6 +256,12 @@ "smithy.api#documentation": "

The timestamp of when the channel was created.

" } }, + "FillerSlate": { + "target": "com.amazonaws.mediatailor#SlateSource", + "traits": { + "smithy.api#documentation": "

Contains information about the slate used to fill gaps between programs in the schedule. You must configure FillerSlate if your channel uses an LINEAR PlaybackMode.

" + } + }, "LastModifiedTime": { "target": "com.amazonaws.mediatailor#__timestampUnix", "traits": { @@ -272,7 +278,7 @@ "PlaybackMode": { "target": "com.amazonaws.mediatailor#__string", "traits": { - "smithy.api#documentation": "

The type of playback mode for this channel. Possible values: ONCE or LOOP.

", + "smithy.api#documentation": "

The type of playback mode for this channel.

LINEAR - Programs play back-to-back only once.

LOOP - Programs play back-to-back in an endless loop. When the last program in the schedule plays, playback loops back to the first program in the schedule.

", "smithy.api#required": {} } }, @@ -367,6 +373,12 @@ "smithy.api#required": {} } }, + "FillerSlate": { + "target": "com.amazonaws.mediatailor#SlateSource", + "traits": { + "smithy.api#documentation": "

The slate used to fill gaps between programs in the schedule. You must configure filler slate if your channel uses an LINEAR PlaybackMode.

" + } + }, "Outputs": { "target": "com.amazonaws.mediatailor#RequestOutputs", "traits": { @@ -377,7 +389,7 @@ "PlaybackMode": { "target": "com.amazonaws.mediatailor#PlaybackMode", "traits": { - "smithy.api#documentation": "

The type of playback mode for this channel. The only supported value is LOOP.

", + "smithy.api#documentation": "

The type of playback mode to use for this channel.

LINEAR - The programs in the schedule play once back-to-back in the schedule.

LOOP - The programs in the schedule play back-to-back in an endless loop. When the last program in the schedule stops playing, playback loops back to the first program in the schedule.

", "smithy.api#required": {} } }, @@ -417,6 +429,12 @@ "smithy.api#documentation": "

The timestamp of when the channel was created.

" } }, + "FillerSlate": { + "target": "com.amazonaws.mediatailor#SlateSource", + "traits": { + "smithy.api#documentation": "

Contains information about the slate used to fill gaps between programs in the schedule.

" + } + }, "LastModifiedTime": { "target": "com.amazonaws.mediatailor#__timestampUnix", "traits": { @@ -432,7 +450,7 @@ "PlaybackMode": { "target": "com.amazonaws.mediatailor#__string", "traits": { - "smithy.api#documentation": "

The type of playback for this channel. The only supported value is LOOP.

" + "smithy.api#documentation": "

The channel's playback mode.

" } }, "Tags": { @@ -542,6 +560,12 @@ "smithy.api#documentation": "

The name of the program.

" } }, + "ScheduledStartTime": { + "target": "com.amazonaws.mediatailor#__timestampUnix", + "traits": { + "smithy.api#documentation": "

The date and time that the program is scheduled to start in ISO 8601 format and Coordinated Universal Time (UTC). For example, the value 2021-03-27T17:48:16.751Z represents March 27, 2021 at 17:48:16.751 UTC.

" + } + }, "SourceLocationName": { "target": "com.amazonaws.mediatailor#__string", "traits": { @@ -1135,6 +1159,12 @@ "smithy.api#documentation": "

The timestamp of when the channel was created.

" } }, + "FillerSlate": { + "target": "com.amazonaws.mediatailor#SlateSource", + "traits": { + "smithy.api#documentation": "

Contains information about the slate used to fill gaps between programs in the schedule.

" + } + }, "LastModifiedTime": { "target": "com.amazonaws.mediatailor#__timestampUnix", "traits": { @@ -1150,7 +1180,7 @@ "PlaybackMode": { "target": "com.amazonaws.mediatailor#__string", "traits": { - "smithy.api#documentation": "

The type of playback for this channel. The only supported value is LOOP.

" + "smithy.api#documentation": "

The channel's playback mode.

" } }, "Tags": { @@ -1233,6 +1263,12 @@ "smithy.api#documentation": "

The name of the program.

" } }, + "ScheduledStartTime": { + "target": "com.amazonaws.mediatailor#__timestampUnix", + "traits": { + "smithy.api#documentation": "

The date and time that the program is scheduled to start in ISO 8601 format and Coordinated Universal Time (UTC). For example, the value 2021-03-27T17:48:16.751Z represents March 27, 2021 at 17:48:16.751 UTC.

" + } + }, "SourceLocationName": { "target": "com.amazonaws.mediatailor#__string", "traits": { @@ -2440,6 +2476,10 @@ { "value": "LOOP", "name": "LOOP" + }, + { + "value": "LINEAR", + "name": "LINEAR" } ] } @@ -2752,7 +2792,7 @@ } }, "traits": { - "smithy.api#documentation": "

The ouput configuration for this channel.

" + "smithy.api#documentation": "

The output configuration for this channel.

" } }, "com.amazonaws.mediatailor#RequestOutputs": { @@ -2900,6 +2940,12 @@ "smithy.api#documentation": "

The schedule's ad break properties.

" } }, + "ScheduleEntryType": { + "target": "com.amazonaws.mediatailor#ScheduleEntryType", + "traits": { + "smithy.api#documentation": "

The type of schedule entry.

Valid values: PROGRAM or FILLER_SLATE.

" + } + }, "SourceLocationName": { "target": "com.amazonaws.mediatailor#__string", "traits": { @@ -2919,6 +2965,21 @@ "smithy.api#documentation": "

The properties for a schedule.

" } }, + "com.amazonaws.mediatailor#ScheduleEntryType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "PROGRAM", + "name": "PROGRAM" + }, + { + "value": "FILLER_SLATE", + "name": "FILLER_SLATE" + } + ] + } + }, "com.amazonaws.mediatailor#SecretsManagerAccessTokenConfiguration": { "type": "structure", "members": { @@ -3171,7 +3232,7 @@ "RelativePosition": { "target": "com.amazonaws.mediatailor#RelativePosition", "traits": { - "smithy.api#documentation": "

The position where this program will be inserted relative to the RelativeProgram. Possible values are: AFTER_PROGRAM, and BEFORE_PROGRAM.

", + "smithy.api#documentation": "

The position where this program will be inserted relative to the RelativePosition.

", "smithy.api#required": {} } }, @@ -3181,10 +3242,16 @@ "smithy.api#documentation": "

The name of the program that this program will be inserted next to, as defined by RelativePosition.

" } }, + "ScheduledStartTimeMillis": { + "target": "com.amazonaws.mediatailor#__long", + "traits": { + "smithy.api#documentation": "

The date and time that the program is scheduled to start, in epoch milliseconds.

" + } + }, "Type": { "target": "com.amazonaws.mediatailor#__string", "traits": { - "smithy.api#documentation": "

When the program should be played. RELATIVE means that programs will be played back-to-back.

", + "smithy.api#documentation": "

Defines when the program plays in the schedule. You can set the value to ABSOLUTE or RELATIVE.

ABSOLUTE - The program plays at a specific wall clock time. This setting can only be used for channels using the LINEAR PlaybackMode.

Note the following considerations when using ABSOLUTE transitions:

If the preceding program in the schedule has a duration that extends past the wall clock time, MediaTailor truncates the preceding program on a common segment boundary.

If there are gaps in playback, MediaTailor plays the FillerSlate you configured for your linear channel.

RELATIVE - The program is inserted into the schedule either before or after a program that you specify via RelativePosition.

", "smithy.api#required": {} } } @@ -3312,6 +3379,12 @@ "smithy.api#documentation": "

The timestamp of when the channel was created.

" } }, + "FillerSlate": { + "target": "com.amazonaws.mediatailor#SlateSource", + "traits": { + "smithy.api#documentation": "

Contains information about the slate used to fill gaps between programs in the schedule.

" + } + }, "LastModifiedTime": { "target": "com.amazonaws.mediatailor#__timestampUnix", "traits": { @@ -3327,7 +3400,7 @@ "PlaybackMode": { "target": "com.amazonaws.mediatailor#__string", "traits": { - "smithy.api#documentation": "

The type of playback for this channel. The only supported value is LOOP.

" + "smithy.api#documentation": "

The channel's playback mode.

" } }, "Tags": { diff --git a/codegen/sdk-codegen/aws-models/memorydb.2021-01-01.json b/codegen/sdk-codegen/aws-models/memorydb.2021-01-01.json index 94a1be9bec2..d4527604b6c 100644 --- a/codegen/sdk-codegen/aws-models/memorydb.2021-01-01.json +++ b/codegen/sdk-codegen/aws-models/memorydb.2021-01-01.json @@ -351,7 +351,7 @@ "name": "memorydb" }, "aws.protocols#awsJson1_1": {}, - "smithy.api#documentation": "

Amazon MemoryDB for Redis is a fully managed, Redis-compatible, in-memory database that delivers ultra-fast performance and Multi-AZ durability for modern applications built using microservices architectures.\n \n MemoryDB stores the entire database in-memory, enabling low latency and high throughput data access. It is compatible with Redis, a popular open source data store, enabling you to leverage Redis’ flexible and friendly data structures, APIs, and commands.

", + "smithy.api#documentation": "

MemoryDB for Redis is a fully managed, Redis-compatible, in-memory database that delivers ultra-fast performance and Multi-AZ durability for modern applications built using microservices architectures.\n \n MemoryDB stores the entire database in-memory, enabling low latency and high throughput data access. It is compatible with Redis, a popular open source data store, enabling you to leverage Redis’ flexible and friendly data structures, APIs, and commands.

", "smithy.api#title": "Amazon MemoryDB", "smithy.api#xmlNamespace": { "uri": "http://memorydb.amazonaws.com/doc/2021-01-01/" @@ -447,7 +447,7 @@ } ], "traits": { - "smithy.api#documentation": "

Apply the service update to a list of clusters supplied. For more information on service updates and applying them, see Applying the service updates.

" + "smithy.api#documentation": "

Apply the service update to a list of clusters supplied. For more information on service updates and applying them, see Applying the service updates.

" } }, "com.amazonaws.memorydb#BatchUpdateClusterRequest": { @@ -900,7 +900,7 @@ "TargetBucket": { "target": "com.amazonaws.memorydb#TargetBucket", "traits": { - "smithy.api#documentation": "

The Amazon S3 bucket to which the snapshot is exported. This parameter is used only when exporting a snapshot for external access.\n \n When using this parameter to export a snapshot, be sure MemoryDB has the needed permissions to this S3 bucket. For more information, see \n \n Step 2: Grant MemoryDB Access to Your Amazon S3 Bucket. \n \n

" + "smithy.api#documentation": "

The Amazon S3 bucket to which the snapshot is exported. This parameter is used only when exporting a snapshot for external access.\n \n When using this parameter to export a snapshot, be sure MemoryDB has the needed permissions to this S3 bucket. For more information, see \n \n Step 2: Grant MemoryDB Access to Your Amazon S3 Bucket. \n \n

" } }, "KmsKeyId": { @@ -960,7 +960,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates an Access Control List. For more information, see Authenticating users with Access Contol Lists (ACLs).

" + "smithy.api#documentation": "

Creates an Access Control List. For more information, see Authenticating users with Access Contol Lists (ACLs).

" } }, "com.amazonaws.memorydb#CreateACLRequest": { @@ -1092,13 +1092,13 @@ "NumShards": { "target": "com.amazonaws.memorydb#IntegerOptional", "traits": { - "smithy.api#documentation": "

The number of shards the cluster will contain.

\n

Clusters can have up to 500 shards, with your data partitioned across the shards. For example, you can choose to configure a 500 node cluster that ranges between \n\t\t\t83 shards (one primary and 5 replicas per shard) and 500 shards (single primary and no replicas). Make sure there are enough available IP addresses to accommodate the increase. \n\t\t\tCommon pitfalls include the subnets in the subnet group have too small a CIDR range or the subnets are shared and heavily used by other clusters.

" + "smithy.api#documentation": "

The number of shards the cluster will contain. The default value is 1.

" } }, "NumReplicasPerShard": { "target": "com.amazonaws.memorydb#IntegerOptional", "traits": { - "smithy.api#documentation": "

The number of replicas to apply to each shard. The limit is 5.

" + "smithy.api#documentation": "

The number of replicas to apply to each shard. The default value is 1. The maximum is 5.

" } }, "SubnetGroupName": { @@ -1237,7 +1237,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a new MemoryDB parameter group. A parameter group is a collection of parameters and their values that are applied to all of the nodes in any cluster. For \n more information, see Configuring engine parameters using parameter groups.\n \n

" + "smithy.api#documentation": "

Creates a new MemoryDB parameter group. A parameter group is a collection of parameters and their values that are applied to all of the nodes in any cluster. For \n more information, see Configuring engine parameters using parameter groups.\n \n

" } }, "com.amazonaws.memorydb#CreateParameterGroupRequest": { @@ -1394,7 +1394,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a subnet group. A subnet group is a collection of subnets (typically private) that you can designate for your clusters running in an Amazon Virtual Private Cloud (VPC) environment.\n \n When you create a cluster in an Amazon VPC, you must specify a subnet group. MemoryDB uses that subnet group to choose a subnet and IP addresses within that subnet to associate with your nodes. \n For more information, see Subnets and subnet groups.

" + "smithy.api#documentation": "

Creates a subnet group. A subnet group is a collection of subnets (typically private) that you can designate for your clusters running in an Amazon Virtual Private Cloud (VPC) environment.\n \n When you create a cluster in an Amazon VPC, you must specify a subnet group. MemoryDB uses that subnet group to choose a subnet and IP addresses within that subnet to associate with your nodes. \n For more information, see Subnets and subnet groups.

" } }, "com.amazonaws.memorydb#CreateSubnetGroupRequest": { @@ -1468,7 +1468,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a MemoryDB user. For more information, see Authenticating users with Access Contol Lists (ACLs).

" + "smithy.api#documentation": "

Creates a MemoryDB user. For more information, see Authenticating users with Access Contol Lists (ACLs).

" } }, "com.amazonaws.memorydb#CreateUserRequest": { @@ -1551,7 +1551,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes an Access Control List. The ACL must first be disassociated from the cluster before it can be deleted. For more information, see Authenticating users with Access Contol Lists (ACLs).

" + "smithy.api#documentation": "

Deletes an Access Control List. The ACL must first be disassociated from the cluster before it can be deleted. For more information, see Authenticating users with Access Contol Lists (ACLs).

" } }, "com.amazonaws.memorydb#DeleteACLRequest": { @@ -3144,7 +3144,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists all tags currently on a named resource.\n \n A tag is a key-value pair where the key and value are case-sensitive. You can use tags to categorize and track your MemoryDB resources. \n For more information, see Tagging your MemoryDB resources\n

" + "smithy.api#documentation": "

Lists all tags currently on a named resource.\n \n A tag is a key-value pair where the key and value are case-sensitive. You can use tags to categorize and track your MemoryDB resources. \n For more information, see Tagging your MemoryDB resources\n

" } }, "com.amazonaws.memorydb#ListTagsRequest": { @@ -3911,6 +3911,7 @@ "code": "ShardNotFoundFault", "httpResponseCode": 404 }, + "smithy.api#documentation": "

", "smithy.api#error": "client", "smithy.api#httpError": 404 } @@ -4311,7 +4312,7 @@ } }, "traits": { - "smithy.api#documentation": "

A tag that can be added to an MemoryDB resource. Tags are composed of a Key/Value pair. You can use tags to categorize and track all your MemoryDB resources. \n When you add or remove tags on clusters, those actions will be replicated to all nodes in the cluster. A tag with a null Value is permitted. For more information, see \n Tagging your MemoryDB resources\n

" + "smithy.api#documentation": "

A tag that can be added to an MemoryDB resource. Tags are composed of a Key/Value pair. You can use tags to categorize and track all your MemoryDB resources. \n When you add or remove tags on clusters, those actions will be replicated to all nodes in the cluster. A tag with a null Value is permitted. For more information, see \n Tagging your MemoryDB resources\n

" } }, "com.amazonaws.memorydb#TagList": { @@ -4404,7 +4405,7 @@ } ], "traits": { - "smithy.api#documentation": "

A tag is a key-value pair where the key and value are case-sensitive. You can use tags to categorize and track all your MemoryDB resources. \n\n When you add or remove tags on clusters, those actions will be replicated to all nodes in the cluster. For more information, see \n\n Resource-level permissions.

\n \n

For example, you can use cost-allocation tags to your MemoryDB resources, Amazon generates a cost allocation report as a comma-separated value \n (CSV) file with your usage and costs aggregated by your tags. You can apply tags that represent business categories \n (such as cost centers, application names, or owners) to organize your costs across multiple services.\n \n For more information, see Using Cost Allocation Tags.

" + "smithy.api#documentation": "

A tag is a key-value pair where the key and value are case-sensitive. You can use tags to categorize and track all your MemoryDB resources. \n\n When you add or remove tags on clusters, those actions will be replicated to all nodes in the cluster. For more information, see \n\n Resource-level permissions.

\n \n

For example, you can use cost-allocation tags to your MemoryDB resources, Amazon generates a cost allocation report as a comma-separated value \n (CSV) file with your usage and costs aggregated by your tags. You can apply tags that represent business categories \n (such as cost centers, application names, or owners) to organize your costs across multiple services.\n \n For more information, see Using Cost Allocation Tags.

" } }, "com.amazonaws.memorydb#TagResourceRequest": { @@ -4894,7 +4895,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates a subnet group. For more information, see Updating a subnet group\n

" + "smithy.api#documentation": "

Updates a subnet group. For more information, see Updating a subnet group\n

" } }, "com.amazonaws.memorydb#UpdateSubnetGroupRequest": { diff --git a/codegen/sdk-codegen/aws-models/polly.2016-06-10.json b/codegen/sdk-codegen/aws-models/polly.2016-06-10.json index aaae64c067a..b465f7e172a 100644 --- a/codegen/sdk-codegen/aws-models/polly.2016-06-10.json +++ b/codegen/sdk-codegen/aws-models/polly.2016-06-10.json @@ -550,6 +550,10 @@ { "value": "en-NZ", "name": "en_NZ" + }, + { + "value": "en-ZA", + "name": "en_ZA" } ] } @@ -1935,6 +1939,10 @@ { "value": "Aria", "name": "Aria" + }, + { + "value": "Ayanda", + "name": "Ayanda" } ] } diff --git a/codegen/sdk-codegen/aws-models/quicksight.2018-04-01.json b/codegen/sdk-codegen/aws-models/quicksight.2018-04-01.json index 9f4ec6d2e92..7e5f25fef86 100644 --- a/codegen/sdk-codegen/aws-models/quicksight.2018-04-01.json +++ b/codegen/sdk-codegen/aws-models/quicksight.2018-04-01.json @@ -54,12 +54,12 @@ "DefaultTheme": { "target": "com.amazonaws.quicksight#Arn", "traits": { - "smithy.api#documentation": "

The default theme for this QuickSight subscription.

" + "smithy.api#documentation": "

The default theme for this Amazon QuickSight subscription.

" } } }, "traits": { - "smithy.api#documentation": "

The Amazon QuickSight customizations associated with your Amazon Web Services account; or a QuickSight namespace in a specific Amazon Web Services Region;.

" + "smithy.api#documentation": "

The Amazon QuickSight customizations associated with your Amazon Web Services account or a Amazon QuickSight namespace in a specific Amazon Web Services Region;.

" } }, "com.amazonaws.quicksight#AccountSettings": { @@ -68,30 +68,30 @@ "AccountName": { "target": "com.amazonaws.quicksight#String", "traits": { - "smithy.api#documentation": "

The \"account name\" you provided for the QuickSight subscription in your Amazon Web Services account;. \n You create this name when you sign up for QuickSight. It is unique in all of Amazon Web Services and \n it appears only when users sign in.

" + "smithy.api#documentation": "

The \"account name\" you provided for the Amazon QuickSight subscription in your Amazon Web Services account.\n You create this name when you sign up for Amazon QuickSight. It is unique in all of Amazon Web Services and\n it appears only when users sign in.

" } }, "Edition": { "target": "com.amazonaws.quicksight#Edition", "traits": { - "smithy.api#documentation": "

The edition of QuickSight that you're currently subscribed to:\n Enterprise edition or Standard edition.

" + "smithy.api#documentation": "

The edition of Amazon QuickSight that you're currently subscribed to:\n Enterprise edition or Standard edition.

" } }, "DefaultNamespace": { "target": "com.amazonaws.quicksight#Namespace", "traits": { - "smithy.api#documentation": "

The default QuickSight namespace for your Amazon Web Services account;.

" + "smithy.api#documentation": "

The default Amazon QuickSight namespace for your Amazon Web Services account.

" } }, "NotificationEmail": { "target": "com.amazonaws.quicksight#String", "traits": { - "smithy.api#documentation": "

The main notification email for your QuickSight subscription.

" + "smithy.api#documentation": "

The main notification email for your Amazon QuickSight subscription.

" } } }, "traits": { - "smithy.api#documentation": "

The QuickSight settings associated with your Amazon Web Services account;.

" + "smithy.api#documentation": "

The Amazon QuickSight settings associated with your Amazon Web Services account.

" } }, "com.amazonaws.quicksight#ActionList": { @@ -112,7 +112,7 @@ "AssignmentName": { "target": "com.amazonaws.quicksight#IAMPolicyAssignmentName", "traits": { - "smithy.api#documentation": "

A name for the IAM policy assignment.

" + "smithy.api#documentation": "

A name for the IAMpolicy assignment.

" } }, "PolicyArn": { @@ -174,13 +174,13 @@ "Domain": { "target": "com.amazonaws.quicksight#Domain", "traits": { - "smithy.api#documentation": "

The Amazon Elasticsearch Service domain.

", + "smithy.api#documentation": "

The Elasticsearch domain.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

Amazon Elasticsearch Service parameters.

" + "smithy.api#documentation": "

The parameters for Elasticsearch.

" } }, "com.amazonaws.quicksight#Analysis": { @@ -268,7 +268,7 @@ } }, "traits": { - "smithy.api#documentation": "

A metadata error structure for an analysis.

" + "smithy.api#documentation": "

Analysis error.

" } }, "com.amazonaws.quicksight#AnalysisErrorList": { @@ -441,7 +441,7 @@ "Name": { "target": "com.amazonaws.quicksight#AnalysisName", "traits": { - "smithy.api#documentation": "

The name of the analysis. This name is displayed in the QuickSight console.

" + "smithy.api#documentation": "

The name of the analysis. This name is displayed in the Amazon QuickSight console.\n

" } }, "Status": { @@ -547,7 +547,7 @@ } }, "traits": { - "smithy.api#documentation": "

Amazon Athena parameters.

" + "smithy.api#documentation": "

Parameters for Amazon Athena.

" } }, "com.amazonaws.quicksight#AuroraParameters": { @@ -576,7 +576,7 @@ } }, "traits": { - "smithy.api#documentation": "

Amazon Aurora parameters.

" + "smithy.api#documentation": "

Parameters for Amazon Aurora.

" } }, "com.amazonaws.quicksight#AuroraPostgreSqlParameters": { @@ -585,27 +585,27 @@ "Host": { "target": "com.amazonaws.quicksight#Host", "traits": { - "smithy.api#documentation": "

Host.

", + "smithy.api#documentation": "

The Amazon Aurora PostgreSQL-Compatible host to connect to.

", "smithy.api#required": {} } }, "Port": { "target": "com.amazonaws.quicksight#Port", "traits": { - "smithy.api#documentation": "

Port.

", + "smithy.api#documentation": "

The port that Amazon Aurora PostgreSQL is listening on.

", "smithy.api#required": {} } }, "Database": { "target": "com.amazonaws.quicksight#Database", "traits": { - "smithy.api#documentation": "

Database.

", + "smithy.api#documentation": "

The Amazon Aurora PostgreSQL database to connect to.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

Amazon Aurora with PostgreSQL compatibility parameters.

" + "smithy.api#documentation": "

Parameters for Amazon Aurora PostgreSQL-Compatible Edition.

" } }, "com.amazonaws.quicksight#AwsAccountId": { @@ -636,7 +636,7 @@ } }, "traits": { - "smithy.api#documentation": "

Amazon Web Services IoT Analytics parameters.

" + "smithy.api#documentation": "

The parameters for IoT Analytics.

" } }, "com.amazonaws.quicksight#Boolean": { @@ -741,7 +741,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The Amazon Web Services account; ID.

", + "smithy.api#documentation": "

The Amazon Web Services account ID.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1006,7 +1006,7 @@ "Principals": { "target": "com.amazonaws.quicksight#PrincipalList", "traits": { - "smithy.api#documentation": "

An array of Amazon Resource Names (ARNs) for QuickSight users or groups.

" + "smithy.api#documentation": "

An array of Amazon Resource Names (ARNs) for Amazon QuickSight users or groups.

" } }, "ColumnNames": { @@ -1017,7 +1017,7 @@ } }, "traits": { - "smithy.api#documentation": "

A rule defined to grant access on one or more restricted columns. \n Each dataset can have multiple rules. \n To create a restricted column, you add it to one or more rules. \n Each rule must contain at least one column and at least one user or group. \n To be able to see a restricted column, a user or group needs to be added \n to a rule for that column.

" + "smithy.api#documentation": "

A rule defined to grant access on one or more restricted columns.\n Each dataset can have multiple rules.\n To create a restricted column, you add it to one or more rules.\n Each rule must contain at least one column and at least one user or group.\n To be able to see a restricted column, a user or group needs to be added\n to a rule for that column.

" } }, "com.amazonaws.quicksight#ColumnLevelPermissionRuleList": { @@ -1133,6 +1133,27 @@ } } }, + "com.amazonaws.quicksight#ColumnTagName": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "COLUMN_GEOGRAPHIC_ROLE", + "name": "COLUMN_GEOGRAPHIC_ROLE" + }, + { + "value": "COLUMN_DESCRIPTION", + "name": "COLUMN_DESCRIPTION" + } + ] + } + }, + "com.amazonaws.quicksight#ColumnTagNames": { + "type": "list", + "member": { + "target": "com.amazonaws.quicksight#ColumnTagName" + } + }, "com.amazonaws.quicksight#ConcurrentUpdatingException": { "type": "structure", "members": { @@ -1206,7 +1227,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates Amazon QuickSight customizations the current Amazon Web Services Region;. Currently, you can\n add a custom default theme by using the CreateAccountCustomization or\n UpdateAccountCustomization API operation. To further customize\n QuickSight by removing QuickSight sample assets and videos for all new users, see Customizing QuickSight in the Amazon QuickSight User\n Guide.\n

\n

You can create customizations for your Amazon Web Services account; or, if you specify a namespace, for\n a QuickSight namespace instead. Customizations that apply to a namespace always override\n customizations that apply to an Amazon Web Services account;. To find out which customizations apply, use\n the DescribeAccountCustomization API operation.

\n

Before you use the CreateAccountCustomization API operation to add a theme \n as the namespace default, make sure that you first share the theme with the namespace. \n If you don't share it with the namespace, the theme isn't visible to your users \n even if you make it the default theme. \n To check if the theme is shared, view the current permissions by using the \n \n DescribeThemePermissions\n API operation.\n To share the theme, grant permissions by using the \n \n UpdateThemePermissions\n API operation.

", + "smithy.api#documentation": "

Creates Amazon QuickSight customizations the current Amazon Web Services Region;. Currently, you can\n add a custom default theme by using the CreateAccountCustomization or\n UpdateAccountCustomization API operation. To further customize\n Amazon QuickSight by removing Amazon QuickSight sample assets and videos for all new users, see Customizing Amazon QuickSight in the Amazon QuickSight User\n Guide.\n

\n

You can create customizations for your Amazon Web Services account or, if you specify a namespace, for\n a Amazon QuickSight namespace instead. Customizations that apply to a namespace always override\n customizations that apply to an Amazon Web Services account. To find out which customizations apply, use\n the DescribeAccountCustomization API operation.

\n

Before you use the CreateAccountCustomization API operation to add a theme \n as the namespace default, make sure that you first share the theme with the namespace. \n If you don't share it with the namespace, the theme isn't visible to your users \n even if you make it the default theme. \n To check if the theme is shared, view the current permissions by using the \n \n DescribeThemePermissions\n API operation.\n To share the theme, grant permissions by using the \n \n UpdateThemePermissions\n API operation.

", "smithy.api#http": { "method": "POST", "uri": "/accounts/{AwsAccountId}/customizations", @@ -1220,7 +1241,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID for the Amazon Web Services account; that you want to customize QuickSight for.

", + "smithy.api#documentation": "

The ID for the Amazon Web Services account that you want to customize Amazon QuickSight for.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1228,14 +1249,14 @@ "Namespace": { "target": "com.amazonaws.quicksight#Namespace", "traits": { - "smithy.api#documentation": "

The QuickSight namespace that you want to add customizations to.

", + "smithy.api#documentation": "

The Amazon QuickSight namespace that you want to add customizations to.

", "smithy.api#httpQuery": "namespace" } }, "AccountCustomization": { "target": "com.amazonaws.quicksight#AccountCustomization", "traits": { - "smithy.api#documentation": "

The QuickSight customizations you're adding in the current Amazon Web Services Region;. You can add\n these to an Amazon Web Services account; and a QuickSight namespace.

\n

For example, you can add a default theme by setting AccountCustomization\n to the midnight theme: \"AccountCustomization\": { \"DefaultTheme\":\n \"arn:aws:quicksight::aws:theme/MIDNIGHT\" }. Or, you can add a custom theme by\n specifying \"AccountCustomization\": { \"DefaultTheme\":\n \"arn:aws:quicksight:us-west-2:111122223333:theme/bdb844d0-0fe9-4d9d-b520-0fe602d93639\"\n }.

", + "smithy.api#documentation": "

The Amazon QuickSight customizations you're adding in the current Amazon Web Services Region;. You can add\n these to an Amazon Web Services account and a Amazon QuickSight namespace.

\n

For example, you can add a default theme by setting AccountCustomization\n to the midnight theme: \"AccountCustomization\": { \"DefaultTheme\":\n \"arn:aws:quicksight::aws:theme/MIDNIGHT\" }. Or, you can add a custom theme by\n specifying \"AccountCustomization\": { \"DefaultTheme\":\n \"arn:aws:quicksight:us-west-2:111122223333:theme/bdb844d0-0fe9-4d9d-b520-0fe602d93639\"\n }.

", "smithy.api#required": {} } }, @@ -1253,13 +1274,13 @@ "Arn": { "target": "com.amazonaws.quicksight#Arn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the customization that you created for this Amazon Web Services account;.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the customization that you created for this Amazon Web Services account.

" } }, "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID for the Amazon Web Services account; that you want to customize QuickSight for.

" + "smithy.api#documentation": "

The ID for the Amazon Web Services account that you want to customize Amazon QuickSight for.

" } }, "Namespace": { @@ -1271,7 +1292,7 @@ "AccountCustomization": { "target": "com.amazonaws.quicksight#AccountCustomization", "traits": { - "smithy.api#documentation": "

The QuickSight customizations you're adding in the current Amazon Web Services Region;.

" + "smithy.api#documentation": "

The Amazon QuickSight customizations you're adding in the current Amazon Web Services Region;.

" } }, "RequestId": { @@ -1335,7 +1356,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; where you are creating an analysis.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account where you are creating an analysis.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1351,7 +1372,7 @@ "Name": { "target": "com.amazonaws.quicksight#AnalysisName", "traits": { - "smithy.api#documentation": "

A descriptive name for the analysis that you're creating. This name displays for the\n analysis in the QuickSight console.

", + "smithy.api#documentation": "

A descriptive name for the analysis that you're creating. This name displays for the\n analysis in the Amazon QuickSight console.

", "smithy.api#required": {} } }, @@ -1377,7 +1398,7 @@ "ThemeArn": { "target": "com.amazonaws.quicksight#Arn", "traits": { - "smithy.api#documentation": "

The ARN for the theme to apply to the analysis that you're creating. To see the theme\n in the QuickSight console, make sure that you have access to it.

" + "smithy.api#documentation": "

The ARN for the theme to apply to the analysis that you're creating. To see the theme\n in the Amazon QuickSight console, make sure that you have access to it.

" } }, "Tags": { @@ -1471,7 +1492,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a dashboard from a template. To first create a template, see the \n CreateTemplate\n API operation.

\n

A dashboard is an entity in QuickSight that identifies QuickSight reports, created\n from analyses. You can share QuickSight dashboards. With the right permissions, you can\n create scheduled email reports from them. If you have the correct permissions, you can\n create a dashboard from a template that exists in a different Amazon Web Services account;.

", + "smithy.api#documentation": "

Creates a dashboard from a template. To first create a template, see the \n CreateTemplate\n API operation.

\n

A dashboard is an entity in Amazon QuickSight that identifies Amazon QuickSight reports, created\n from analyses. You can share Amazon QuickSight dashboards. With the right permissions, you can\n create scheduled email reports from them. If you have the correct permissions, you can\n create a dashboard from a template that exists in a different Amazon Web Services account.

", "smithy.api#http": { "method": "POST", "uri": "/accounts/{AwsAccountId}/dashboards/{DashboardId}", @@ -1485,7 +1506,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; where you want to create the dashboard.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account where you want to create the dashboard.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1493,7 +1514,7 @@ "DashboardId": { "target": "com.amazonaws.quicksight#RestrictiveResourceId", "traits": { - "smithy.api#documentation": "

The ID for the dashboard, also added to the IAM policy.

", + "smithy.api#documentation": "

The ID for the dashboard, also added to the IAMpolicy.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1514,13 +1535,13 @@ "Permissions": { "target": "com.amazonaws.quicksight#ResourcePermissionList", "traits": { - "smithy.api#documentation": "

A structure that contains the permissions of the dashboard. You can use this structure\n for granting permissions by providing a list of IAM action information for each\n principal ARN.

\n\n

To specify no permissions, omit the permissions list.

" + "smithy.api#documentation": "

A structure that contains the permissions of the dashboard. You can use this structure\n for granting permissions by providing a list of IAMaction information for each\n principal ARN.

\n\n

To specify no permissions, omit the permissions list.

" } }, "SourceEntity": { "target": "com.amazonaws.quicksight#DashboardSourceEntity", "traits": { - "smithy.api#documentation": "

The entity that you are using as a source when you create the dashboard. In\n SourceEntity, you specify the type of object you're using as source. You\n can only create a dashboard from a template, so you use a SourceTemplate\n entity. If you need to create a dashboard from an analysis, first convert the analysis\n to a template by using the CreateTemplate API operation. For\n SourceTemplate, specify the Amazon Resource Name (ARN) of the source\n template. The SourceTemplateARN can contain any Amazon Web Services account; and any\n QuickSight-supported Amazon Web Services Region;.

\n

Use the DataSetReferences entity within SourceTemplate to\n list the replacement datasets for the placeholders listed in the original. The schema in\n each dataset must match its placeholder.

", + "smithy.api#documentation": "

The entity that you are using as a source when you create the dashboard. In\n SourceEntity, you specify the type of object you're using as source. You\n can only create a dashboard from a template, so you use a SourceTemplate\n entity. If you need to create a dashboard from an analysis, first convert the analysis\n to a template by using the CreateTemplate API operation. For\n SourceTemplate, specify the Amazon Resource Name (ARN) of the source\n template. The SourceTemplateARN can contain any Amazon Web Services account and any\n Amazon QuickSight-supported Amazon Web Services Region;.

\n

Use the DataSetReferences entity within SourceTemplate to\n list the replacement datasets for the placeholders listed in the original. The schema in\n each dataset must match its placeholder.

", "smithy.api#required": {} } }, @@ -1539,13 +1560,13 @@ "DashboardPublishOptions": { "target": "com.amazonaws.quicksight#DashboardPublishOptions", "traits": { - "smithy.api#documentation": "

Options for publishing the dashboard when you create it:

\n " + "smithy.api#documentation": "

Options for publishing the dashboard when you create it:

\n " } }, "ThemeArn": { "target": "com.amazonaws.quicksight#Arn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the theme that is being used for this dashboard. If\n you add a value for this field, it overrides the value that is used in the source\n entity. The theme ARN must exist in the same Amazon Web Services account; where you create the\n dashboard.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the theme that is being used for this dashboard. If\n you add a value for this field, it overrides the value that is used in the source\n entity. The theme ARN must exist in the same Amazon Web Services account where you create the\n dashboard.

" } } } @@ -1644,7 +1665,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The Amazon Web Services account; ID.

", + "smithy.api#documentation": "

The Amazon Web Services account ID.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1652,7 +1673,7 @@ "DataSetId": { "target": "com.amazonaws.quicksight#ResourceId", "traits": { - "smithy.api#documentation": "

An ID for the dataset that you want to create. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account;.

", + "smithy.api#documentation": "

An ID for the dataset that you want to create. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account.

", "smithy.api#required": {} } }, @@ -1686,7 +1707,7 @@ "ColumnGroups": { "target": "com.amazonaws.quicksight#ColumnGroupList", "traits": { - "smithy.api#documentation": "

Groupings of columns that work together in certain QuickSight features. Currently, only geospatial hierarchy is supported.

" + "smithy.api#documentation": "

Groupings of columns that work together in certain Amazon QuickSight features. Currently, only geospatial hierarchy is supported.

" } }, "FieldFolders": { @@ -1724,6 +1745,9 @@ "traits": { "smithy.api#documentation": "

Contains a map of the key-value pairs for the resource tag or tags assigned to the dataset.

" } + }, + "DataSetUsageConfiguration": { + "target": "com.amazonaws.quicksight#DataSetUsageConfiguration" } } }, @@ -1739,7 +1763,7 @@ "DataSetId": { "target": "com.amazonaws.quicksight#ResourceId", "traits": { - "smithy.api#documentation": "

The ID for the dataset that you want to create. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account;.

" + "smithy.api#documentation": "

The ID for the dataset that you want to create. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account.

" } }, "IngestionArn": { @@ -1818,7 +1842,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The Amazon Web Services account; ID.

", + "smithy.api#documentation": "

The Amazon Web Services account ID.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1826,7 +1850,7 @@ "DataSourceId": { "target": "com.amazonaws.quicksight#ResourceId", "traits": { - "smithy.api#documentation": "

An ID for the data source. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account;.

", + "smithy.api#documentation": "

An ID for the data source. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account.

", "smithy.api#required": {} } }, @@ -1840,20 +1864,20 @@ "Type": { "target": "com.amazonaws.quicksight#DataSourceType", "traits": { - "smithy.api#documentation": "

The type of the data source. Currently, the supported types for this operation are:\n\t\t\tATHENA, AURORA, AURORA_POSTGRESQL, AMAZON_ELASTICSEARCH, MARIADB, MYSQL, POSTGRESQL, PRESTO, REDSHIFT, S3,\n\t\t\tSNOWFLAKE, SPARK, SQLSERVER, TERADATA. \n\t\t\tUse ListDataSources to return a\n\t\t\tlist of all data sources.

\n\t\t

\n AMAZON_ELASTICSEARCH is for Amazon managed Elasticsearch Service.

", + "smithy.api#documentation": "

The type of the data source. To return a\n\t\t\tlist of all data sources, use ListDataSources.

\n\t\t

Use AMAZON_ELASTICSEARCH for Amazon Elasticsearch Service.

", "smithy.api#required": {} } }, "DataSourceParameters": { "target": "com.amazonaws.quicksight#DataSourceParameters", "traits": { - "smithy.api#documentation": "

The parameters that QuickSight uses to connect to your underlying source.

" + "smithy.api#documentation": "

The parameters that Amazon QuickSight uses to connect to your underlying source.

" } }, "Credentials": { "target": "com.amazonaws.quicksight#DataSourceCredentials", "traits": { - "smithy.api#documentation": "

The credentials QuickSight that uses to connect to your underlying source. Currently, only\n\t\t\tcredentials based on user name and password are supported.

" + "smithy.api#documentation": "

The credentials Amazon QuickSight that uses to connect to your underlying source. Currently, only\n\t\t\tcredentials based on user name and password are supported.

" } }, "Permissions": { @@ -1865,13 +1889,13 @@ "VpcConnectionProperties": { "target": "com.amazonaws.quicksight#VpcConnectionProperties", "traits": { - "smithy.api#documentation": "

Use this parameter only when you want QuickSight to use a VPC connection when connecting to\n\t\t\tyour underlying source.

" + "smithy.api#documentation": "

Use this parameter only when you want Amazon QuickSight to use a VPC connection when connecting to\n\t\t\tyour underlying source.

" } }, "SslProperties": { "target": "com.amazonaws.quicksight#SslProperties", "traits": { - "smithy.api#documentation": "

Secure Socket Layer (SSL) properties that apply when QuickSight connects to your underlying source.

" + "smithy.api#documentation": "

Secure Socket Layer (SSL) properties that apply when Amazon QuickSight connects to your underlying source.

" } }, "Tags": { @@ -1894,7 +1918,7 @@ "DataSourceId": { "target": "com.amazonaws.quicksight#ResourceId", "traits": { - "smithy.api#documentation": "

The ID of the data source. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account;.

" + "smithy.api#documentation": "

The ID of the data source. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account.

" } }, "CreationStatus": { @@ -2256,7 +2280,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID for the Amazon Web Services account; that the group is in. Currently, you use the ID for the \n\t\t\tAmazon Web Services account; that contains your Amazon QuickSight account.

", + "smithy.api#documentation": "

The ID for the Amazon Web Services account that the group is in. Currently, you use the ID for the \n\t\t\tAmazon Web Services account that contains your Amazon QuickSight account.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2314,7 +2338,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID for the Amazon Web Services account; that the group is in. Currently, you use the ID for the \n\t\t\tAmazon Web Services account; that contains your Amazon QuickSight account.

", + "smithy.api#documentation": "

The ID for the Amazon Web Services account that the group is in. Currently, you use the ID for the \n\t\t\tAmazon Web Services account that contains your Amazon QuickSight account.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2391,7 +2415,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates an assignment with one specified IAM policy, identified by its Amazon Resource Name \n\t\t\t(ARN). This policy assignment is attached to the specified groups or users of Amazon QuickSight.\n\t\t\tAssignment names are unique per Amazon Web Services account;. To avoid overwriting rules in other namespaces, \n\t\t\tuse assignment names that are unique.

", + "smithy.api#documentation": "

Creates an assignment with one specified IAMpolicy, identified by its Amazon Resource Name \n\t\t\t(ARN). This policy assignment is attached to the specified groups or users of Amazon QuickSight.\n\t\t\tAssignment names are unique per Amazon Web Services account. To avoid overwriting rules in other namespaces, \n\t\t\tuse assignment names that are unique.

", "smithy.api#http": { "method": "POST", "uri": "/accounts/{AwsAccountId}/namespaces/{Namespace}/iam-policy-assignments", @@ -2405,7 +2429,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; where you want to assign an IAM policy to QuickSight users or\n\t\t\tgroups.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account where you want to assign an IAMpolicy to Amazon QuickSight users or\n\t\t\tgroups.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2413,7 +2437,7 @@ "AssignmentName": { "target": "com.amazonaws.quicksight#IAMPolicyAssignmentName", "traits": { - "smithy.api#documentation": "

The name of the assignment, also called a rule. It must be unique within an Amazon Web Services account;.

", + "smithy.api#documentation": "

The name of the assignment, also called a rule. It must be unique within an Amazon Web Services account.

", "smithy.api#required": {} } }, @@ -2427,13 +2451,13 @@ "PolicyArn": { "target": "com.amazonaws.quicksight#Arn", "traits": { - "smithy.api#documentation": "

The ARN for the IAM policy to apply to the QuickSight users and groups\n\t\t\tspecified in this assignment.

" + "smithy.api#documentation": "

The ARN for the IAMpolicy to apply to the Amazon QuickSight users and groups\n\t\t\tspecified in this assignment.

" } }, "Identities": { "target": "com.amazonaws.quicksight#IdentityMap", "traits": { - "smithy.api#documentation": "

The QuickSight users, groups, or both that you want to assign the policy to.

" + "smithy.api#documentation": "

The Amazon QuickSight users, groups, or both that you want to assign the policy to.

" } }, "Namespace": { @@ -2452,7 +2476,7 @@ "AssignmentName": { "target": "com.amazonaws.quicksight#IAMPolicyAssignmentName", "traits": { - "smithy.api#documentation": "

The name of the assignment. This name must be unique within the Amazon Web Services account;.

" + "smithy.api#documentation": "

The name of the assignment. This name must be unique within the Amazon Web Services account.

" } }, "AssignmentId": { @@ -2470,13 +2494,13 @@ "PolicyArn": { "target": "com.amazonaws.quicksight#Arn", "traits": { - "smithy.api#documentation": "

The ARN for the IAM policy that is applied to the QuickSight users and groups specified in this assignment.

" + "smithy.api#documentation": "

The ARN for the IAMpolicy that is applied to the Amazon QuickSight users and groups specified in this assignment.

" } }, "Identities": { "target": "com.amazonaws.quicksight#IdentityMap", "traits": { - "smithy.api#documentation": "

The QuickSight users, groups, or both that the IAM policy is assigned to.

" + "smithy.api#documentation": "

The Amazon QuickSight users, groups, or both that the IAMpolicy is assigned to.

" } }, "RequestId": { @@ -2556,7 +2580,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The Amazon Web Services account; ID.

", + "smithy.api#documentation": "

The Amazon Web Services account ID.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2640,7 +2664,7 @@ } ], "traits": { - "smithy.api#documentation": "

(Enterprise edition only) Creates a new namespace for you to use with Amazon QuickSight.

\n

A namespace allows you to isolate the QuickSight users and groups that are registered\n for that namespace. Users that access the namespace can share assets only with other\n users or groups in the same namespace. They can't see users and groups in other\n namespaces. You can create a namespace after your Amazon Web Services account; is subscribed to\n QuickSight. The namespace must be unique within the Amazon Web Services account;. By default, there is a\n limit of 100 namespaces per Amazon Web Services account;. To increase your limit, create a ticket with\n Amazon Web Services Support.

", + "smithy.api#documentation": "

(Enterprise edition only) Creates a new namespace for you to use with Amazon QuickSight.

\n

A namespace allows you to isolate the Amazon QuickSight users and groups that are registered\n for that namespace. Users that access the namespace can share assets only with other\n users or groups in the same namespace. They can't see users and groups in other\n namespaces. You can create a namespace after your Amazon Web Services account is subscribed to\n Amazon QuickSight. The namespace must be unique within the Amazon Web Services account. By default, there is a\n limit of 100 namespaces per Amazon Web Services account. To increase your limit, create a ticket with\n Amazon Web Services Support.

", "smithy.api#http": { "method": "POST", "uri": "/accounts/{AwsAccountId}", @@ -2654,7 +2678,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID for the Amazon Web Services account; that you want to create the QuickSight namespace in.

", + "smithy.api#documentation": "

The ID for the Amazon Web Services account that you want to create the Amazon QuickSight namespace in.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2687,7 +2711,7 @@ "Arn": { "target": "com.amazonaws.quicksight#Arn", "traits": { - "smithy.api#documentation": "

The ARN of the QuickSight namespace you created.

" + "smithy.api#documentation": "

The ARN of the Amazon QuickSight namespace you created.

" } }, "Name": { @@ -2767,7 +2791,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a template from an existing Amazon QuickSight analysis or template. You can use the resulting\n\t\t\ttemplate to create a dashboard.

\n\t\t

A template is an entity in QuickSight that encapsulates the metadata\n\t\t\trequired to create an analysis and that you can use to create s dashboard. A template adds\n\t\t\ta layer of abstraction by using placeholders to replace the dataset associated with the\n\t\t\tanalysis. You can use templates to create dashboards by replacing dataset placeholders\n\t\t\twith datasets that follow the same schema that was used to create the source analysis\n\t\t\tand template.

", + "smithy.api#documentation": "

Creates a template from an existing Amazon QuickSight analysis or template. You can use the resulting\n\t\t\ttemplate to create a dashboard.

\n\t\t

A template is an entity in Amazon QuickSight that encapsulates the metadata\n\t\t\trequired to create an analysis and that you can use to create s dashboard. A template adds\n\t\t\ta layer of abstraction by using placeholders to replace the dataset associated with the\n\t\t\tanalysis. You can use templates to create dashboards by replacing dataset placeholders\n\t\t\twith datasets that follow the same schema that was used to create the source analysis\n\t\t\tand template.

", "smithy.api#http": { "method": "POST", "uri": "/accounts/{AwsAccountId}/templates/{TemplateId}", @@ -2821,7 +2845,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the template that you creating an alias for.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the template that you creating an alias for.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2881,7 +2905,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID for the Amazon Web Services account; that the group is in. Currently, you use the ID for the \n\t\t\tAmazon Web Services account; that contains your Amazon QuickSight account.

", + "smithy.api#documentation": "

The ID for the Amazon Web Services account that the group is in. You use the ID for the Amazon Web Services account that contains your Amazon QuickSight account.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2889,7 +2913,7 @@ "TemplateId": { "target": "com.amazonaws.quicksight#RestrictiveResourceId", "traits": { - "smithy.api#documentation": "

An ID for the template that you want to create. This template is unique per Amazon Web Services Region; in\n\t\t\teach Amazon Web Services account;.

", + "smithy.api#documentation": "

An ID for the template that you want to create. This template is unique per Amazon Web Services Region; in\n\t\t\teach Amazon Web Services account.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2909,7 +2933,7 @@ "SourceEntity": { "target": "com.amazonaws.quicksight#TemplateSourceEntity", "traits": { - "smithy.api#documentation": "

The entity that you are using as a source when you create the template. In\n\t\t\tSourceEntity, you specify the type of object you're using as source:\n\t\t\tSourceTemplate for a template or SourceAnalysis for an\n\t\t\tanalysis. Both of these require an Amazon Resource Name (ARN). For\n\t\t\tSourceTemplate, specify the ARN of the source template. For\n\t\t\tSourceAnalysis, specify the ARN of the source analysis. The SourceTemplate\n\t\t\tARN can contain any Amazon Web Services account; and any QuickSight-supported Amazon Web Services Region;.

\n\t\t

Use the DataSetReferences entity within SourceTemplate or\n\t\t\tSourceAnalysis to list the replacement datasets for the placeholders listed\n\t\t\tin the original. The schema in each dataset must match its placeholder.

", + "smithy.api#documentation": "

The entity that you are using as a source when you create the template. In\n\t\t\tSourceEntity, you specify the type of object you're using as source:\n\t\t\tSourceTemplate for a template or SourceAnalysis for an\n\t\t\tanalysis. Both of these require an Amazon Resource Name (ARN). For\n\t\t\tSourceTemplate, specify the ARN of the source template. For\n\t\t\tSourceAnalysis, specify the ARN of the source analysis. The SourceTemplate\n\t\t\tARN can contain any Amazon Web Services account and any Amazon QuickSight-supported Amazon Web Services Region;.

\n\t\t

Use the DataSetReferences entity within SourceTemplate or\n\t\t\tSourceAnalysis to list the replacement datasets for the placeholders listed\n\t\t\tin the original. The schema in each dataset must match its placeholder.

", "smithy.api#required": {} } }, @@ -3061,7 +3085,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the theme for the new theme alias.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the theme for the new theme alias.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -3121,7 +3145,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; where you want to store the new theme.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account where you want to store the new theme.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -3129,7 +3153,7 @@ "ThemeId": { "target": "com.amazonaws.quicksight#RestrictiveResourceId", "traits": { - "smithy.api#documentation": "

An ID for the theme that you want to create. The theme ID is unique per Amazon Web Services Region; in\n\t\t\teach Amazon Web Services account;.

", + "smithy.api#documentation": "

An ID for the theme that you want to create. The theme ID is unique per Amazon Web Services Region in\n\t\t\teach Amazon Web Services account.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -3144,7 +3168,7 @@ "BaseThemeId": { "target": "com.amazonaws.quicksight#RestrictiveResourceId", "traits": { - "smithy.api#documentation": "

The ID of the theme that a custom theme will inherit from. All themes inherit from one of\n\t\t\tthe starting themes defined by Amazon QuickSight. For a list of the starting themes, use\n\t\t\t\tListThemes or choose Themes from\n\t\t\twithin a QuickSight analysis.

", + "smithy.api#documentation": "

The ID of the theme that a custom theme will inherit from. All themes inherit from one of\n\t\t\tthe starting themes defined by Amazon QuickSight. For a list of the starting themes, use\n\t\t\t\tListThemes or choose Themes from\n\t\t\twithin a Amazon QuickSight analysis.

", "smithy.api#required": {} } }, @@ -3872,6 +3896,12 @@ "traits": { "smithy.api#documentation": "

A set of one or more definitions of a \n ColumnLevelPermissionRule\n .

" } + }, + "DataSetUsageConfiguration": { + "target": "com.amazonaws.quicksight#DataSetUsageConfiguration", + "traits": { + "smithy.api#documentation": "

The usage configuration to apply to child datasets that reference this dataset as a source.

" + } } }, "traits": { @@ -4067,6 +4097,26 @@ "target": "com.amazonaws.quicksight#DataSetSummary" } }, + "com.amazonaws.quicksight#DataSetUsageConfiguration": { + "type": "structure", + "members": { + "DisableUseAsDirectQuerySource": { + "target": "com.amazonaws.quicksight#Boolean", + "traits": { + "smithy.api#documentation": "

An option that controls whether a child dataset of a direct query can use this dataset as a source.

" + } + }, + "DisableUseAsImportedSource": { + "target": "com.amazonaws.quicksight#Boolean", + "traits": { + "smithy.api#documentation": "

An option that controls whether a child dataset that's stored in QuickSight can use this dataset as a source.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The usage configuration to apply to child datasets that reference this dataset as a source.

" + } + }, "com.amazonaws.quicksight#DataSource": { "type": "structure", "members": { @@ -4079,7 +4129,7 @@ "DataSourceId": { "target": "com.amazonaws.quicksight#ResourceId", "traits": { - "smithy.api#documentation": "

The ID of the data source. This ID is unique per Amazon Web Services Region; for each \n Amazon Web Services account;.

" + "smithy.api#documentation": "

The ID of the data source. This ID is unique per Amazon Web Services Region; for each\n Amazon Web Services account.

" } }, "Name": { @@ -4127,13 +4177,13 @@ "VpcConnectionProperties": { "target": "com.amazonaws.quicksight#VpcConnectionProperties", "traits": { - "smithy.api#documentation": "

The VPC connection information. You need to use this parameter only when you want\n QuickSight to use a VPC connection when connecting to your underlying source.

" + "smithy.api#documentation": "

The VPC connection information. You need to use this parameter only when you want\n Amazon QuickSight to use a VPC connection when connecting to your underlying source.

" } }, "SslProperties": { "target": "com.amazonaws.quicksight#SslProperties", "traits": { - "smithy.api#documentation": "

Secure Socket Layer (SSL) properties that apply when QuickSight connects to your\n underlying source.

" + "smithy.api#documentation": "

Secure Socket Layer (SSL) properties that apply when Amazon QuickSight connects to your\n underlying source.

" } }, "ErrorInfo": { @@ -4239,121 +4289,121 @@ "AmazonElasticsearchParameters": { "target": "com.amazonaws.quicksight#AmazonElasticsearchParameters", "traits": { - "smithy.api#documentation": "

Amazon Elasticsearch Service parameters.

" + "smithy.api#documentation": "

The parameters for Elasticsearch.

" } }, "AthenaParameters": { "target": "com.amazonaws.quicksight#AthenaParameters", "traits": { - "smithy.api#documentation": "

Amazon Athena parameters.

" + "smithy.api#documentation": "

The parameters for Amazon Athena.

" } }, "AuroraParameters": { "target": "com.amazonaws.quicksight#AuroraParameters", "traits": { - "smithy.api#documentation": "

Amazon Aurora MySQL parameters.

" + "smithy.api#documentation": "

The parameters for Amazon Aurora MySQL.

" } }, "AuroraPostgreSqlParameters": { "target": "com.amazonaws.quicksight#AuroraPostgreSqlParameters", "traits": { - "smithy.api#documentation": "

Aurora PostgreSQL parameters.

" + "smithy.api#documentation": "

The parameters for Amazon Aurora.

" } }, "AwsIotAnalyticsParameters": { "target": "com.amazonaws.quicksight#AwsIotAnalyticsParameters", "traits": { - "smithy.api#documentation": "

Amazon Web Services IoT Analytics parameters.

" + "smithy.api#documentation": "

The parameters for IoT Analytics.

" } }, "JiraParameters": { "target": "com.amazonaws.quicksight#JiraParameters", "traits": { - "smithy.api#documentation": "

Jira parameters.

" + "smithy.api#documentation": "

The parameters for Jira.

" } }, "MariaDbParameters": { "target": "com.amazonaws.quicksight#MariaDbParameters", "traits": { - "smithy.api#documentation": "

MariaDB parameters.

" + "smithy.api#documentation": "

The parameters for MariaDB.

" } }, "MySqlParameters": { "target": "com.amazonaws.quicksight#MySqlParameters", "traits": { - "smithy.api#documentation": "

MySQL parameters.

" + "smithy.api#documentation": "

The parameters for MySQL.

" } }, "OracleParameters": { "target": "com.amazonaws.quicksight#OracleParameters", "traits": { - "smithy.api#documentation": "

Oracle parameters.

" + "smithy.api#documentation": "

The parameters for Oracle.

" } }, "PostgreSqlParameters": { "target": "com.amazonaws.quicksight#PostgreSqlParameters", "traits": { - "smithy.api#documentation": "

PostgreSQL parameters.

" + "smithy.api#documentation": "

The parameters for PostgreSQL.

" } }, "PrestoParameters": { "target": "com.amazonaws.quicksight#PrestoParameters", "traits": { - "smithy.api#documentation": "

Presto parameters.

" + "smithy.api#documentation": "

The parameters for Presto.

" } }, "RdsParameters": { "target": "com.amazonaws.quicksight#RdsParameters", "traits": { - "smithy.api#documentation": "

Amazon RDS parameters.

" + "smithy.api#documentation": "

The parameters for Amazon RDS.

" } }, "RedshiftParameters": { "target": "com.amazonaws.quicksight#RedshiftParameters", "traits": { - "smithy.api#documentation": "

Amazon Redshift parameters.

" + "smithy.api#documentation": "

The parameters for Amazon Redshift.

" } }, "S3Parameters": { "target": "com.amazonaws.quicksight#S3Parameters", "traits": { - "smithy.api#documentation": "

S3 parameters.

" + "smithy.api#documentation": "

The parameters for S3.

" } }, "ServiceNowParameters": { "target": "com.amazonaws.quicksight#ServiceNowParameters", "traits": { - "smithy.api#documentation": "

ServiceNow parameters.

" + "smithy.api#documentation": "

The parameters for ServiceNow.

" } }, "SnowflakeParameters": { "target": "com.amazonaws.quicksight#SnowflakeParameters", "traits": { - "smithy.api#documentation": "

Snowflake parameters.

" + "smithy.api#documentation": "

The parameters for Snowflake.

" } }, "SparkParameters": { "target": "com.amazonaws.quicksight#SparkParameters", "traits": { - "smithy.api#documentation": "

Spark parameters.

" + "smithy.api#documentation": "

The parameters for Spark.

" } }, "SqlServerParameters": { "target": "com.amazonaws.quicksight#SqlServerParameters", "traits": { - "smithy.api#documentation": "

SQL Server parameters.

" + "smithy.api#documentation": "

The parameters for SQL Server.

" } }, "TeradataParameters": { "target": "com.amazonaws.quicksight#TeradataParameters", "traits": { - "smithy.api#documentation": "

Teradata parameters.

" + "smithy.api#documentation": "

The parameters for Teradata.

" } }, "TwitterParameters": { "target": "com.amazonaws.quicksight#TwitterParameters", "traits": { - "smithy.api#documentation": "

Twitter parameters.

" + "smithy.api#documentation": "

The parameters for Twitter.

" } } }, @@ -4578,7 +4628,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes all Amazon QuickSight customizations in this Amazon Web Services Region; for the specified \n Amazon Web Services account; and QuickSight namespace.

", + "smithy.api#documentation": "

Deletes all Amazon QuickSight customizations in this Amazon Web Services Region; for the specified \n Amazon Web Services account and Amazon QuickSight namespace.

", "smithy.api#http": { "method": "DELETE", "uri": "/accounts/{AwsAccountId}/customizations", @@ -4592,7 +4642,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID for the Amazon Web Services account; that you want to delete QuickSight customizations from in\n this Amazon Web Services Region;.

", + "smithy.api#documentation": "

The ID for the Amazon Web Services account that you want to delete Amazon QuickSight customizations from in\n this Amazon Web Services Region;.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -4600,7 +4650,7 @@ "Namespace": { "target": "com.amazonaws.quicksight#Namespace", "traits": { - "smithy.api#documentation": "

The QuickSight namespace that you're deleting the customizations from.

", + "smithy.api#documentation": "

The Amazon QuickSight namespace that you're deleting the customizations from.

", "smithy.api#httpQuery": "namespace" } } @@ -4653,7 +4703,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes an analysis from Amazon QuickSight. You can optionally include a recovery window during\n which you can restore the analysis. If you don't specify a recovery window value, the\n operation defaults to 30 days. QuickSight attaches a DeletionTime stamp to\n the response that specifies the end of the recovery window. At the end of the recovery\n window, QuickSight deletes the analysis permanently.

\n

At any time before recovery window ends, you can use the RestoreAnalysis\n API operation to remove the DeletionTime stamp and cancel the deletion of\n the analysis. The analysis remains visible in the API until it's deleted, so you can\n describe it but you can't make a template from it.

\n

An analysis that's scheduled for deletion isn't accessible in the QuickSight console.\n To access it in the console, restore it. Deleting an analysis doesn't delete the\n dashboards that you publish from it.

", + "smithy.api#documentation": "

Deletes an analysis from Amazon QuickSight. You can optionally include a recovery window during\n which you can restore the analysis. If you don't specify a recovery window value, the\n operation defaults to 30 days. Amazon QuickSight attaches a DeletionTime stamp to\n the response that specifies the end of the recovery window. At the end of the recovery\n window, Amazon QuickSight deletes the analysis permanently.

\n

At any time before recovery window ends, you can use the RestoreAnalysis\n API operation to remove the DeletionTime stamp and cancel the deletion of\n the analysis. The analysis remains visible in the API until it's deleted, so you can\n describe it but you can't make a template from it.

\n

An analysis that's scheduled for deletion isn't accessible in the Amazon QuickSight console.\n To access it in the console, restore it. Deleting an analysis doesn't delete the\n dashboards that you publish from it.

", "smithy.api#http": { "method": "DELETE", "uri": "/accounts/{AwsAccountId}/analyses/{AnalysisId}", @@ -4667,7 +4717,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; where you want to delete an analysis.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account where you want to delete an analysis.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -4683,7 +4733,7 @@ "RecoveryWindowInDays": { "target": "com.amazonaws.quicksight#RecoveryWindowInDays", "traits": { - "smithy.api#documentation": "

A value that specifies the number of days that QuickSight waits before it deletes the\n analysis. You can't use this parameter with the ForceDeleteWithoutRecovery\n option in the same API call. The default value is 30.

", + "smithy.api#documentation": "

A value that specifies the number of days that Amazon QuickSight waits before it deletes the\n analysis. You can't use this parameter with the ForceDeleteWithoutRecovery\n option in the same API call. The default value is 30.

", "smithy.api#httpQuery": "recovery-window-in-days" } }, @@ -4775,7 +4825,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the dashboard that you're\n deleting.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the dashboard that you're\n deleting.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -4867,7 +4917,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The Amazon Web Services account; ID.

", + "smithy.api#documentation": "

The Amazon Web Services account ID.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -4875,7 +4925,7 @@ "DataSetId": { "target": "com.amazonaws.quicksight#ResourceId", "traits": { - "smithy.api#documentation": "

The ID for the dataset that you want to create. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account;.

", + "smithy.api#documentation": "

The ID for the dataset that you want to create. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -4894,7 +4944,7 @@ "DataSetId": { "target": "com.amazonaws.quicksight#ResourceId", "traits": { - "smithy.api#documentation": "

The ID for the dataset that you want to create. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account;.

" + "smithy.api#documentation": "

The ID for the dataset that you want to create. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account.

" } }, "RequestId": { @@ -4952,7 +5002,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The Amazon Web Services account; ID.

", + "smithy.api#documentation": "

The Amazon Web Services account ID.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -4960,7 +5010,7 @@ "DataSourceId": { "target": "com.amazonaws.quicksight#ResourceId", "traits": { - "smithy.api#documentation": "

The ID of the data source. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account;.

", + "smithy.api#documentation": "

The ID of the data source. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -4979,7 +5029,7 @@ "DataSourceId": { "target": "com.amazonaws.quicksight#ResourceId", "traits": { - "smithy.api#documentation": "

The ID of the data source. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account;.

" + "smithy.api#documentation": "

The ID of the data source. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account.

" } }, "RequestId": { @@ -5284,7 +5334,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID for the Amazon Web Services account; that the group is in. Currently, you use the ID for the \n\t\t\tAmazon Web Services account; that contains your Amazon QuickSight account.

", + "smithy.api#documentation": "

The ID for the Amazon Web Services account that the group is in. Currently, you use the ID for the \n\t\t\tAmazon Web Services account that contains your Amazon QuickSight account.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -5331,7 +5381,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID for the Amazon Web Services account; that the group is in. Currently, you use the ID for the \n\t\t\tAmazon Web Services account; that contains your Amazon QuickSight account.

", + "smithy.api#documentation": "

The ID for the Amazon Web Services account that the group is in. Currently, you use the ID for the \n\t\t\tAmazon Web Services account that contains your Amazon QuickSight account.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -5396,7 +5446,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes an existing IAM policy assignment.

", + "smithy.api#documentation": "

Deletes an existing IAMpolicy assignment.

", "smithy.api#http": { "method": "DELETE", "uri": "/accounts/{AwsAccountId}/namespace/{Namespace}/iam-policy-assignments/{AssignmentName}", @@ -5410,7 +5460,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The Amazon Web Services account; ID where you want to delete the IAM policy assignment.

", + "smithy.api#documentation": "

The Amazon Web Services account ID where you want to delete the IAMpolicy assignment.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -5503,7 +5553,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID for the Amazon Web Services account; that you want to delete the QuickSight namespace from.

", + "smithy.api#documentation": "

The ID for the Amazon Web Services account that you want to delete the Amazon QuickSight namespace from.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -5616,7 +5666,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the item to delete.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the item to delete.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -5681,7 +5731,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the template that you're deleting.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the template that you're deleting.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -5816,7 +5866,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the theme alias to delete.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the theme alias to delete.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -5881,7 +5931,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the theme that you're deleting.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the theme that you're deleting.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -6027,7 +6077,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID for the Amazon Web Services account; that the user is in. Currently, you use the ID for the \n\t\t\tAmazon Web Services account; that contains your Amazon QuickSight account.

", + "smithy.api#documentation": "

The ID for the Amazon Web Services account that the user is in. Currently, you use the ID for the \n\t\t\tAmazon Web Services account that contains your Amazon QuickSight account.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -6077,7 +6127,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID for the Amazon Web Services account; that the user is in. Currently, you use the ID for the \n\t\t\tAmazon Web Services account; that contains your Amazon QuickSight account.

", + "smithy.api#documentation": "

The ID for the Amazon Web Services account that the user is in. Currently, you use the ID for the \n\t\t\tAmazon Web Services account that contains your Amazon QuickSight account.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -6148,7 +6198,7 @@ } ], "traits": { - "smithy.api#documentation": "

Describes the customizations associated with the provided Amazon Web Services account; and Amazon\n QuickSight namespace in an Amazon Web Services Region;. The QuickSight console evaluates which\n customizations to apply by running this API operation with the Resolved flag\n included.

\n

To determine what customizations display when you run this command, it can help to\n visualize the relationship of the entities involved.

\n ", + "smithy.api#documentation": "

Describes the customizations associated with the provided Amazon Web Services account and Amazon\n Amazon QuickSight namespace in an Amazon Web Services Region;. The Amazon QuickSight console evaluates which\n customizations to apply by running this API operation with the Resolved flag\n included.

\n

To determine what customizations display when you run this command, it can help to\n visualize the relationship of the entities involved.

\n ", "smithy.api#http": { "method": "GET", "uri": "/accounts/{AwsAccountId}/customizations", @@ -6162,7 +6212,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID for the Amazon Web Services account; that you want to describe QuickSight customizations\n for.

", + "smithy.api#documentation": "

The ID for the Amazon Web Services account that you want to describe Amazon QuickSight customizations\n for.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -6170,14 +6220,14 @@ "Namespace": { "target": "com.amazonaws.quicksight#Namespace", "traits": { - "smithy.api#documentation": "

The QuickSight namespace that you want to describe QuickSight customizations\n for.

", + "smithy.api#documentation": "

The Amazon QuickSight namespace that you want to describe Amazon QuickSight customizations\n for.

", "smithy.api#httpQuery": "namespace" } }, "Resolved": { "target": "com.amazonaws.quicksight#Boolean", "traits": { - "smithy.api#documentation": "

The Resolved flag works with the other parameters to determine which view\n of QuickSight customizations is returned. You can add this flag to your command to use\n the same view that QuickSight uses to identify which customizations to apply to the\n console. Omit this flag, or set it to no-resolved, to reveal customizations\n that are configured at different levels.

", + "smithy.api#documentation": "

The Resolved flag works with the other parameters to determine which view\n of Amazon QuickSight customizations is returned. You can add this flag to your command to use\n the same view that Amazon QuickSight uses to identify which customizations to apply to the\n console. Omit this flag, or set it to no-resolved, to reveal customizations\n that are configured at different levels.

", "smithy.api#httpQuery": "resolved" } } @@ -6189,25 +6239,25 @@ "Arn": { "target": "com.amazonaws.quicksight#Arn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the customization that's associated with this Amazon Web Services account;.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the customization that's associated with this Amazon Web Services account.

" } }, "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID for the Amazon Web Services account; that you're describing.

" + "smithy.api#documentation": "

The ID for the Amazon Web Services account that you're describing.

" } }, "Namespace": { "target": "com.amazonaws.quicksight#Namespace", "traits": { - "smithy.api#documentation": "

The QuickSight namespace that you're describing.

" + "smithy.api#documentation": "

The Amazon QuickSight namespace that you're describing.

" } }, "AccountCustomization": { "target": "com.amazonaws.quicksight#AccountCustomization", "traits": { - "smithy.api#documentation": "

The QuickSight customizations that exist in the current Amazon Web Services Region;.

" + "smithy.api#documentation": "

The Amazon QuickSight customizations that exist in the current Amazon Web Services Region;.

" } }, "RequestId": { @@ -6254,7 +6304,7 @@ } ], "traits": { - "smithy.api#documentation": "

Describes the settings that were used when your QuickSight subscription was first\n created in this Amazon Web Services account;.

", + "smithy.api#documentation": "

Describes the settings that were used when your Amazon QuickSight subscription was first\n created in this Amazon Web Services account.

", "smithy.api#http": { "method": "GET", "uri": "/accounts/{AwsAccountId}/settings", @@ -6268,7 +6318,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID for the Amazon Web Services account; that contains the settings that you want to list.

", + "smithy.api#documentation": "

The ID for the Amazon Web Services account that contains the settings that you want to list.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -6281,7 +6331,7 @@ "AccountSettings": { "target": "com.amazonaws.quicksight#AccountSettings", "traits": { - "smithy.api#documentation": "

The QuickSight settings for this Amazon Web Services account;. This information includes the edition of Amazon\n QuickSight that you subscribed to (Standard or Enterprise) and the notification email for the\n QuickSight subscription. In the QuickSight console, the QuickSight subscription is sometimes\n referred to as a QuickSight \"account\" even though it's technically not an account\n by itself. Instead, it's a subscription to the QuickSight service for your Amazon Web Services account;. The\n edition that you subscribe to applies to QuickSight in every Amazon Web Services Region; where you use it.

" + "smithy.api#documentation": "

The Amazon QuickSight settings for this Amazon Web Services account. This information includes the edition of Amazon\n Amazon QuickSight that you subscribed to (Standard or Enterprise) and the notification email for the\n Amazon QuickSight subscription. In the Amazon QuickSight console, the Amazon QuickSight subscription is sometimes\n referred to as a Amazon QuickSight \"account\" even though it's technically not an account\n by itself. Instead, it's a subscription to the Amazon QuickSight service for your Amazon Web Services account. The\n edition that you subscribe to applies to Amazon QuickSight in every Amazon Web Services Region; where you use it.

" } }, "RequestId": { @@ -6376,7 +6426,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the analysis whose permissions you're\n describing. You must be using the Amazon Web Services account; that the analysis is in.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the analysis whose permissions you're\n describing. You must be using the Amazon Web Services account that the analysis is in.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -6433,7 +6483,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the analysis. You must be using the \n Amazon Web Services account; that the analysis is in.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the analysis. You must be using the \n Amazon Web Services account that the analysis is in.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -6549,7 +6599,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the dashboard that you're describing\n permissions for.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the dashboard that you're describing\n permissions for.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -6557,7 +6607,7 @@ "DashboardId": { "target": "com.amazonaws.quicksight#RestrictiveResourceId", "traits": { - "smithy.api#documentation": "

The ID for the dashboard, also added to the IAM policy.

", + "smithy.api#documentation": "

The ID for the dashboard, also added to the IAMpolicy.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -6606,7 +6656,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the dashboard that you're\n describing.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the dashboard that you're\n describing.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -6733,7 +6783,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The Amazon Web Services account; ID.

", + "smithy.api#documentation": "

The Amazon Web Services account ID.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -6741,7 +6791,7 @@ "DataSetId": { "target": "com.amazonaws.quicksight#ResourceId", "traits": { - "smithy.api#documentation": "

The ID for the dataset that you want to create. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account;.

", + "smithy.api#documentation": "

The ID for the dataset that you want to create. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -6760,7 +6810,7 @@ "DataSetId": { "target": "com.amazonaws.quicksight#ResourceId", "traits": { - "smithy.api#documentation": "

The ID for the dataset that you want to create. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account;.

" + "smithy.api#documentation": "

The ID for the dataset that you want to create. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account.

" } }, "Permissions": { @@ -6790,7 +6840,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The Amazon Web Services account; ID.

", + "smithy.api#documentation": "

The Amazon Web Services account ID.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -6798,7 +6848,7 @@ "DataSetId": { "target": "com.amazonaws.quicksight#ResourceId", "traits": { - "smithy.api#documentation": "

The ID for the dataset that you want to create. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account;.

", + "smithy.api#documentation": "

The ID for the dataset that you want to create. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -6903,7 +6953,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The Amazon Web Services account; ID.

", + "smithy.api#documentation": "

The Amazon Web Services account ID.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -6911,7 +6961,7 @@ "DataSourceId": { "target": "com.amazonaws.quicksight#ResourceId", "traits": { - "smithy.api#documentation": "

The ID of the data source. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account;.

", + "smithy.api#documentation": "

The ID of the data source. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -6930,7 +6980,7 @@ "DataSourceId": { "target": "com.amazonaws.quicksight#ResourceId", "traits": { - "smithy.api#documentation": "

The ID of the data source. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account;.

" + "smithy.api#documentation": "

The ID of the data source. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account.

" } }, "Permissions": { @@ -6960,7 +7010,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The Amazon Web Services account; ID.

", + "smithy.api#documentation": "

The Amazon Web Services account ID.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -6968,7 +7018,7 @@ "DataSourceId": { "target": "com.amazonaws.quicksight#ResourceId", "traits": { - "smithy.api#documentation": "

The ID of the data source. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account;.

", + "smithy.api#documentation": "

The ID of the data source. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -7323,7 +7373,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID for the Amazon Web Services account; that the group is in. Currently, you use the ID for the \n\t\t\tAmazon Web Services account; that contains your Amazon QuickSight account.

", + "smithy.api#documentation": "

The ID for the Amazon Web Services account that the group is in. Currently, you use the ID for the \n\t\t\tAmazon Web Services account that contains your Amazon QuickSight account.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -7391,7 +7441,7 @@ } ], "traits": { - "smithy.api#documentation": "

Describes an existing IAM policy assignment, as specified by the assignment name.

", + "smithy.api#documentation": "

Describes an existing IAMpolicy assignment, as specified by the assignment name.

", "smithy.api#http": { "method": "GET", "uri": "/accounts/{AwsAccountId}/namespaces/{Namespace}/iam-policy-assignments/{AssignmentName}", @@ -7405,7 +7455,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the assignment that you want to describe.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the assignment that you want to describe.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -7434,7 +7484,7 @@ "IAMPolicyAssignment": { "target": "com.amazonaws.quicksight#IAMPolicyAssignment", "traits": { - "smithy.api#documentation": "

Information describing the IAM policy assignment.

" + "smithy.api#documentation": "

Information describing the IAMpolicy assignment.

" } }, "RequestId": { @@ -7495,7 +7545,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The Amazon Web Services account; ID.

", + "smithy.api#documentation": "

The Amazon Web Services account ID.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -7585,7 +7635,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID for the Amazon Web Services account; that contains the QuickSight namespace that you want to describe.

", + "smithy.api#documentation": "

The ID for the Amazon Web Services account that contains the Amazon QuickSight namespace that you want to describe.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -7704,7 +7754,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the template alias that you're\n\t\t\tdescribing.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the template alias that you're\n\t\t\tdescribing.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -7794,7 +7844,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the template that you're describing.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the template that you're describing.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -7851,7 +7901,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the template that you're describing.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the template that you're describing.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -7987,7 +8037,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the theme alias that you're\n\t\t\tdescribing.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the theme alias that you're\n\t\t\tdescribing.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -8077,7 +8127,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the theme that you're describing.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the theme that you're describing.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -8134,7 +8184,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAndAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the theme that you're describing.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the theme that you're describing.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -8241,7 +8291,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID for the Amazon Web Services account; that the user is in. Currently, you use the ID for the \n\t\t\tAmazon Web Services account; that contains your Amazon QuickSight account.

", + "smithy.api#documentation": "

The ID for the Amazon Web Services account that the user is in. Currently, you use the ID for the \n\t\t\tAmazon Web Services account that contains your Amazon QuickSight account.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -9128,7 +9178,7 @@ } ], "traits": { - "smithy.api#documentation": "

Generates a session URL and authorization code that you can use to embed an Amazon\n QuickSight read-only dashboard in your web server code. Before you use this command,\n make sure that you have configured the dashboards and permissions.

\n

Currently, you can use GetDashboardEmbedURL only from the server, not\n from the user's browser. The following rules apply to the combination of URL and\n authorization code:

\n \n

For more information, see Embedding Analytics Using GetDashboardEmbedUrl in the Amazon QuickSight User\n Guide.

\n

For more information about the high-level steps for embedding and for an interactive demo of the ways you can customize embedding, visit the Amazon QuickSight Developer Portal.

", + "smithy.api#documentation": "

Generates a session URL and authorization code that you can use to embed an Amazon\n Amazon QuickSight read-only dashboard in your web server code. Before you use this command,\n make sure that you have configured the dashboards and permissions.

\n

Currently, you can use GetDashboardEmbedURL only from the server, not\n from the user's browser. The following rules apply to the combination of URL and\n authorization code:

\n \n

For more information, see Embedding Analytics Using GetDashboardEmbedUrl in the Amazon QuickSight User\n Guide.

\n

For more information about the high-level steps for embedding and for an interactive demo of the ways you can customize embedding, visit the Amazon QuickSight Developer Portal.

", "smithy.api#http": { "method": "GET", "uri": "/accounts/{AwsAccountId}/dashboards/{DashboardId}/embed-url", @@ -9142,7 +9192,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID for the Amazon Web Services account; that contains the dashboard that you're embedding.

", + "smithy.api#documentation": "

The ID for the Amazon Web Services account that contains the dashboard that you're embedding.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -9187,28 +9237,28 @@ "StatePersistenceEnabled": { "target": "com.amazonaws.quicksight#Boolean", "traits": { - "smithy.api#documentation": "

Adds persistence of state for the user session in an embedded dashboard. Persistence\n applies to the sheet and the parameter settings. These are control settings that the\n dashboard subscriber (QuickSight reader) chooses while viewing the dashboard. If this is\n set to TRUE, the settings are the same when the subscriber reopens the same\n dashboard URL. The state is stored in QuickSight, not in a browser cookie. If this is\n set to FALSE, the state of the user session is not persisted. The default is\n FALSE.

", + "smithy.api#documentation": "

Adds persistence of state for the user session in an embedded dashboard. Persistence\n applies to the sheet and the parameter settings. These are control settings that the\n dashboard subscriber (Amazon QuickSight reader) chooses while viewing the dashboard. If this is\n set to TRUE, the settings are the same when the subscriber reopens the same\n dashboard URL. The state is stored in Amazon QuickSight, not in a browser cookie. If this is\n set to FALSE, the state of the user session is not persisted. The default is\n FALSE.

", "smithy.api#httpQuery": "state-persistence-enabled" } }, "UserArn": { "target": "com.amazonaws.quicksight#Arn", "traits": { - "smithy.api#documentation": "

The Amazon QuickSight user's Amazon Resource Name (ARN), for use with QUICKSIGHT identity type.\n\t\t\tYou can use this for any Amazon QuickSight users in your account (readers, authors, or\n\t\t\tadmins) authenticated as one of the following:

\n\t\t \n

Omit this parameter for users in the third group – IAM users and IAM\n role-based sessions.

", + "smithy.api#documentation": "

The Amazon QuickSight user's Amazon Resource Name (ARN), for use with QUICKSIGHT identity type.\n\t\t\tYou can use this for any Amazon QuickSight users in your account (readers, authors, or\n\t\t\tadmins) authenticated as one of the following:

\n\t\t \n

Omit this parameter for users in the third group – IAMusers and IAM\n role-based sessions.

", "smithy.api#httpQuery": "user-arn" } }, "Namespace": { "target": "com.amazonaws.quicksight#Namespace", "traits": { - "smithy.api#documentation": "

The Amazon QuickSight namespace that the user virtually belongs to. If you are not using an Amazon QuickSight custom namespace, set this to default.

", + "smithy.api#documentation": "

The Amazon QuickSight namespace that contains the dashboard IDs in this request.\n \t If you're not using a custom namespace, set Namespace = default.

", "smithy.api#httpQuery": "namespace" } }, "AdditionalDashboardIds": { "target": "com.amazonaws.quicksight#AdditionalDashboardIdList", "traits": { - "smithy.api#documentation": "

A list of one or more dashboard IDs that you want to add to a session that includes\n anonymous users. The IdentityType parameter must be set to\n ANONYMOUS for this to work, because other identity types authenticate\n as QuickSight or IAM users. For example, if you set \"--dashboard-id dash_id1\n --dashboard-id dash_id2 dash_id3 identity-type ANONYMOUS\", the session\n can access all three dashboards.

", + "smithy.api#documentation": "

A list of one or more dashboard IDs that you want to add to a session that includes\n anonymous users. The IdentityType parameter must be set to\n ANONYMOUS for this to work, because other identity types authenticate\n as Amazon QuickSight or IAMusers. For example, if you set \"--dashboard-id dash_id1\n --dashboard-id dash_id2 dash_id3 identity-type ANONYMOUS\", the session\n can access all three dashboards.

", "smithy.api#httpQuery": "additional-dashboard-ids" } } @@ -9279,7 +9329,7 @@ } ], "traits": { - "smithy.api#documentation": "

Generates a session URL and authorization code that you can use to embed the Amazon\n QuickSight console in your web server code. Use GetSessionEmbedUrl where\n you want to provide an authoring portal that allows users to create data sources,\n datasets, analyses, and dashboards. The users who access an embedded QuickSight console\n need belong to the author or admin security cohort. If you want to restrict permissions\n to some of these features, add a custom permissions profile to the user with the\n \n UpdateUser\n API operation. Use \n RegisterUser\n API operation to add a new user with a custom permission profile attached. For more\n information, see the following sections in the Amazon QuickSight User\n Guide:

\n ", + "smithy.api#documentation": "

Generates a session URL and authorization code that you can use to embed the Amazon\n Amazon QuickSight console in your web server code. Use GetSessionEmbedUrl where\n you want to provide an authoring portal that allows users to create data sources,\n datasets, analyses, and dashboards. The users who access an embedded Amazon QuickSight console\n need belong to the author or admin security cohort. If you want to restrict permissions\n to some of these features, add a custom permissions profile to the user with the\n \n UpdateUser\n API operation. Use \n RegisterUser\n API operation to add a new user with a custom permission profile attached. For more\n information, see the following sections in the Amazon QuickSight User\n Guide:

\n ", "smithy.api#http": { "method": "GET", "uri": "/accounts/{AwsAccountId}/session-embed-url", @@ -9293,7 +9343,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID for the Amazon Web Services account; associated with your QuickSight subscription.

", + "smithy.api#documentation": "

The ID for the Amazon Web Services account associated with your Amazon QuickSight subscription.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -9301,7 +9351,7 @@ "EntryPoint": { "target": "com.amazonaws.quicksight#EntryPoint", "traits": { - "smithy.api#documentation": "

The URL you use to access the embedded session. The entry point URL is constrained to \n the following paths:

\n ", + "smithy.api#documentation": "

The URL you use to access the embedded session. The entry point URL is constrained to \n the following paths:

\n ", "smithy.api#httpQuery": "entry-point" } }, @@ -9327,7 +9377,7 @@ "EmbedUrl": { "target": "com.amazonaws.quicksight#EmbeddingUrl", "traits": { - "smithy.api#documentation": "

A single-use URL that you can put into your server-side web page to embed your\n\t\t\tQuickSight session. This URL is valid for 5 minutes. The API operation provides the URL with an\n\t\t\tauth_code value that enables one (and only one) sign-on to a user session\n\t\t\tthat is valid for 10 hours.

" + "smithy.api#documentation": "

A single-use URL that you can put into your server-side web page to embed your\n\t\t\tAmazon QuickSight session. This URL is valid for 5 minutes. The API operation provides the URL with an\n\t\t\tauth_code value that enables one (and only one) sign-on to a user session\n\t\t\tthat is valid for 10 hours.

" } }, "Status": { @@ -9473,7 +9523,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The Amazon Web Services account; ID.

" + "smithy.api#documentation": "

The Amazon Web Services account ID.

" } }, "AssignmentId": { @@ -9491,7 +9541,7 @@ "PolicyArn": { "target": "com.amazonaws.quicksight#Arn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the IAM policy.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the IAMpolicy.

" } }, "Identities": { @@ -9537,7 +9587,7 @@ } }, "traits": { - "smithy.api#documentation": "

IAM policy assignment summary.

" + "smithy.api#documentation": "

IAMpolicy assignment summary.

" } }, "com.amazonaws.quicksight#IAMPolicyAssignmentSummaryList": { @@ -10130,7 +10180,7 @@ } }, "traits": { - "smithy.api#documentation": "

Jira parameters.

" + "smithy.api#documentation": "

The parameters for Jira.

" } }, "com.amazonaws.quicksight#JoinInstruction": { @@ -10188,7 +10238,7 @@ "target": "com.amazonaws.quicksight#Boolean", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

A value that indicates that a row in a table is uniquely identified by the columns in\n a join key. This is used by QuickSight to optimize query performance.

" + "smithy.api#documentation": "

A value that indicates that a row in a table is uniquely identified by the columns in\n a join key. This is used by Amazon QuickSight to optimize query performance.

" } } }, @@ -10267,7 +10317,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists Amazon QuickSight analyses that exist in the specified Amazon Web Services account;.

", + "smithy.api#documentation": "

Lists Amazon QuickSight analyses that exist in the specified Amazon Web Services account.

", "smithy.api#http": { "method": "GET", "uri": "/accounts/{AwsAccountId}/analyses", @@ -10286,7 +10336,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the analyses.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the analyses.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -10367,7 +10417,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists all the versions of the dashboards in the QuickSight subscription.

", + "smithy.api#documentation": "

Lists all the versions of the dashboards in the Amazon QuickSight subscription.

", "smithy.api#http": { "method": "GET", "uri": "/accounts/{AwsAccountId}/dashboards/{DashboardId}/versions", @@ -10386,7 +10436,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the dashboard that you're listing versions\n for.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the dashboard that you're listing versions\n for.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -10469,7 +10519,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists dashboards in an Amazon Web Services account;.

", + "smithy.api#documentation": "

Lists dashboards in an Amazon Web Services account.

", "smithy.api#http": { "method": "GET", "uri": "/accounts/{AwsAccountId}/dashboards", @@ -10488,7 +10538,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the dashboards that you're\n listing.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the dashboards that you're\n listing.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -10516,7 +10566,7 @@ "DashboardSummaryList": { "target": "com.amazonaws.quicksight#DashboardSummaryList", "traits": { - "smithy.api#documentation": "

A structure that contains all of the dashboards in your Amazon Web Services account;. This structure\n provides basic information about the dashboards.

" + "smithy.api#documentation": "

A structure that contains all of the dashboards in your Amazon Web Services account. This structure\n provides basic information about the dashboards.

" } }, "NextToken": { @@ -10566,7 +10616,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists all of the datasets belonging to the current Amazon Web Services account; in an Amazon Web Services Region;.

\n\t\t

The permissions resource is arn:aws:quicksight:region:aws-account-id:dataset/*.

", + "smithy.api#documentation": "

Lists all of the datasets belonging to the current Amazon Web Services account in an Amazon Web Services Region;.

\n\t\t

The permissions resource is arn:aws:quicksight:region:aws-account-id:dataset/*.

", "smithy.api#http": { "method": "GET", "uri": "/accounts/{AwsAccountId}/data-sets", @@ -10585,7 +10635,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The Amazon Web Services account; ID.

", + "smithy.api#documentation": "

The Amazon Web Services account ID.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -10663,7 +10713,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists data sources in current Amazon Web Services Region; that belong to this Amazon Web Services account;.

", + "smithy.api#documentation": "

Lists data sources in current Amazon Web Services Region; that belong to this Amazon Web Services account.

", "smithy.api#http": { "method": "GET", "uri": "/accounts/{AwsAccountId}/data-sources", @@ -10682,7 +10732,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The Amazon Web Services account; ID.

", + "smithy.api#documentation": "

The Amazon Web Services account ID.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -11010,7 +11060,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID for the Amazon Web Services account; that the group is in. Currently, you use the ID for the \n\t\t\tAmazon Web Services account; that contains your Amazon QuickSight account.

", + "smithy.api#documentation": "

The ID for the Amazon Web Services account that the group is in. Currently, you use the ID for the \n\t\t\tAmazon Web Services account that contains your Amazon QuickSight account.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -11104,7 +11154,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID for the Amazon Web Services account; that the group is in. Currently, you use the ID for the \n\t\t\tAmazon Web Services account; that contains your Amazon QuickSight account.

", + "smithy.api#documentation": "

The ID for the Amazon Web Services account that the group is in. Currently, you use the ID for the \n\t\t\tAmazon Web Services account that contains your Amazon QuickSight account.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -11193,7 +11243,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists IAM policy assignments in the current Amazon QuickSight account.

", + "smithy.api#documentation": "

Lists IAMpolicy assignments in the current Amazon QuickSight account.

", "smithy.api#http": { "method": "GET", "uri": "/accounts/{AwsAccountId}/namespaces/{Namespace}/iam-policy-assignments", @@ -11233,7 +11283,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists all the IAM policy assignments, including the Amazon Resource Names (ARNs) for the IAM\n\t\t\tpolicies assigned to the specified user and group or groups that the user belongs\n\t\t\tto.

", + "smithy.api#documentation": "

Lists all the IAMpolicy assignments, including the Amazon Resource Names (ARNs) for the IAM\n\t\t\tpolicies assigned to the specified user and group or groups that the user belongs\n\t\t\tto.

", "smithy.api#http": { "method": "GET", "uri": "/accounts/{AwsAccountId}/namespaces/{Namespace}/users/{UserName}/iam-policy-assignments", @@ -11247,7 +11297,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the assignments.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the assignments.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -11321,7 +11371,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains these IAM policy assignments.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains these IAMpolicy assignments.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -11363,7 +11413,7 @@ "IAMPolicyAssignments": { "target": "com.amazonaws.quicksight#IAMPolicyAssignmentSummaryList", "traits": { - "smithy.api#documentation": "

Information describing the IAM policy assignments.

" + "smithy.api#documentation": "

Information describing the IAMpolicy assignments.

" } }, "NextToken": { @@ -11453,7 +11503,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The Amazon Web Services account; ID.

", + "smithy.api#documentation": "

The Amazon Web Services account ID.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -11533,7 +11583,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the namespaces for the specified Amazon Web Services account;.

", + "smithy.api#documentation": "

Lists the namespaces for the specified Amazon Web Services account.

", "smithy.api#http": { "method": "GET", "uri": "/accounts/{AwsAccountId}/namespaces", @@ -11552,7 +11602,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID for the Amazon Web Services account; that contains the QuickSight namespaces that you want to list.

", + "smithy.api#documentation": "

The ID for the Amazon Web Services account that contains the Amazon QuickSight namespaces that you want to list.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -11580,7 +11630,7 @@ "Namespaces": { "target": "com.amazonaws.quicksight#Namespaces", "traits": { - "smithy.api#documentation": "

The information about the namespaces in this Amazon Web Services account;. The response includes \n the namespace ARN, name, Amazon Web Services Region;, notification email address, creation status, and \n identity store.

" + "smithy.api#documentation": "

The information about the namespaces in this Amazon Web Services account. The response includes \n the namespace ARN, name, Amazon Web Services Region;, notification email address, creation status, and \n identity store.

" } }, "NextToken": { @@ -11720,7 +11770,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the template aliases that you're listing.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the template aliases that you're listing.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -11828,7 +11878,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the templates that you're listing.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the templates that you're listing.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -11936,7 +11986,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the templates that you're listing.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the templates that you're listing.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -12034,7 +12084,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the theme aliases that you're listing.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the theme aliases that you're listing.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -12126,7 +12176,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists all the versions of the themes in the current Amazon Web Services account;.

", + "smithy.api#documentation": "

Lists all the versions of the themes in the current Amazon Web Services account.

", "smithy.api#http": { "method": "GET", "uri": "/accounts/{AwsAccountId}/themes/{ThemeId}/versions", @@ -12145,7 +12195,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the themes that you're listing.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the themes that you're listing.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -12237,7 +12287,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists all the themes in the current Amazon Web Services account;.

", + "smithy.api#documentation": "

Lists all the themes in the current Amazon Web Services account.

", "smithy.api#http": { "method": "GET", "uri": "/accounts/{AwsAccountId}/themes", @@ -12256,7 +12306,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the themes that you're listing.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the themes that you're listing.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -12369,7 +12419,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The Amazon Web Services account; ID that the user is in. Currently, you use the ID for the Amazon Web Services account;\n\t\t\tthat contains your Amazon QuickSight account.

", + "smithy.api#documentation": "

The Amazon Web Services account ID that the user is in. Currently, you use the ID for the Amazon Web Services account\n\t\t\tthat contains your Amazon QuickSight account.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -12478,7 +12528,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID for the Amazon Web Services account; that the user is in. Currently, you use the ID for the \n\t\t\tAmazon Web Services account; that contains your Amazon QuickSight account.

", + "smithy.api#documentation": "

The ID for the Amazon Web Services account that the user is in. Currently, you use the ID for the \n\t\t\tAmazon Web Services account that contains your Amazon QuickSight account.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -12614,6 +12664,12 @@ "traits": { "smithy.api#documentation": "

Physical table ID.

" } + }, + "DataSetArn": { + "target": "com.amazonaws.quicksight#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Number (ARN) of the parent dataset.

" + } } }, "traits": { @@ -12692,7 +12748,7 @@ } }, "traits": { - "smithy.api#documentation": "

MariaDB parameters.

" + "smithy.api#documentation": "

The parameters for MariaDB.

" } }, "com.amazonaws.quicksight#MaxResults": { @@ -12769,7 +12825,7 @@ } }, "traits": { - "smithy.api#documentation": "

MySQL parameters.

" + "smithy.api#documentation": "

The parameters for MySQL.

" } }, "com.amazonaws.quicksight#Namespace": { @@ -12944,7 +13000,7 @@ } }, "traits": { - "smithy.api#documentation": "

Oracle parameters.

" + "smithy.api#documentation": "

The parameters for Oracle.

" } }, "com.amazonaws.quicksight#OutputColumn": { @@ -12985,30 +13041,30 @@ "StringParameters": { "target": "com.amazonaws.quicksight#StringParameterList", "traits": { - "smithy.api#documentation": "

String parameters.

" + "smithy.api#documentation": "

The parameters that have a data type of string.

" } }, "IntegerParameters": { "target": "com.amazonaws.quicksight#IntegerParameterList", "traits": { - "smithy.api#documentation": "

Integer parameters.

" + "smithy.api#documentation": "

The parameters that have a data type of integer.

" } }, "DecimalParameters": { "target": "com.amazonaws.quicksight#DecimalParameterList", "traits": { - "smithy.api#documentation": "

Decimal parameters.

" + "smithy.api#documentation": "

The parameters that have a data type of decimal.

" } }, "DateTimeParameters": { "target": "com.amazonaws.quicksight#DateTimeParameterList", "traits": { - "smithy.api#documentation": "

Date-time parameters.

" + "smithy.api#documentation": "

The parameters that have a data type of date-time.

" } } }, "traits": { - "smithy.api#documentation": "

A list of QuickSight parameters and the list's override values.

" + "smithy.api#documentation": "

A list of Amazon QuickSight parameters and the list's override values.

" } }, "com.amazonaws.quicksight#Password": { @@ -13078,7 +13134,7 @@ }, "traits": { "smithy.api#length": { - "min": 1, + "min": 0, "max": 32 } } @@ -13126,7 +13182,7 @@ } }, "traits": { - "smithy.api#documentation": "

PostgreSQL parameters.

" + "smithy.api#documentation": "

The parameters for PostgreSQL.

" } }, "com.amazonaws.quicksight#PreconditionNotMetException": { @@ -13174,7 +13230,7 @@ } }, "traits": { - "smithy.api#documentation": "

Presto parameters.

" + "smithy.api#documentation": "

The parameters for Presto.

" } }, "com.amazonaws.quicksight#Principal": { @@ -13654,7 +13710,7 @@ } }, "traits": { - "smithy.api#documentation": "

Amazon RDS parameters.

" + "smithy.api#documentation": "

The parameters for Amazon RDS.

" } }, "com.amazonaws.quicksight#RecoveryWindowInDays": { @@ -13697,7 +13753,7 @@ } }, "traits": { - "smithy.api#documentation": "

Amazon Redshift parameters. The ClusterId field can be blank if\n Host and Port are both set. The Host and\n Port fields can be blank if the ClusterId field is set.

" + "smithy.api#documentation": "

The parameters for Amazon Redshift. The ClusterId field can be blank if\n Host and Port are both set. The Host and\n Port fields can be blank if the ClusterId field is set.

" } }, "com.amazonaws.quicksight#RegisterUser": { @@ -13752,7 +13808,7 @@ "IdentityType": { "target": "com.amazonaws.quicksight#IdentityType", "traits": { - "smithy.api#documentation": "

Amazon QuickSight supports several ways of managing the identity of users. This\n\t\t\tparameter accepts two values:

\n\t\t ", + "smithy.api#documentation": "

Amazon QuickSight supports several ways of managing the identity of users. This\n\t\t\tparameter accepts two values:

\n\t\t ", "smithy.api#required": {} } }, @@ -13773,19 +13829,19 @@ "IamArn": { "target": "com.amazonaws.quicksight#String", "traits": { - "smithy.api#documentation": "

The ARN of the IAM user or role that you are registering with Amazon QuickSight.

" + "smithy.api#documentation": "

The ARN of the IAMuser or role that you are registering with Amazon QuickSight.

" } }, "SessionName": { "target": "com.amazonaws.quicksight#RoleSessionName", "traits": { - "smithy.api#documentation": "

You need to use this parameter only when you register one or more users using an assumed\n\t\t\tIAM role. You don't need to provide the session name for other scenarios, for example when\n\t\t\tyou are registering an IAM user or an Amazon QuickSight user. You can register multiple\n\t\t\tusers using the same IAM role if each user has a different session name. For more\n\t\t\tinformation on assuming IAM roles, see \n assume-role\n in the AWS CLI Reference.\n

" + "smithy.api#documentation": "

You need to use this parameter only when you register one or more users using an assumed\n\t\t\tIAMrole. You don't need to provide the session name for other scenarios, for example when\n\t\t\tyou are registering an IAMuser or an Amazon QuickSight user. You can register multiple\n\t\t\tusers using the same IAMrole if each user has a different session name. For more\n\t\t\tinformation on assuming IAMroles, see \n assume-role\n in the AWS CLI Reference.\n

" } }, "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID for the Amazon Web Services account; that the user is in. Currently, you use the ID for the \n\t\t\tAmazon Web Services account; that contains your Amazon QuickSight account.

", + "smithy.api#documentation": "

The ID for the Amazon Web Services account that the user is in. Currently, you use the ID for the \n\t\t\tAmazon Web Services account that contains your Amazon QuickSight account.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -13807,19 +13863,19 @@ "CustomPermissionsName": { "target": "com.amazonaws.quicksight#RoleName", "traits": { - "smithy.api#documentation": "

(Enterprise edition only) The name of the custom permissions profile that you want to\n assign to this user. Customized permissions allows you to control a user's access by\n restricting access the following operations:

\n \n

To add custom permissions to an existing user, use \n UpdateUser\n instead.

\n

A set of custom permissions includes any combination of these restrictions. Currently,\n you need to create the profile names for custom permission sets by using the QuickSight\n console. Then, you use the RegisterUser API operation to assign the named set of\n permissions to a QuickSight user.

\n

QuickSight custom permissions are applied through IAM policies. Therefore, they\n override the permissions typically granted by assigning QuickSight users to one of the\n default security cohorts in QuickSight (admin, author, reader).

\n

This feature is available only to QuickSight Enterprise edition subscriptions.

" + "smithy.api#documentation": "

(Enterprise edition only) The name of the custom permissions profile that you want to\n assign to this user. Customized permissions allows you to control a user's access by\n restricting access the following operations:

\n \n

To add custom permissions to an existing user, use \n UpdateUser\n instead.

\n

A set of custom permissions includes any combination of these restrictions. Currently,\n you need to create the profile names for custom permission sets by using the Amazon QuickSight\n console. Then, you use the RegisterUser API operation to assign the named set of\n permissions to a Amazon QuickSight user.

\n

Amazon QuickSight custom permissions are applied through IAMpolicies. Therefore, they\n override the permissions typically granted by assigning Amazon QuickSight users to one of the\n default security cohorts in Amazon QuickSight (admin, author, reader).

\n

This feature is available only to Amazon QuickSight Enterprise edition subscriptions.

" } }, "ExternalLoginFederationProviderType": { "target": "com.amazonaws.quicksight#String", "traits": { - "smithy.api#documentation": "

The type of supported external login provider that provides identity to let a user federate into Amazon QuickSight with an associated AWS Identity and Access Management (IAM) role. The type of supported external login provider can be one of the following.

\n " + "smithy.api#documentation": "

The type of supported external login provider that provides identity to let a user federate into Amazon QuickSight with an associated Identity and Access Management(IAM) role. The type of supported external login provider can be one of the following.

\n " } }, "CustomFederationProviderUrl": { "target": "com.amazonaws.quicksight#String", "traits": { - "smithy.api#documentation": "

The URL of the custom OpenID Connect (OIDC) provider that provides identity to let a user federate\n into QuickSight with an associated AWS Identity and Access Management (IAM) role. This parameter should\n only be used when ExternalLoginFederationProviderType parameter is set to CUSTOM_OIDC.

" + "smithy.api#documentation": "

The URL of the custom OpenID Connect (OIDC) provider that provides identity to let a user federate\n into Amazon QuickSight with an associated Identity and Access Management(IAM) role. This parameter should\n only be used when ExternalLoginFederationProviderType parameter is set to CUSTOM_OIDC.

" } }, "ExternalLoginId": { @@ -14067,14 +14123,14 @@ "Principal": { "target": "com.amazonaws.quicksight#Principal", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the principal. This can be one of the\n following:

\n ", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the principal. This can be one of the\n following:

\n ", "smithy.api#required": {} } }, "Actions": { "target": "com.amazonaws.quicksight#ActionList", "traits": { - "smithy.api#documentation": "

The IAM action to grant or revoke permissions on.

", + "smithy.api#documentation": "

The IAMaction to grant or revoke permissions on.

", "smithy.api#required": {} } } @@ -14198,7 +14254,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the analysis.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the analysis.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -14314,7 +14370,7 @@ "PermissionPolicy": { "target": "com.amazonaws.quicksight#RowLevelPermissionPolicy", "traits": { - "smithy.api#documentation": "

The type of permissions to use when interpretting the permissions for RLS. DENY_ACCESS \n is included for backward compatibility only.

", + "smithy.api#documentation": "

The type of permissions to use when interpreting the permissions for RLS. DENY_ACCESS \n is included for backward compatibility only.

", "smithy.api#required": {} } }, @@ -14332,7 +14388,7 @@ } }, "traits": { - "smithy.api#documentation": "

Information about a dataset that contains permissions for row-level security (RLS). \n The permissions dataset maps fields to users or groups. For more information, see \n Using Row-Level Security (RLS) to Restrict Access to a Dataset in the Amazon QuickSight User\n Guide.

\n

The option to deny permissions by setting PermissionPolicy to DENY_ACCESS is \n not supported for new RLS datasets.

" + "smithy.api#documentation": "

Information about a dataset that contains permissions for row-level security (RLS).\n The permissions dataset maps fields to users or groups. For more information, see\n Using Row-Level Security (RLS) to Restrict Access to a Dataset in the Amazon QuickSight User\n Guide.

\n

The option to deny permissions by setting PermissionPolicy to DENY_ACCESS is\n not supported for new RLS datasets.

" } }, "com.amazonaws.quicksight#RowLevelPermissionFormatVersion": { @@ -14465,13 +14521,13 @@ "ManifestFileLocation": { "target": "com.amazonaws.quicksight#ManifestFileLocation", "traits": { - "smithy.api#documentation": "

Location of the Amazon S3 manifest file. This is NULL if the manifest file was\n uploaded into QuickSight.

", + "smithy.api#documentation": "

Location of the Amazon S3 manifest file. This is NULL if the manifest file was\n uploaded into Amazon QuickSight.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

S3 parameters.

" + "smithy.api#documentation": "

The parameters for S3.

" } }, "com.amazonaws.quicksight#S3Source": { @@ -14493,7 +14549,7 @@ "InputColumns": { "target": "com.amazonaws.quicksight#InputColumnList", "traits": { - "smithy.api#documentation": "

A physical table type for an S3 data source.

\n \n

For non-JSON files, only STRING data types are supported in input columns.

\n
", + "smithy.api#documentation": "

A physical table type for an S3 data source.

\n \n

For files that aren't JSON, only STRING data types are supported in input columns.

\n
", "smithy.api#required": {} } } @@ -14550,7 +14606,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the analyses that you're searching\n for.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the analyses that you're searching\n for.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -14655,7 +14711,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the user whose dashboards you're searching\n for.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the user whose dashboards you're searching\n for.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -14827,7 +14883,7 @@ } }, "traits": { - "smithy.api#documentation": "

ServiceNow parameters.

" + "smithy.api#documentation": "

The parameters for ServiceNow.

" } }, "com.amazonaws.quicksight#SessionLifetimeInMinutes": { @@ -14924,7 +14980,7 @@ "Name": { "target": "com.amazonaws.quicksight#NonEmptyString", "traits": { - "smithy.api#documentation": "

The name of a sheet. This name is displayed on the sheet's tab in the QuickSight\n console.

" + "smithy.api#documentation": "

The name of a sheet. This name is displayed on the sheet's tab in the Amazon QuickSight\n console.

" } } }, @@ -15013,7 +15069,7 @@ } }, "traits": { - "smithy.api#documentation": "

Snowflake parameters.

" + "smithy.api#documentation": "

The parameters for Snowflake.

" } }, "com.amazonaws.quicksight#SparkParameters": { @@ -15035,7 +15091,7 @@ } }, "traits": { - "smithy.api#documentation": "

Spark parameters.

" + "smithy.api#documentation": "

The parameters for Spark.

" } }, "com.amazonaws.quicksight#SqlQuery": { @@ -15073,7 +15129,7 @@ } }, "traits": { - "smithy.api#documentation": "

SQL Server parameters.

" + "smithy.api#documentation": "

The parameters for SQL Server.

" } }, "com.amazonaws.quicksight#SslProperties": { @@ -15087,7 +15143,7 @@ } }, "traits": { - "smithy.api#documentation": "

Secure Socket Layer (SSL) properties that apply when QuickSight connects to your\n underlying data source.

" + "smithy.api#documentation": "

Secure Socket Layer (SSL) properties that apply when Amazon QuickSight connects to your\n underlying data source.

" } }, "com.amazonaws.quicksight#Status": { @@ -15257,7 +15313,7 @@ } ], "traits": { - "smithy.api#documentation": "

Assigns one or more tags (key-value pairs) to the specified QuickSight resource.

\n\t\t

Tags can help you organize and categorize your resources. You can also use them to\n\t\t\tscope user permissions, by granting a user permission to access or change only resources\n\t\t\twith certain tag values. You can use the TagResource operation with a\n\t\t\tresource that already has tags. If you specify a new tag key for the resource, this tag\n\t\t\tis appended to the list of tags associated with the resource. If you specify a tag key\n\t\t\tthat is already associated with the resource, the new tag value that you specify\n\t\t\treplaces the previous value for that tag.

\n\t\t

You can associate as many as 50 tags with a resource. QuickSight supports tagging on data\n\t\t\tset, data source, dashboard, and template.

\n\t\t

Tagging for QuickSight works in a similar way to tagging for other AWS services, except for\n\t\t\tthe following:

\n\t\t ", + "smithy.api#documentation": "

Assigns one or more tags (key-value pairs) to the specified Amazon QuickSight resource.

\n\t\t

Tags can help you organize and categorize your resources. You can also use them to\n\t\t\tscope user permissions, by granting a user permission to access or change only resources\n\t\t\twith certain tag values. You can use the TagResource operation with a\n\t\t\tresource that already has tags. If you specify a new tag key for the resource, this tag\n\t\t\tis appended to the list of tags associated with the resource. If you specify a tag key\n\t\t\tthat is already associated with the resource, the new tag value that you specify\n\t\t\treplaces the previous value for that tag.

\n\t\t

You can associate as many as 50 tags with a resource. Amazon QuickSight supports tagging on data\n\t\t\tset, data source, dashboard, and template.

\n\t\t

Tagging for Amazon QuickSight works in a similar way to tagging for other AWS services, except for\n\t\t\tthe following:

\n\t\t ", "smithy.api#http": { "method": "POST", "uri": "/resources/{ResourceArn}/tags", @@ -15336,7 +15392,7 @@ "TemplateId": { "target": "com.amazonaws.quicksight#RestrictiveResourceId", "traits": { - "smithy.api#documentation": "

The ID for the template. This is unique per Amazon Web Services Region; for each Amazon Web Services account;.

" + "smithy.api#documentation": "

The ID for the template. This is unique per Amazon Web Services Region; for each Amazon Web Services account.

" } }, "LastUpdatedTime": { @@ -15353,7 +15409,7 @@ } }, "traits": { - "smithy.api#documentation": "

A template object. A template is an entity in QuickSight that\n encapsulates the metadata required to create an analysis and that you can use to create\n a dashboard. A template adds a layer of abstraction by using placeholders to replace the\n dataset associated with an analysis. You can use templates to create dashboards by\n replacing dataset placeholders with datasets that follow the same schema that was used\n to create the source analysis and template.

\n

You can share templates across Amazon Web Services accounts by allowing users in other Amazon Web Services accounts to\n create a template or a dashboard from an existing template.

" + "smithy.api#documentation": "

A template object. A template is an entity in Amazon QuickSight that\n encapsulates the metadata required to create an analysis and that you can use to create\n a dashboard. A template adds a layer of abstraction by using placeholders to replace the\n dataset associated with an analysis. You can use templates to create dashboards by\n replacing dataset placeholders with datasets that follow the same schema that was used\n to create the source analysis and template.

\n

You can share templates across Amazon Web Services accounts by allowing users in other Amazon Web Services accounts to\n create a template or a dashboard from an existing template.

" } }, "com.amazonaws.quicksight#TemplateAlias": { @@ -15526,7 +15582,7 @@ "TemplateId": { "target": "com.amazonaws.quicksight#RestrictiveResourceId", "traits": { - "smithy.api#documentation": "

The ID of the template. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account;.

" + "smithy.api#documentation": "

The ID of the template. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account.

" } }, "Name": { @@ -15708,7 +15764,7 @@ } }, "traits": { - "smithy.api#documentation": "

Teradata parameters.

" + "smithy.api#documentation": "

The parameters for Teradata.

" } }, "com.amazonaws.quicksight#TextQualifier": { @@ -15906,7 +15962,7 @@ "ThemeId": { "target": "com.amazonaws.quicksight#RestrictiveResourceId", "traits": { - "smithy.api#documentation": "

The ID of the theme. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account;.

" + "smithy.api#documentation": "

The ID of the theme. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account.

" } }, "LatestVersionNumber": { @@ -15987,7 +16043,7 @@ "BaseThemeId": { "target": "com.amazonaws.quicksight#RestrictiveResourceId", "traits": { - "smithy.api#documentation": "

The Amazon QuickSight-defined ID of the theme that a custom theme inherits from. All\n themes initially inherit from a default QuickSight theme.

" + "smithy.api#documentation": "

The Amazon QuickSight-defined ID of the theme that a custom theme inherits from. All\n themes initially inherit from a default Amazon QuickSight theme.

" } }, "CreatedTime": { @@ -16169,6 +16225,9 @@ "traits": { "smithy.api#documentation": "

An operation that tags a column with additional information.

" } + }, + "UntagColumnOperation": { + "target": "com.amazonaws.quicksight#UntagColumnOperation" } }, "traits": { @@ -16206,7 +16265,7 @@ } }, "traits": { - "smithy.api#documentation": "

Twitter parameters.

" + "smithy.api#documentation": "

The parameters for Twitter.

" } }, "com.amazonaws.quicksight#TypeCastFormat": { @@ -16336,7 +16395,7 @@ } }, "traits": { - "smithy.api#documentation": "

This error indicates that you are calling an embedding operation in Amazon QuickSight\n\t\t\twithout the required pricing plan on your Amazon Web Services account;. Before you can use embedding \n\t\t\tfor anonymous users, a QuickSight administrator needs to add capacity pricing to QuickSight. You \n\t\t can do this on the Manage QuickSight page.

\n

After capacity pricing is added, you can use the \n GetDashboardEmbedUrl API operation with the \n --identity-type ANONYMOUS option.

", + "smithy.api#documentation": "

This error indicates that you are calling an embedding operation in Amazon QuickSight\n\t\t\twithout the required pricing plan on your Amazon Web Services account. Before you can use embedding \n\t\t\tfor anonymous users, a Amazon QuickSight administrator needs to add capacity pricing to Amazon QuickSight. You \n\t\t can do this on the Manage Amazon QuickSight page.

\n

After capacity pricing is added, you can use the \n GetDashboardEmbedUrl API operation with the \n --identity-type ANONYMOUS option.

", "smithy.api#error": "client", "smithy.api#httpError": 403 } @@ -16355,11 +16414,33 @@ } }, "traits": { - "smithy.api#documentation": "

This error indicates that you are calling an operation on an Amazon QuickSight\n\t\t\tsubscription where the edition doesn't include support for that operation. Amazon\n\t\t\tQuickSight currently has Standard Edition and Enterprise Edition. Not every operation and\n\t\t\tcapability is available in every edition.

", + "smithy.api#documentation": "

This error indicates that you are calling an operation on an Amazon QuickSight\n\t\t\tsubscription where the edition doesn't include support for that operation. Amazon\n\t\t\tAmazon QuickSight currently has Standard Edition and Enterprise Edition. Not every operation and\n\t\t\tcapability is available in every edition.

", "smithy.api#error": "client", "smithy.api#httpError": 403 } }, + "com.amazonaws.quicksight#UntagColumnOperation": { + "type": "structure", + "members": { + "ColumnName": { + "target": "com.amazonaws.quicksight#ColumnName", + "traits": { + "smithy.api#documentation": "

The column that this operation acts on.

", + "smithy.api#required": {} + } + }, + "TagNames": { + "target": "com.amazonaws.quicksight#ColumnTagNames", + "traits": { + "smithy.api#documentation": "

The column tags to remove from this column.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A transform operation that removes tags associated with a column.

" + } + }, "com.amazonaws.quicksight#UntagResource": { "type": "operation", "input": { @@ -16462,7 +16543,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates Amazon QuickSight customizations the current Amazon Web Services Region;. Currently, the only\n customization you can use is a theme.

\n

You can use customizations for your Amazon Web Services account; or, if you specify a namespace, for a\n QuickSight namespace instead. Customizations that apply to a namespace override\n customizations that apply to an Amazon Web Services account;. To find out which customizations apply, use\n the DescribeAccountCustomization API operation.

", + "smithy.api#documentation": "

Updates Amazon QuickSight customizations the current Amazon Web Services Region;. Currently, the only\n customization you can use is a theme.

\n

You can use customizations for your Amazon Web Services account or, if you specify a namespace, for a\n Amazon QuickSight namespace instead. Customizations that apply to a namespace override\n customizations that apply to an Amazon Web Services account. To find out which customizations apply, use\n the DescribeAccountCustomization API operation.

", "smithy.api#http": { "method": "PUT", "uri": "/accounts/{AwsAccountId}/customizations", @@ -16476,7 +16557,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID for the Amazon Web Services account; that you want to update QuickSight customizations\n for.

", + "smithy.api#documentation": "

The ID for the Amazon Web Services account that you want to update Amazon QuickSight customizations\n for.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -16484,14 +16565,14 @@ "Namespace": { "target": "com.amazonaws.quicksight#Namespace", "traits": { - "smithy.api#documentation": "

The namespace that you want to update QuickSight customizations for.

", + "smithy.api#documentation": "

The namespace that you want to update Amazon QuickSight customizations for.

", "smithy.api#httpQuery": "namespace" } }, "AccountCustomization": { "target": "com.amazonaws.quicksight#AccountCustomization", "traits": { - "smithy.api#documentation": "

The QuickSight customizations you're updating in the current Amazon Web Services Region;.

", + "smithy.api#documentation": "

The Amazon QuickSight customizations you're updating in the current Amazon Web Services Region;.

", "smithy.api#required": {} } } @@ -16503,13 +16584,13 @@ "Arn": { "target": "com.amazonaws.quicksight#Arn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the updated customization for this Amazon Web Services account;.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the updated customization for this Amazon Web Services account.

" } }, "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID for the Amazon Web Services account; that you want to update QuickSight customizations\n for.

" + "smithy.api#documentation": "

The ID for the Amazon Web Services account that you want to update Amazon QuickSight customizations\n for.

" } }, "Namespace": { @@ -16521,7 +16602,7 @@ "AccountCustomization": { "target": "com.amazonaws.quicksight#AccountCustomization", "traits": { - "smithy.api#documentation": "

The QuickSight customizations you're updating in the current Amazon Web Services Region;.

" + "smithy.api#documentation": "

The Amazon QuickSight customizations you're updating in the current Amazon Web Services Region;.

" } }, "RequestId": { @@ -16568,7 +16649,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates the Amazon QuickSight settings in your Amazon Web Services account;.

", + "smithy.api#documentation": "

Updates the Amazon QuickSight settings in your Amazon Web Services account.

", "smithy.api#http": { "method": "PUT", "uri": "/accounts/{AwsAccountId}/settings", @@ -16582,7 +16663,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID for the Amazon Web Services account; that contains the QuickSight settings that you want to\n list.

", + "smithy.api#documentation": "

The ID for the Amazon Web Services account that contains the Amazon QuickSight settings that you want to\n list.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -16590,14 +16671,14 @@ "DefaultNamespace": { "target": "com.amazonaws.quicksight#Namespace", "traits": { - "smithy.api#documentation": "

The default namespace for this Amazon Web Services account;. Currently, the default is\n default. Identity and Access Management (IAM) users that register\n for the first time with QuickSight provide an email that becomes associated with the\n default namespace.

", + "smithy.api#documentation": "

The default namespace for this Amazon Web Services account. Currently, the default is\n default. Identity and Access Management (IAM) users that register\n for the first time with Amazon QuickSight provide an email that becomes associated with the\n default namespace.

", "smithy.api#required": {} } }, "NotificationEmail": { "target": "com.amazonaws.quicksight#String", "traits": { - "smithy.api#documentation": "

The email address that you want QuickSight to send notifications to regarding your \n Amazon Web Services account; or QuickSight subscription.

" + "smithy.api#documentation": "

The email address that you want Amazon QuickSight to send notifications to regarding your \n Amazon Web Services account or Amazon QuickSight subscription.

" } } } @@ -16703,7 +16784,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the analysis whose permissions you're\n updating. You must be using the Amazon Web Services account; that the analysis is in.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the analysis whose permissions you're\n updating. You must be using the Amazon Web Services account that the analysis is in.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -16772,7 +16853,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the analysis that you're updating.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the analysis that you're updating.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -16788,7 +16869,7 @@ "Name": { "target": "com.amazonaws.quicksight#AnalysisName", "traits": { - "smithy.api#documentation": "

A descriptive name for the analysis that you're updating. This name displays for the\n analysis in the QuickSight console.

", + "smithy.api#documentation": "

A descriptive name for the analysis that you're updating. This name displays for the\n analysis in the Amazon QuickSight console.

", "smithy.api#required": {} } }, @@ -16808,7 +16889,7 @@ "ThemeArn": { "target": "com.amazonaws.quicksight#Arn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the theme to apply to the analysis that you're\n creating. To see the theme in the QuickSight console, make sure that you have access to\n it.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the theme to apply to the analysis that you're\n creating. To see the theme in the Amazon QuickSight console, make sure that you have access to\n it.

" } } } @@ -16881,7 +16962,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates a dashboard in an Amazon Web Services account;.

\n \n

Updating a Dashboard creates a new dashboard version but does not immediately publish\n the new version. You can update the published version of a dashboard by\n using the UpdateDashboardPublishedVersion API operation.

\n
", + "smithy.api#documentation": "

Updates a dashboard in an Amazon Web Services account.

\n \n

Updating a Dashboard creates a new dashboard version but does not immediately publish\n the new version. You can update the published version of a dashboard by\n using the UpdateDashboardPublishedVersion API operation.

\n
", "smithy.api#http": { "method": "PUT", "uri": "/accounts/{AwsAccountId}/dashboards/{DashboardId}", @@ -16932,7 +17013,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the dashboard whose permissions you're\n updating.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the dashboard whose permissions you're\n updating.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -17038,7 +17119,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the dashboard that you're\n updating.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the dashboard that you're\n updating.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -17097,7 +17178,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the dashboard that you're\n updating.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the dashboard that you're\n updating.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -17120,7 +17201,7 @@ "SourceEntity": { "target": "com.amazonaws.quicksight#DashboardSourceEntity", "traits": { - "smithy.api#documentation": "

The entity that you are using as a source when you update the dashboard. In\n SourceEntity, you specify the type of object you're using as source. You\n can only update a dashboard from a template, so you use a SourceTemplate\n entity. If you need to update a dashboard from an analysis, first convert the analysis\n to a template by using the CreateTemplate API operation. For\n SourceTemplate, specify the Amazon Resource Name (ARN) of the source\n template. The SourceTemplate ARN can contain any Amazon Web Services account; and any\n QuickSight-supported Amazon Web Services Region;.

\n

Use the DataSetReferences entity within SourceTemplate to\n list the replacement datasets for the placeholders listed in the original. The schema in\n each dataset must match its placeholder.

", + "smithy.api#documentation": "

The entity that you are using as a source when you update the dashboard. In\n SourceEntity, you specify the type of object you're using as source. You\n can only update a dashboard from a template, so you use a SourceTemplate\n entity. If you need to update a dashboard from an analysis, first convert the analysis\n to a template by using the CreateTemplate API operation. For\n SourceTemplate, specify the Amazon Resource Name (ARN) of the source\n template. The SourceTemplate ARN can contain any Amazon Web Services account and any\n Amazon QuickSight-supported Amazon Web Services Region;.

\n

Use the DataSetReferences entity within SourceTemplate to\n list the replacement datasets for the placeholders listed in the original. The schema in\n each dataset must match its placeholder.

", "smithy.api#required": {} } }, @@ -17139,13 +17220,13 @@ "DashboardPublishOptions": { "target": "com.amazonaws.quicksight#DashboardPublishOptions", "traits": { - "smithy.api#documentation": "

Options for publishing the dashboard when you create it:

\n " + "smithy.api#documentation": "

Options for publishing the dashboard when you create it:

\n " } }, "ThemeArn": { "target": "com.amazonaws.quicksight#Arn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the theme that is being used for this dashboard. If\n you add a value for this field, it overrides the value that was originally associated\n with the entity. The theme ARN must exist in the same Amazon Web Services account; where you create the\n dashboard.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the theme that is being used for this dashboard. If\n you add a value for this field, it overrides the value that was originally associated\n with the entity. The theme ARN must exist in the same Amazon Web Services account where you create the\n dashboard.

" } } } @@ -17277,7 +17358,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The Amazon Web Services account; ID.

", + "smithy.api#documentation": "

The Amazon Web Services account ID.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -17285,7 +17366,7 @@ "DataSetId": { "target": "com.amazonaws.quicksight#ResourceId", "traits": { - "smithy.api#documentation": "

The ID for the dataset whose permissions you want to update. This ID is unique per \n\t\t\tAmazon Web Services Region; for each Amazon Web Services account;.

", + "smithy.api#documentation": "

The ID for the dataset whose permissions you want to update. This ID is unique per \n\t\t\tAmazon Web Services Region; for each Amazon Web Services account.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -17316,7 +17397,7 @@ "DataSetId": { "target": "com.amazonaws.quicksight#ResourceId", "traits": { - "smithy.api#documentation": "

The ID for the dataset whose permissions you want to update. This ID is unique per \n\t\t\tAmazon Web Services Region; for each Amazon Web Services account;.

" + "smithy.api#documentation": "

The ID for the dataset whose permissions you want to update. This ID is unique per \n\t\t\tAmazon Web Services Region; for each Amazon Web Services account.

" } }, "RequestId": { @@ -17340,7 +17421,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The Amazon Web Services account; ID.

", + "smithy.api#documentation": "

The Amazon Web Services account ID.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -17348,7 +17429,7 @@ "DataSetId": { "target": "com.amazonaws.quicksight#ResourceId", "traits": { - "smithy.api#documentation": "

The ID for the dataset that you want to update. This ID is unique per Amazon Web Services Region; for each\n\t\t\tAmazon Web Services account;.

", + "smithy.api#documentation": "

The ID for the dataset that you want to update. This ID is unique per Amazon Web Services Region; for each\n\t\t\tAmazon Web Services account.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -17383,7 +17464,7 @@ "ColumnGroups": { "target": "com.amazonaws.quicksight#ColumnGroupList", "traits": { - "smithy.api#documentation": "

Groupings of columns that work together in certain QuickSight features. Currently, only geospatial hierarchy is supported.

" + "smithy.api#documentation": "

Groupings of columns that work together in certain Amazon QuickSight features. Currently, only geospatial hierarchy is supported.

" } }, "FieldFolders": { @@ -17409,6 +17490,9 @@ "traits": { "smithy.api#documentation": "

A set of one or more definitions of a \n ColumnLevelPermissionRule\n .

" } + }, + "DataSetUsageConfiguration": { + "target": "com.amazonaws.quicksight#DataSetUsageConfiguration" } } }, @@ -17424,7 +17508,7 @@ "DataSetId": { "target": "com.amazonaws.quicksight#ResourceId", "traits": { - "smithy.api#documentation": "

The ID for the dataset that you want to create. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account;.

" + "smithy.api#documentation": "

The ID for the dataset that you want to create. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account.

" } }, "IngestionArn": { @@ -17534,7 +17618,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The Amazon Web Services account; ID.

", + "smithy.api#documentation": "

The Amazon Web Services account ID.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -17542,7 +17626,7 @@ "DataSourceId": { "target": "com.amazonaws.quicksight#ResourceId", "traits": { - "smithy.api#documentation": "

The ID of the data source. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account;.

", + "smithy.api#documentation": "

The ID of the data source. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -17573,7 +17657,7 @@ "DataSourceId": { "target": "com.amazonaws.quicksight#ResourceId", "traits": { - "smithy.api#documentation": "

The ID of the data source. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account;.

" + "smithy.api#documentation": "

The ID of the data source. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account.

" } }, "RequestId": { @@ -17597,7 +17681,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The Amazon Web Services account; ID.

", + "smithy.api#documentation": "

The Amazon Web Services account ID.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -17605,7 +17689,7 @@ "DataSourceId": { "target": "com.amazonaws.quicksight#ResourceId", "traits": { - "smithy.api#documentation": "

The ID of the data source. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account;.

", + "smithy.api#documentation": "

The ID of the data source. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -17620,25 +17704,25 @@ "DataSourceParameters": { "target": "com.amazonaws.quicksight#DataSourceParameters", "traits": { - "smithy.api#documentation": "

The parameters that QuickSight uses to connect to your underlying source.

" + "smithy.api#documentation": "

The parameters that Amazon QuickSight uses to connect to your underlying source.

" } }, "Credentials": { "target": "com.amazonaws.quicksight#DataSourceCredentials", "traits": { - "smithy.api#documentation": "

The credentials that QuickSight that uses to connect to your underlying source. Currently,\n\t\t\tonly credentials based on user name and password are supported.

" + "smithy.api#documentation": "

The credentials that Amazon QuickSight that uses to connect to your underlying source. Currently,\n\t\t\tonly credentials based on user name and password are supported.

" } }, "VpcConnectionProperties": { "target": "com.amazonaws.quicksight#VpcConnectionProperties", "traits": { - "smithy.api#documentation": "

Use this parameter only when you want QuickSight to use a VPC connection when connecting to\n\t\t\tyour underlying source.

" + "smithy.api#documentation": "

Use this parameter only when you want Amazon QuickSight to use a VPC connection when connecting to\n\t\t\tyour underlying source.

" } }, "SslProperties": { "target": "com.amazonaws.quicksight#SslProperties", "traits": { - "smithy.api#documentation": "

Secure Socket Layer (SSL) properties that apply when QuickSight connects to your underlying\n\t\t\tsource.

" + "smithy.api#documentation": "

Secure Socket Layer (SSL) properties that apply when Amazon QuickSight connects to your underlying\n\t\t\tsource.

" } } } @@ -17655,7 +17739,7 @@ "DataSourceId": { "target": "com.amazonaws.quicksight#ResourceId", "traits": { - "smithy.api#documentation": "

The ID of the data source. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account;.

" + "smithy.api#documentation": "

The ID of the data source. This ID is unique per Amazon Web Services Region; for each Amazon Web Services account.

" } }, "UpdateStatus": { @@ -17948,7 +18032,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID for the Amazon Web Services account; that the group is in. Currently, you use the ID for the \n\t\t\tAmazon Web Services account; that contains your Amazon QuickSight account.

", + "smithy.api#documentation": "

The ID for the Amazon Web Services account that the group is in. Currently, you use the ID for the \n\t\t\tAmazon Web Services account that contains your Amazon QuickSight account.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -18019,7 +18103,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates an existing IAM policy assignment. This operation updates only the optional\n\t\t\tparameter or parameters that are specified in the request. \n\t\t This overwrites all of the users included in Identities. \n\t\t

", + "smithy.api#documentation": "

Updates an existing IAMpolicy assignment. This operation updates only the optional\n\t\t\tparameter or parameters that are specified in the request. \n\t\t This overwrites all of the users included in Identities. \n\t\t

", "smithy.api#http": { "method": "PUT", "uri": "/accounts/{AwsAccountId}/namespaces/{Namespace}/iam-policy-assignments/{AssignmentName}", @@ -18033,7 +18117,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the IAM policy assignment.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the IAMpolicy assignment.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -18041,7 +18125,7 @@ "AssignmentName": { "target": "com.amazonaws.quicksight#IAMPolicyAssignmentName", "traits": { - "smithy.api#documentation": "

The name of the assignment, also called a rule. This name must be unique within an Amazon Web Services account;.

", + "smithy.api#documentation": "

The name of the assignment, also called a rule. This name must be unique within an Amazon Web Services account.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -18063,13 +18147,13 @@ "PolicyArn": { "target": "com.amazonaws.quicksight#Arn", "traits": { - "smithy.api#documentation": "

The ARN for the IAM policy to apply to the QuickSight users and groups\n\t\t\tspecified in this assignment.

" + "smithy.api#documentation": "

The ARN for the IAMpolicy to apply to the Amazon QuickSight users and groups\n\t\t\tspecified in this assignment.

" } }, "Identities": { "target": "com.amazonaws.quicksight#IdentityMap", "traits": { - "smithy.api#documentation": "

The QuickSight users, groups, or both that you want to assign the policy to.

" + "smithy.api#documentation": "

The Amazon QuickSight users, groups, or both that you want to assign the policy to.

" } } } @@ -18092,13 +18176,13 @@ "PolicyArn": { "target": "com.amazonaws.quicksight#Arn", "traits": { - "smithy.api#documentation": "

The ARN for the IAM policy applied to the QuickSight users and groups specified in this\n\t\t\tassignment.

" + "smithy.api#documentation": "

The ARN for the IAMpolicy applied to the Amazon QuickSight users and groups specified in this\n\t\t\tassignment.

" } }, "Identities": { "target": "com.amazonaws.quicksight#IdentityMap", "traits": { - "smithy.api#documentation": "

The QuickSight users, groups, or both that the IAM policy is assigned to.

" + "smithy.api#documentation": "

The Amazon QuickSight users, groups, or both that the IAMpolicy is assigned to.

" } }, "AssignmentStatus": { @@ -18217,7 +18301,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the template alias that you're updating.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the template alias that you're updating.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -18314,7 +18398,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the template.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the template.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -18383,7 +18467,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the template that you're updating.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the template that you're updating.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -18399,7 +18483,7 @@ "SourceEntity": { "target": "com.amazonaws.quicksight#TemplateSourceEntity", "traits": { - "smithy.api#documentation": "

The entity that you are using as a source when you update the template. In\n\t\t\tSourceEntity, you specify the type of object you're using as source:\n\t\t\tSourceTemplate for a template or SourceAnalysis for an\n\t\t\tanalysis. Both of these require an Amazon Resource Name (ARN). For\n\t\t\tSourceTemplate, specify the ARN of the source template. For\n\t\t\tSourceAnalysis, specify the ARN of the source analysis. The SourceTemplate\n\t\t\tARN can contain any Amazon Web Services account; and any QuickSight-supported Amazon Web Services Region;.

\n\t\t

Use the DataSetReferences entity within SourceTemplate or\n\t\t\tSourceAnalysis to list the replacement datasets for the placeholders listed\n\t\t\tin the original. The schema in each dataset must match its placeholder.

", + "smithy.api#documentation": "

The entity that you are using as a source when you update the template. In\n\t\t\tSourceEntity, you specify the type of object you're using as source:\n\t\t\tSourceTemplate for a template or SourceAnalysis for an\n\t\t\tanalysis. Both of these require an Amazon Resource Name (ARN). For\n\t\t\tSourceTemplate, specify the ARN of the source template. For\n\t\t\tSourceAnalysis, specify the ARN of the source analysis. The SourceTemplate\n\t\t\tARN can contain any Amazon Web Services account and any Amazon QuickSight-supported Amazon Web Services Region;.

\n\t\t

Use the DataSetReferences entity within SourceTemplate or\n\t\t\tSourceAnalysis to list the replacement datasets for the placeholders listed\n\t\t\tin the original. The schema in each dataset must match its placeholder.

", "smithy.api#required": {} } }, @@ -18548,7 +18632,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the theme alias that you're updating.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the theme alias that you're updating.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -18645,7 +18729,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the theme.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the theme.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -18714,7 +18798,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account; that contains the theme that you're updating.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the theme that you're updating.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -18850,7 +18934,7 @@ "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID for the Amazon Web Services account; that the user is in. Currently, you use the ID for the \n\t\t\tAmazon Web Services account; that contains your Amazon QuickSight account.

", + "smithy.api#documentation": "

The ID for the Amazon Web Services account that the user is in. Currently, you use the ID for the \n\t\t\tAmazon Web Services account that contains your Amazon QuickSight account.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -18873,14 +18957,14 @@ "Role": { "target": "com.amazonaws.quicksight#UserRole", "traits": { - "smithy.api#documentation": "

The Amazon QuickSight role of the user. The role can be one of the\n\t\t\tfollowing default security cohorts:

\n\t\t \n\t

The name of the QuickSight role is invisible to the user except for the console \n\t screens dealing with permissions.

", + "smithy.api#documentation": "

The Amazon QuickSight role of the user. The role can be one of the\n\t\t\tfollowing default security cohorts:

\n\t\t \n\t

The name of the Amazon QuickSight role is invisible to the user except for the console \n\t screens dealing with permissions.

", "smithy.api#required": {} } }, "CustomPermissionsName": { "target": "com.amazonaws.quicksight#RoleName", "traits": { - "smithy.api#documentation": "

(Enterprise edition only) The name of the custom permissions profile that you want to\n assign to this user. Customized permissions allows you to control a user's access by\n restricting access the following operations:

\n \n

A set of custom permissions includes any combination of these restrictions. Currently,\n you need to create the profile names for custom permission sets by using the QuickSight\n console. Then, you use the RegisterUser API operation to assign the named set of\n permissions to a QuickSight user.

\n

QuickSight custom permissions are applied through IAM policies. Therefore, they\n override the permissions typically granted by assigning QuickSight users to one of the\n default security cohorts in QuickSight (admin, author, reader).

\n

This feature is available only to QuickSight Enterprise edition subscriptions.

" + "smithy.api#documentation": "

(Enterprise edition only) The name of the custom permissions profile that you want to\n assign to this user. Customized permissions allows you to control a user's access by\n restricting access the following operations:

\n \n

A set of custom permissions includes any combination of these restrictions. Currently,\n you need to create the profile names for custom permission sets by using the Amazon QuickSight\n console. Then, you use the RegisterUser API operation to assign the named set of\n permissions to a Amazon QuickSight user.

\n

Amazon QuickSight custom permissions are applied through IAMpolicies. Therefore, they\n override the permissions typically granted by assigning Amazon QuickSight users to one of the\n default security cohorts in Amazon QuickSight (admin, author, reader).

\n

This feature is available only to Amazon QuickSight Enterprise edition subscriptions.

" } }, "UnapplyCustomPermissions": { @@ -18892,13 +18976,13 @@ "ExternalLoginFederationProviderType": { "target": "com.amazonaws.quicksight#String", "traits": { - "smithy.api#documentation": "

The type of supported external login provider that provides identity to let a user federate into QuickSight with an associated AWS Identity and Access Management (IAM) role. The type of supported external login provider can be one of the following.

\n " + "smithy.api#documentation": "

The type of supported external login provider that provides identity to let a user federate into Amazon QuickSight with an associated Identity and Access Management(IAM) role. The type of supported external login provider can be one of the following.

\n " } }, "CustomFederationProviderUrl": { "target": "com.amazonaws.quicksight#String", "traits": { - "smithy.api#documentation": "

The URL of the custom OpenID Connect (OIDC) provider that provides identity to let a user federate\n into QuickSight with an associated AWS Identity and Access Management (IAM) role. This parameter should\n only be used when ExternalLoginFederationProviderType parameter is set to CUSTOM_OIDC.

" + "smithy.api#documentation": "

The URL of the custom OpenID Connect (OIDC) provider that provides identity to let a user federate\n into Amazon QuickSight with an associated Identity and Access Management(IAM) role. This parameter should\n only be used when ExternalLoginFederationProviderType parameter is set to CUSTOM_OIDC.

" } }, "ExternalLoginId": { @@ -18997,7 +19081,7 @@ "Role": { "target": "com.amazonaws.quicksight#UserRole", "traits": { - "smithy.api#documentation": "

The Amazon QuickSight role for the user. The user role can be one of the\n following:.

\n " + "smithy.api#documentation": "

The Amazon QuickSight role for the user. The user role can be one of the\n following:.

\n " } }, "IdentityType": { @@ -19027,7 +19111,7 @@ "ExternalLoginFederationProviderType": { "target": "com.amazonaws.quicksight#String", "traits": { - "smithy.api#documentation": "

The type of supported external login provider that provides identity to let the user\n federate into Amazon QuickSight with an associated IAM role. The type can be one of the following.

\n " + "smithy.api#documentation": "

The type of supported external login provider that provides identity to let the user\n federate into Amazon QuickSight with an associated IAMrole. The type can be one of the following.

\n " } }, "ExternalLoginFederationProviderUrl": { diff --git a/codegen/sdk-codegen/aws-models/s3.2006-03-01.json b/codegen/sdk-codegen/aws-models/s3.2006-03-01.json index 12c31ab0744..393262c6372 100644 --- a/codegen/sdk-codegen/aws-models/s3.2006-03-01.json +++ b/codegen/sdk-codegen/aws-models/s3.2006-03-01.json @@ -2987,7 +2987,7 @@ "BypassGovernanceRetention": { "target": "com.amazonaws.s3#BypassGovernanceRetention", "traits": { - "smithy.api#documentation": "

Indicates whether S3 Object Lock should bypass Governance-mode restrictions to process\n this operation.

", + "smithy.api#documentation": "

Indicates whether S3 Object Lock should bypass Governance-mode restrictions to process\n this operation. To use this header, you must have the s3:PutBucketPublicAccessBlock\n permission.

", "smithy.api#httpHeader": "x-amz-bypass-governance-retention" } }, @@ -3138,7 +3138,7 @@ "BypassGovernanceRetention": { "target": "com.amazonaws.s3#BypassGovernanceRetention", "traits": { - "smithy.api#documentation": "

Specifies whether you want to delete this object even if it has a Governance-type Object\n Lock in place. You must have sufficient permissions to perform this operation.

", + "smithy.api#documentation": "

Specifies whether you want to delete this object even if it has a Governance-type Object\n Lock in place. To use this header, you must have the s3:PutBucketPublicAccessBlock\n permission.

", "smithy.api#httpHeader": "x-amz-bypass-governance-retention" } }, @@ -4700,7 +4700,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves objects from Amazon S3. To use GET, you must have READ\n access to the object. If you grant READ access to the anonymous user, you can\n return the object without using an authorization header.

\n\n

An Amazon S3 bucket has no directory hierarchy such as you would find in a typical computer\n file system. You can, however, create a logical hierarchy by using object key names that\n imply a folder structure. For example, instead of naming an object sample.jpg,\n you can name it photos/2006/February/sample.jpg.

\n\n

To get an object from such a logical hierarchy, specify the full key name for the object\n in the GET operation. For a virtual hosted-style request example, if you have\n the object photos/2006/February/sample.jpg, specify the resource as\n /photos/2006/February/sample.jpg. For a path-style request example, if you\n have the object photos/2006/February/sample.jpg in the bucket named\n examplebucket, specify the resource as\n /examplebucket/photos/2006/February/sample.jpg. For more information about\n request types, see HTTP Host Header Bucket Specification.

\n\n

To distribute large files to many people, you can save bandwidth costs by using\n BitTorrent. For more information, see Amazon S3\n Torrent. For more information about returning the ACL of an object, see GetObjectAcl.

\n\n

If the object you are retrieving is stored in the S3 Glacier or\n S3 Glacier Deep Archive storage class, or S3 Intelligent-Tiering Archive or\n S3 Intelligent-Tiering Deep Archive tiers, before you can retrieve the object you must first restore a\n copy using RestoreObject. Otherwise, this action returns an\n InvalidObjectStateError error. For information about restoring archived\n objects, see Restoring Archived\n Objects.

\n\n

Encryption request headers, like x-amz-server-side-encryption, should not\n be sent for GET requests if your object uses server-side encryption with CMKs stored in Amazon Web Services\n KMS (SSE-KMS) or server-side encryption with Amazon S3–managed encryption keys (SSE-S3). If your\n object does use these types of keys, you’ll get an HTTP 400 BadRequest error.

\n

If you encrypt an object by using server-side encryption with customer-provided\n encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object,\n you must use the following headers:

\n \n

For more information about SSE-C, see Server-Side Encryption (Using\n Customer-Provided Encryption Keys).

\n\n

Assuming you have permission to read object tags (permission for the\n s3:GetObjectVersionTagging action), the response also returns the\n x-amz-tagging-count header that provides the count of number of tags\n associated with the object. You can use GetObjectTagging to retrieve\n the tag set associated with an object.

\n\n

\n Permissions\n

\n

You need the s3:GetObject permission for this operation. For more\n information, see Specifying Permissions\n in a Policy. If the object you request does not exist, the error Amazon S3 returns\n depends on whether you also have the s3:ListBucket permission.

\n \n\n\n

\n Versioning\n

\n

By default, the GET action returns the current version of an object. To return a\n different version, use the versionId subresource.

\n\n \n \n \n\n\n

For more information about versioning, see PutBucketVersioning.

\n\n

\n Overriding Response Header Values\n

\n

There are times when you want to override certain response header values in a GET\n response. For example, you might override the Content-Disposition response header value in\n your GET request.

\n\n

You can override values for a set of response headers using the following query\n parameters. These response header values are sent only on a successful request, that is,\n when status code 200 OK is returned. The set of headers you can override using these\n parameters is a subset of the headers that Amazon S3 accepts when you create an object. The\n response headers that you can override for the GET response are Content-Type,\n Content-Language, Expires, Cache-Control,\n Content-Disposition, and Content-Encoding. To override these\n header values in the GET response, you use the following request parameters.

\n\n \n

You must sign the request, either using an Authorization header or a presigned URL,\n when using these parameters. They cannot be used with an unsigned (anonymous)\n request.

\n
\n \n\n

\n Additional Considerations about Request Headers\n

\n\n

If both of the If-Match and If-Unmodified-Since headers are\n present in the request as follows: If-Match condition evaluates to\n true, and; If-Unmodified-Since condition evaluates to\n false; then, S3 returns 200 OK and the data requested.

\n\n

If both of the If-None-Match and If-Modified-Since headers are\n present in the request as follows: If-None-Match condition evaluates to\n false, and; If-Modified-Since condition evaluates to\n true; then, S3 returns 304 Not Modified response code.

\n\n

For more information about conditional requests, see RFC 7232.

\n\n

The following operations are related to GetObject:

\n ", + "smithy.api#documentation": "

Retrieves objects from Amazon S3. To use GET, you must have READ\n access to the object. If you grant READ access to the anonymous user, you can\n return the object without using an authorization header.

\n\n

An Amazon S3 bucket has no directory hierarchy such as you would find in a typical computer\n file system. You can, however, create a logical hierarchy by using object key names that\n imply a folder structure. For example, instead of naming an object sample.jpg,\n you can name it photos/2006/February/sample.jpg.

\n\n

To get an object from such a logical hierarchy, specify the full key name for the object\n in the GET operation. For a virtual hosted-style request example, if you have\n the object photos/2006/February/sample.jpg, specify the resource as\n /photos/2006/February/sample.jpg. For a path-style request example, if you\n have the object photos/2006/February/sample.jpg in the bucket named\n examplebucket, specify the resource as\n /examplebucket/photos/2006/February/sample.jpg. For more information about\n request types, see HTTP Host Header Bucket Specification.

\n\n

To distribute large files to many people, you can save bandwidth costs by using\n BitTorrent. For more information, see Amazon S3\n Torrent. For more information about returning the ACL of an object, see GetObjectAcl.

\n\n

If the object you are retrieving is stored in the S3 Glacier or\n S3 Glacier Deep Archive storage class, or S3 Intelligent-Tiering Archive or\n S3 Intelligent-Tiering Deep Archive tiers, before you can retrieve the object you must first restore a\n copy using RestoreObject. Otherwise, this action returns an\n InvalidObjectStateError error. For information about restoring archived\n objects, see Restoring Archived\n Objects.

\n\n

Encryption request headers, like x-amz-server-side-encryption, should not\n be sent for GET requests if your object uses server-side encryption with CMKs stored in Amazon Web Services\n KMS (SSE-KMS) or server-side encryption with Amazon S3–managed encryption keys (SSE-S3). If your\n object does use these types of keys, you’ll get an HTTP 400 BadRequest error.

\n

If you encrypt an object by using server-side encryption with customer-provided\n encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object,\n you must use the following headers:

\n \n

For more information about SSE-C, see Server-Side Encryption (Using\n Customer-Provided Encryption Keys).

\n\n

Assuming you have the relevant permission to read object tags, the response also returns the\n x-amz-tagging-count header that provides the count of number of tags\n associated with the object. You can use GetObjectTagging to retrieve\n the tag set associated with an object.

\n\n

\n Permissions\n

\n

You need the relevant read object (or version) permission for this operation. For more\n information, see Specifying Permissions\n in a Policy. If the object you request does not exist, the error Amazon S3 returns\n depends on whether you also have the s3:ListBucket permission.

\n \n\n\n

\n Versioning\n

\n

By default, the GET action returns the current version of an object. To return a\n different version, use the versionId subresource.

\n\n \n \n \n\n\n

For more information about versioning, see PutBucketVersioning.

\n\n

\n Overriding Response Header Values\n

\n

There are times when you want to override certain response header values in a GET\n response. For example, you might override the Content-Disposition response header value in\n your GET request.

\n\n

You can override values for a set of response headers using the following query\n parameters. These response header values are sent only on a successful request, that is,\n when status code 200 OK is returned. The set of headers you can override using these\n parameters is a subset of the headers that Amazon S3 accepts when you create an object. The\n response headers that you can override for the GET response are Content-Type,\n Content-Language, Expires, Cache-Control,\n Content-Disposition, and Content-Encoding. To override these\n header values in the GET response, you use the following request parameters.

\n\n \n

You must sign the request, either using an Authorization header or a presigned URL,\n when using these parameters. They cannot be used with an unsigned (anonymous)\n request.

\n
\n \n\n

\n Additional Considerations about Request Headers\n

\n\n

If both of the If-Match and If-Unmodified-Since headers are\n present in the request as follows: If-Match condition evaluates to\n true, and; If-Unmodified-Since condition evaluates to\n false; then, S3 returns 200 OK and the data requested.

\n\n

If both of the If-None-Match and If-Modified-Since headers are\n present in the request as follows: If-None-Match condition evaluates to\n false, and; If-Modified-Since condition evaluates to\n true; then, S3 returns 304 Not Modified response code.

\n\n

For more information about conditional requests, see RFC 7232.

\n\n

The following operations are related to GetObject:

\n ", "smithy.api#http": { "method": "GET", "uri": "/{Bucket}/{Key+}?x-id=GetObject", @@ -5749,7 +5749,7 @@ } ], "traits": { - "smithy.api#documentation": "

The HEAD action retrieves metadata from an object without returning the object\n itself. This action is useful if you're only interested in an object's metadata. To use\n HEAD, you must have READ access to the object.

\n\n

A HEAD request has the same options as a GET action on an\n object. The response is identical to the GET response except that there is no\n response body. Because of this, if the HEAD request generates an error, it\n returns a generic 404 Not Found or 403 Forbidden code. It is not \n possible to retrieve the exact exception beyond these error codes.

\n\n

If you encrypt an object by using server-side encryption with customer-provided\n encryption keys (SSE-C) when you store the object in Amazon S3, then when you retrieve the\n metadata from the object, you must use the following headers:

\n \n

For more information about SSE-C, see Server-Side Encryption (Using\n Customer-Provided Encryption Keys).

\n \n \n \n\n\n

Request headers are limited to 8 KB in size. For more information, see Common Request\n Headers.

\n

Consider the following when using request headers:

\n \n\n

For more information about conditional requests, see RFC 7232.

\n\n

\n Permissions\n

\n

You need the s3:GetObject permission for this operation. For more\n information, see Specifying Permissions\n in a Policy. If the object you request does not exist, the error Amazon S3 returns\n depends on whether you also have the s3:ListBucket permission.

\n \n\n

The following action is related to HeadObject:

\n ", + "smithy.api#documentation": "

The HEAD action retrieves metadata from an object without returning the object\n itself. This action is useful if you're only interested in an object's metadata. To use\n HEAD, you must have READ access to the object.

\n\n

A HEAD request has the same options as a GET action on an\n object. The response is identical to the GET response except that there is no\n response body. Because of this, if the HEAD request generates an error, it\n returns a generic 404 Not Found or 403 Forbidden code. It is not \n possible to retrieve the exact exception beyond these error codes.

\n\n

If you encrypt an object by using server-side encryption with customer-provided\n encryption keys (SSE-C) when you store the object in Amazon S3, then when you retrieve the\n metadata from the object, you must use the following headers:

\n \n

For more information about SSE-C, see Server-Side Encryption (Using\n Customer-Provided Encryption Keys).

\n \n \n \n\n\n

Request headers are limited to 8 KB in size. For more information, see Common Request\n Headers.

\n

Consider the following when using request headers:

\n \n\n

For more information about conditional requests, see RFC 7232.

\n\n

\n Permissions\n

\n

You need the relevant read object (or version) permission for this operation. For more\n information, see Specifying Permissions\n in a Policy. If the object you request does not exist, the error Amazon S3 returns\n depends on whether you also have the s3:ListBucket permission.

\n \n\n

The following action is related to HeadObject:

\n ", "smithy.api#http": { "method": "HEAD", "uri": "/{Bucket}/{Key+}", diff --git a/codegen/sdk-codegen/aws-models/s3control.2018-08-20.json b/codegen/sdk-codegen/aws-models/s3control.2018-08-20.json index 2e34eb6add2..f432e9b31c2 100644 --- a/codegen/sdk-codegen/aws-models/s3control.2018-08-20.json +++ b/codegen/sdk-codegen/aws-models/s3control.2018-08-20.json @@ -45,6 +45,9 @@ { "target": "com.amazonaws.s3control#CreateJob" }, + { + "target": "com.amazonaws.s3control#CreateMultiRegionAccessPoint" + }, { "target": "com.amazonaws.s3control#DeleteAccessPoint" }, @@ -72,6 +75,9 @@ { "target": "com.amazonaws.s3control#DeleteJobTagging" }, + { + "target": "com.amazonaws.s3control#DeleteMultiRegionAccessPoint" + }, { "target": "com.amazonaws.s3control#DeletePublicAccessBlock" }, @@ -84,6 +90,9 @@ { "target": "com.amazonaws.s3control#DescribeJob" }, + { + "target": "com.amazonaws.s3control#DescribeMultiRegionAccessPointOperation" + }, { "target": "com.amazonaws.s3control#GetAccessPoint" }, @@ -120,6 +129,15 @@ { "target": "com.amazonaws.s3control#GetJobTagging" }, + { + "target": "com.amazonaws.s3control#GetMultiRegionAccessPoint" + }, + { + "target": "com.amazonaws.s3control#GetMultiRegionAccessPointPolicy" + }, + { + "target": "com.amazonaws.s3control#GetMultiRegionAccessPointPolicyStatus" + }, { "target": "com.amazonaws.s3control#GetPublicAccessBlock" }, @@ -138,6 +156,9 @@ { "target": "com.amazonaws.s3control#ListJobs" }, + { + "target": "com.amazonaws.s3control#ListMultiRegionAccessPoints" + }, { "target": "com.amazonaws.s3control#ListRegionalBuckets" }, @@ -165,6 +186,9 @@ { "target": "com.amazonaws.s3control#PutJobTagging" }, + { + "target": "com.amazonaws.s3control#PutMultiRegionAccessPointPolicy" + }, { "target": "com.amazonaws.s3control#PutPublicAccessBlock" }, @@ -334,6 +358,163 @@ "smithy.api#pattern": "^[0-9a-z\\\\-]{63}$" } }, + "com.amazonaws.s3control#AsyncCreationTimestamp": { + "type": "timestamp" + }, + "com.amazonaws.s3control#AsyncErrorDetails": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.s3control#MaxLength1024String", + "traits": { + "smithy.api#documentation": "

A string that uniquely identifies the error condition.

" + } + }, + "Message": { + "target": "com.amazonaws.s3control#MaxLength1024String", + "traits": { + "smithy.api#documentation": "

A generic descritpion of the error condition in English.

" + } + }, + "Resource": { + "target": "com.amazonaws.s3control#MaxLength1024String", + "traits": { + "smithy.api#documentation": "

The identifier of the resource associated with the error.

" + } + }, + "RequestId": { + "target": "com.amazonaws.s3control#MaxLength1024String", + "traits": { + "smithy.api#documentation": "

The ID of the request associated with the error.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Error details for the failed asynchronous operation.

" + } + }, + "com.amazonaws.s3control#AsyncOperation": { + "type": "structure", + "members": { + "CreationTime": { + "target": "com.amazonaws.s3control#AsyncCreationTimestamp", + "traits": { + "smithy.api#documentation": "

The time that the request was sent to the service.

" + } + }, + "Operation": { + "target": "com.amazonaws.s3control#AsyncOperationName", + "traits": { + "smithy.api#documentation": "

The specific operation for the asynchronous request.

" + } + }, + "RequestTokenARN": { + "target": "com.amazonaws.s3control#AsyncRequestTokenARN", + "traits": { + "smithy.api#documentation": "

The request token associated with the request.

" + } + }, + "RequestParameters": { + "target": "com.amazonaws.s3control#AsyncRequestParameters", + "traits": { + "smithy.api#documentation": "

The parameters associated with the request.

" + } + }, + "RequestStatus": { + "target": "com.amazonaws.s3control#AsyncRequestStatus", + "traits": { + "smithy.api#documentation": "

The current status of the request.

" + } + }, + "ResponseDetails": { + "target": "com.amazonaws.s3control#AsyncResponseDetails", + "traits": { + "smithy.api#documentation": "

The details of the response.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A container for the information about an asynchronous operation.

" + } + }, + "com.amazonaws.s3control#AsyncOperationName": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "CreateMultiRegionAccessPoint", + "name": "CreateMultiRegionAccessPoint" + }, + { + "value": "DeleteMultiRegionAccessPoint", + "name": "DeleteMultiRegionAccessPoint" + }, + { + "value": "PutMultiRegionAccessPointPolicy", + "name": "PutMultiRegionAccessPointPolicy" + } + ] + } + }, + "com.amazonaws.s3control#AsyncRequestParameters": { + "type": "structure", + "members": { + "CreateMultiRegionAccessPointRequest": { + "target": "com.amazonaws.s3control#CreateMultiRegionAccessPointInput", + "traits": { + "smithy.api#documentation": "

A container of the parameters for a \n CreateMultiRegionAccessPoint \n request.

" + } + }, + "DeleteMultiRegionAccessPointRequest": { + "target": "com.amazonaws.s3control#DeleteMultiRegionAccessPointInput", + "traits": { + "smithy.api#documentation": "

A container of the parameters for a \n DeleteMultiRegionAccessPoint \n request.

" + } + }, + "PutMultiRegionAccessPointPolicyRequest": { + "target": "com.amazonaws.s3control#PutMultiRegionAccessPointPolicyInput", + "traits": { + "smithy.api#documentation": "

A container of the parameters for a \n PutMultiRegionAccessPoint \n request.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A container for the request parameters associated with an asynchronous request.

" + } + }, + "com.amazonaws.s3control#AsyncRequestStatus": { + "type": "string" + }, + "com.amazonaws.s3control#AsyncRequestTokenARN": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + }, + "smithy.api#pattern": "^arn:.+$" + } + }, + "com.amazonaws.s3control#AsyncResponseDetails": { + "type": "structure", + "members": { + "MultiRegionAccessPointDetails": { + "target": "com.amazonaws.s3control#MultiRegionAccessPointsAsyncResponse", + "traits": { + "smithy.api#documentation": "

The details for the Multi-Region Access Point.

" + } + }, + "ErrorDetails": { + "target": "com.amazonaws.s3control#AsyncErrorDetails", + "traits": { + "smithy.api#documentation": "

Error details for an asynchronous request.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A container for the response details that are returned when querying about an\n asynchronous request.

" + } + }, "com.amazonaws.s3control#AwsLambdaTransformation": { "type": "structure", "members": { @@ -576,7 +757,7 @@ "AccountId": { "target": "com.amazonaws.s3control#AccountId", "traits": { - "smithy.api#documentation": "

The account ID for owner of the specified Object Lambda Access Point.

", + "smithy.api#documentation": "

The Amazon Web Services account ID for owner of the specified Object Lambda Access Point.

", "smithy.api#hostLabel": {}, "smithy.api#httpHeader": "x-amz-account-id", "smithy.api#required": {} @@ -616,7 +797,7 @@ "AccountId": { "target": "com.amazonaws.s3control#AccountId", "traits": { - "smithy.api#documentation": "

The account ID for the owner of the bucket for which you want to create an access point.

", + "smithy.api#documentation": "

The Amazon Web Services account ID for the owner of the bucket for which you want to create an access point.

", "smithy.api#hostLabel": {}, "smithy.api#httpHeader": "x-amz-account-id", "smithy.api#required": {} @@ -843,7 +1024,7 @@ "AccountId": { "target": "com.amazonaws.s3control#AccountId", "traits": { - "smithy.api#documentation": "

The account ID that creates the job.

", + "smithy.api#documentation": "

The Amazon Web Services account ID that creates the job.

", "smithy.api#hostLabel": {}, "smithy.api#httpHeader": "x-amz-account-id", "smithy.api#required": {} @@ -925,9 +1106,98 @@ } } }, + "com.amazonaws.s3control#CreateMultiRegionAccessPoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3control#CreateMultiRegionAccessPointRequest" + }, + "output": { + "target": "com.amazonaws.s3control#CreateMultiRegionAccessPointResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a Multi-Region Access Point and associates it with the specified buckets. For more information about creating Multi-Region Access Points, see \n Creating\n Multi-Region Access Points in the Amazon S3 User Guide.

\n

This action will always be routed to the US West (Oregon) Region. For more\n information about the restrictions around managing Multi-Region Access Points, see Managing\n Multi-Region Access Points in the\n Amazon S3 User Guide.

\n

This request is asynchronous, meaning that you might receive a response before the\n command has completed. When this request provides a response, it provides a token that\n you can use to monitor the status of the request with\n DescribeMultiRegionAccessPointOperation.

\n

The following actions are related to CreateMultiRegionAccessPoint:

\n ", + "smithy.api#endpoint": { + "hostPrefix": "{AccountId}." + }, + "smithy.api#http": { + "method": "POST", + "uri": "/v20180820/async-requests/mrap/create", + "code": 200 + }, + "smithy.api#httpChecksumRequired": {} + } + }, + "com.amazonaws.s3control#CreateMultiRegionAccessPointInput": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.s3control#MultiRegionAccessPointName", + "traits": { + "smithy.api#documentation": "

The name of the Multi-Region Access Point associated with this request.

", + "smithy.api#required": {} + } + }, + "PublicAccessBlock": { + "target": "com.amazonaws.s3control#PublicAccessBlockConfiguration" + }, + "Regions": { + "target": "com.amazonaws.s3control#RegionCreationList", + "traits": { + "smithy.api#documentation": "

The buckets in different Regions that are associated with the Multi-Region Access Point.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A container for the information associated with a\n CreateMultiRegionAccessPoint\n request.\n

" + } + }, + "com.amazonaws.s3control#CreateMultiRegionAccessPointRequest": { + "type": "structure", + "members": { + "AccountId": { + "target": "com.amazonaws.s3control#AccountId", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services account ID for the owner of the Multi-Region Access Point. The owner of the Multi-Region Access Point also must own\n the underlying buckets.

", + "smithy.api#hostLabel": {}, + "smithy.api#httpHeader": "x-amz-account-id", + "smithy.api#required": {} + } + }, + "ClientToken": { + "target": "com.amazonaws.s3control#MultiRegionAccessPointClientToken", + "traits": { + "smithy.api#documentation": "

An idempotency token used to identify the request and guarantee that requests are\n unique.

", + "smithy.api#idempotencyToken": {}, + "smithy.api#required": {} + } + }, + "Details": { + "target": "com.amazonaws.s3control#CreateMultiRegionAccessPointInput", + "traits": { + "smithy.api#documentation": "

A container element containing details about the Multi-Region Access Point.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.s3control#CreateMultiRegionAccessPointResult": { + "type": "structure", + "members": { + "RequestTokenARN": { + "target": "com.amazonaws.s3control#AsyncRequestTokenARN", + "traits": { + "smithy.api#documentation": "

The request token associated with the request. You can use this token with DescribeMultiRegionAccessPointOperation to determine the status of\n asynchronous requests.

" + } + } + } + }, "com.amazonaws.s3control#CreationDate": { "type": "timestamp" }, + "com.amazonaws.s3control#CreationTimestamp": { + "type": "timestamp" + }, "com.amazonaws.s3control#Date": { "type": "timestamp" }, @@ -1155,7 +1425,7 @@ "target": "com.amazonaws.s3control#DeleteBucketPolicyRequest" }, "traits": { - "smithy.api#documentation": "\n

This action deletes an Amazon S3 on Outposts bucket policy. To delete an \n S3 bucket policy, see DeleteBucketPolicy in the Amazon S3 API Reference.\n

\n
\n

This implementation of the DELETE action uses the policy subresource to delete the\n policy of a specified Amazon S3 on Outposts bucket. If you are using an identity other than the\n root user of the account that owns the bucket, the calling identity must have the\n s3-outposts:DeleteBucketPolicy permissions on the specified Outposts bucket\n and belong to the bucket owner's account to use this action. For more information, see\n Using Amazon S3 on Outposts in\n Amazon S3 User Guide.

\n \n

If you don't have DeleteBucketPolicy permissions, Amazon S3 returns a\n 403 Access Denied error. If you have the correct permissions, but you're\n not using an identity that belongs to the bucket owner's account, Amazon S3 returns a\n 405 Method Not Allowed error.

\n \n \n \n

As a security precaution, the root user of the account that owns a bucket can always use this action,\n even if the policy explicitly denies the root user the ability to perform this action.

\n
\n \n

For more information about bucket policies, see Using Bucket Policies and User Policies.

\n \n

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived using the access point ARN, see the Examples section.

\n \n

The following actions are related to DeleteBucketPolicy:

\n ", + "smithy.api#documentation": "\n

This action deletes an Amazon S3 on Outposts bucket policy. To delete an \n S3 bucket policy, see DeleteBucketPolicy in the Amazon S3 API Reference.\n

\n
\n

This implementation of the DELETE action uses the policy subresource to delete the\n policy of a specified Amazon S3 on Outposts bucket. If you are using an identity other than the\n root user of the Amazon Web Services account that owns the bucket, the calling identity must have the\n s3-outposts:DeleteBucketPolicy permissions on the specified Outposts bucket\n and belong to the bucket owner's account to use this action. For more information, see\n Using Amazon S3 on Outposts in\n Amazon S3 User Guide.

\n \n

If you don't have DeleteBucketPolicy permissions, Amazon S3 returns a\n 403 Access Denied error. If you have the correct permissions, but you're\n not using an identity that belongs to the bucket owner's account, Amazon S3 returns a\n 405 Method Not Allowed error.

\n \n \n \n

As a security precaution, the root user of the Amazon Web Services account that owns a bucket can always use this action,\n even if the policy explicitly denies the root user the ability to perform this action.

\n
\n \n

For more information about bucket policies, see Using Bucket Policies and User Policies.

\n \n

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived using the access point ARN, see the Examples section.

\n \n

The following actions are related to DeleteBucketPolicy:

\n ", "smithy.api#endpoint": { "hostPrefix": "{AccountId}." }, @@ -1233,7 +1503,7 @@ "AccountId": { "target": "com.amazonaws.s3control#AccountId", "traits": { - "smithy.api#documentation": "

The account ID of the Outposts bucket tag set to be removed.

", + "smithy.api#documentation": "

The Amazon Web Services account ID of the Outposts bucket tag set to be removed.

", "smithy.api#hostLabel": {}, "smithy.api#httpHeader": "x-amz-account-id", "smithy.api#required": {} @@ -1286,7 +1556,7 @@ "AccountId": { "target": "com.amazonaws.s3control#AccountId", "traits": { - "smithy.api#documentation": "

The account ID associated with the S3 Batch Operations job.

", + "smithy.api#documentation": "

The Amazon Web Services account ID associated with the S3 Batch Operations job.

", "smithy.api#hostLabel": {}, "smithy.api#httpHeader": "x-amz-account-id", "smithy.api#required": {} @@ -1306,13 +1576,89 @@ "type": "structure", "members": {} }, + "com.amazonaws.s3control#DeleteMultiRegionAccessPoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3control#DeleteMultiRegionAccessPointRequest" + }, + "output": { + "target": "com.amazonaws.s3control#DeleteMultiRegionAccessPointResult" + }, + "traits": { + "smithy.api#documentation": "

Deletes a Multi-Region Access Point. This action does not delete the buckets associated with the Multi-Region Access Point,\n only the Multi-Region Access Point itself.

\n

This action will always be routed to the US West (Oregon) Region. For more\n information about the restrictions around managing Multi-Region Access Points, see Managing\n Multi-Region Access Points in the\n Amazon S3 User Guide.

\n

This request is asynchronous, meaning that you might receive a response before the\n command has completed. When this request provides a response, it provides a token that\n you can use to monitor the status of the request with\n DescribeMultiRegionAccessPointOperation.

\n

The following actions are related to DeleteMultiRegionAccessPoint:

\n ", + "smithy.api#endpoint": { + "hostPrefix": "{AccountId}." + }, + "smithy.api#http": { + "method": "POST", + "uri": "/v20180820/async-requests/mrap/delete", + "code": 200 + }, + "smithy.api#httpChecksumRequired": {} + } + }, + "com.amazonaws.s3control#DeleteMultiRegionAccessPointInput": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.s3control#MultiRegionAccessPointName", + "traits": { + "smithy.api#documentation": "

The name of the Multi-Region Access Point associated with this request.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A container for the information associated with a\n DeleteMultiRegionAccessPoint\n request.

" + } + }, + "com.amazonaws.s3control#DeleteMultiRegionAccessPointRequest": { + "type": "structure", + "members": { + "AccountId": { + "target": "com.amazonaws.s3control#AccountId", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services account ID for the owner of the Multi-Region Access Point.

", + "smithy.api#hostLabel": {}, + "smithy.api#httpHeader": "x-amz-account-id", + "smithy.api#required": {} + } + }, + "ClientToken": { + "target": "com.amazonaws.s3control#MultiRegionAccessPointClientToken", + "traits": { + "smithy.api#documentation": "

An idempotency token used to identify the request and guarantee that requests are\n unique.

", + "smithy.api#idempotencyToken": {}, + "smithy.api#required": {} + } + }, + "Details": { + "target": "com.amazonaws.s3control#DeleteMultiRegionAccessPointInput", + "traits": { + "smithy.api#documentation": "

A container element containing details about the Multi-Region Access Point.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.s3control#DeleteMultiRegionAccessPointResult": { + "type": "structure", + "members": { + "RequestTokenARN": { + "target": "com.amazonaws.s3control#AsyncRequestTokenARN", + "traits": { + "smithy.api#documentation": "

The request token associated with the request. You can use this token with DescribeMultiRegionAccessPointOperation to determine the status of\n asynchronous requests.

" + } + } + } + }, "com.amazonaws.s3control#DeletePublicAccessBlock": { "type": "operation", "input": { "target": "com.amazonaws.s3control#DeletePublicAccessBlockRequest" }, "traits": { - "smithy.api#documentation": "

Removes the PublicAccessBlock configuration for an account. For more\n information, see Using Amazon S3 block\n public access.

\n

Related actions include:

\n ", + "smithy.api#documentation": "

Removes the PublicAccessBlock configuration for an Amazon Web Services account. For more\n information, see Using Amazon S3 block\n public access.

\n

Related actions include:

\n ", "smithy.api#endpoint": { "hostPrefix": "{AccountId}." }, @@ -1329,7 +1675,7 @@ "AccountId": { "target": "com.amazonaws.s3control#AccountId", "traits": { - "smithy.api#documentation": "

The account ID for the account whose PublicAccessBlock configuration you want\n to remove.

", + "smithy.api#documentation": "

The account ID for the Amazon Web Services account whose PublicAccessBlock configuration you want\n to remove.

", "smithy.api#hostLabel": {}, "smithy.api#httpHeader": "x-amz-account-id", "smithy.api#required": {} @@ -1462,7 +1808,7 @@ "AccountId": { "target": "com.amazonaws.s3control#AccountId", "traits": { - "smithy.api#documentation": "

The account ID associated with the S3 Batch Operations job.

", + "smithy.api#documentation": "

The Amazon Web Services account ID associated with the S3 Batch Operations job.

", "smithy.api#hostLabel": {}, "smithy.api#httpHeader": "x-amz-account-id", "smithy.api#required": {} @@ -1489,21 +1835,89 @@ } } }, - "com.amazonaws.s3control#Endpoints": { - "type": "map", - "key": { - "target": "com.amazonaws.s3control#NonEmptyMaxLength64String" + "com.amazonaws.s3control#DescribeMultiRegionAccessPointOperation": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3control#DescribeMultiRegionAccessPointOperationRequest" }, - "value": { - "target": "com.amazonaws.s3control#NonEmptyMaxLength1024String" + "output": { + "target": "com.amazonaws.s3control#DescribeMultiRegionAccessPointOperationResult" + }, + "traits": { + "smithy.api#documentation": "

Retrieves the status of an asynchronous request to manage a Multi-Region Access Point. For more information\n about managing Multi-Region Access Points and how asynchronous requests work, see Managing\n Multi-Region Access Points in the\n Amazon S3 User Guide.

\n

The following actions are related to GetMultiRegionAccessPoint:

\n ", + "smithy.api#endpoint": { + "hostPrefix": "{AccountId}." + }, + "smithy.api#http": { + "method": "GET", + "uri": "/v20180820/async-requests/mrap/{RequestTokenARN+}", + "code": 200 + }, + "smithy.api#httpChecksumRequired": {} } }, - "com.amazonaws.s3control#ExceptionMessage": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 1024 + "com.amazonaws.s3control#DescribeMultiRegionAccessPointOperationRequest": { + "type": "structure", + "members": { + "AccountId": { + "target": "com.amazonaws.s3control#AccountId", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services account ID for the owner of the Multi-Region Access Point.

", + "smithy.api#hostLabel": {}, + "smithy.api#httpHeader": "x-amz-account-id", + "smithy.api#required": {} + } + }, + "RequestTokenARN": { + "target": "com.amazonaws.s3control#AsyncRequestTokenARN", + "traits": { + "smithy.api#documentation": "

The request token associated with the request you want to know about. This request token\n is returned as part of the response when you make an asynchronous request. You provide\n this token to query about the status of the asynchronous action.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.s3control#DescribeMultiRegionAccessPointOperationResult": { + "type": "structure", + "members": { + "AsyncOperation": { + "target": "com.amazonaws.s3control#AsyncOperation", + "traits": { + "smithy.api#documentation": "

A container element containing the details of the asynchronous operation.

" + } + } + } + }, + "com.amazonaws.s3control#Endpoints": { + "type": "map", + "key": { + "target": "com.amazonaws.s3control#NonEmptyMaxLength64String" + }, + "value": { + "target": "com.amazonaws.s3control#NonEmptyMaxLength1024String" + } + }, + "com.amazonaws.s3control#EstablishedMultiRegionAccessPointPolicy": { + "type": "structure", + "members": { + "Policy": { + "target": "com.amazonaws.s3control#Policy", + "traits": { + "smithy.api#documentation": "

The details of the last established policy.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The last established access control policy for a Multi-Region Access Point.

\n

When you update the policy, the update is first listed as the proposed policy. After the\n update is finished and all Regions have been updated, the proposed policy is listed as\n the established policy. If both policies have the same version number, the proposed\n policy is the established policy.

" + } + }, + "com.amazonaws.s3control#ExceptionMessage": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 } } }, @@ -2004,7 +2418,7 @@ "target": "com.amazonaws.s3control#GetBucketResult" }, "traits": { - "smithy.api#documentation": "

Gets an Amazon S3 on Outposts bucket. For more information, see \n Using Amazon S3 on Outposts in the Amazon S3 User Guide.

\n

If you are using an identity other than the root user of the account \n that owns the Outposts bucket, the calling identity must have the \n s3-outposts:GetBucket permissions on the specified Outposts bucket and \n belong to the Outposts bucket owner's account in order to use this action. Only \n users from Outposts bucket owner account with the right permissions can perform \n actions on an Outposts bucket. \n

\n

\n If you don't have s3-outposts:GetBucket permissions or you're not using an identity that belongs to the bucket owner's \n account, Amazon S3 returns a 403 Access Denied error.

\n

The following actions are related to GetBucket for Amazon S3 on Outposts:

\n

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived using the access point ARN, see the Examples section.

\n ", + "smithy.api#documentation": "

Gets an Amazon S3 on Outposts bucket. For more information, see \n Using Amazon S3 on Outposts in the Amazon S3 User Guide.

\n

If you are using an identity other than the root user of the Amazon Web Services account \n that owns the Outposts bucket, the calling identity must have the \n s3-outposts:GetBucket permissions on the specified Outposts bucket and \n belong to the Outposts bucket owner's account in order to use this action. Only \n users from Outposts bucket owner account with the right permissions can perform \n actions on an Outposts bucket. \n

\n

\n If you don't have s3-outposts:GetBucket permissions or you're not using an identity that belongs to the bucket owner's \n account, Amazon S3 returns a 403 Access Denied error.

\n

The following actions are related to GetBucket for Amazon S3 on Outposts:

\n

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived using the access point ARN, see the Examples section.

\n ", "smithy.api#endpoint": { "hostPrefix": "{AccountId}." }, @@ -2041,7 +2455,7 @@ "AccountId": { "target": "com.amazonaws.s3control#AccountId", "traits": { - "smithy.api#documentation": "

The account ID of the Outposts bucket.

", + "smithy.api#documentation": "

The Amazon Web Services account ID of the Outposts bucket.

", "smithy.api#hostLabel": {}, "smithy.api#httpHeader": "x-amz-account-id", "smithy.api#required": {} @@ -2077,7 +2491,7 @@ "target": "com.amazonaws.s3control#GetBucketPolicyResult" }, "traits": { - "smithy.api#documentation": "\n

This action gets a bucket policy for an Amazon S3 on Outposts bucket. To get a policy for an S3\n bucket, see GetBucketPolicy in the\n Amazon S3 API Reference.

\n
\n

Returns the policy of a specified Outposts bucket. For more information, see Using Amazon S3 on Outposts in the\n Amazon S3 User Guide.

\n

If you are using an identity other than the root user of the account that owns the bucket, the calling identity \n must have the GetBucketPolicy permissions on the specified bucket and belong to the bucket owner's account in order to use this action.

\n \n

Only users from Outposts bucket owner account with the right permissions can perform actions on an Outposts bucket. \n If you don't have s3-outposts:GetBucketPolicy permissions or you're not using an identity that belongs to the bucket owner's \n account, Amazon S3 returns a 403 Access Denied error.

\n \n \n

As a security precaution, the root user of the account that owns a bucket can always use this action, even if the policy \n explicitly denies the root user the ability to perform this action.

\n
\n \n

For more information about bucket policies, see Using Bucket Policies and User Policies.

\n \n

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived using the access point ARN, see the Examples section.

\n \n

The following actions are related to GetBucketPolicy:

\n ", + "smithy.api#documentation": "\n

This action gets a bucket policy for an Amazon S3 on Outposts bucket. To get a policy for an S3\n bucket, see GetBucketPolicy in the\n Amazon S3 API Reference.

\n
\n

Returns the policy of a specified Outposts bucket. For more information, see Using Amazon S3 on Outposts in the\n Amazon S3 User Guide.

\n

If you are using an identity other than the root user of the Amazon Web Services account that owns the bucket, the calling identity \n must have the GetBucketPolicy permissions on the specified bucket and belong to the bucket owner's account in order to use this action.

\n \n

Only users from Outposts bucket owner account with the right permissions can perform actions on an Outposts bucket. \n If you don't have s3-outposts:GetBucketPolicy permissions or you're not using an identity that belongs to the bucket owner's \n account, Amazon S3 returns a 403 Access Denied error.

\n \n \n

As a security precaution, the root user of the Amazon Web Services account that owns a bucket can always use this action, even if the policy \n explicitly denies the root user the ability to perform this action.

\n
\n \n

For more information about bucket policies, see Using Bucket Policies and User Policies.

\n \n

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived using the access point ARN, see the Examples section.

\n \n

The following actions are related to GetBucketPolicy:

\n ", "smithy.api#endpoint": { "hostPrefix": "{AccountId}." }, @@ -2094,7 +2508,7 @@ "AccountId": { "target": "com.amazonaws.s3control#AccountId", "traits": { - "smithy.api#documentation": "

The account ID of the Outposts bucket.

", + "smithy.api#documentation": "

The Amazon Web Services account ID of the Outposts bucket.

", "smithy.api#hostLabel": {}, "smithy.api#httpHeader": "x-amz-account-id", "smithy.api#required": {} @@ -2127,7 +2541,7 @@ "AccountId": { "target": "com.amazonaws.s3control#AccountId", "traits": { - "smithy.api#documentation": "

The account ID of the Outposts bucket.

", + "smithy.api#documentation": "

The Amazon Web Services account ID of the Outposts bucket.

", "smithy.api#hostLabel": {}, "smithy.api#httpHeader": "x-amz-account-id", "smithy.api#required": {} @@ -2192,7 +2606,7 @@ "AccountId": { "target": "com.amazonaws.s3control#AccountId", "traits": { - "smithy.api#documentation": "

The account ID of the Outposts bucket.

", + "smithy.api#documentation": "

The Amazon Web Services account ID of the Outposts bucket.

", "smithy.api#hostLabel": {}, "smithy.api#httpHeader": "x-amz-account-id", "smithy.api#required": {} @@ -2257,7 +2671,7 @@ "AccountId": { "target": "com.amazonaws.s3control#AccountId", "traits": { - "smithy.api#documentation": "

The account ID associated with the S3 Batch Operations job.

", + "smithy.api#documentation": "

The Amazon Web Services account ID associated with the S3 Batch Operations job.

", "smithy.api#hostLabel": {}, "smithy.api#httpHeader": "x-amz-account-id", "smithy.api#required": {} @@ -2284,6 +2698,165 @@ } } }, + "com.amazonaws.s3control#GetMultiRegionAccessPoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3control#GetMultiRegionAccessPointRequest" + }, + "output": { + "target": "com.amazonaws.s3control#GetMultiRegionAccessPointResult" + }, + "traits": { + "smithy.api#documentation": "

Returns configuration information about the specified Multi-Region Access Point.

\n

This action will always be routed to the US West (Oregon) Region. For more\n information about the restrictions around managing Multi-Region Access Points, see Managing\n Multi-Region Access Points in the\n Amazon S3 User Guide.

\n

The following actions are related to GetMultiRegionAccessPoint:

\n ", + "smithy.api#endpoint": { + "hostPrefix": "{AccountId}." + }, + "smithy.api#http": { + "method": "GET", + "uri": "/v20180820/mrap/instances/{Name}", + "code": 200 + }, + "smithy.api#httpChecksumRequired": {} + } + }, + "com.amazonaws.s3control#GetMultiRegionAccessPointPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3control#GetMultiRegionAccessPointPolicyRequest" + }, + "output": { + "target": "com.amazonaws.s3control#GetMultiRegionAccessPointPolicyResult" + }, + "traits": { + "smithy.api#documentation": "

Returns the access control policy of the specified Multi-Region Access Point.

\n

This action will always be routed to the US West (Oregon) Region. For more\n information about the restrictions around managing Multi-Region Access Points, see Managing\n Multi-Region Access Points in the\n Amazon S3 User Guide.

\n

The following actions are related to GetMultiRegionAccessPointPolicy:

\n ", + "smithy.api#endpoint": { + "hostPrefix": "{AccountId}." + }, + "smithy.api#http": { + "method": "GET", + "uri": "/v20180820/mrap/instances/{Name}/policy", + "code": 200 + }, + "smithy.api#httpChecksumRequired": {} + } + }, + "com.amazonaws.s3control#GetMultiRegionAccessPointPolicyRequest": { + "type": "structure", + "members": { + "AccountId": { + "target": "com.amazonaws.s3control#AccountId", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services account ID for the owner of the Multi-Region Access Point.

", + "smithy.api#hostLabel": {}, + "smithy.api#httpHeader": "x-amz-account-id", + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.s3control#MultiRegionAccessPointName", + "traits": { + "smithy.api#documentation": "

Specifies the Multi-Region Access Point. The name of the Multi-Region Access Point is different from the alias. For more\n information about the distinction between the name and the alias of an Multi-Region Access Point, see\n Managing Multi-Region Access Points in the\n Amazon S3 User Guide.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.s3control#GetMultiRegionAccessPointPolicyResult": { + "type": "structure", + "members": { + "Policy": { + "target": "com.amazonaws.s3control#MultiRegionAccessPointPolicyDocument", + "traits": { + "smithy.api#documentation": "

The policy associated with the specified Multi-Region Access Point.

" + } + } + } + }, + "com.amazonaws.s3control#GetMultiRegionAccessPointPolicyStatus": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3control#GetMultiRegionAccessPointPolicyStatusRequest" + }, + "output": { + "target": "com.amazonaws.s3control#GetMultiRegionAccessPointPolicyStatusResult" + }, + "traits": { + "smithy.api#documentation": "

Indicates whether the specified Multi-Region Access Point has an access control policy that allows public\n access.

\n

This action will always be routed to the US West (Oregon) Region. For more\n information about the restrictions around managing Multi-Region Access Points, see Managing\n Multi-Region Access Points in the\n Amazon S3 User Guide.

\n

The following actions are related to GetMultiRegionAccessPointPolicyStatus:

\n ", + "smithy.api#endpoint": { + "hostPrefix": "{AccountId}." + }, + "smithy.api#http": { + "method": "GET", + "uri": "/v20180820/mrap/instances/{Name}/policystatus", + "code": 200 + }, + "smithy.api#httpChecksumRequired": {} + } + }, + "com.amazonaws.s3control#GetMultiRegionAccessPointPolicyStatusRequest": { + "type": "structure", + "members": { + "AccountId": { + "target": "com.amazonaws.s3control#AccountId", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services account ID for the owner of the Multi-Region Access Point.

", + "smithy.api#hostLabel": {}, + "smithy.api#httpHeader": "x-amz-account-id", + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.s3control#MultiRegionAccessPointName", + "traits": { + "smithy.api#documentation": "

Specifies the Multi-Region Access Point. The name of the Multi-Region Access Point is different from the alias. For more\n information about the distinction between the name and the alias of an Multi-Region Access Point, see\n Managing Multi-Region Access Points in the\n Amazon S3 User Guide.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.s3control#GetMultiRegionAccessPointPolicyStatusResult": { + "type": "structure", + "members": { + "Established": { + "target": "com.amazonaws.s3control#PolicyStatus" + } + } + }, + "com.amazonaws.s3control#GetMultiRegionAccessPointRequest": { + "type": "structure", + "members": { + "AccountId": { + "target": "com.amazonaws.s3control#AccountId", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services account ID for the owner of the Multi-Region Access Point.

", + "smithy.api#hostLabel": {}, + "smithy.api#httpHeader": "x-amz-account-id", + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.s3control#MultiRegionAccessPointName", + "traits": { + "smithy.api#documentation": "

The name of the Multi-Region Access Point whose configuration information you want to receive. The name of\n the Multi-Region Access Point is different from the alias. For more information about the distinction\n between the name and the alias of an Multi-Region Access Point, see Managing Multi-Region Access Points in the\n Amazon S3 User Guide.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.s3control#GetMultiRegionAccessPointResult": { + "type": "structure", + "members": { + "AccessPoint": { + "target": "com.amazonaws.s3control#MultiRegionAccessPointReport", + "traits": { + "smithy.api#documentation": "

A container element containing the details of the requested Multi-Region Access Point.

" + } + } + } + }, "com.amazonaws.s3control#GetPublicAccessBlock": { "type": "operation", "input": { @@ -2298,7 +2871,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves the PublicAccessBlock configuration for an account. For more\n information, see Using Amazon S3 block\n public access.

\n

Related actions include:

\n ", + "smithy.api#documentation": "

Retrieves the PublicAccessBlock configuration for an Amazon Web Services account. For more\n information, see Using Amazon S3 block\n public access.

\n

Related actions include:

\n ", "smithy.api#endpoint": { "hostPrefix": "{AccountId}." }, @@ -2315,7 +2888,7 @@ "PublicAccessBlockConfiguration": { "target": "com.amazonaws.s3control#PublicAccessBlockConfiguration", "traits": { - "smithy.api#documentation": "

The PublicAccessBlock configuration currently in effect for this account.

", + "smithy.api#documentation": "

The PublicAccessBlock configuration currently in effect for this Amazon Web Services account.

", "smithy.api#httpPayload": {} } } @@ -2327,7 +2900,7 @@ "AccountId": { "target": "com.amazonaws.s3control#AccountId", "traits": { - "smithy.api#documentation": "

The account ID for the account whose PublicAccessBlock configuration you want\n to retrieve.

", + "smithy.api#documentation": "

The account ID for the Amazon Web Services account whose PublicAccessBlock configuration you want\n to retrieve.

", "smithy.api#hostLabel": {}, "smithy.api#httpHeader": "x-amz-account-id", "smithy.api#required": {} @@ -3438,7 +4011,7 @@ "AccountId": { "target": "com.amazonaws.s3control#AccountId", "traits": { - "smithy.api#documentation": "

The account ID for owner of the bucket whose access points you want to list.

", + "smithy.api#documentation": "

The Amazon Web Services account ID for owner of the bucket whose access points you want to list.

", "smithy.api#hostLabel": {}, "smithy.api#httpHeader": "x-amz-account-id", "smithy.api#required": {} @@ -3504,7 +4077,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists current S3 Batch Operations jobs and jobs that have ended within the last 30 days for\n the account making the request. For more information, see S3 Batch Operations in the\n Amazon S3 User Guide.

\n

Related actions include:

\n

\n ", + "smithy.api#documentation": "

Lists current S3 Batch Operations jobs and jobs that have ended within the last 30 days for\n the Amazon Web Services account making the request. For more information, see S3 Batch Operations in the\n Amazon S3 User Guide.

\n

Related actions include:

\n

\n ", "smithy.api#endpoint": { "hostPrefix": "{AccountId}." }, @@ -3526,7 +4099,7 @@ "AccountId": { "target": "com.amazonaws.s3control#AccountId", "traits": { - "smithy.api#documentation": "

The account ID associated with the S3 Batch Operations job.

", + "smithy.api#documentation": "

The Amazon Web Services account ID associated with the S3 Batch Operations job.

", "smithy.api#hostLabel": {}, "smithy.api#httpHeader": "x-amz-account-id", "smithy.api#required": {} @@ -3573,6 +4146,77 @@ } } }, + "com.amazonaws.s3control#ListMultiRegionAccessPoints": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3control#ListMultiRegionAccessPointsRequest" + }, + "output": { + "target": "com.amazonaws.s3control#ListMultiRegionAccessPointsResult" + }, + "traits": { + "smithy.api#documentation": "

Returns a list of the Multi-Region Access Points currently associated with the specified Amazon Web Services account. Each\n call can return up to 100 Multi-Region Access Points, the maximum number of Multi-Region Access Points that can be associated with\n a single account.

\n

This action will always be routed to the US West (Oregon) Region. For more\n information about the restrictions around managing Multi-Region Access Points, see Managing\n Multi-Region Access Points in the\n Amazon S3 User Guide.

\n

The following actions are related to ListMultiRegionAccessPoint:

\n ", + "smithy.api#endpoint": { + "hostPrefix": "{AccountId}." + }, + "smithy.api#http": { + "method": "GET", + "uri": "/v20180820/mrap/instances", + "code": 200 + }, + "smithy.api#httpChecksumRequired": {}, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.s3control#ListMultiRegionAccessPointsRequest": { + "type": "structure", + "members": { + "AccountId": { + "target": "com.amazonaws.s3control#AccountId", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services account ID for the owner of the Multi-Region Access Point.

", + "smithy.api#hostLabel": {}, + "smithy.api#httpHeader": "x-amz-account-id", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.s3control#NonEmptyMaxLength1024String", + "traits": { + "smithy.api#documentation": "

Not currently used. Do not use this parameter.

", + "smithy.api#httpQuery": "nextToken" + } + }, + "MaxResults": { + "target": "com.amazonaws.s3control#MaxResults", + "traits": { + "smithy.api#documentation": "

Not currently used. Do not use this parameter.

", + "smithy.api#httpQuery": "maxResults" + } + } + } + }, + "com.amazonaws.s3control#ListMultiRegionAccessPointsResult": { + "type": "structure", + "members": { + "AccessPoints": { + "target": "com.amazonaws.s3control#MultiRegionAccessPointReportList", + "traits": { + "smithy.api#documentation": "

The list of Multi-Region Access Points associated with the user.

" + } + }, + "NextToken": { + "target": "com.amazonaws.s3control#NonEmptyMaxLength1024String", + "traits": { + "smithy.api#documentation": "

If the specified bucket has more Multi-Region Access Points than can be returned in one call to this\n action, this field contains a continuation token. You can use this token tin subsequent\n calls to this action to retrieve additional Multi-Region Access Points.

" + } + } + } + }, "com.amazonaws.s3control#ListRegionalBuckets": { "type": "operation", "input": { @@ -3604,7 +4248,7 @@ "AccountId": { "target": "com.amazonaws.s3control#AccountId", "traits": { - "smithy.api#documentation": "

The account ID of the Outposts bucket.

", + "smithy.api#documentation": "

The Amazon Web Services account ID of the Outposts bucket.

", "smithy.api#hostLabel": {}, "smithy.api#httpHeader": "x-amz-account-id", "smithy.api#required": {} @@ -3778,6 +4422,180 @@ } } }, + "com.amazonaws.s3control#MultiRegionAccessPointAlias": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 63 + }, + "smithy.api#pattern": "^[a-z][a-z0-9]*[.]mrap$" + } + }, + "com.amazonaws.s3control#MultiRegionAccessPointClientToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 64 + }, + "smithy.api#pattern": "^\\S+$" + } + }, + "com.amazonaws.s3control#MultiRegionAccessPointName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + }, + "smithy.api#pattern": "^[a-z0-9][-a-z0-9]{1,48}[a-z0-9]$" + } + }, + "com.amazonaws.s3control#MultiRegionAccessPointPolicyDocument": { + "type": "structure", + "members": { + "Established": { + "target": "com.amazonaws.s3control#EstablishedMultiRegionAccessPointPolicy", + "traits": { + "smithy.api#documentation": "

The last established policy for the Multi-Region Access Point.

" + } + }, + "Proposed": { + "target": "com.amazonaws.s3control#ProposedMultiRegionAccessPointPolicy", + "traits": { + "smithy.api#documentation": "

The proposed policy for the Multi-Region Access Point.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Multi-Region Access Point access control policy.

\n

When you update the policy, the update is first listed as the proposed policy. After the\n update is finished and all Regions have been updated, the proposed policy is listed as\n the established policy. If both policies have the same version number, the proposed\n policy is the established policy.

" + } + }, + "com.amazonaws.s3control#MultiRegionAccessPointRegionalResponse": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.s3control#RegionName", + "traits": { + "smithy.api#documentation": "

The name of the Region in the Multi-Region Access Point.

" + } + }, + "RequestStatus": { + "target": "com.amazonaws.s3control#AsyncRequestStatus", + "traits": { + "smithy.api#documentation": "

The current status of the Multi-Region Access Point in this Region.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Status information for a single Multi-Region Access Point Region.

" + } + }, + "com.amazonaws.s3control#MultiRegionAccessPointRegionalResponseList": { + "type": "list", + "member": { + "target": "com.amazonaws.s3control#MultiRegionAccessPointRegionalResponse", + "traits": { + "smithy.api#xmlName": "Region" + } + } + }, + "com.amazonaws.s3control#MultiRegionAccessPointReport": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.s3control#MultiRegionAccessPointName", + "traits": { + "smithy.api#documentation": "

The name of the Multi-Region Access Point.

" + } + }, + "Alias": { + "target": "com.amazonaws.s3control#MultiRegionAccessPointAlias", + "traits": { + "smithy.api#documentation": "

The alias for the Multi-Region Access Point. For more information about the distinction between the\n name and the alias of an Multi-Region Access Point, see Managing\n Multi-Region Access Points.

" + } + }, + "CreatedAt": { + "target": "com.amazonaws.s3control#CreationTimestamp", + "traits": { + "smithy.api#documentation": "

When the Multi-Region Access Point create request was received.

" + } + }, + "PublicAccessBlock": { + "target": "com.amazonaws.s3control#PublicAccessBlockConfiguration" + }, + "Status": { + "target": "com.amazonaws.s3control#MultiRegionAccessPointStatus", + "traits": { + "smithy.api#documentation": "

The current status of the Multi-Region Access Point.

\n

\n CREATING and DELETING are temporary states that exist while\n the request is propogating and being completed. If a Multi-Region Access Point has a status of\n PARTIALLY_CREATED, you can retry creation or send a request to delete\n the Multi-Region Access Point. If a Multi-Region Access Point has a status of PARTIALLY_DELETED, you can retry a\n delete request to finish the deletion of the Multi-Region Access Point.

" + } + }, + "Regions": { + "target": "com.amazonaws.s3control#RegionReportList", + "traits": { + "smithy.api#documentation": "

A collection of the Regions and buckets associated with the Multi-Region Access Point.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A collection of statuses for a Multi-Region Access Point in the various Regions it supports.

" + } + }, + "com.amazonaws.s3control#MultiRegionAccessPointReportList": { + "type": "list", + "member": { + "target": "com.amazonaws.s3control#MultiRegionAccessPointReport", + "traits": { + "smithy.api#xmlName": "AccessPoint" + } + } + }, + "com.amazonaws.s3control#MultiRegionAccessPointStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "READY", + "name": "READY" + }, + { + "value": "INCONSISTENT_ACROSS_REGIONS", + "name": "INCONSISTENT_ACROSS_REGIONS" + }, + { + "value": "CREATING", + "name": "CREATING" + }, + { + "value": "PARTIALLY_CREATED", + "name": "PARTIALLY_CREATED" + }, + { + "value": "PARTIALLY_DELETED", + "name": "PARTIALLY_DELETED" + }, + { + "value": "DELETING", + "name": "DELETING" + } + ] + } + }, + "com.amazonaws.s3control#MultiRegionAccessPointsAsyncResponse": { + "type": "structure", + "members": { + "Regions": { + "target": "com.amazonaws.s3control#MultiRegionAccessPointRegionalResponseList", + "traits": { + "smithy.api#documentation": "

A collection of status information for the different Regions that a Multi-Region Access Point\n supports.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The Multi-Region Access Point details that are returned when querying about an asynchronous request.

" + } + }, "com.amazonaws.s3control#NetworkOrigin": { "type": "string", "traits": { @@ -4192,6 +5010,20 @@ "smithy.api#documentation": "

A container for the prefix-level storage metrics for S3 Storage Lens.

" } }, + "com.amazonaws.s3control#ProposedMultiRegionAccessPointPolicy": { + "type": "structure", + "members": { + "Policy": { + "target": "com.amazonaws.s3control#Policy", + "traits": { + "smithy.api#documentation": "

The details of the proposed policy.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The proposed access control policy for the Multi-Region Access Point.

\n

When you update the policy, the update is first listed as the proposed policy. After the\n update is finished and all Regions have been updated, the proposed policy is listed as\n the established policy. If both policies have the same version number, the proposed\n policy is the established policy.

" + } + }, "com.amazonaws.s3control#PublicAccessBlockConfiguration": { "type": "structure", "members": { @@ -4346,7 +5178,7 @@ "AccountId": { "target": "com.amazonaws.s3control#AccountId", "traits": { - "smithy.api#documentation": "

The account ID for owner of the bucket associated with the specified access point.

", + "smithy.api#documentation": "

The Amazon Web Services account ID for owner of the bucket associated with the specified access point.

", "smithy.api#hostLabel": {}, "smithy.api#httpHeader": "x-amz-account-id", "smithy.api#required": {} @@ -4393,7 +5225,7 @@ "AccountId": { "target": "com.amazonaws.s3control#AccountId", "traits": { - "smithy.api#documentation": "

The account ID of the Outposts bucket.

", + "smithy.api#documentation": "

The Amazon Web Services account ID of the Outposts bucket.

", "smithy.api#hostLabel": {}, "smithy.api#httpHeader": "x-amz-account-id", "smithy.api#required": {} @@ -4423,7 +5255,7 @@ "target": "com.amazonaws.s3control#PutBucketPolicyRequest" }, "traits": { - "smithy.api#documentation": "\n

This action puts a bucket policy to an Amazon S3 on Outposts bucket. To put a policy on an S3 bucket, \n see PutBucketPolicy in the Amazon S3 API Reference.\n

\n
\n

Applies an Amazon S3 bucket policy to an Outposts bucket. For more information, see Using Amazon S3 on Outposts in the\n Amazon S3 User Guide.

\n

If you are using an identity other than the root user of the account that owns the\n Outposts bucket, the calling identity must have the PutBucketPolicy\n permissions on the specified Outposts bucket and belong to the bucket owner's account in\n order to use this action.

\n \n

If you don't have PutBucketPolicy permissions, Amazon S3 returns a 403 Access Denied error. If you have the correct permissions, \n but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a 405 Method Not Allowed error.

\n \n \n

As a security precaution, the root user of the account that owns a bucket can always use this action, even if the policy \n explicitly denies the root user the ability to perform this action.\n

\n
\n \n \n

For more information about bucket policies, see Using Bucket Policies and User Policies.

\n \n

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived using the access point ARN, see the Examples section.

\n \n

The following actions are related to PutBucketPolicy:

\n ", + "smithy.api#documentation": "\n

This action puts a bucket policy to an Amazon S3 on Outposts bucket. To put a policy on an S3 bucket, \n see PutBucketPolicy in the Amazon S3 API Reference.\n

\n
\n

Applies an Amazon S3 bucket policy to an Outposts bucket. For more information, see Using Amazon S3 on Outposts in the\n Amazon S3 User Guide.

\n

If you are using an identity other than the root user of the Amazon Web Services account that owns the\n Outposts bucket, the calling identity must have the PutBucketPolicy\n permissions on the specified Outposts bucket and belong to the bucket owner's account in\n order to use this action.

\n \n

If you don't have PutBucketPolicy permissions, Amazon S3 returns a 403 Access Denied error. If you have the correct permissions, \n but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a 405 Method Not Allowed error.

\n \n \n

As a security precaution, the root user of the Amazon Web Services account that owns a bucket can always use this action, even if the policy \n explicitly denies the root user the ability to perform this action.\n

\n
\n \n \n

For more information about bucket policies, see Using Bucket Policies and User Policies.

\n \n

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived using the access point ARN, see the Examples section.

\n \n

The following actions are related to PutBucketPolicy:

\n ", "smithy.api#endpoint": { "hostPrefix": "{AccountId}." }, @@ -4441,7 +5273,7 @@ "AccountId": { "target": "com.amazonaws.s3control#AccountId", "traits": { - "smithy.api#documentation": "

The account ID of the Outposts bucket.

", + "smithy.api#documentation": "

The Amazon Web Services account ID of the Outposts bucket.

", "smithy.api#hostLabel": {}, "smithy.api#httpHeader": "x-amz-account-id", "smithy.api#required": {} @@ -4477,7 +5309,7 @@ "target": "com.amazonaws.s3control#PutBucketTaggingRequest" }, "traits": { - "smithy.api#documentation": "\n

This action puts tags on an Amazon S3 on Outposts bucket. To put tags on an S3 bucket, see\n PutBucketTagging in the Amazon S3 API Reference.

\n
\n

Sets the tags for an S3 on Outposts bucket. For more information, see Using Amazon S3 on Outposts in the\n Amazon S3 User Guide.

\n

Use tags to organize your Amazon Web Services bill to reflect your own cost structure. To do this, sign up to get your \n account bill with tag key values included. Then, to see the cost of combined resources, organize your \n billing information according to resources with the same tag key values. For example, you can tag several \n resources with a specific application name, and then organize your billing information to see the total cost \n of that application across several services. For more information, see \n Cost \n allocation and tagging.

\n \n \n

Within a bucket, if you add a tag that has the same key as an existing tag, the new value overwrites \n the old value. For more information, see \n Using cost allocation in Amazon S3 bucket tags.

\n
\n

To use this action, you must have permissions to perform the\n s3-outposts:PutBucketTagging action. The Outposts bucket owner has this\n permission by default and can grant this permission to others. For more information about\n permissions, see Permissions Related to Bucket Subresource Operations and Managing access permissions to your Amazon S3\n resources.

\n \n

\n PutBucketTagging has the following special errors:

\n \n

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived using the access point ARN, see the Examples section.

\n \n

The following actions are related to PutBucketTagging:

\n ", + "smithy.api#documentation": "\n

This action puts tags on an Amazon S3 on Outposts bucket. To put tags on an S3 bucket, see\n PutBucketTagging in the Amazon S3 API Reference.

\n
\n

Sets the tags for an S3 on Outposts bucket. For more information, see Using Amazon S3 on Outposts in the\n Amazon S3 User Guide.

\n

Use tags to organize your Amazon Web Services bill to reflect your own cost structure. To do this, sign up to get your \n Amazon Web Services account bill with tag key values included. Then, to see the cost of combined resources, organize your \n billing information according to resources with the same tag key values. For example, you can tag several \n resources with a specific application name, and then organize your billing information to see the total cost \n of that application across several services. For more information, see \n Cost \n allocation and tagging.

\n \n \n

Within a bucket, if you add a tag that has the same key as an existing tag, the new value overwrites \n the old value. For more information, see \n Using cost allocation in Amazon S3 bucket tags.

\n
\n

To use this action, you must have permissions to perform the\n s3-outposts:PutBucketTagging action. The Outposts bucket owner has this\n permission by default and can grant this permission to others. For more information about\n permissions, see Permissions Related to Bucket Subresource Operations and Managing access permissions to your Amazon S3\n resources.

\n \n

\n PutBucketTagging has the following special errors:

\n \n

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived using the access point ARN, see the Examples section.

\n \n

The following actions are related to PutBucketTagging:

\n ", "smithy.api#endpoint": { "hostPrefix": "{AccountId}." }, @@ -4495,7 +5327,7 @@ "AccountId": { "target": "com.amazonaws.s3control#AccountId", "traits": { - "smithy.api#documentation": "

The account ID of the Outposts bucket.

", + "smithy.api#documentation": "

The Amazon Web Services account ID of the Outposts bucket.

", "smithy.api#hostLabel": {}, "smithy.api#httpHeader": "x-amz-account-id", "smithy.api#required": {} @@ -4560,7 +5392,7 @@ "AccountId": { "target": "com.amazonaws.s3control#AccountId", "traits": { - "smithy.api#documentation": "

The account ID associated with the S3 Batch Operations job.

", + "smithy.api#documentation": "

The Amazon Web Services account ID associated with the S3 Batch Operations job.

", "smithy.api#hostLabel": {}, "smithy.api#httpHeader": "x-amz-account-id", "smithy.api#required": {} @@ -4587,13 +5419,96 @@ "type": "structure", "members": {} }, + "com.amazonaws.s3control#PutMultiRegionAccessPointPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3control#PutMultiRegionAccessPointPolicyRequest" + }, + "output": { + "target": "com.amazonaws.s3control#PutMultiRegionAccessPointPolicyResult" + }, + "traits": { + "smithy.api#documentation": "

Associates an access control policy with the specified Multi-Region Access Point. Each Multi-Region Access Point can have only\n one policy, so a request made to this action replaces any existing policy that is\n associated with the specified Multi-Region Access Point.

\n

This action will always be routed to the US West (Oregon) Region. For more\n information about the restrictions around managing Multi-Region Access Points, see Managing\n Multi-Region Access Points in the\n Amazon S3 User Guide.

\n

The following actions are related to PutMultiRegionAccessPointPolicy:

\n ", + "smithy.api#endpoint": { + "hostPrefix": "{AccountId}." + }, + "smithy.api#http": { + "method": "POST", + "uri": "/v20180820/async-requests/mrap/put-policy", + "code": 200 + }, + "smithy.api#httpChecksumRequired": {} + } + }, + "com.amazonaws.s3control#PutMultiRegionAccessPointPolicyInput": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.s3control#MultiRegionAccessPointName", + "traits": { + "smithy.api#documentation": "

The name of the Multi-Region Access Point associated with the request.

", + "smithy.api#required": {} + } + }, + "Policy": { + "target": "com.amazonaws.s3control#Policy", + "traits": { + "smithy.api#documentation": "

The policy details for the PutMultiRegionAccessPoint request.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A container for the information associated with a\n PutMultiRegionAccessPoint\n request.

" + } + }, + "com.amazonaws.s3control#PutMultiRegionAccessPointPolicyRequest": { + "type": "structure", + "members": { + "AccountId": { + "target": "com.amazonaws.s3control#AccountId", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services account ID for the owner of the Multi-Region Access Point.

", + "smithy.api#hostLabel": {}, + "smithy.api#httpHeader": "x-amz-account-id", + "smithy.api#required": {} + } + }, + "ClientToken": { + "target": "com.amazonaws.s3control#MultiRegionAccessPointClientToken", + "traits": { + "smithy.api#documentation": "

An idempotency token used to identify the request and guarantee that requests are\n unique.

", + "smithy.api#idempotencyToken": {}, + "smithy.api#required": {} + } + }, + "Details": { + "target": "com.amazonaws.s3control#PutMultiRegionAccessPointPolicyInput", + "traits": { + "smithy.api#documentation": "

A container element containing the details of the policy for the Multi-Region Access Point.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.s3control#PutMultiRegionAccessPointPolicyResult": { + "type": "structure", + "members": { + "RequestTokenARN": { + "target": "com.amazonaws.s3control#AsyncRequestTokenARN", + "traits": { + "smithy.api#documentation": "

The request token associated with the request. You can use this token with DescribeMultiRegionAccessPointOperation to determine the status of\n asynchronous requests.

" + } + } + } + }, "com.amazonaws.s3control#PutPublicAccessBlock": { "type": "operation", "input": { "target": "com.amazonaws.s3control#PutPublicAccessBlockRequest" }, "traits": { - "smithy.api#documentation": "

Creates or modifies the PublicAccessBlock configuration for an account. For\n more information, see Using Amazon S3 block\n public access.

\n

Related actions include:

\n ", + "smithy.api#documentation": "

Creates or modifies the PublicAccessBlock configuration for an Amazon Web Services account. For\n more information, see Using Amazon S3 block\n public access.

\n

Related actions include:

\n ", "smithy.api#endpoint": { "hostPrefix": "{AccountId}." }, @@ -4610,7 +5525,7 @@ "AccountId": { "target": "com.amazonaws.s3control#AccountId", "traits": { - "smithy.api#documentation": "

The account ID for the account whose PublicAccessBlock configuration you want\n to set.

", + "smithy.api#documentation": "

The account ID for the Amazon Web Services account whose PublicAccessBlock configuration you want\n to set.

", "smithy.api#hostLabel": {}, "smithy.api#httpHeader": "x-amz-account-id", "smithy.api#required": {} @@ -4619,7 +5534,7 @@ "PublicAccessBlockConfiguration": { "target": "com.amazonaws.s3control#PublicAccessBlockConfiguration", "traits": { - "smithy.api#documentation": "

The PublicAccessBlock configuration that you want to apply to the specified account.

", + "smithy.api#documentation": "

The PublicAccessBlock configuration that you want to apply to the specified Amazon Web Services account.

", "smithy.api#httpPayload": {}, "smithy.api#required": {}, "smithy.api#xmlName": "PublicAccessBlockConfiguration" @@ -4732,6 +5647,68 @@ "type": "structure", "members": {} }, + "com.amazonaws.s3control#Region": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3control#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the associated bucket for the Region.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A Region that supports a Multi-Region Access Point as well as the associated bucket for the Region.

" + } + }, + "com.amazonaws.s3control#RegionCreationList": { + "type": "list", + "member": { + "target": "com.amazonaws.s3control#Region", + "traits": { + "smithy.api#xmlName": "Region" + } + } + }, + "com.amazonaws.s3control#RegionName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + } + } + }, + "com.amazonaws.s3control#RegionReport": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3control#BucketName", + "traits": { + "smithy.api#documentation": "

The name of the bucket.

" + } + }, + "Region": { + "target": "com.amazonaws.s3control#RegionName", + "traits": { + "smithy.api#documentation": "

The name of the Region.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A combination of a bucket and Region that's part of a Multi-Region Access Point.

" + } + }, + "com.amazonaws.s3control#RegionReportList": { + "type": "list", + "member": { + "target": "com.amazonaws.s3control#RegionReport", + "traits": { + "smithy.api#xmlName": "Region" + } + } + }, "com.amazonaws.s3control#RegionalBucket": { "type": "structure", "members": { @@ -6028,7 +7005,7 @@ "AccountId": { "target": "com.amazonaws.s3control#AccountId", "traits": { - "smithy.api#documentation": "

The account ID associated with the S3 Batch Operations job.

", + "smithy.api#documentation": "

The Amazon Web Services account ID associated with the S3 Batch Operations job.

", "smithy.api#hostLabel": {}, "smithy.api#httpHeader": "x-amz-account-id", "smithy.api#required": {} @@ -6114,7 +7091,7 @@ "AccountId": { "target": "com.amazonaws.s3control#AccountId", "traits": { - "smithy.api#documentation": "

The account ID associated with the S3 Batch Operations job.

", + "smithy.api#documentation": "

The Amazon Web Services account ID associated with the S3 Batch Operations job.

", "smithy.api#hostLabel": {}, "smithy.api#httpHeader": "x-amz-account-id", "smithy.api#required": {} diff --git a/codegen/sdk-codegen/aws-models/schemas.2019-12-02.json b/codegen/sdk-codegen/aws-models/schemas.2019-12-02.json index de491b2fdba..17f29aea1eb 100644 --- a/codegen/sdk-codegen/aws-models/schemas.2019-12-02.json +++ b/codegen/sdk-codegen/aws-models/schemas.2019-12-02.json @@ -150,6 +150,12 @@ "smithy.api#required": {} } }, + "CrossAccount": { + "target": "com.amazonaws.schemas#__boolean", + "traits": { + "smithy.api#documentation": "

Support discovery of schemas in events sent to the bus from another account. (default: true).

" + } + }, "Tags": { "target": "com.amazonaws.schemas#Tags", "traits": { @@ -192,6 +198,12 @@ "smithy.api#documentation": "

The state of the discoverer.

" } }, + "CrossAccount": { + "target": "com.amazonaws.schemas#__boolean", + "traits": { + "smithy.api#documentation": "

The Status if the discoverer will discover schemas from events sent from another account.

" + } + }, "Tags": { "target": "com.amazonaws.schemas#Tags", "traits": { @@ -912,6 +924,12 @@ "smithy.api#documentation": "

The state of the discoverer.

" } }, + "CrossAccount": { + "target": "com.amazonaws.schemas#__boolean", + "traits": { + "smithy.api#documentation": "

The Status if the discoverer will discover schemas from events sent from another account.

" + } + }, "Tags": { "target": "com.amazonaws.schemas#Tags", "traits": { @@ -1168,6 +1186,12 @@ "smithy.api#documentation": "

The state of the discoverer.

" } }, + "CrossAccount": { + "target": "com.amazonaws.schemas#__boolean", + "traits": { + "smithy.api#documentation": "

The Status if the discoverer will discover schemas from events sent from another account.

" + } + }, "Tags": { "target": "com.amazonaws.schemas#Tags", "traits": { @@ -2841,6 +2865,12 @@ "smithy.api#httpLabel": {}, "smithy.api#required": {} } + }, + "CrossAccount": { + "target": "com.amazonaws.schemas#__boolean", + "traits": { + "smithy.api#documentation": "

Support discovery of schemas in events sent to the bus from another account. (default: true)

" + } } } }, @@ -2877,6 +2907,12 @@ "smithy.api#documentation": "

The state of the discoverer.

" } }, + "CrossAccount": { + "target": "com.amazonaws.schemas#__boolean", + "traits": { + "smithy.api#documentation": "

The Status if the discoverer will discover schemas from events sent from another account.

" + } + }, "Tags": { "target": "com.amazonaws.schemas#Tags", "traits": { @@ -3108,6 +3144,9 @@ } } }, + "com.amazonaws.schemas#__boolean": { + "type": "boolean" + }, "com.amazonaws.schemas#__integer": { "type": "integer" }, diff --git a/codegen/sdk-codegen/aws-models/securityhub.2018-10-26.json b/codegen/sdk-codegen/aws-models/securityhub.2018-10-26.json index 211d48f9975..cebea36c141 100644 --- a/codegen/sdk-codegen/aws-models/securityhub.2018-10-26.json +++ b/codegen/sdk-codegen/aws-models/securityhub.2018-10-26.json @@ -363,6 +363,32 @@ "target": "com.amazonaws.securityhub#ActionTarget" } }, + "com.amazonaws.securityhub#Adjustment": { + "type": "structure", + "members": { + "Metric": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The metric to adjust.

" + } + }, + "Reason": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The reason for the adjustment.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An adjustment to the CVSS metric.

" + } + }, + "com.amazonaws.securityhub#AdjustmentList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#Adjustment" + } + }, "com.amazonaws.securityhub#AdminAccount": { "type": "structure", "members": { @@ -1063,6 +1089,218 @@ "smithy.api#documentation": "

Provides details about an auto scaling group.

" } }, + "com.amazonaws.securityhub#AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails": { + "type": "structure", + "members": { + "DeviceName": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The device name that is exposed to the EC2 instance. For example, /dev/sdh or xvdh.

" + } + }, + "Ebs": { + "target": "com.amazonaws.securityhub#AwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails", + "traits": { + "smithy.api#documentation": "

Parameters that are used to automatically set up Amazon EBS volumes when an instance is launched.

" + } + }, + "NoDevice": { + "target": "com.amazonaws.securityhub#Boolean", + "traits": { + "smithy.api#documentation": "

Whether to suppress the device that is included in the block device mapping of the Amazon Machine Image (AMI).

\n

If NoDevice is true, then you cannot specify Ebs.>

" + } + }, + "VirtualName": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The name of the virtual device (for example, ephemeral0).

\n

You can provide either VirtualName or Ebs, but not both.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A block device for the instance.

" + } + }, + "com.amazonaws.securityhub#AwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails": { + "type": "structure", + "members": { + "DeleteOnTermination": { + "target": "com.amazonaws.securityhub#Boolean", + "traits": { + "smithy.api#documentation": "

Whether to delete the volume when the instance is terminated.

" + } + }, + "Encrypted": { + "target": "com.amazonaws.securityhub#Boolean", + "traits": { + "smithy.api#documentation": "

Whether to encrypt the volume.

" + } + }, + "Iops": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

The number of input/output (I/O) operations per second (IOPS) to provision for the volume.

\n

Only supported for gp3 or io1 volumes. Required for io1 volumes. Not used with standard, gp2, st1, or sc1 volumes.

" + } + }, + "SnapshotId": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The snapshot ID of the volume to use.

\n

You must specify either VolumeSize or SnapshotId.

" + } + }, + "VolumeSize": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

The volume size, in GiBs. The following are the supported volumes sizes for each volume type:

\n \n

You must specify either SnapshotId or VolumeSize. If you specify both SnapshotId and VolumeSize, the volume size must be equal or greater than the size of the snapshot.

" + } + }, + "VolumeType": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The volume type.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Parameters that are used to automatically set up EBS volumes when an instance is launched.

" + } + }, + "com.amazonaws.securityhub#AwsAutoScalingLaunchConfigurationBlockDeviceMappingsList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails" + } + }, + "com.amazonaws.securityhub#AwsAutoScalingLaunchConfigurationDetails": { + "type": "structure", + "members": { + "AssociatePublicIpAddress": { + "target": "com.amazonaws.securityhub#Boolean", + "traits": { + "smithy.api#documentation": "

For Auto Scaling groups that run in a VPC, specifies whether to assign a public IP address to the group's instances.

" + } + }, + "BlockDeviceMappings": { + "target": "com.amazonaws.securityhub#AwsAutoScalingLaunchConfigurationBlockDeviceMappingsList", + "traits": { + "smithy.api#documentation": "

Specifies the block devices for the instance.

" + } + }, + "ClassicLinkVpcId": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The identifier of a ClassicLink-enabled VPC that EC2-Classic instances are linked to.

" + } + }, + "ClassicLinkVpcSecurityGroups": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

The identifiers of one or more security groups for the VPC that is specified in ClassicLinkVPCId.

" + } + }, + "CreatedTime": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The creation date and time for the launch configuration.

\n

Uses the date-time format specified in RFC 3339 section 5.6, Internet\n Date/Time Format. The value cannot contain spaces. For example,\n 2020-03-22T13:22:13.933Z.

" + } + }, + "EbsOptimized": { + "target": "com.amazonaws.securityhub#Boolean", + "traits": { + "smithy.api#documentation": "

Whether the launch configuration is optimized for Amazon EBS I/O.

" + } + }, + "IamInstanceProfile": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The name or the ARN of the instance profile associated with the IAM role for the\n instance. The instance profile contains the IAM role.

" + } + }, + "ImageId": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The identifier of the Amazon Machine Image (AMI) that is used to launch EC2\n instances.

" + } + }, + "InstanceMonitoring": { + "target": "com.amazonaws.securityhub#AwsAutoScalingLaunchConfigurationInstanceMonitoringDetails", + "traits": { + "smithy.api#documentation": "

Indicates the type of monitoring for instances in the group.

" + } + }, + "InstanceType": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The instance type for the instances.

" + } + }, + "KernelId": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The identifier of the kernel associated with the AMI.

" + } + }, + "KeyName": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The name of the key pair.

" + } + }, + "LaunchConfigurationName": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The name of the launch configuration.

" + } + }, + "PlacementTenancy": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The tenancy of the instance. An instance with dedicated tenancy runs on\n isolated, single-tenant hardware and can only be launched into a VPC.

" + } + }, + "RamdiskId": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The identifier of the RAM disk associated with the AMI.

" + } + }, + "SecurityGroups": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

The security groups to assign to the instances in the Auto Scaling group.

" + } + }, + "SpotPrice": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The maximum hourly price to be paid for any Spot Instance that is launched to fulfill the\n request.

" + } + }, + "UserData": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The user data to make available to the launched EC2 instances. Must be base64-encoded\n text.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details about a launch configuration.

" + } + }, + "com.amazonaws.securityhub#AwsAutoScalingLaunchConfigurationInstanceMonitoringDetails": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.securityhub#Boolean", + "traits": { + "smithy.api#documentation": "

If set to true, then instances in the group launch with detailed\n monitoring.

\n

If set to false, then instances in the group launch with basic\n monitoring.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the type of monitoring for instances in the group.

" + } + }, "com.amazonaws.securityhub#AwsCertificateManagerCertificateDetails": { "type": "structure", "members": { @@ -1775,7 +2013,7 @@ "EncryptionKey": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

The KMS customer master key (CMK) used to encrypt the\n build output artifacts.

\n

You can specify either the ARN of the CMK or, if available, the\n CMK alias (using the format alias/alias-name).

" + "smithy.api#documentation": "

The KMS key used to encrypt the\n build output artifacts.

\n

You can specify either the ARN of the KMS key or, if available, the\n KMS key alias (using the format alias/alias-name).

" } }, "Environment": { @@ -2351,7 +2589,7 @@ "KmsMasterKeyId": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

The identifier of the KMS customer master key (CMK) that will be used for KMS\n encryption for the replica.

" + "smithy.api#documentation": "

The identifier of the KMS key that will be used for KMS\n encryption for the replica.

" } }, "ProvisionedThroughputOverride": { @@ -2471,7 +2709,7 @@ "KmsMasterKeyArn": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

The ARN of the KMS customer master key (CMK) that is used for the KMS\n encryption.

" + "smithy.api#documentation": "

The ARN of the KMS key that is used for the KMS\n encryption.

" } } }, @@ -3341,7 +3579,7 @@ "KmsKeyId": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

The ARN of the KMS customer master key (CMK) that was\n used to protect the volume encryption key for the volume.

" + "smithy.api#documentation": "

The ARN of the KMS key that was\n used to protect the volume encryption key for the volume.

" } }, "Attachments": { @@ -3364,27 +3602,351 @@ "smithy.api#documentation": "

Information about the IPv4 CIDR blocks associated with the VPC.

" } }, - "Ipv6CidrBlockAssociationSet": { - "target": "com.amazonaws.securityhub#Ipv6CidrBlockAssociationList", + "Ipv6CidrBlockAssociationSet": { + "target": "com.amazonaws.securityhub#Ipv6CidrBlockAssociationList", + "traits": { + "smithy.api#documentation": "

Information about the IPv6 CIDR blocks associated with the VPC.

" + } + }, + "DhcpOptionsId": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The identifier of the set of Dynamic Host Configuration Protocol (DHCP) options that are\n associated with the VPC. If the default options are associated with the VPC, then this is\n default.

" + } + }, + "State": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The current state of the VPC.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details about an EC2 VPC.

" + } + }, + "com.amazonaws.securityhub#AwsEc2VpnConnectionDetails": { + "type": "structure", + "members": { + "VpnConnectionId": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The identifier of the VPN connection.

" + } + }, + "State": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The current state of the VPN connection.

" + } + }, + "CustomerGatewayId": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The identifier of the customer gateway that is at your end of the VPN connection.

" + } + }, + "CustomerGatewayConfiguration": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The configuration information for the VPN connection's customer gateway, in the native XML\n format.

" + } + }, + "Type": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The type of VPN connection.

" + } + }, + "VpnGatewayId": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The identifier of the virtual private gateway that is at the Amazon Web Services side of the VPN\n connection.

" + } + }, + "Category": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The category of the VPN connection. VPN indicates an Amazon Web Services VPN connection. VPN-Classic\n indicates an Amazon Web Services Classic VPN connection.

" + } + }, + "VgwTelemetry": { + "target": "com.amazonaws.securityhub#AwsEc2VpnConnectionVgwTelemetryList", + "traits": { + "smithy.api#documentation": "

Information about the VPN tunnel.

" + } + }, + "Options": { + "target": "com.amazonaws.securityhub#AwsEc2VpnConnectionOptionsDetails", + "traits": { + "smithy.api#documentation": "

The VPN connection options.

" + } + }, + "Routes": { + "target": "com.amazonaws.securityhub#AwsEc2VpnConnectionRoutesList", + "traits": { + "smithy.api#documentation": "

The static routes that are associated with the VPN connection.

" + } + }, + "TransitGatewayId": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The identifier of the transit gateway that is associated with the VPN connection.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details about an Amazon EC2 VPN\n connection.

" + } + }, + "com.amazonaws.securityhub#AwsEc2VpnConnectionOptionsDetails": { + "type": "structure", + "members": { + "StaticRoutesOnly": { + "target": "com.amazonaws.securityhub#Boolean", + "traits": { + "smithy.api#documentation": "

Whether the VPN connection uses static routes only.

" + } + }, + "TunnelOptions": { + "target": "com.amazonaws.securityhub#AwsEc2VpnConnectionOptionsTunnelOptionsList", + "traits": { + "smithy.api#documentation": "

The VPN tunnel options.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

VPN connection options.

" + } + }, + "com.amazonaws.securityhub#AwsEc2VpnConnectionOptionsTunnelOptionsDetails": { + "type": "structure", + "members": { + "DpdTimeoutSeconds": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

The number of seconds after which a Dead Peer Detection (DPD) timeout occurs.

" + } + }, + "IkeVersions": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

The Internet Key Exchange (IKE) versions that are permitted for the VPN tunnel.

" + } + }, + "OutsideIpAddress": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The external IP address of the VPN tunnel.

" + } + }, + "Phase1DhGroupNumbers": { + "target": "com.amazonaws.securityhub#IntegerList", + "traits": { + "smithy.api#documentation": "

The permitted Diffie-Hellman group numbers for the VPN tunnel for phase 1 IKE\n negotiations.

" + } + }, + "Phase1EncryptionAlgorithms": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

The permitted encryption algorithms for the VPN tunnel for phase 1 IKE\n negotiations.

" + } + }, + "Phase1IntegrityAlgorithms": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

The permitted integrity algorithms for the VPN tunnel for phase 1 IKE\n negotiations.

" + } + }, + "Phase1LifetimeSeconds": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

The lifetime for phase 1 of the IKE negotiation, in seconds.

" + } + }, + "Phase2DhGroupNumbers": { + "target": "com.amazonaws.securityhub#IntegerList", + "traits": { + "smithy.api#documentation": "

The permitted Diffie-Hellman group numbers for the VPN tunnel for phase 2 IKE\n negotiations.

" + } + }, + "Phase2EncryptionAlgorithms": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

The permitted encryption algorithms for the VPN tunnel for phase 2 IKE\n negotiations.

" + } + }, + "Phase2IntegrityAlgorithms": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

The permitted integrity algorithms for the VPN tunnel for phase 2 IKE\n negotiations.

" + } + }, + "Phase2LifetimeSeconds": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

The lifetime for phase 2 of the IKE negotiation, in seconds.

" + } + }, + "PreSharedKey": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The preshared key to establish initial authentication between the virtual private gateway\n and the customer gateway.

" + } + }, + "RekeyFuzzPercentage": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

The percentage of the rekey window, which is determined by\n RekeyMarginTimeSeconds during which the rekey time is randomly selected.

" + } + }, + "RekeyMarginTimeSeconds": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

The margin time, in seconds, before the phase 2 lifetime expires, during which the Amazon Web Services\n side of the VPN connection performs an IKE rekey.

" + } + }, + "ReplayWindowSize": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

The number of packets in an IKE replay window.

" + } + }, + "TunnelInsideCidr": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The range of inside IPv4 addresses for the tunnel.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The VPN tunnel options.

" + } + }, + "com.amazonaws.securityhub#AwsEc2VpnConnectionOptionsTunnelOptionsList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#AwsEc2VpnConnectionOptionsTunnelOptionsDetails" + } + }, + "com.amazonaws.securityhub#AwsEc2VpnConnectionRoutesDetails": { + "type": "structure", + "members": { + "DestinationCidrBlock": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The CIDR block associated with the local subnet of the customer data center.

" + } + }, + "State": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The current state of the static route.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A static routes associated with\n the VPN connection.

" + } + }, + "com.amazonaws.securityhub#AwsEc2VpnConnectionRoutesList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#AwsEc2VpnConnectionRoutesDetails" + } + }, + "com.amazonaws.securityhub#AwsEc2VpnConnectionVgwTelemetryDetails": { + "type": "structure", + "members": { + "AcceptedRouteCount": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

The number of accepted routes.

" + } + }, + "CertificateArn": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The ARN of the VPN tunnel endpoint certificate.

" + } + }, + "LastStatusChange": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The date and time of the last change in status.

\n

Uses the date-time format specified in RFC 3339 section 5.6, Internet\n Date/Time Format. The value cannot contain spaces. For example,\n 2020-03-22T13:22:13.933Z.

" + } + }, + "OutsideIpAddress": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The Internet-routable IP address of the virtual private gateway's outside\n interface.

" + } + }, + "Status": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The status of the VPN tunnel.

" + } + }, + "StatusMessage": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

If an error occurs, a description of the error.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the VPN tunnel.

" + } + }, + "com.amazonaws.securityhub#AwsEc2VpnConnectionVgwTelemetryList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#AwsEc2VpnConnectionVgwTelemetryDetails" + } + }, + "com.amazonaws.securityhub#AwsEcrContainerImageDetails": { + "type": "structure", + "members": { + "RegistryId": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services account identifier that is associated with the registry that the image belongs\n to.

" + } + }, + "RepositoryName": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The name of the repository that the image belongs to.

" + } + }, + "Architecture": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The architecture of the image.

" + } + }, + "ImageDigest": { + "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

Information about the IPv6 CIDR blocks associated with the VPC.

" + "smithy.api#documentation": "

The sha256 digest of the image manifest.

" } }, - "DhcpOptionsId": { - "target": "com.amazonaws.securityhub#NonEmptyString", + "ImageTags": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", "traits": { - "smithy.api#documentation": "

The identifier of the set of Dynamic Host Configuration Protocol (DHCP) options that are\n associated with the VPC. If the default options are associated with the VPC, then this is\n default.

" + "smithy.api#documentation": "

The list of tags that are associated with the image.

" } }, - "State": { + "ImagePublishedAt": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

The current state of the VPC.

" + "smithy.api#documentation": "

The date and time when the image was pushed to the repository.

\n

Uses the date-time format specified in RFC 3339 section 5.6, Internet\n Date/Time Format. The value cannot contain spaces. For example,\n 2020-03-22T13:22:13.933Z.

" } } }, "traits": { - "smithy.api#documentation": "

Details about an EC2 VPC.

" + "smithy.api#documentation": "

Information about an Amazon ECR image.

" } }, "com.amazonaws.securityhub#AwsEcsClusterClusterSettingsDetails": { @@ -6819,37 +7381,37 @@ "AWSAccountId": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

The twelve-digit account ID of the Amazon Web Services account that owns the CMK.

" + "smithy.api#documentation": "

The twelve-digit account ID of the Amazon Web Services account that owns the KMS key.

" } }, "CreationDate": { "target": "com.amazonaws.securityhub#Double", "traits": { - "smithy.api#documentation": "

Indicates when the CMK was created.

\n

Uses the date-time format specified in RFC 3339 section 5.6, Internet\n Date/Time Format. The value cannot contain spaces. For example,\n 2020-03-22T13:22:13.933Z.

" + "smithy.api#documentation": "

Indicates when the KMS key was created.

\n

Uses the date-time format specified in RFC 3339 section 5.6, Internet\n Date/Time Format. The value cannot contain spaces. For example,\n 2020-03-22T13:22:13.933Z.

" } }, "KeyId": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

The globally unique identifier for the CMK.

" + "smithy.api#documentation": "

The globally unique identifier for the KMS key.

" } }, "KeyManager": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

The manager of the CMK. CMKs in your Amazon Web Services account are either customer managed or Amazon Web Services managed.

" + "smithy.api#documentation": "

The manager of the KMS key. KMS keys in your Amazon Web Services account are either customer managed or Amazon Web Services managed.

" } }, "KeyState": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

The state of the CMK.

" + "smithy.api#documentation": "

The state of the KMS key.

" } }, "Origin": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

The source of the CMK's key material.

\n

When this value is AWS_KMS, KMS created the key material.

\n

When this value is EXTERNAL, the key material was imported from your\n existing key management infrastructure or the CMK lacks key material.

\n

When this value is AWS_CLOUDHSM, the key material was created in the CloudHSM cluster associated with a custom key store.

" + "smithy.api#documentation": "

The source of the KMS key material.

\n

When this value is AWS_KMS, KMS created the key material.

\n

When this value is EXTERNAL, the key material was imported from your\n existing key management infrastructure or the KMS key lacks key material.

\n

When this value is AWS_CLOUDHSM, the key material was created in the CloudHSM cluster associated with a custom key store.

" } }, "Description": { @@ -6857,10 +7419,16 @@ "traits": { "smithy.api#documentation": "

A description of the key.

" } + }, + "KeyRotationStatus": { + "target": "com.amazonaws.securityhub#Boolean", + "traits": { + "smithy.api#documentation": "

Whether the key has key rotation enabled.

" + } } }, "traits": { - "smithy.api#documentation": "

Contains metadata about a customer master key (CMK).

" + "smithy.api#documentation": "

Contains metadata about an KMS key.

" } }, "com.amazonaws.securityhub#AwsLambdaFunctionCode": { @@ -6951,7 +7519,7 @@ "KmsKeyArn": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

The KMS key that is used to encrypt the function's environment variables. This key is only returned if you've configured a customer managed CMK.

" + "smithy.api#documentation": "

The KMS key that is used to encrypt the function's environment variables. This key is only returned if you've configured a customer managed customer managed key.

" } }, "LastModified": { @@ -9689,12 +10257,183 @@ "traits": { "smithy.api#documentation": "

Provides information about the Amazon S3 Public Access Block configuration for the S3 bucket.

" } + }, + "AccessControlList": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The access control list for the S3 bucket.

" + } + }, + "BucketLoggingConfiguration": { + "target": "com.amazonaws.securityhub#AwsS3BucketLoggingConfiguration", + "traits": { + "smithy.api#documentation": "

The logging configuration for the S3 bucket.

" + } + }, + "BucketWebsiteConfiguration": { + "target": "com.amazonaws.securityhub#AwsS3BucketWebsiteConfiguration", + "traits": { + "smithy.api#documentation": "

The website configuration parameters for the S3 bucket.

" + } + }, + "BucketNotificationConfiguration": { + "target": "com.amazonaws.securityhub#AwsS3BucketNotificationConfiguration", + "traits": { + "smithy.api#documentation": "

The notification configuration for the S3 bucket.

" + } } }, "traits": { "smithy.api#documentation": "

The details of an Amazon S3 bucket.

" } }, + "com.amazonaws.securityhub#AwsS3BucketLoggingConfiguration": { + "type": "structure", + "members": { + "DestinationBucketName": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The name of the S3 bucket where log files for the S3 bucket are stored.

" + } + }, + "LogFilePrefix": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The prefix added to log files for the S3 bucket.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about logging for\n the S3 bucket

" + } + }, + "com.amazonaws.securityhub#AwsS3BucketNotificationConfiguration": { + "type": "structure", + "members": { + "Configurations": { + "target": "com.amazonaws.securityhub#AwsS3BucketNotificationConfigurationDetails", + "traits": { + "smithy.api#documentation": "

Configurations for S3 bucket notifications.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The notification\n configuration for the S3 bucket.

" + } + }, + "com.amazonaws.securityhub#AwsS3BucketNotificationConfigurationDetail": { + "type": "structure", + "members": { + "Events": { + "target": "com.amazonaws.securityhub#AwsS3BucketNotificationConfigurationEvents", + "traits": { + "smithy.api#documentation": "

The list of events that trigger a notification.

" + } + }, + "Filter": { + "target": "com.amazonaws.securityhub#AwsS3BucketNotificationConfigurationFilter", + "traits": { + "smithy.api#documentation": "

The filters that determine which S3 buckets generate notifications.

" + } + }, + "Destination": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The ARN of the Lambda function, Amazon SQS queue, or Amazon SNS topic that generates the\n notification.

" + } + }, + "Type": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

Indicates the type of notification. Notifications can be generated using Lambda functions,\n Amazon SQS queues or Amazon SNS topics.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details for an S3 bucket notification configuration.

" + } + }, + "com.amazonaws.securityhub#AwsS3BucketNotificationConfigurationDetails": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#AwsS3BucketNotificationConfigurationDetail" + } + }, + "com.amazonaws.securityhub#AwsS3BucketNotificationConfigurationEvents": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#NonEmptyString" + } + }, + "com.amazonaws.securityhub#AwsS3BucketNotificationConfigurationFilter": { + "type": "structure", + "members": { + "S3KeyFilter": { + "target": "com.amazonaws.securityhub#AwsS3BucketNotificationConfigurationS3KeyFilter", + "traits": { + "smithy.api#documentation": "

Details for an Amazon S3 filter.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Filtering information for the notifications. The\n filtering is based on Amazon S3 key names.

" + } + }, + "com.amazonaws.securityhub#AwsS3BucketNotificationConfigurationS3KeyFilter": { + "type": "structure", + "members": { + "FilterRules": { + "target": "com.amazonaws.securityhub#AwsS3BucketNotificationConfigurationS3KeyFilterRules", + "traits": { + "smithy.api#documentation": "

The filter rules for the filter.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details for an Amazon S3 filter.

" + } + }, + "com.amazonaws.securityhub#AwsS3BucketNotificationConfigurationS3KeyFilterRule": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.securityhub#AwsS3BucketNotificationConfigurationS3KeyFilterRuleName", + "traits": { + "smithy.api#documentation": "

Indicates whether the filter is based on the prefix or suffix of the Amazon S3 key.

" + } + }, + "Value": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The filter value.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details for a filter rule.

" + } + }, + "com.amazonaws.securityhub#AwsS3BucketNotificationConfigurationS3KeyFilterRuleName": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "Prefix", + "name": "PREFIX" + }, + { + "value": "Suffix", + "name": "SUFFIX" + } + ] + } + }, + "com.amazonaws.securityhub#AwsS3BucketNotificationConfigurationS3KeyFilterRules": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#AwsS3BucketNotificationConfigurationS3KeyFilterRule" + } + }, "com.amazonaws.securityhub#AwsS3BucketServerSideEncryptionByDefault": { "type": "structure", "members": { @@ -9707,7 +10446,7 @@ "KMSMasterKeyID": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

KMS customer master key (CMK) ID to use for the default encryption.

" + "smithy.api#documentation": "

KMS key ID to use for the default encryption.

" } } }, @@ -9749,6 +10488,142 @@ "target": "com.amazonaws.securityhub#AwsS3BucketServerSideEncryptionRule" } }, + "com.amazonaws.securityhub#AwsS3BucketWebsiteConfiguration": { + "type": "structure", + "members": { + "ErrorDocument": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The name of the error document for the website.

" + } + }, + "IndexDocumentSuffix": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The name of the index document for the website.

" + } + }, + "RedirectAllRequestsTo": { + "target": "com.amazonaws.securityhub#AwsS3BucketWebsiteConfigurationRedirectTo", + "traits": { + "smithy.api#documentation": "

The redirect behavior for requests to the website.

" + } + }, + "RoutingRules": { + "target": "com.amazonaws.securityhub#AwsS3BucketWebsiteConfigurationRoutingRules", + "traits": { + "smithy.api#documentation": "

The rules for applying redirects for requests to the website.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Website parameters for the S3\n bucket.

" + } + }, + "com.amazonaws.securityhub#AwsS3BucketWebsiteConfigurationRedirectTo": { + "type": "structure", + "members": { + "Hostname": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The name of the host to redirect requests to.

" + } + }, + "Protocol": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The protocol to use when redirecting requests. By default, uses the same protocol as the\n original request.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The redirect behavior for requests\n to the website.

" + } + }, + "com.amazonaws.securityhub#AwsS3BucketWebsiteConfigurationRoutingRule": { + "type": "structure", + "members": { + "Condition": { + "target": "com.amazonaws.securityhub#AwsS3BucketWebsiteConfigurationRoutingRuleCondition", + "traits": { + "smithy.api#documentation": "

Provides the condition that must be met in order to apply the routing rule.

" + } + }, + "Redirect": { + "target": "com.amazonaws.securityhub#AwsS3BucketWebsiteConfigurationRoutingRuleRedirect", + "traits": { + "smithy.api#documentation": "

Provides the rules to redirect the request if the condition in Condition is\n met.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A rule for redirecting requests\n to the website.

" + } + }, + "com.amazonaws.securityhub#AwsS3BucketWebsiteConfigurationRoutingRuleCondition": { + "type": "structure", + "members": { + "HttpErrorCodeReturnedEquals": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

Indicates to redirect the request if the HTTP error code matches this value.

" + } + }, + "KeyPrefixEquals": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

Indicates to redirect the request if the key prefix matches this value.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The condition that must be met in order to apply the routing rule.

" + } + }, + "com.amazonaws.securityhub#AwsS3BucketWebsiteConfigurationRoutingRuleRedirect": { + "type": "structure", + "members": { + "Hostname": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The host name to use in the redirect request.

" + } + }, + "HttpRedirectCode": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The HTTP redirect code to use in the response.

" + } + }, + "Protocol": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The protocol to use to redirect the request. By default, uses the protocol from the\n original request.

" + } + }, + "ReplaceKeyPrefixWith": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The object key prefix to use in the redirect request.

\n

Cannot be provided if ReplaceKeyWith is present.

" + } + }, + "ReplaceKeyWith": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The specific object key to use in the redirect request.

\n

Cannot be provided if ReplaceKeyPrefixWith is present.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The rules to redirect the request if the condition in Condition is\n met.

" + } + }, + "com.amazonaws.securityhub#AwsS3BucketWebsiteConfigurationRoutingRules": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#AwsS3BucketWebsiteConfigurationRoutingRule" + } + }, "com.amazonaws.securityhub#AwsS3ObjectDetails": { "type": "structure", "members": { @@ -9785,7 +10660,7 @@ "SSEKMSKeyId": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

The identifier of the KMS symmetric customer managed\n customer master key (CMK) that was used for the object.

" + "smithy.api#documentation": "

The identifier of the KMS symmetric customer managed key that was used for the object.

" } } }, @@ -9811,7 +10686,7 @@ "KmsKeyId": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

The ARN, Key ID, or alias of the KMS customer master key (CMK) used to encrypt the\n SecretString or SecretBinary values for versions of this\n secret.

" + "smithy.api#documentation": "

The ARN, Key ID, or alias of the KMS key used to encrypt the\n SecretString or SecretBinary values for versions of this\n secret.

" } }, "RotationEnabled": { @@ -9890,7 +10765,7 @@ "ProductName": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

The name of the product that generated the finding.

\n

Security Hub populates this attribute automatically for each finding. You cannot update it using BatchImportFindings or BatchUpdateFindings. The exception to this is when you use a custom integration.

\n

When you use the Security Hub console to filter findings by product name, you use this attribute.

\n

When you use the Security Hub API to filter findings by product name, you use the aws/securityhub/ProductyName attribute under ProductFields.

\n

Security Hub does not synchronize those two attributes.

" + "smithy.api#documentation": "

The name of the product that generated the finding.

\n

Security Hub populates this attribute automatically for each finding. You cannot update it using BatchImportFindings or BatchUpdateFindings. The exception to this is when you use a custom integration.

\n

When you use the Security Hub console to filter findings by product name, you use this attribute.

\n

When you use the Security Hub API to filter findings by product name, you use the aws/securityhub/ProductName attribute under ProductFields.

\n

Security Hub does not synchronize those two attributes.

" } }, "CompanyName": { @@ -10739,7 +11614,7 @@ "KmsMasterKeyId": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

The ID of an Amazon Web Services managed customer master key (CMK) for Amazon SNS or a custom\n CMK.

" + "smithy.api#documentation": "

The ID of an Amazon Web Services managed key for Amazon SNS or a customer managed key.

" } }, "Subscription": { @@ -10803,7 +11678,7 @@ "KmsMasterKeyId": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

The ID of an Amazon Web Services managed customer master key (CMK) for Amazon SQS or a custom\n CMK.

" + "smithy.api#documentation": "

The ID of an Amazon Web Services managed key for Amazon SQS or a custom\n KMS key.

" } }, "QueueName": { @@ -11946,6 +12821,18 @@ "traits": { "smithy.api#documentation": "

The base scoring vector for the CVSS score.

" } + }, + "Source": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The origin of the original CVSS score and vector.

" + } + }, + "Adjustments": { + "target": "com.amazonaws.securityhub#AdjustmentList", + "traits": { + "smithy.api#documentation": "

Adjustments to the CVSS metrics.

" + } } }, "traits": { @@ -13962,6 +14849,12 @@ "com.amazonaws.securityhub#Integer": { "type": "integer" }, + "com.amazonaws.securityhub#IntegerList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#Integer" + } + }, "com.amazonaws.securityhub#IntegrationType": { "type": "string", "traits": { @@ -15527,7 +16420,7 @@ "MarketplaceUrl": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

For integrations with Amazon Web Services services, the Amazon Web Services Console URL from which to activate the service.

\n

For integrations with third-party products, the Marketplace URL from which to subscribe to or purchase the product.

" + "smithy.api#documentation": "

For integrations with Amazon Web Services services, the Amazon Web Services Console URL from which to activate the service.

\n

For integrations with third-party products, the Amazon Web Services Marketplace URL from which to subscribe to or purchase the product.

" } }, "ActivationUrl": { @@ -15975,7 +16868,7 @@ "AwsElbLoadBalancer": { "target": "com.amazonaws.securityhub#AwsElbLoadBalancerDetails", "traits": { - "smithy.api#documentation": "

contains details about a Classic Load Balancer.

" + "smithy.api#documentation": "

Contains details about a Classic Load Balancer.

" } }, "AwsIamGroup": { @@ -16085,6 +16978,24 @@ "traits": { "smithy.api#documentation": "

Details about a service within an ECS cluster.

" } + }, + "AwsAutoScalingLaunchConfiguration": { + "target": "com.amazonaws.securityhub#AwsAutoScalingLaunchConfigurationDetails", + "traits": { + "smithy.api#documentation": "

Provides details about a launch configuration.

" + } + }, + "AwsEc2VpnConnection": { + "target": "com.amazonaws.securityhub#AwsEc2VpnConnectionDetails", + "traits": { + "smithy.api#documentation": "

Details about an EC2 VPN connection.

" + } + }, + "AwsEcrContainerImage": { + "target": "com.amazonaws.securityhub#AwsEcrContainerImageDetails", + "traits": { + "smithy.api#documentation": "

information about an Amazon ECR image.

" + } } }, "traits": { @@ -16526,6 +17437,18 @@ "traits": { "smithy.api#documentation": "

The architecture used for the software package.

" } + }, + "PackageManager": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The source of the package.

" + } + }, + "FilePath": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The file system path to the package manager inventory file.

" + } } }, "traits": { @@ -17705,7 +18628,7 @@ "Status": { "target": "com.amazonaws.securityhub#WorkflowStatus", "traits": { - "smithy.api#documentation": "

The status of the investigation into the finding. The allowed values are the\n following.

\n " + "smithy.api#documentation": "

The status of the investigation into the finding. The workflow status is specific to an individual finding. It does not affect the generation of new findings. For example, setting the workflow status to SUPPRESSED or RESOLVED does not prevent a new finding for the same issue.

\n

The allowed values are the following.

\n " } } }, @@ -17772,7 +18695,7 @@ "Status": { "target": "com.amazonaws.securityhub#WorkflowStatus", "traits": { - "smithy.api#documentation": "

The status of the investigation into the finding. The allowed values are the\n following.

\n " + "smithy.api#documentation": "

The status of the investigation into the finding. The workflow status is specific to an individual finding. It does not affect the generation of new findings. For example, setting the workflow status to SUPPRESSED or RESOLVED does not prevent a new finding for the same issue.

\n

The allowed values are the following.

\n " } } }, diff --git a/codegen/sdk-codegen/aws-models/servicecatalogappregistry.2020-06-24.json b/codegen/sdk-codegen/aws-models/servicecatalogappregistry.2020-06-24.json index 76d5b7ded3a..34209543aea 100644 --- a/codegen/sdk-codegen/aws-models/servicecatalogappregistry.2020-06-24.json +++ b/codegen/sdk-codegen/aws-models/servicecatalogappregistry.2020-06-24.json @@ -60,6 +60,9 @@ { "target": "com.amazonaws.servicecatalogappregistry#GetApplication" }, + { + "target": "com.amazonaws.servicecatalogappregistry#GetAssociatedResource" + }, { "target": "com.amazonaws.servicecatalogappregistry#GetAttributeGroup" }, @@ -106,7 +109,7 @@ "name": "servicecatalog" }, "aws.protocols#restJson1": {}, - "smithy.api#documentation": "

AWS Service Catalog AppRegistry enables organizations to understand the application context of their AWS resources. AppRegistry provides a repository of your applications, their resources, and the application metadata that you use within your enterprise.

", + "smithy.api#documentation": "

Amazon Web Services Service Catalog AppRegistry enables organizations to understand the application context of their Amazon Web Services resources. AppRegistry provides a repository of your applications, their resources, and the application metadata that you use within your enterprise.

", "smithy.api#title": "AWS Service Catalog App Registry" } }, @@ -157,19 +160,23 @@ } }, "traits": { - "smithy.api#documentation": "

Represents a Service Catalog AppRegistry application that is the top-level node in a hierarchy of related\n cloud resource abstractions.

" + "smithy.api#documentation": "

Represents a Amazon Web Services Service Catalog AppRegistry application that is the top-level node in a hierarchy of related\n cloud resource abstractions.

" } }, "com.amazonaws.servicecatalogappregistry#ApplicationArn": { "type": "string", "traits": { - "smithy.api#pattern": "arn:aws[-a-z]*:servicecatalog:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:/applications/[a-z0-9]+" + "smithy.api#pattern": "^arn:aws[-a-z]*:servicecatalog:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:/applications/[a-z0-9]+$" } }, "com.amazonaws.servicecatalogappregistry#ApplicationId": { "type": "string", "traits": { - "smithy.api#pattern": "[a-z0-9]{12}" + "smithy.api#length": { + "min": 26, + "max": 26 + }, + "smithy.api#pattern": "^[a-z0-9]+$" } }, "com.amazonaws.servicecatalogappregistry#ApplicationSpecifier": { @@ -179,7 +186,7 @@ "min": 1, "max": 256 }, - "smithy.api#pattern": "\\w+" + "smithy.api#pattern": "^[-.\\w]+$" } }, "com.amazonaws.servicecatalogappregistry#ApplicationSummaries": { @@ -229,7 +236,7 @@ } }, "traits": { - "smithy.api#documentation": "

Summary of a Service Catalog AppRegistry application.

" + "smithy.api#documentation": "

Summary of a Amazon Web Services Service Catalog AppRegistry application.

" } }, "com.amazonaws.servicecatalogappregistry#Arn": { @@ -239,7 +246,7 @@ "min": 1, "max": 1600 }, - "smithy.api#pattern": "arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:([a-z]{2}(-gov)?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)" + "smithy.api#pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:([a-z]{2}(-gov)?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)$" } }, "com.amazonaws.servicecatalogappregistry#AssociateAttributeGroup": { @@ -443,23 +450,23 @@ } }, "traits": { - "smithy.api#documentation": "

Represents a Service Catalog AppRegistry attribute group that is rich metadata which describes an application and its components.

" + "smithy.api#documentation": "

Represents a Amazon Web Services Service Catalog AppRegistry attribute group that is rich metadata which describes an application and its components.

" } }, "com.amazonaws.servicecatalogappregistry#AttributeGroupArn": { "type": "string", "traits": { - "smithy.api#pattern": "arn:aws[-a-z]*:servicecatalog:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:/attribute-groups/[a-z0-9]+" + "smithy.api#pattern": "^arn:aws[-a-z]*:servicecatalog:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:/attribute-groups/[a-z0-9]+$" } }, "com.amazonaws.servicecatalogappregistry#AttributeGroupId": { "type": "string", "traits": { "smithy.api#length": { - "min": 1, - "max": 100 + "min": 26, + "max": 26 }, - "smithy.api#pattern": "[a-z0-9]{12}" + "smithy.api#pattern": "^[a-z0-9]+$" } }, "com.amazonaws.servicecatalogappregistry#AttributeGroupIds": { @@ -475,7 +482,7 @@ "min": 1, "max": 256 }, - "smithy.api#pattern": "\\w+" + "smithy.api#pattern": "^[-.\\w]+$" } }, "com.amazonaws.servicecatalogappregistry#AttributeGroupSummaries": { @@ -525,7 +532,7 @@ } }, "traits": { - "smithy.api#documentation": "

Summary of a Service Catalog AppRegistry attribute group.

" + "smithy.api#documentation": "

Summary of a Amazon Web Services Service Catalog AppRegistry attribute group.

" } }, "com.amazonaws.servicecatalogappregistry#Attributes": { @@ -535,7 +542,7 @@ "min": 1, "max": 8000 }, - "smithy.api#pattern": "[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+" + "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+$" } }, "com.amazonaws.servicecatalogappregistry#ClientToken": { @@ -545,7 +552,7 @@ "min": 1, "max": 128 }, - "smithy.api#pattern": "[a-zA-Z0-9][a-zA-Z0-9_-]*" + "smithy.api#pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*$" } }, "com.amazonaws.servicecatalogappregistry#ConflictException": { @@ -1054,6 +1061,81 @@ "traits": { "smithy.api#documentation": "

Key-value pairs associated with the application.

" } + }, + "integrations": { + "target": "com.amazonaws.servicecatalogappregistry#Integrations", + "traits": { + "smithy.api#documentation": "

The information about the integration of the application with other services, such as Resource Groups.

" + } + } + } + }, + "com.amazonaws.servicecatalogappregistry#GetAssociatedResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.servicecatalogappregistry#GetAssociatedResourceRequest" + }, + "output": { + "target": "com.amazonaws.servicecatalogappregistry#GetAssociatedResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.servicecatalogappregistry#InternalServerException" + }, + { + "target": "com.amazonaws.servicecatalogappregistry#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.servicecatalogappregistry#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Gets the resource associated with the application.

", + "smithy.api#http": { + "method": "GET", + "uri": "/applications/{application}/resources/{resourceType}/{resource}", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.servicecatalogappregistry#GetAssociatedResourceRequest": { + "type": "structure", + "members": { + "application": { + "target": "com.amazonaws.servicecatalogappregistry#ApplicationSpecifier", + "traits": { + "smithy.api#documentation": "

The name or ID of the application.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "resourceType": { + "target": "com.amazonaws.servicecatalogappregistry#ResourceType", + "traits": { + "smithy.api#documentation": "

The type of resource associated with the application.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "resource": { + "target": "com.amazonaws.servicecatalogappregistry#ResourceSpecifier", + "traits": { + "smithy.api#documentation": "

The name or ID of the resource associated with the application.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.servicecatalogappregistry#GetAssociatedResourceResponse": { + "type": "structure", + "members": { + "resource": { + "target": "com.amazonaws.servicecatalogappregistry#Resource", + "traits": { + "smithy.api#documentation": "

The resource associated with the application.

" + } } } }, @@ -1151,6 +1233,20 @@ } } }, + "com.amazonaws.servicecatalogappregistry#Integrations": { + "type": "structure", + "members": { + "resourceGroup": { + "target": "com.amazonaws.servicecatalogappregistry#ResourceGroup", + "traits": { + "smithy.api#documentation": "

The information about the resource group integration.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The information about the service integration.

" + } + }, "com.amazonaws.servicecatalogappregistry#InternalServerException": { "type": "structure", "members": { @@ -1526,7 +1622,7 @@ "min": 1, "max": 256 }, - "smithy.api#pattern": "\\w+" + "smithy.api#pattern": "^[-.\\w]+$" } }, "com.amazonaws.servicecatalogappregistry#NextToken": { @@ -1536,7 +1632,96 @@ "min": 1, "max": 2024 }, - "smithy.api#pattern": "[A-Za-z0-9+/=]+" + "smithy.api#pattern": "^[A-Za-z0-9+/=]+$" + } + }, + "com.amazonaws.servicecatalogappregistry#Resource": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.servicecatalogappregistry#ResourceSpecifier", + "traits": { + "smithy.api#documentation": "

The name of the resource.

" + } + }, + "arn": { + "target": "com.amazonaws.servicecatalogappregistry#StackArn", + "traits": { + "smithy.api#documentation": "

The Amazon resource name (ARN) of the resource.

" + } + }, + "associationTime": { + "target": "com.amazonaws.servicecatalogappregistry#Timestamp", + "traits": { + "smithy.api#documentation": "

The time the resource was associated with the application.

" + } + }, + "integrations": { + "target": "com.amazonaws.servicecatalogappregistry#ResourceIntegrations", + "traits": { + "smithy.api#documentation": "

The service integration information about the resource.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The information about the resource.

" + } + }, + "com.amazonaws.servicecatalogappregistry#ResourceGroup": { + "type": "structure", + "members": { + "state": { + "target": "com.amazonaws.servicecatalogappregistry#ResourceGroupState", + "traits": { + "smithy.api#documentation": "

The state of the propagation process for the resource group. The states includes:

\n

\n CREATING if the resource group is in the process of being created.

\n

\n CREATE_COMPLETE if the resource group was created successfully.

\n

\n CREATE_FAILED if the resource group failed to be created.

\n

\n UPDATING if the resource group is in the process of being updated.

\n

\n UPDATE_COMPLETE if the resource group updated successfully.

\n

\n UPDATE_FAILED if the resource group could not update successfully.

" + } + }, + "arn": { + "target": "com.amazonaws.servicecatalogappregistry#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon resource name (ARN) of the resource group.

" + } + }, + "errorMessage": { + "target": "com.amazonaws.servicecatalogappregistry#String", + "traits": { + "smithy.api#documentation": "

The error message that generates when the propagation process for the resource group fails.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The information about the resource group integration.

" + } + }, + "com.amazonaws.servicecatalogappregistry#ResourceGroupState": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "CREATING", + "name": "CREATING" + }, + { + "value": "CREATE_COMPLETE", + "name": "CREATE_COMPLETE" + }, + { + "value": "CREATE_FAILED", + "name": "CREATE_FAILED" + }, + { + "value": "UPDATING", + "name": "UPDATING" + }, + { + "value": "UPDATE_COMPLETE", + "name": "UPDATE_COMPLETE" + }, + { + "value": "UPDATE_FAILED", + "name": "UPDATE_FAILED" + } + ] } }, "com.amazonaws.servicecatalogappregistry#ResourceInfo": { @@ -1556,7 +1741,21 @@ } }, "traits": { - "smithy.api#documentation": "

Information about the resource.

" + "smithy.api#documentation": "

The information about the resource.

" + } + }, + "com.amazonaws.servicecatalogappregistry#ResourceIntegrations": { + "type": "structure", + "members": { + "resourceGroup": { + "target": "com.amazonaws.servicecatalogappregistry#ResourceGroup", + "traits": { + "smithy.api#documentation": "

The information about the integration of Resource Groups.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The service integration information about the resource.

" } }, "com.amazonaws.servicecatalogappregistry#ResourceNotFoundException": { @@ -1579,7 +1778,7 @@ "min": 1, "max": 256 }, - "smithy.api#pattern": "\\S+" + "smithy.api#pattern": "^\\S+$" } }, "com.amazonaws.servicecatalogappregistry#ResourceType": { @@ -1615,7 +1814,7 @@ "com.amazonaws.servicecatalogappregistry#StackArn": { "type": "string", "traits": { - "smithy.api#pattern": "arn:aws[-a-z]*:cloudformation:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:stack/[a-zA-Z][-A-Za-z0-9]{0,127}/[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}" + "smithy.api#pattern": "^arn:aws[-a-z]*:cloudformation:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:stack/[a-zA-Z][-A-Za-z0-9]{0,127}/[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}$" } }, "com.amazonaws.servicecatalogappregistry#String": { @@ -1656,7 +1855,7 @@ } ], "traits": { - "smithy.api#documentation": "

Syncs the resource with what is currently recorded in App registry. Specifically, the resource’s App registry system tags are synced with its associated application. The resource is removed if it is not associated with the application. The caller must have permissions to read and update the resource.

", + "smithy.api#documentation": "

Syncs the resource with current AppRegistry records.

\n

Specifically, the resource’s AppRegistry system tags sync with its associated application. We remove the resource's AppRegistry system tags if it does not associate with the application. The caller must have permissions to read and update the resource.

", "smithy.api#http": { "method": "POST", "uri": "/sync/{resourceType}/{resource}", @@ -1678,7 +1877,7 @@ "resource": { "target": "com.amazonaws.servicecatalogappregistry#ResourceSpecifier", "traits": { - "smithy.api#documentation": "

An entity you can work with and specify with a name or ID. Examples include an Amazon EC2 instance, an AWS CloudFormation stack, or an Amazon S3 bucket.

", + "smithy.api#documentation": "

An entity you can work with and specify with a name or ID. Examples include an Amazon EC2 instance, an Amazon Web Services CloudFormation stack, or an Amazon S3 bucket.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1715,7 +1914,7 @@ "min": 1, "max": 128 }, - "smithy.api#pattern": "(?!aws:)[a-zA-Z+-=._:/]+" + "smithy.api#pattern": "^(?!aws:)[a-zA-Z+-=._:/]+$" } }, "com.amazonaws.servicecatalogappregistry#TagKeys": { @@ -1789,7 +1988,7 @@ "min": 0, "max": 256 }, - "smithy.api#pattern": "[\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*" + "smithy.api#pattern": "^[\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*$" } }, "com.amazonaws.servicecatalogappregistry#Tags": { diff --git a/codegen/sdk-codegen/aws-models/sqs.2012-11-05.json b/codegen/sdk-codegen/aws-models/sqs.2012-11-05.json index c7fe0d5f925..6fd6d74e9b7 100644 --- a/codegen/sdk-codegen/aws-models/sqs.2012-11-05.json +++ b/codegen/sdk-codegen/aws-models/sqs.2012-11-05.json @@ -488,7 +488,7 @@ "Attributes": { "target": "com.amazonaws.sqs#QueueAttributeMap", "traits": { - "smithy.api#documentation": "

A map of attributes with their corresponding values.

\n

The following lists the names, descriptions, and values of the special request parameters that the CreateQueue action uses:

\n \n \n

The following attributes apply only to server-side-encryption:

\n \n \n \n

The following attributes apply only to FIFO (first-in-first-out) queues:

\n \n \n \n

The following attributes apply only to \nhigh throughput\nfor FIFO queues:

\n \n

To enable high throughput for FIFO queues, do the following:

\n \n

If you set these attributes to anything other than the values shown for enabling high\n throughput, normal throughput is in effect and deduplication occurs as specified.

\n

For information on throughput quotas, \n see Quotas related to messages \n in the Amazon SQS Developer Guide.

", + "smithy.api#documentation": "

A map of attributes with their corresponding values.

\n

The following lists the names, descriptions, and values of the special request parameters that the CreateQueue action uses:

\n \n \n \n

The following attributes apply only to dead-letter queues:\n

\n \n \n

The dead-letter queue of a \n FIFO queue must also be a FIFO queue. Similarly, the dead-letter \n queue of a standard queue must also be a standard queue.

\n
\n \n\n \n

The following attributes apply only to server-side-encryption:

\n \n \n \n

The following attributes apply only to FIFO (first-in-first-out) queues:

\n \n \n \n

The following attributes apply only to \nhigh throughput\nfor FIFO queues:

\n \n

To enable high throughput for FIFO queues, do the following:

\n \n

If you set these attributes to anything other than the values shown for enabling high\n throughput, normal throughput is in effect and deduplication occurs as specified.

\n

For information on throughput quotas, \n see Quotas related to messages \n in the Amazon SQS Developer Guide.

", "smithy.api#xmlFlattened": {}, "smithy.api#xmlName": "Attribute" } @@ -743,7 +743,7 @@ "AttributeNames": { "target": "com.amazonaws.sqs#AttributeNameList", "traits": { - "smithy.api#documentation": "

A list of attributes for which to retrieve information.

\n

The AttributeName.N parameter is optional, but if you don't specify values for this parameter,\n the request returns empty results.

\n \n

In the future, new attributes might be added. If you write code that calls this action, we recommend that you structure your code so that it can handle new attributes gracefully.

\n
\n

The following attributes are supported:

\n \n

The ApproximateNumberOfMessagesDelayed, ApproximateNumberOfMessagesNotVisible, \n and ApproximateNumberOfMessagesVisible metrics may not achieve consistency\n until at least 1 minute after the producers stop sending messages. This period is required for \n the queue metadata to reach eventual consistency.

\n
\n \n \n

The following attributes apply only to server-side-encryption:

\n \n \n \n

The following attributes apply only to FIFO (first-in-first-out) queues:

\n \n \n \n

The following attributes apply only to \nhigh throughput\nfor FIFO queues:

\n \n

To enable high throughput for FIFO queues, do the following:

\n \n

If you set these attributes to anything other than the values shown for enabling high\n throughput, normal throughput is in effect and deduplication occurs as specified.

\n

For information on throughput quotas, \n see Quotas related to messages \n in the Amazon SQS Developer Guide.

", + "smithy.api#documentation": "

A list of attributes for which to retrieve information.

\n

The AttributeName.N parameter is optional, but if you don't specify values for this parameter,\n the request returns empty results.

\n \n

In the future, new attributes might be added. If you write code that calls this action, we recommend that you structure your code so that it can handle new attributes gracefully.

\n
\n

The following attributes are supported:

\n \n

The ApproximateNumberOfMessagesDelayed, ApproximateNumberOfMessagesNotVisible, \n and ApproximateNumberOfMessagesVisible metrics may not achieve consistency\n until at least 1 minute after the producers stop sending messages. This period is required for \n the queue metadata to reach eventual consistency.

\n
\n \n \n

The following attributes apply only to dead-letter queues:\n

\n \n \n

The dead-letter queue of a \n FIFO queue must also be a FIFO queue. Similarly, the dead-letter \n queue of a standard queue must also be a standard queue.

\n
\n \n \n

The following attributes apply only to server-side-encryption:

\n \n \n \n

The following attributes apply only to FIFO (first-in-first-out) queues:

\n \n \n \n

The following attributes apply only to \nhigh throughput\nfor FIFO queues:

\n \n

To enable high throughput for FIFO queues, do the following:

\n \n

If you set these attributes to anything other than the values shown for enabling high\n throughput, normal throughput is in effect and deduplication occurs as specified.

\n

For information on throughput quotas, \n see Quotas related to messages \n in the Amazon SQS Developer Guide.

", "smithy.api#xmlFlattened": {}, "smithy.api#xmlName": "AttributeName" } @@ -1456,6 +1456,10 @@ { "value": "FifoThroughputLimit", "name": "FifoThroughputLimit" + }, + { + "value": "RedriveAllowPolicy", + "name": "RedriveAllowPolicy" } ] } @@ -1970,7 +1974,7 @@ "Attributes": { "target": "com.amazonaws.sqs#QueueAttributeMap", "traits": { - "smithy.api#documentation": "

A map of attributes to set.

\n

The following lists the names, descriptions, and values of the special request parameters that the SetQueueAttributes action uses:

\n \n \n

The following attributes apply only to server-side-encryption:

\n \n \n \n

The following attribute applies only to FIFO (first-in-first-out) queues:

\n \n \n \n

The following attributes apply only to \nhigh throughput\nfor FIFO queues:

\n \n

To enable high throughput for FIFO queues, do the following:

\n \n

If you set these attributes to anything other than the values shown for enabling high\n throughput, normal throughput is in effect and deduplication occurs as specified.

\n

For information on throughput quotas, \n see Quotas related to messages \n in the Amazon SQS Developer Guide.

", + "smithy.api#documentation": "

A map of attributes to set.

\n

The following lists the names, descriptions, and values of the special request parameters that the SetQueueAttributes action uses:

\n \n \n

The following attributes apply only to dead-letter queues:\n

\n \n \n

The dead-letter queue of a \n FIFO queue must also be a FIFO queue. Similarly, the dead-letter \n queue of a standard queue must also be a standard queue.

\n
\n \n \n

The following attributes apply only to server-side-encryption:

\n \n \n \n

The following attribute applies only to FIFO (first-in-first-out) queues:

\n \n \n \n

The following attributes apply only to \nhigh throughput\nfor FIFO queues:

\n \n

To enable high throughput for FIFO queues, do the following:

\n \n

If you set these attributes to anything other than the values shown for enabling high\n throughput, normal throughput is in effect and deduplication occurs as specified.

\n

For information on throughput quotas, \n see Quotas related to messages \n in the Amazon SQS Developer Guide.

", "smithy.api#required": {}, "smithy.api#xmlFlattened": {}, "smithy.api#xmlName": "Attribute" diff --git a/codegen/sdk-codegen/aws-models/transfer.2018-11-05.json b/codegen/sdk-codegen/aws-models/transfer.2018-11-05.json index 2a7d9419127..6d83acec6f0 100644 --- a/codegen/sdk-codegen/aws-models/transfer.2018-11-05.json +++ b/codegen/sdk-codegen/aws-models/transfer.2018-11-05.json @@ -65,6 +65,16 @@ "smithy.api#pattern": "^arn:" } }, + "com.amazonaws.transfer#CallbackToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^\\w+$" + } + }, "com.amazonaws.transfer#Certificate": { "type": "string", "traits": { @@ -85,11 +95,34 @@ } }, "traits": { - "smithy.api#documentation": "

This exception is thrown when the UpdatServer is called for a file transfer\n protocol-enabled server that has VPC as the endpoint type and the server's\n VpcEndpointID is not in the available state.

", + "smithy.api#documentation": "

This exception is thrown when the UpdateServer is called for a file transfer\n protocol-enabled server that has VPC as the endpoint type and the server's\n VpcEndpointID is not in the available state.

", "smithy.api#error": "client", "smithy.api#httpError": 409 } }, + "com.amazonaws.transfer#CopyStepDetails": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.transfer#WorkflowStepName", + "traits": { + "smithy.api#documentation": "

The name of the step, used as an identifier.

" + } + }, + "DestinationFileLocation": { + "target": "com.amazonaws.transfer#InputFileLocation" + }, + "OverwriteExisting": { + "target": "com.amazonaws.transfer#OverwriteExisting", + "traits": { + "smithy.api#documentation": "

A flag that indicates whether or not to overwrite an existing file of the same name.\n The default is FALSE.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Each step type has its own StepDetails structure.

" + } + }, "com.amazonaws.transfer#CreateAccess": { "type": "operation", "input": { @@ -131,19 +164,19 @@ "HomeDirectoryType": { "target": "com.amazonaws.transfer#HomeDirectoryType", "traits": { - "smithy.api#documentation": "

The type of landing directory (folder) you want your users' home directory to be when they log into the server.\n If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients.\n If you set it LOGICAL, you will need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon\n S3 or EFS paths visible to your users.

" + "smithy.api#documentation": "

The type of landing directory (folder) you want your users' home directory to be when they log into the server.\n If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients.\n If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon\n S3 or EFS paths visible to your users.

" } }, "HomeDirectoryMappings": { "target": "com.amazonaws.transfer#HomeDirectoryMappings", "traits": { - "smithy.api#documentation": "

Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should\n be visible to your user and how you want to make them visible. You must specify the\n Entry and Target pair, where Entry shows how the path\n is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you\n only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity\n and Access Management (IAM) role provides access to paths in Target. This value\n can only be set when HomeDirectoryType is set to\n LOGICAL.

\n

The following is an Entry and Target pair example.

\n

\n [ { \"Entry\": \"your-personal-report.pdf\", \"Target\": \"/bucket3/customized-reports/${transfer:UserName}.pdf\" } ]\n

\n

In most cases, you can use this value instead of the scope-down policy to lock down your\n user to the designated home directory (\"chroot\"). To do this, you can set\n Entry to / and set Target to the\n HomeDirectory parameter value.

\n

The following is an Entry and Target pair example for chroot.

\n

\n [ { \"Entry:\": \"/\", \"Target\": \"/bucket_name/home/mydirectory\" } ]\n

\n \n \n

If the target of a logical directory entry does not exist in Amazon S3 or EFS, the entry is\n ignored. As a workaround, you can use the Amazon S3 API or EFS API to create 0 byte objects as place\n holders for your directory. If using the CLI, use the s3api or efsapi call instead of\n s3 or efs so you can use the put-object operation. For example, you use the\n following: aws s3api put-object --bucket bucketname --key path/to/folder/. Make\n sure that the end of the key name ends in a / for it to be considered a folder.

\n
" + "smithy.api#documentation": "

Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should\n be visible to your user and how you want to make them visible. You must specify the\n Entry and Target pair, where Entry shows how the path\n is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you\n only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity\n and Access Management (IAM) role provides access to paths in Target. This value\n can only be set when HomeDirectoryType is set to\n LOGICAL.

\n

The following is an Entry and Target pair example.

\n

\n [ { \"Entry\": \"your-personal-report.pdf\", \"Target\": \"/bucket3/customized-reports/${transfer:UserName}.pdf\" } ]\n

\n

In most cases, you can use this value instead of the session policy to lock down your\n user to the designated home directory (\"chroot\"). To do this, you can set\n Entry to / and set Target to the\n HomeDirectory parameter value.

\n

The following is an Entry and Target pair example for chroot.

\n

\n [ { \"Entry:\": \"/\", \"Target\": \"/bucket_name/home/mydirectory\" } ]\n

\n \n \n

If the target of a logical directory entry does not exist in Amazon S3 or EFS, the entry is\n ignored. As a workaround, you can use the Amazon S3 API or EFS API to create 0 byte objects as place\n holders for your directory. If using the CLI, use the s3api or efsapi call instead of\n s3 or efs so you can use the put-object operation. For example, you use the\n following: aws s3api put-object --bucket bucketname --key path/to/folder/. Make\n sure that the end of the key name ends in a / for it to be considered a folder.

\n
" } }, "Policy": { "target": "com.amazonaws.transfer#Policy", "traits": { - "smithy.api#documentation": "

A scope-down policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user\n access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},\n ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

\n \n \n

This only applies when domain of ServerId is S3.\n Amazon EFS does not use scope-down policies.

\n

For scope-down policies, Amazon Web Services Transfer Family stores the policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass it in the Policy argument.

\n

For an example of a scope-down policy, see Example\n scope-down policy.

\n

For more information, see AssumeRole in the Amazon Web Services Security Token Service API\n Reference.

\n
" + "smithy.api#documentation": "

A session policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user\n access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},\n ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

\n \n \n

This only applies when the domain of ServerId is S3. EFS does not use session policies.

\n

For session policies, Amazon Web Services Transfer Family stores the policy as a JSON blob, instead\n of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass\n it in the Policy argument.

\n

For an example of a session policy, see Example\n session policy.

\n

For more information, see AssumeRole in the Amazon Web Services Security Token Service API\n Reference.

\n
" } }, "PosixProfile": { @@ -212,6 +245,9 @@ { "target": "com.amazonaws.transfer#ResourceExistsException" }, + { + "target": "com.amazonaws.transfer#ResourceNotFoundException" + }, { "target": "com.amazonaws.transfer#ServiceUnavailableException" }, @@ -291,6 +327,12 @@ "traits": { "smithy.api#documentation": "

Key-value pairs that can be used to group and search for servers.

" } + }, + "WorkflowDetails": { + "target": "com.amazonaws.transfer#WorkflowDetails", + "traits": { + "smithy.api#documentation": "

Specifies the workflow ID for the workflow to assign and the execution role used for executing the workflow.

" + } } } }, @@ -332,7 +374,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a user and associates them with an existing file transfer protocol-enabled server.\n You can only create and associate users with servers that have the\n IdentityProviderType set to SERVICE_MANAGED. Using parameters for\n CreateUser, you can specify the user name, set the home directory, store the\n user's public key, and assign the user's Amazon Web Services Identity and Access Management (IAM)\n role. You can also optionally add a scope-down policy, and assign metadata with tags that can\n be used to group and search for users.

" + "smithy.api#documentation": "

Creates a user and associates them with an existing file transfer protocol-enabled server.\n You can only create and associate users with servers that have the\n IdentityProviderType set to SERVICE_MANAGED. Using parameters for\n CreateUser, you can specify the user name, set the home directory, store the\n user's public key, and assign the user's Amazon Web Services Identity and Access Management (IAM)\n role. You can also optionally add a session policy, and assign metadata with tags that can\n be used to group and search for users.

" } }, "com.amazonaws.transfer#CreateUserRequest": { @@ -347,19 +389,19 @@ "HomeDirectoryType": { "target": "com.amazonaws.transfer#HomeDirectoryType", "traits": { - "smithy.api#documentation": "

The type of landing directory (folder) you want your users' home directory to be when they log into the server.\n If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients.\n If you set it LOGICAL, you will need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon\n S3 or EFS paths visible to your users.

" + "smithy.api#documentation": "

The type of landing directory (folder) you want your users' home directory to be when they log into the server.\n If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients.\n If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon\n S3 or EFS paths visible to your users.

" } }, "HomeDirectoryMappings": { "target": "com.amazonaws.transfer#HomeDirectoryMappings", "traits": { - "smithy.api#documentation": "

Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should\n be visible to your user and how you want to make them visible. You must specify the\n Entry and Target pair, where Entry shows how the path\n is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you\n only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity\n and Access Management (IAM) role provides access to paths in Target. This value\n can only be set when HomeDirectoryType is set to\n LOGICAL.

\n\n

The following is an Entry and Target pair example.

\n\n

\n [ { \"Entry\": \"your-personal-report.pdf\", \"Target\":\n \"/bucket3/customized-reports/${transfer:UserName}.pdf\" } ]\n

\n\n

In most cases, you can use this value instead of the scope-down policy to lock your user\n down to the designated home directory (\"chroot\"). To do this, you can set\n Entry to / and set Target to the HomeDirectory\n parameter value.

\n

The following is an Entry and Target pair example for chroot.

\n

\n [ { \"Entry:\": \"/\", \"Target\": \"/bucket_name/home/mydirectory\" } ]\n

\n \n \n

If the target of a logical directory entry does not exist in Amazon S3 or EFS, the entry is\n ignored. As a workaround, you can use the Amazon S3 API or EFS API to create 0 byte objects as place\n holders for your directory. If using the CLI, use the s3api or efsapi call instead of\n s3 or efs so you can use the put-object operation. For example, you use the\n following: aws s3api put-object --bucket bucketname --key path/to/folder/. Make\n sure that the end of the key name ends in a / for it to be considered a folder.

\n
" + "smithy.api#documentation": "

Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should\n be visible to your user and how you want to make them visible. You must specify the\n Entry and Target pair, where Entry shows how the path\n is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you\n only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity\n and Access Management (IAM) role provides access to paths in Target. This value\n can only be set when HomeDirectoryType is set to\n LOGICAL.

\n\n

The following is an Entry and Target pair example.

\n\n

\n [ { \"Entry\": \"your-personal-report.pdf\", \"Target\":\n \"/bucket3/customized-reports/${transfer:UserName}.pdf\" } ]\n

\n\n

In most cases, you can use this value instead of the session policy to lock your user\n down to the designated home directory (\"chroot\"). To do this, you can set\n Entry to / and set Target to the HomeDirectory\n parameter value.

\n

The following is an Entry and Target pair example for chroot.

\n

\n [ { \"Entry:\": \"/\", \"Target\": \"/bucket_name/home/mydirectory\" } ]\n

\n \n \n

If the target of a logical directory entry does not exist in Amazon S3 or EFS, the entry is\n ignored. As a workaround, you can use the Amazon S3 API or EFS API to create 0 byte objects as place\n holders for your directory. If using the CLI, use the s3api or efsapi call instead of\n s3 or efs so you can use the put-object operation. For example, you use the\n following: aws s3api put-object --bucket bucketname --key path/to/folder/. Make\n sure that the end of the key name ends in a / for it to be considered a folder.

\n
" } }, "Policy": { "target": "com.amazonaws.transfer#Policy", "traits": { - "smithy.api#documentation": "

A scope-down policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user\n access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},\n ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

\n\n \n

This only applies when domain of ServerId is S3. EFS does not use scope down policy.

\n

For scope-down policies, Amazon Web Services Transfer Family stores the policy as a JSON blob, instead\n of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass\n it in the Policy argument.

\n\n \n\n

For an example of a scope-down policy, see Example scope-down\n policy.

\n\n \n\n

For more information, see AssumeRole in the Amazon Web Services\n Security Token Service API Reference.

\n
" + "smithy.api#documentation": "

A session policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user\n access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},\n ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

\n\n \n

This only applies when the domain of ServerId is S3. EFS does not use session policies.

\n

For session policies, Amazon Web Services Transfer Family stores the policy as a JSON blob, instead\n of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass\n it in the Policy argument.

\n\n \n\n

For an example of a session policy, see Example session\n policy.

\n\n \n\n

For more information, see AssumeRole in the Amazon Web Services\n Security Token Service API Reference.

\n
" } }, "PosixProfile": { @@ -397,7 +439,7 @@ "UserName": { "target": "com.amazonaws.transfer#UserName", "traits": { - "smithy.api#documentation": "

A unique string that identifies a user and is associated with a as specified by the\n ServerId. This user name must be a minimum of 3 and a maximum of 100 characters\n long. The following are valid characters: a-z, A-Z, 0-9, underscore '_', hyphen\n '-', period '.', and at sign '@'. The user name can't start\n with a hyphen, period, or at sign.

", + "smithy.api#documentation": "

A unique string that identifies a user and is associated with a ServerId. This user name must be a minimum of 3 and a maximum of 100 characters\n long. The following are valid characters: a-z, A-Z, 0-9, underscore '_', hyphen\n '-', period '.', and at sign '@'. The user name can't start\n with a hyphen, period, or at sign.

", "smithy.api#required": {} } } @@ -422,6 +464,141 @@ } } }, + "com.amazonaws.transfer#CreateWorkflow": { + "type": "operation", + "input": { + "target": "com.amazonaws.transfer#CreateWorkflowRequest" + }, + "output": { + "target": "com.amazonaws.transfer#CreateWorkflowResponse" + }, + "errors": [ + { + "target": "com.amazonaws.transfer#AccessDeniedException" + }, + { + "target": "com.amazonaws.transfer#InternalServiceError" + }, + { + "target": "com.amazonaws.transfer#InvalidRequestException" + }, + { + "target": "com.amazonaws.transfer#ResourceExistsException" + }, + { + "target": "com.amazonaws.transfer#ServiceUnavailableException" + }, + { + "target": "com.amazonaws.transfer#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

\n Allows you to create a workflow with specified steps and step details the workflow invokes after file transfer completes.\n After creating a workflow, you can associate the workflow created with any transfer servers by specifying the workflow-details field in CreateServer and UpdateServer operations.\n

" + } + }, + "com.amazonaws.transfer#CreateWorkflowRequest": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.transfer#WorkflowDescription", + "traits": { + "smithy.api#documentation": "

A textual description for the workflow.

" + } + }, + "Steps": { + "target": "com.amazonaws.transfer#WorkflowSteps", + "traits": { + "smithy.api#documentation": "

Specifies the details for the steps that are in the specified workflow.

\n

\n The TYPE specifies which of the following actions is being taken for this step.\n

\n \n

\n For file location, you specify either the S3 bucket and key, or the EFS filesystem ID and path.\n

", + "smithy.api#required": {} + } + }, + "OnExceptionSteps": { + "target": "com.amazonaws.transfer#WorkflowSteps", + "traits": { + "smithy.api#documentation": "

Specifies the steps (actions) to take if any errors are encountered during execution of the workflow.

" + } + }, + "Tags": { + "target": "com.amazonaws.transfer#Tags", + "traits": { + "smithy.api#documentation": "

Key-value pairs that can be used to group and search for workflows. Tags are metadata attached\n to workflows for any purpose.

" + } + } + } + }, + "com.amazonaws.transfer#CreateWorkflowResponse": { + "type": "structure", + "members": { + "WorkflowId": { + "target": "com.amazonaws.transfer#WorkflowId", + "traits": { + "smithy.api#documentation": "

A unique identifier for the workflow.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.transfer#CustomStepDetails": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.transfer#WorkflowStepName", + "traits": { + "smithy.api#documentation": "

The name of the step, used as an identifier.

" + } + }, + "Target": { + "target": "com.amazonaws.transfer#CustomStepTarget", + "traits": { + "smithy.api#documentation": "

The ARN for the lambda function that is being called.

" + } + }, + "TimeoutSeconds": { + "target": "com.amazonaws.transfer#CustomStepTimeoutSeconds", + "traits": { + "smithy.api#documentation": "

Timeout, in seconds, for the step.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Each step type has its own StepDetails structure.

" + } + }, + "com.amazonaws.transfer#CustomStepStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "SUCCESS", + "name": "SUCCESS" + }, + { + "value": "FAILURE", + "name": "FAILURE" + } + ] + } + }, + "com.amazonaws.transfer#CustomStepTarget": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 170 + }, + "smithy.api#pattern": "^arn:[a-z-]+:lambda:.*$" + } + }, + "com.amazonaws.transfer#CustomStepTimeoutSeconds": { + "type": "integer", + "traits": { + "smithy.api#box": {}, + "smithy.api#range": { + "min": 1, + "max": 1800 + } + } + }, "com.amazonaws.transfer#DateImported": { "type": "timestamp" }, @@ -528,7 +705,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a user's Secure Shell (SSH) public key.

\n\n

No response is returned from this operation.

" + "smithy.api#documentation": "

Deletes a user's Secure Shell (SSH) public key.

" } }, "com.amazonaws.transfer#DeleteSshPublicKeyRequest": { @@ -557,6 +734,20 @@ } } }, + "com.amazonaws.transfer#DeleteStepDetails": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.transfer#WorkflowStepName", + "traits": { + "smithy.api#documentation": "

The name of the step, used as an identifier.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The name of the step, used to identify the step that is being deleted.

" + } + }, "com.amazonaws.transfer#DeleteUser": { "type": "operation", "input": { @@ -599,6 +790,44 @@ } } }, + "com.amazonaws.transfer#DeleteWorkflow": { + "type": "operation", + "input": { + "target": "com.amazonaws.transfer#DeleteWorkflowRequest" + }, + "errors": [ + { + "target": "com.amazonaws.transfer#AccessDeniedException" + }, + { + "target": "com.amazonaws.transfer#InternalServiceError" + }, + { + "target": "com.amazonaws.transfer#InvalidRequestException" + }, + { + "target": "com.amazonaws.transfer#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.transfer#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the specified workflow.

" + } + }, + "com.amazonaws.transfer#DeleteWorkflowRequest": { + "type": "structure", + "members": { + "WorkflowId": { + "target": "com.amazonaws.transfer#WorkflowId", + "traits": { + "smithy.api#documentation": "

A unique identifier for the workflow.

", + "smithy.api#required": {} + } + } + } + }, "com.amazonaws.transfer#DescribeAccess": { "type": "operation", "input": { @@ -663,6 +892,70 @@ } } }, + "com.amazonaws.transfer#DescribeExecution": { + "type": "operation", + "input": { + "target": "com.amazonaws.transfer#DescribeExecutionRequest" + }, + "output": { + "target": "com.amazonaws.transfer#DescribeExecutionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.transfer#InternalServiceError" + }, + { + "target": "com.amazonaws.transfer#InvalidRequestException" + }, + { + "target": "com.amazonaws.transfer#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.transfer#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

You can use DescribeExecution to check the details of the execution of the specified workflow.

" + } + }, + "com.amazonaws.transfer#DescribeExecutionRequest": { + "type": "structure", + "members": { + "ExecutionId": { + "target": "com.amazonaws.transfer#ExecutionId", + "traits": { + "smithy.api#documentation": "

A unique identifier for the execution of a workflow.

", + "smithy.api#required": {} + } + }, + "WorkflowId": { + "target": "com.amazonaws.transfer#WorkflowId", + "traits": { + "smithy.api#documentation": "

A unique identifier for the workflow.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.transfer#DescribeExecutionResponse": { + "type": "structure", + "members": { + "WorkflowId": { + "target": "com.amazonaws.transfer#WorkflowId", + "traits": { + "smithy.api#documentation": "

A unique identifier for the workflow.

", + "smithy.api#required": {} + } + }, + "Execution": { + "target": "com.amazonaws.transfer#DescribedExecution", + "traits": { + "smithy.api#documentation": "

The structure that contains the details of the workflow' execution.

", + "smithy.api#required": {} + } + } + } + }, "com.amazonaws.transfer#DescribeSecurityPolicy": { "type": "operation", "input": { @@ -827,6 +1120,56 @@ } } }, + "com.amazonaws.transfer#DescribeWorkflow": { + "type": "operation", + "input": { + "target": "com.amazonaws.transfer#DescribeWorkflowRequest" + }, + "output": { + "target": "com.amazonaws.transfer#DescribeWorkflowResponse" + }, + "errors": [ + { + "target": "com.amazonaws.transfer#InternalServiceError" + }, + { + "target": "com.amazonaws.transfer#InvalidRequestException" + }, + { + "target": "com.amazonaws.transfer#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.transfer#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

Describes the specified workflow.

" + } + }, + "com.amazonaws.transfer#DescribeWorkflowRequest": { + "type": "structure", + "members": { + "WorkflowId": { + "target": "com.amazonaws.transfer#WorkflowId", + "traits": { + "smithy.api#documentation": "

A unique identifier for the workflow.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.transfer#DescribeWorkflowResponse": { + "type": "structure", + "members": { + "Workflow": { + "target": "com.amazonaws.transfer#DescribedWorkflow", + "traits": { + "smithy.api#documentation": "

The structure that contains the details of the workflow.

", + "smithy.api#required": {} + } + } + } + }, "com.amazonaws.transfer#DescribedAccess": { "type": "structure", "members": { @@ -839,19 +1182,19 @@ "HomeDirectoryMappings": { "target": "com.amazonaws.transfer#HomeDirectoryMappings", "traits": { - "smithy.api#documentation": "

Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should\n be visible to your user and how you want to make them visible. You must specify the\n Entry and Target pair, where Entry shows how the path\n is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you\n only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity\n and Access Management (IAM) role provides access to paths in Target. This value\n can only be set when HomeDirectoryType is set to\n LOGICAL.

\n \n

In most cases, you can use this value instead of the scope-down policy to lock down the\n associated access to the designated home directory (\"chroot\"). To do this, you\n can set Entry to '/' and set Target to the\n HomeDirectory parameter value.

" + "smithy.api#documentation": "

Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should\n be visible to your user and how you want to make them visible. You must specify the\n Entry and Target pair, where Entry shows how the path\n is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you\n only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity\n and Access Management (IAM) role provides access to paths in Target. This value\n can only be set when HomeDirectoryType is set to\n LOGICAL.

\n \n

In most cases, you can use this value instead of the session policy to lock down the\n associated access to the designated home directory (\"chroot\"). To do this, you\n can set Entry to '/' and set Target to the\n HomeDirectory parameter value.

" } }, "HomeDirectoryType": { "target": "com.amazonaws.transfer#HomeDirectoryType", "traits": { - "smithy.api#documentation": "

The type of landing directory (folder) you want your users' home directory to be when they log into the server.\n If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients.\n If you set it LOGICAL, you will need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon\n S3 or EFS paths visible to your users.

" + "smithy.api#documentation": "

The type of landing directory (folder) you want your users' home directory to be when they log into the server.\n If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients.\n If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon\n S3 or EFS paths visible to your users.

" } }, "Policy": { "target": "com.amazonaws.transfer#Policy", "traits": { - "smithy.api#documentation": "

A scope-down policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user\n access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},\n ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

" + "smithy.api#documentation": "

A session policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user\n access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},\n ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

" } }, "PosixProfile": { @@ -874,24 +1217,77 @@ "smithy.api#documentation": "

Describes the properties of the access that was specified.

" } }, - "com.amazonaws.transfer#DescribedSecurityPolicy": { + "com.amazonaws.transfer#DescribedExecution": { "type": "structure", "members": { - "Fips": { - "target": "com.amazonaws.transfer#Fips", + "ExecutionId": { + "target": "com.amazonaws.transfer#ExecutionId", "traits": { - "smithy.api#documentation": "

Specifies whether this policy enables Federal Information Processing Standards\n (FIPS).

" + "smithy.api#documentation": "

A unique identifier for the execution of a workflow.

" } }, - "SecurityPolicyName": { - "target": "com.amazonaws.transfer#SecurityPolicyName", + "InitialFileLocation": { + "target": "com.amazonaws.transfer#FileLocation", "traits": { - "smithy.api#documentation": "

Specifies the name of the security policy that is attached to the server.

", - "smithy.api#required": {} + "smithy.api#documentation": "

A structure that describes the Amazon S3 or EFS file location.\n This is the file location when the execution begins: if the file is being copied,\n this is the initial (as opposed to destination) file location.

" } }, - "SshCiphers": { - "target": "com.amazonaws.transfer#SecurityPolicyOptions", + "ServiceMetadata": { + "target": "com.amazonaws.transfer#ServiceMetadata", + "traits": { + "smithy.api#documentation": "

A container object for the session details associated with a workflow.

" + } + }, + "ExecutionRole": { + "target": "com.amazonaws.transfer#Role", + "traits": { + "smithy.api#documentation": "

The IAM role associated with the execution.

" + } + }, + "LoggingConfiguration": { + "target": "com.amazonaws.transfer#LoggingConfiguration", + "traits": { + "smithy.api#documentation": "

The IAM logging role associated with the execution.

" + } + }, + "PosixProfile": { + "target": "com.amazonaws.transfer#PosixProfile" + }, + "Status": { + "target": "com.amazonaws.transfer#ExecutionStatus", + "traits": { + "smithy.api#documentation": "

The status is one of the execution. Can be in progress, completed, exception encountered, or handling the exception.\n

" + } + }, + "Results": { + "target": "com.amazonaws.transfer#ExecutionResults", + "traits": { + "smithy.api#documentation": "

A structure that describes the execution results. This includes a list of the steps along with the details of each step,\n error type and message (if any), and the OnExceptionSteps structure.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The details for an execution object.

" + } + }, + "com.amazonaws.transfer#DescribedSecurityPolicy": { + "type": "structure", + "members": { + "Fips": { + "target": "com.amazonaws.transfer#Fips", + "traits": { + "smithy.api#documentation": "

Specifies whether this policy enables Federal Information Processing Standards\n (FIPS).

" + } + }, + "SecurityPolicyName": { + "target": "com.amazonaws.transfer#SecurityPolicyName", + "traits": { + "smithy.api#documentation": "

Specifies the name of the security policy that is attached to the server.

", + "smithy.api#required": {} + } + }, + "SshCiphers": { + "target": "com.amazonaws.transfer#SecurityPolicyOptions", "traits": { "smithy.api#documentation": "

Specifies the enabled Secure Shell (SSH) cipher encryption algorithms in the security\n policy that is attached to the server.

" } @@ -1018,6 +1414,12 @@ "traits": { "smithy.api#documentation": "

Specifies the number of users that are assigned to a server you specified with the\n ServerId.

" } + }, + "WorkflowDetails": { + "target": "com.amazonaws.transfer#WorkflowDetails", + "traits": { + "smithy.api#documentation": "

Specifies the workflow ID for the workflow to assign and the execution role used for executing the workflow.

" + } } }, "traits": { @@ -1043,19 +1445,19 @@ "HomeDirectoryMappings": { "target": "com.amazonaws.transfer#HomeDirectoryMappings", "traits": { - "smithy.api#documentation": "

Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should\n be visible to your user and how you want to make them visible. You must specify the\n Entry and Target pair, where Entry shows how the path\n is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you\n only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity\n and Access Management (IAM) role provides access to paths in Target. This value\n can only be set when HomeDirectoryType is set to\n LOGICAL.

\n\n

In most cases, you can use this value instead of the scope-down policy to lock your user\n down to the designated home directory (\"chroot\"). To do this, you can set\n Entry to '/' and set Target to the HomeDirectory\n parameter value.

" + "smithy.api#documentation": "

Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should\n be visible to your user and how you want to make them visible. You must specify the\n Entry and Target pair, where Entry shows how the path\n is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you\n only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity\n and Access Management (IAM) role provides access to paths in Target. This value\n can only be set when HomeDirectoryType is set to\n LOGICAL.

\n\n

In most cases, you can use this value instead of the session policy to lock your user\n down to the designated home directory (\"chroot\"). To do this, you can set\n Entry to '/' and set Target to the HomeDirectory\n parameter value.

" } }, "HomeDirectoryType": { "target": "com.amazonaws.transfer#HomeDirectoryType", "traits": { - "smithy.api#documentation": "

The type of landing directory (folder) you want your users' home directory to be when they log into the server.\n If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients.\n If you set it LOGICAL, you will need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon\n S3 or EFS paths visible to your users.

" + "smithy.api#documentation": "

The type of landing directory (folder) you want your users' home directory to be when they log into the server.\n If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients.\n If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon\n S3 or EFS paths visible to your users.

" } }, "Policy": { "target": "com.amazonaws.transfer#Policy", "traits": { - "smithy.api#documentation": "

A scope-down policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user\n access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},\n ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

" + "smithy.api#documentation": "

A session policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user\n access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},\n ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

" } }, "PosixProfile": { @@ -1093,6 +1495,51 @@ "smithy.api#documentation": "

Describes the properties of a user that was specified.

" } }, + "com.amazonaws.transfer#DescribedWorkflow": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.transfer#Arn", + "traits": { + "smithy.api#documentation": "

Specifies the unique Amazon Resource Name (ARN) for the workflow.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.transfer#WorkflowDescription", + "traits": { + "smithy.api#documentation": "

Specifies the text description for the workflow.

" + } + }, + "Steps": { + "target": "com.amazonaws.transfer#WorkflowSteps", + "traits": { + "smithy.api#documentation": "

Specifies the details for the steps that are in the specified workflow.

" + } + }, + "OnExceptionSteps": { + "target": "com.amazonaws.transfer#WorkflowSteps", + "traits": { + "smithy.api#documentation": "

Specifies the steps (actions) to take if any errors are encountered during execution of the workflow.

" + } + }, + "WorkflowId": { + "target": "com.amazonaws.transfer#WorkflowId", + "traits": { + "smithy.api#documentation": "

A unique identifier for the workflow.

" + } + }, + "Tags": { + "target": "com.amazonaws.transfer#Tags", + "traits": { + "smithy.api#documentation": "

Key-value pairs that can be used to group and search for workflows. Tags are metadata attached to workflows for any purpose.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the properties of the specified workflow

" + } + }, "com.amazonaws.transfer#DirectoryId": { "type": "string", "traits": { @@ -1118,6 +1565,46 @@ ] } }, + "com.amazonaws.transfer#EfsFileLocation": { + "type": "structure", + "members": { + "FileSystemId": { + "target": "com.amazonaws.transfer#EfsFileSystemId", + "traits": { + "smithy.api#documentation": "

The ID of the file system, assigned by Amazon EFS.

" + } + }, + "Path": { + "target": "com.amazonaws.transfer#EfsPath", + "traits": { + "smithy.api#documentation": "

The pathname for the folder being used by a workflow.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the details for the file location for the file being used in the workflow. Only applicable if you are using Amazon EFS for storage.

\n

\n You need to provide the file system ID and the pathname.\n The pathname can represent either a path or a file.\n This is determined by whether or not you end the path value with the forward slash (/) character.\n If the final character is \"/\", then your file is copied to the folder, and its name does not change.\n If, rather, the final character is alphanumeric, your uploaded file is renamed to the path value. In this case, if a file with that name already exists, it is overwritten.\n

\n

For example, if your path is shared-files/bob/, your uploaded files are copied to the shared-files/bob/, folder.\n If your path is shared-files/today, each uploaded file is copied to the shared-files folder and named today:\n each upload overwrites the previous version of the bob file.

" + } + }, + "com.amazonaws.transfer#EfsFileSystemId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 128 + }, + "smithy.api#pattern": "^(arn:aws[-a-z]*:elasticfilesystem:[0-9a-z-:]+:(access-point/fsap|file-system/fs)-[0-9a-f]{8,40}|fs(ap)?-[0-9a-f]{8,40})$" + } + }, + "com.amazonaws.transfer#EfsPath": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + }, + "smithy.api#pattern": "^(\\/|(\\/(?!\\.)+[^$#<>;`|&?{}^*/\\n]+){1,4})$" + } + }, "com.amazonaws.transfer#EndpointDetails": { "type": "structure", "members": { @@ -1175,6 +1662,133 @@ ] } }, + "com.amazonaws.transfer#ExecutionError": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.transfer#ExecutionErrorType", + "traits": { + "smithy.api#documentation": "

Specifies the error type: currently, the only valid value is PERMISSION_DENIED, which occurs\n if your policy does not contain the correct permissions to complete one or more of the steps in the workflow.

", + "smithy.api#required": {} + } + }, + "Message": { + "target": "com.amazonaws.transfer#ExecutionErrorMessage", + "traits": { + "smithy.api#documentation": "

Specifies the descriptive message that corresponds to the ErrorType.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the error message and type, for an error that occurs during the execution of the workflow.

" + } + }, + "com.amazonaws.transfer#ExecutionErrorMessage": { + "type": "string" + }, + "com.amazonaws.transfer#ExecutionErrorType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "PERMISSION_DENIED", + "name": "PERMISSION_DENIED" + } + ] + } + }, + "com.amazonaws.transfer#ExecutionId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 36, + "max": 36 + }, + "smithy.api#pattern": "^[0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{12}$" + } + }, + "com.amazonaws.transfer#ExecutionResults": { + "type": "structure", + "members": { + "Steps": { + "target": "com.amazonaws.transfer#ExecutionStepResults", + "traits": { + "smithy.api#documentation": "

Specifies the details for the steps that are in the specified workflow.

" + } + }, + "OnExceptionSteps": { + "target": "com.amazonaws.transfer#ExecutionStepResults", + "traits": { + "smithy.api#documentation": "

Specifies the steps (actions) to take if any errors are encountered during execution of the workflow.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the steps in the workflow, as well as the steps to execute in case of any errors during workflow execution.

" + } + }, + "com.amazonaws.transfer#ExecutionStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "IN_PROGRESS", + "name": "IN_PROGRESS" + }, + { + "value": "COMPLETED", + "name": "COMPLETED" + }, + { + "value": "EXCEPTION", + "name": "EXCEPTION" + }, + { + "value": "HANDLING_EXCEPTION", + "name": "HANDLING_EXCEPTION" + } + ] + } + }, + "com.amazonaws.transfer#ExecutionStepResult": { + "type": "structure", + "members": { + "StepType": { + "target": "com.amazonaws.transfer#WorkflowStepType", + "traits": { + "smithy.api#documentation": "

One of the available step types.

\n " + } + }, + "Outputs": { + "target": "com.amazonaws.transfer#StepResultOutputsJson", + "traits": { + "smithy.api#documentation": "

The values for the key/value pair applied as a tag to the file. Only applicable if the step type is TAG.

" + } + }, + "Error": { + "target": "com.amazonaws.transfer#ExecutionError", + "traits": { + "smithy.api#documentation": "

Specifies the details for an error, if it occurred during execution of the specified workfow step.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the following details for the step: error (if any), outputs (if any), and the step type.

" + } + }, + "com.amazonaws.transfer#ExecutionStepResults": { + "type": "list", + "member": { + "target": "com.amazonaws.transfer#ExecutionStepResult" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 50 + } + } + }, "com.amazonaws.transfer#ExternalId": { "type": "string", "traits": { @@ -1185,6 +1799,26 @@ "smithy.api#pattern": "^S-1-[\\d-]+$" } }, + "com.amazonaws.transfer#FileLocation": { + "type": "structure", + "members": { + "S3FileLocation": { + "target": "com.amazonaws.transfer#S3FileLocation", + "traits": { + "smithy.api#documentation": "

Specifies the S3 details for the file being used, such as bucket, Etag, and so forth.

" + } + }, + "EfsFileLocation": { + "target": "com.amazonaws.transfer#EfsFileLocation", + "traits": { + "smithy.api#documentation": "

Specifies the Amazon EFS ID and the path for the file being used.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the Amazon S3 or EFS file details to be used in the step.

" + } + }, "com.amazonaws.transfer#Fips": { "type": "boolean", "traits": { @@ -1396,6 +2030,26 @@ "smithy.api#documentation": "

Identifies the user, the server they belong to, and the identifier of the SSH public key\n associated with that user. A user can have more than one key on each server that they are\n associated with.

" } }, + "com.amazonaws.transfer#InputFileLocation": { + "type": "structure", + "members": { + "S3FileLocation": { + "target": "com.amazonaws.transfer#S3InputFileLocation", + "traits": { + "smithy.api#documentation": "

Specifies the details for the S3 file being copied.

" + } + }, + "EfsFileLocation": { + "target": "com.amazonaws.transfer#EfsFileLocation", + "traits": { + "smithy.api#documentation": "

Specifies the details for the Amazon EFS file being copied.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the location for the file being copied. Only applicable for the Copy type of workflow steps.

" + } + }, "com.amazonaws.transfer#InternalServiceError": { "type": "structure", "members": { @@ -1527,6 +2181,89 @@ } } }, + "com.amazonaws.transfer#ListExecutions": { + "type": "operation", + "input": { + "target": "com.amazonaws.transfer#ListExecutionsRequest" + }, + "output": { + "target": "com.amazonaws.transfer#ListExecutionsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.transfer#InternalServiceError" + }, + { + "target": "com.amazonaws.transfer#InvalidNextTokenException" + }, + { + "target": "com.amazonaws.transfer#InvalidRequestException" + }, + { + "target": "com.amazonaws.transfer#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.transfer#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists all executions for the specified workflow.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.transfer#ListExecutionsRequest": { + "type": "structure", + "members": { + "MaxResults": { + "target": "com.amazonaws.transfer#MaxResults", + "traits": { + "smithy.api#documentation": "

Specifies the aximum number of executions to return.

" + } + }, + "NextToken": { + "target": "com.amazonaws.transfer#NextToken", + "traits": { + "smithy.api#documentation": "

\n ListExecutions returns the NextToken parameter in the output.\n You can then pass the NextToken parameter in a subsequent command to\n continue listing additional executions.

\n

\n This is useful for pagination, for instance.\n If you have 100 executions for a workflow, you might only want to list first 10. If so, callthe API by specifing the max-results:\n

\n

\n aws transfer list-executions --max-results 10\n

\n

\n This returns details for the first 10 executions, as well as the pointer (NextToken) to the eleventh execution.\n You can now call the API again, suppling the NextToken value you received:\n

\n

\n aws transfer list-executions --max-results 10 --next-token $somePointerReturnedFromPreviousListResult\n

\n

\n This call returns the next 10 executions, the 11th through the 20th. You can then repeat the call until the details\n for all 100 executions have been returned.\n

" + } + }, + "WorkflowId": { + "target": "com.amazonaws.transfer#WorkflowId", + "traits": { + "smithy.api#documentation": "

A unique identifier for the workflow.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.transfer#ListExecutionsResponse": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.transfer#NextToken", + "traits": { + "smithy.api#documentation": "

\n ListExecutions returns the NextToken parameter in the output.\n You can then pass the NextToken parameter in a subsequent command to\n continue listing additional executions.

" + } + }, + "WorkflowId": { + "target": "com.amazonaws.transfer#WorkflowId", + "traits": { + "smithy.api#documentation": "

A unique identifier for the workflow.

", + "smithy.api#required": {} + } + }, + "Executions": { + "target": "com.amazonaws.transfer#ListedExecutions", + "traits": { + "smithy.api#documentation": "

Returns the details for each execution.

\n ", + "smithy.api#required": {} + } + } + } + }, "com.amazonaws.transfer#ListSecurityPolicies": { "type": "operation", "input": { @@ -1820,6 +2557,72 @@ } } }, + "com.amazonaws.transfer#ListWorkflows": { + "type": "operation", + "input": { + "target": "com.amazonaws.transfer#ListWorkflowsRequest" + }, + "output": { + "target": "com.amazonaws.transfer#ListWorkflowsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.transfer#InternalServiceError" + }, + { + "target": "com.amazonaws.transfer#InvalidNextTokenException" + }, + { + "target": "com.amazonaws.transfer#InvalidRequestException" + }, + { + "target": "com.amazonaws.transfer#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists all of your workflows.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.transfer#ListWorkflowsRequest": { + "type": "structure", + "members": { + "MaxResults": { + "target": "com.amazonaws.transfer#MaxResults", + "traits": { + "smithy.api#documentation": "

Specifies the maximum number of workflows to return.

" + } + }, + "NextToken": { + "target": "com.amazonaws.transfer#NextToken", + "traits": { + "smithy.api#documentation": "

\n ListWorkflows returns the NextToken parameter in the output.\n You can then pass the NextToken parameter in a subsequent command to\n continue listing additional workflows.

" + } + } + } + }, + "com.amazonaws.transfer#ListWorkflowsResponse": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.transfer#NextToken", + "traits": { + "smithy.api#documentation": "

\n ListWorkflows returns the NextToken parameter in the output.\n You can then pass the NextToken parameter in a subsequent command to\n continue listing additional workflows.

" + } + }, + "Workflows": { + "target": "com.amazonaws.transfer#ListedWorkflows", + "traits": { + "smithy.api#documentation": "

Returns the Arn, WorkflowId, and Description for each workflow.

", + "smithy.api#required": {} + } + } + } + }, "com.amazonaws.transfer#ListedAccess": { "type": "structure", "members": { @@ -1832,7 +2635,7 @@ "HomeDirectoryType": { "target": "com.amazonaws.transfer#HomeDirectoryType", "traits": { - "smithy.api#documentation": "

The type of landing directory (folder) you want your users' home directory to be when they log into the server.\n If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients.\n If you set it LOGICAL, you will need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon\n S3 or EFS paths visible to your users.

" + "smithy.api#documentation": "

The type of landing directory (folder) you want your users' home directory to be when they log into the server.\n If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients.\n If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon\n S3 or EFS paths visible to your users.

" } }, "Role": { @@ -1858,6 +2661,44 @@ "target": "com.amazonaws.transfer#ListedAccess" } }, + "com.amazonaws.transfer#ListedExecution": { + "type": "structure", + "members": { + "ExecutionId": { + "target": "com.amazonaws.transfer#ExecutionId", + "traits": { + "smithy.api#documentation": "

A unique identifier for the execution of a workflow.

" + } + }, + "InitialFileLocation": { + "target": "com.amazonaws.transfer#FileLocation", + "traits": { + "smithy.api#documentation": "

A structure that describes the Amazon S3 or EFS file location.\n This is the file location when the execution begins: if the file is being copied,\n this is the initial (as opposed to destination) file location.

" + } + }, + "ServiceMetadata": { + "target": "com.amazonaws.transfer#ServiceMetadata", + "traits": { + "smithy.api#documentation": "

A container object for the session details associated with a workflow.

" + } + }, + "Status": { + "target": "com.amazonaws.transfer#ExecutionStatus", + "traits": { + "smithy.api#documentation": "

The status is one of the execution. Can be in progress, completed, exception encountered, or handling the exception.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Returns properties of the execution that is specified.

" + } + }, + "com.amazonaws.transfer#ListedExecutions": { + "type": "list", + "member": { + "target": "com.amazonaws.transfer#ListedExecution" + } + }, "com.amazonaws.transfer#ListedServer": { "type": "structure", "members": { @@ -1940,7 +2781,7 @@ "HomeDirectoryType": { "target": "com.amazonaws.transfer#HomeDirectoryType", "traits": { - "smithy.api#documentation": "

The type of landing directory (folder) you want your users' home directory to be when they log into the server.\n If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients.\n If you set it LOGICAL, you will need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon\n S3 or EFS paths visible to your users.

" + "smithy.api#documentation": "

The type of landing directory (folder) you want your users' home directory to be when they log into the server.\n If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients.\n If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon\n S3 or EFS paths visible to your users.

" } }, "Role": { @@ -1972,6 +2813,68 @@ "target": "com.amazonaws.transfer#ListedUser" } }, + "com.amazonaws.transfer#ListedWorkflow": { + "type": "structure", + "members": { + "WorkflowId": { + "target": "com.amazonaws.transfer#WorkflowId", + "traits": { + "smithy.api#documentation": "

A unique identifier for the workflow.

" + } + }, + "Description": { + "target": "com.amazonaws.transfer#WorkflowDescription", + "traits": { + "smithy.api#documentation": "

Specifies the text description for the workflow.

" + } + }, + "Arn": { + "target": "com.amazonaws.transfer#Arn", + "traits": { + "smithy.api#documentation": "

Specifies the unique Amazon Resource Name (ARN) for the workflow.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the ID, text description, and Amazon Resource Name (ARN) for the workflow.

" + } + }, + "com.amazonaws.transfer#ListedWorkflows": { + "type": "list", + "member": { + "target": "com.amazonaws.transfer#ListedWorkflow" + } + }, + "com.amazonaws.transfer#LogGroupName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 512 + }, + "smithy.api#pattern": "^[\\.\\-_/#A-Za-z0-9]*$" + } + }, + "com.amazonaws.transfer#LoggingConfiguration": { + "type": "structure", + "members": { + "LoggingRole": { + "target": "com.amazonaws.transfer#Role", + "traits": { + "smithy.api#documentation": "

Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that allows a server to turn\n on Amazon CloudWatch logging for Amazon S3 or Amazon EFS events. When set, user activity can be viewed in\n your CloudWatch logs.

" + } + }, + "LogGroupName": { + "target": "com.amazonaws.transfer#LogGroupName", + "traits": { + "smithy.api#documentation": "

The name of the CloudWatch logging group for the Amazon Web Services Transfer server to which this workflow belongs.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Consists of the logging role and the log group name.

" + } + }, "com.amazonaws.transfer#MapEntry": { "type": "string", "traits": { @@ -2024,6 +2927,33 @@ "smithy.api#pattern": "^$|arn:.*role/" } }, + "com.amazonaws.transfer#OnUploadWorkflowDetails": { + "type": "list", + "member": { + "target": "com.amazonaws.transfer#WorkflowDetail" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1 + } + } + }, + "com.amazonaws.transfer#OverwriteExisting": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "TRUE", + "name": "TRUE" + }, + { + "value": "FALSE", + "name": "FALSE" + } + ] + } + }, "com.amazonaws.transfer#PassiveIp": { "type": "string", "traits": { @@ -2105,7 +3035,7 @@ "PassiveIp": { "target": "com.amazonaws.transfer#PassiveIp", "traits": { - "smithy.api#documentation": "

\n Indicates passive mode, for FTP and FTPS protocols.\n Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer.\n For example:\n

\n

\n \n aws transfer update-server --protocol-details PassiveIp=0.0.0.0\n \n

\n

Replace \n 0.0.0.0\n in the example above with the actual IP address you want to use.

" + "smithy.api#documentation": "

\n Indicates passive mode, for FTP and FTPS protocols.\n Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer.\n For example:\n

\n

\n \n aws transfer update-server --protocol-details PassiveIp=0.0.0.0\n \n

\n

Replace \n 0.0.0.0\n in the example above with the actual IP address you want to use.

\n \n

\n If you change the PassiveIp value, you must stop and then restart your Transfer server for the change to take effect. For details on using Passive IP (PASV) in a NAT environment, see Configuring your FTPS server behind a firewall or NAT with Amazon Web Services Transfer Family.\n

\n
" } } }, @@ -2179,28 +3109,174 @@ } }, "traits": { - "smithy.api#documentation": "

This exception is thrown when a resource is not found by the Amazon Web ServicesTransfer Family\n service.

", - "smithy.api#error": "client", - "smithy.api#httpError": 404 + "smithy.api#documentation": "

This exception is thrown when a resource is not found by the Amazon Web ServicesTransfer Family\n service.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.transfer#ResourceType": { + "type": "string" + }, + "com.amazonaws.transfer#Response": { + "type": "string" + }, + "com.amazonaws.transfer#RetryAfterSeconds": { + "type": "string" + }, + "com.amazonaws.transfer#Role": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 2048 + }, + "smithy.api#pattern": "^arn:.*role/" + } + }, + "com.amazonaws.transfer#S3Bucket": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 3, + "max": 63 + }, + "smithy.api#pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$" + } + }, + "com.amazonaws.transfer#S3Etag": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 65536 + }, + "smithy.api#pattern": "^.+$" + } + }, + "com.amazonaws.transfer#S3FileLocation": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.transfer#S3Bucket", + "traits": { + "smithy.api#documentation": "

Specifies the S3 bucket that contains the file being used.

" + } + }, + "Key": { + "target": "com.amazonaws.transfer#S3Key", + "traits": { + "smithy.api#documentation": "

The name assigned to the file when it was created in S3. You use the object key to retrieve the object.

" + } + }, + "VersionId": { + "target": "com.amazonaws.transfer#S3VersionId", + "traits": { + "smithy.api#documentation": "

Specifies the file version.

" + } + }, + "Etag": { + "target": "com.amazonaws.transfer#S3Etag", + "traits": { + "smithy.api#documentation": "

The entity tag is a hash of the object. The ETag reflects changes only to the contents of an object, not its metadata.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the details for the file location for the file being used in the workflow. Only applicable if you are using S3 storage.

\n

\n You need to provide the bucket and key.\n The key can represent either a path or a file.\n This is determined by whether or not you end the key value with the forward slash (/) character.\n If the final character is \"/\", then your file is copied to the folder, and its name does not change.\n If, rather, the final character is alphanumeric, your uploaded file is renamed to the path value. In this case, if a file with that name already exists, it is overwritten.\n

\n

For example, if your path is shared-files/bob/, your uploaded files are copied to the shared-files/bob/, folder.\n If your path is shared-files/today, each uploaded file is copied to the shared-files folder and named today:\n each upload overwrites the previous version of the bob file.

" + } + }, + "com.amazonaws.transfer#S3InputFileLocation": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.transfer#S3Bucket", + "traits": { + "smithy.api#documentation": "

Specifies the S3 bucket that contains the file being copied.

" + } + }, + "Key": { + "target": "com.amazonaws.transfer#S3Key", + "traits": { + "smithy.api#documentation": "

The name assigned to the file when it was created in S3. You use the object key to retrieve the object.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the details for the S3 file being copied.

" + } + }, + "com.amazonaws.transfer#S3Key": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1024 + }, + "smithy.api#pattern": "^[\\P{M}\\p{M}]*$" + } + }, + "com.amazonaws.transfer#S3Tag": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.transfer#S3TagKey", + "traits": { + "smithy.api#documentation": "

The name assigned to the tag that you create.

", + "smithy.api#required": {} + } + }, + "Value": { + "target": "com.amazonaws.transfer#S3TagValue", + "traits": { + "smithy.api#documentation": "

The value that corresponds to the key.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the key-value pair that are assigned to a file during the execution of a Tagging step.

" } }, - "com.amazonaws.transfer#ResourceType": { - "type": "string" + "com.amazonaws.transfer#S3TagKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + } }, - "com.amazonaws.transfer#Response": { - "type": "string" + "com.amazonaws.transfer#S3TagValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + }, + "smithy.api#pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + } }, - "com.amazonaws.transfer#RetryAfterSeconds": { - "type": "string" + "com.amazonaws.transfer#S3Tags": { + "type": "list", + "member": { + "target": "com.amazonaws.transfer#S3Tag" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } + } }, - "com.amazonaws.transfer#Role": { + "com.amazonaws.transfer#S3VersionId": { "type": "string", "traits": { "smithy.api#length": { - "min": 20, - "max": 2048 + "min": 1, + "max": 1024 }, - "smithy.api#pattern": "^arn:.*role/" + "smithy.api#pattern": "^.+$" } }, "com.amazonaws.transfer#SecondaryGids": { @@ -2262,6 +3338,75 @@ "target": "com.amazonaws.transfer#SecurityPolicyOption" } }, + "com.amazonaws.transfer#SendWorkflowStepState": { + "type": "operation", + "input": { + "target": "com.amazonaws.transfer#SendWorkflowStepStateRequest" + }, + "output": { + "target": "com.amazonaws.transfer#SendWorkflowStepStateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.transfer#AccessDeniedException" + }, + { + "target": "com.amazonaws.transfer#InternalServiceError" + }, + { + "target": "com.amazonaws.transfer#InvalidRequestException" + }, + { + "target": "com.amazonaws.transfer#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.transfer#ServiceUnavailableException" + }, + { + "target": "com.amazonaws.transfer#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Sends a callback for asynchronous custom steps.

\n

\n The ExecutionId, WorkflowId, and Token are passed to the target resource during execution of a custom step of a workflow.\n You must include those with their callback as well as providing a status.\n

" + } + }, + "com.amazonaws.transfer#SendWorkflowStepStateRequest": { + "type": "structure", + "members": { + "WorkflowId": { + "target": "com.amazonaws.transfer#WorkflowId", + "traits": { + "smithy.api#documentation": "

A unique identifier for the workflow.

", + "smithy.api#required": {} + } + }, + "ExecutionId": { + "target": "com.amazonaws.transfer#ExecutionId", + "traits": { + "smithy.api#documentation": "

A unique identifier for the execution of a workflow.

", + "smithy.api#required": {} + } + }, + "Token": { + "target": "com.amazonaws.transfer#CallbackToken", + "traits": { + "smithy.api#documentation": "

Used to distinguish between multiple callbacks for multiple Lambda steps within the same execution.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.transfer#CustomStepStatus", + "traits": { + "smithy.api#documentation": "

Indicates whether the specified step succeeded or failed.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.transfer#SendWorkflowStepStateResponse": { + "type": "structure", + "members": {} + }, "com.amazonaws.transfer#ServerId": { "type": "string", "traits": { @@ -2275,6 +3420,21 @@ "com.amazonaws.transfer#ServiceErrorMessage": { "type": "string" }, + "com.amazonaws.transfer#ServiceMetadata": { + "type": "structure", + "members": { + "UserDetails": { + "target": "com.amazonaws.transfer#UserDetails", + "traits": { + "smithy.api#documentation": "

The Server ID (ServerId), Session ID (SessionId) and user (UserName) make up the UserDetails.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A container object for the session details associated with a workflow.

" + } + }, "com.amazonaws.transfer#ServiceUnavailableException": { "type": "structure", "members": { @@ -2292,6 +3452,16 @@ "smithy.api#httpError": 503 } }, + "com.amazonaws.transfer#SessionId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 3, + "max": 32 + }, + "smithy.api#pattern": "^[\\w-]*$" + } + }, "com.amazonaws.transfer#SourceIp": { "type": "string", "traits": { @@ -2442,6 +3612,15 @@ "com.amazonaws.transfer#StatusCode": { "type": "integer" }, + "com.amazonaws.transfer#StepResultOutputsJson": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 65536 + } + } + }, "com.amazonaws.transfer#StopServer": { "type": "operation", "input": { @@ -2574,6 +3753,26 @@ } } }, + "com.amazonaws.transfer#TagStepDetails": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.transfer#WorkflowStepName", + "traits": { + "smithy.api#documentation": "

The name of the step, used as an identifier.

" + } + }, + "Tags": { + "target": "com.amazonaws.transfer#S3Tags", + "traits": { + "smithy.api#documentation": "

Array that contains from 1 to 10 key/value pairs.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Each step type has its own StepDetails structure.

\n

The key/value pairs used to tag a file during the execution of a workflow step.

" + } + }, "com.amazonaws.transfer#TagValue": { "type": "string", "traits": { @@ -2618,7 +3817,7 @@ } ], "traits": { - "smithy.api#documentation": "

If the IdentityProviderType of a file transfer protocol-enabled server is\n AWS_DIRECTORY_SERVICE or API_Gateway, tests whether your identity\n provider is set up successfully. We highly recommend that you call this operation to test your\n authentication method as soon as you create your server. By doing so, you can troubleshoot\n issues with the identity provider integration to ensure that your users can successfully use\n the service.

" + "smithy.api#documentation": "

If the IdentityProviderType of a file transfer protocol-enabled server is\n AWS_DIRECTORY_SERVICE or API_Gateway, tests whether your identity\n provider is set up successfully. We highly recommend that you call this operation to test your\n authentication method as soon as you create your server. By doing so, you can troubleshoot\n issues with the identity provider integration to ensure that your users can successfully use\n the service.

\n

\n The ServerId and UserName parameters are required. The ServerProtocol, SourceIp, and UserPassword are all optional. \n

\n \n

\n You cannot use TestIdentityProvider if the IdentityProviderType of your server is SERVICE_MANAGED.\n

\n
\n " } }, "com.amazonaws.transfer#TestIdentityProviderRequest": { @@ -2718,6 +3917,9 @@ { "target": "com.amazonaws.transfer#CreateUser" }, + { + "target": "com.amazonaws.transfer#CreateWorkflow" + }, { "target": "com.amazonaws.transfer#DeleteAccess" }, @@ -2730,9 +3932,15 @@ { "target": "com.amazonaws.transfer#DeleteUser" }, + { + "target": "com.amazonaws.transfer#DeleteWorkflow" + }, { "target": "com.amazonaws.transfer#DescribeAccess" }, + { + "target": "com.amazonaws.transfer#DescribeExecution" + }, { "target": "com.amazonaws.transfer#DescribeSecurityPolicy" }, @@ -2742,12 +3950,18 @@ { "target": "com.amazonaws.transfer#DescribeUser" }, + { + "target": "com.amazonaws.transfer#DescribeWorkflow" + }, { "target": "com.amazonaws.transfer#ImportSshPublicKey" }, { "target": "com.amazonaws.transfer#ListAccesses" }, + { + "target": "com.amazonaws.transfer#ListExecutions" + }, { "target": "com.amazonaws.transfer#ListSecurityPolicies" }, @@ -2760,6 +3974,12 @@ { "target": "com.amazonaws.transfer#ListUsers" }, + { + "target": "com.amazonaws.transfer#ListWorkflows" + }, + { + "target": "com.amazonaws.transfer#SendWorkflowStepState" + }, { "target": "com.amazonaws.transfer#StartServer" }, @@ -2884,19 +4104,19 @@ "HomeDirectoryType": { "target": "com.amazonaws.transfer#HomeDirectoryType", "traits": { - "smithy.api#documentation": "

The type of landing directory (folder) you want your users' home directory to be when they log into the server.\n If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients.\n If you set it LOGICAL, you will need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon\n S3 or EFS paths visible to your users.

" + "smithy.api#documentation": "

The type of landing directory (folder) you want your users' home directory to be when they log into the server.\n If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients.\n If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon\n S3 or EFS paths visible to your users.

" } }, "HomeDirectoryMappings": { "target": "com.amazonaws.transfer#HomeDirectoryMappings", "traits": { - "smithy.api#documentation": "

Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should\n be visible to your user and how you want to make them visible. You must specify the\n Entry and Target pair, where Entry shows how the path\n is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you\n only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity\n and Access Management (IAM) role provides access to paths in Target. This value\n can only be set when HomeDirectoryType is set to\n LOGICAL.

\n

The following is an Entry and Target pair example.

\n

\n [ { \"Entry\": \"your-personal-report.pdf\", \"Target\": \"/bucket3/customized-reports/${transfer:UserName}.pdf\" } ]\n

\n

In most cases, you can use this value instead of the scope-down policy to lock down your\n user to the designated home directory (\"chroot\"). To do this, you can set\n Entry to / and set Target to the\n HomeDirectory parameter value.

\n

The following is an Entry and Target pair example for chroot.

\n

\n [ { \"Entry:\": \"/\", \"Target\": \"/bucket_name/home/mydirectory\" } ]\n

\n \n \n

If the target of a logical directory entry does not exist in Amazon S3 or EFS, the entry is\n ignored. As a workaround, you can use the Amazon S3 API or EFS API to create 0 byte objects as place\n holders for your directory. If using the CLI, use the s3api or efsapi call instead of\n s3 or efs so you can use the put-object operation. For example, you use the\n following: aws s3api put-object --bucket bucketname --key path/to/folder/. Make\n sure that the end of the key name ends in a / for it to be considered a folder.

\n
" + "smithy.api#documentation": "

Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should\n be visible to your user and how you want to make them visible. You must specify the\n Entry and Target pair, where Entry shows how the path\n is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you\n only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity\n and Access Management (IAM) role provides access to paths in Target. This value\n can only be set when HomeDirectoryType is set to\n LOGICAL.

\n

The following is an Entry and Target pair example.

\n

\n [ { \"Entry\": \"your-personal-report.pdf\", \"Target\": \"/bucket3/customized-reports/${transfer:UserName}.pdf\" } ]\n

\n

In most cases, you can use this value instead of the session policy to lock down your\n user to the designated home directory (\"chroot\"). To do this, you can set\n Entry to / and set Target to the\n HomeDirectory parameter value.

\n

The following is an Entry and Target pair example for chroot.

\n

\n [ { \"Entry:\": \"/\", \"Target\": \"/bucket_name/home/mydirectory\" } ]\n

\n \n \n

If the target of a logical directory entry does not exist in Amazon S3 or EFS, the entry is\n ignored. As a workaround, you can use the Amazon S3 API or EFS API to create 0 byte objects as place\n holders for your directory. If using the CLI, use the s3api or efsapi call instead of\n s3 or efs so you can use the put-object operation. For example, you use the\n following: aws s3api put-object --bucket bucketname --key path/to/folder/. Make\n sure that the end of the key name ends in a / for it to be considered a folder.

\n
" } }, "Policy": { "target": "com.amazonaws.transfer#Policy", "traits": { - "smithy.api#documentation": "

A scope-down policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user\n access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},\n ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

\n \n \n

This only applies when domain of ServerId is S3. Amazon EFS does not use scope\n down policy.

\n

For scope-down policies, Amazon Web ServicesTransfer Family stores the policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass it in the Policy argument.

\n

For an example of a scope-down policy, see Example\n scope-down policy.

\n

For more information, see AssumeRole in the Amazon Web ServicesSecurity Token Service API\n Reference.

\n
" + "smithy.api#documentation": "

A session policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user\n access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},\n ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

\n \n \n \n

This only applies when the domain of ServerId is S3. EFS does not use session policies.

\n

For session policies, Amazon Web Services Transfer Family stores the policy as a JSON blob, instead\n of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass\n it in the Policy argument.

\n

For an example of a session policy, see Example\n session policy.

\n

For more information, see AssumeRole in the Amazon Web ServicesSecurity Token Service API\n Reference.

\n
" } }, "PosixProfile": { @@ -3044,6 +4264,12 @@ "smithy.api#documentation": "

A system-assigned unique identifier for a server instance that the user account is\n assigned to.

", "smithy.api#required": {} } + }, + "WorkflowDetails": { + "target": "com.amazonaws.transfer#WorkflowDetails", + "traits": { + "smithy.api#documentation": "

Specifies the workflow ID for the workflow to assign and the execution role used for executing the workflow.

" + } } } }, @@ -3100,19 +4326,19 @@ "HomeDirectoryType": { "target": "com.amazonaws.transfer#HomeDirectoryType", "traits": { - "smithy.api#documentation": "

The type of landing directory (folder) you want your users' home directory to be when they log into the server.\n If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients.\n If you set it LOGICAL, you will need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon\n S3 or EFS paths visible to your users.

" + "smithy.api#documentation": "

The type of landing directory (folder) you want your users' home directory to be when they log into the server.\n If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients.\n If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon\n S3 or EFS paths visible to your users.

" } }, "HomeDirectoryMappings": { "target": "com.amazonaws.transfer#HomeDirectoryMappings", "traits": { - "smithy.api#documentation": "

Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should\n be visible to your user and how you want to make them visible. You must specify the\n Entry and Target pair, where Entry shows how the path\n is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you\n only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity\n and Access Management (IAM) role provides access to paths in Target. This value\n can only be set when HomeDirectoryType is set to\n LOGICAL.

\n\n

The following is an Entry and Target pair example.

\n

\n [ { \"Entry\": \"your-personal-report.pdf\", \"Target\":\n \"/bucket3/customized-reports/${transfer:UserName}.pdf\" } ]\n

\n\n

In most cases, you can use this value instead of the scope-down policy to lock down your\n user to the designated home directory (\"chroot\"). To do this, you can set\n Entry to '/' and set Target to the HomeDirectory\n parameter value.

\n\n

The following is an Entry and Target pair example for chroot.

\n

\n [ { \"Entry:\": \"/\", \"Target\": \"/bucket_name/home/mydirectory\" } ]\n

\n \n \n

If the target of a logical directory entry does not exist in Amazon S3 or EFS, the entry is\n ignored. As a workaround, you can use the Amazon S3 API or EFS API to create 0 byte objects as place\n holders for your directory. If using the CLI, use the s3api or efsapi call instead of\n s3 or efs so you can use the put-object operation. For example, you use the\n following: aws s3api put-object --bucket bucketname --key path/to/folder/. Make\n sure that the end of the key name ends in a / for it to be considered a folder.

\n
" + "smithy.api#documentation": "

Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should\n be visible to your user and how you want to make them visible. You must specify the\n Entry and Target pair, where Entry shows how the path\n is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you\n only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity\n and Access Management (IAM) role provides access to paths in Target. This value\n can only be set when HomeDirectoryType is set to\n LOGICAL.

\n\n

The following is an Entry and Target pair example.

\n

\n [ { \"Entry\": \"your-personal-report.pdf\", \"Target\":\n \"/bucket3/customized-reports/${transfer:UserName}.pdf\" } ]\n

\n\n

In most cases, you can use this value instead of the session policy to lock down your\n user to the designated home directory (\"chroot\"). To do this, you can set\n Entry to '/' and set Target to the HomeDirectory\n parameter value.

\n\n

The following is an Entry and Target pair example for chroot.

\n

\n [ { \"Entry:\": \"/\", \"Target\": \"/bucket_name/home/mydirectory\" } ]\n

\n \n \n

If the target of a logical directory entry does not exist in Amazon S3 or EFS, the entry is\n ignored. As a workaround, you can use the Amazon S3 API or EFS API to create 0 byte objects as place\n holders for your directory. If using the CLI, use the s3api or efsapi call instead of\n s3 or efs so you can use the put-object operation. For example, you use the\n following: aws s3api put-object --bucket bucketname --key path/to/folder/. Make\n sure that the end of the key name ends in a / for it to be considered a folder.

\n
" } }, "Policy": { "target": "com.amazonaws.transfer#Policy", "traits": { - "smithy.api#documentation": "

A scope-down policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user\n access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},\n ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

\n \n \n

This only applies when domain of ServerId is S3.\n Amazon EFS does not use scope-down policies.

\n \n

For scope-down policies, Amazon Web ServicesTransfer Family stores the policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy.\n You save the policy as a JSON blob and pass it in the Policy argument.

\n \n \n\n

For an example of a scope-down policy, see Creating a scope-down\n policy.

\n\n \n\n

For more information, see AssumeRole in the Amazon Web Services\n Security Token Service API Reference.

\n
" + "smithy.api#documentation": "

A session policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user\n access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},\n ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

\n \n \n

This only applies when the domain of ServerId is S3. EFS does not use session policies.

\n

For session policies, Amazon Web Services Transfer Family stores the policy as a JSON blob, instead\n of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass\n it in the Policy argument.

\n \n \n\n

For an example of a session policy, see Creating a session\n policy.

\n\n \n\n

For more information, see AssumeRole in the Amazon Web Services\n Security Token Service API Reference.

\n
" } }, "PosixProfile": { @@ -3180,6 +4406,34 @@ "smithy.api#box": {} } }, + "com.amazonaws.transfer#UserDetails": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.transfer#UserName", + "traits": { + "smithy.api#documentation": "

A unique string that identifies a user account associated with a server.

", + "smithy.api#required": {} + } + }, + "ServerId": { + "target": "com.amazonaws.transfer#ServerId", + "traits": { + "smithy.api#documentation": "

The system-assigned unique identifier for a Transfer server instance.

", + "smithy.api#required": {} + } + }, + "SessionId": { + "target": "com.amazonaws.transfer#SessionId", + "traits": { + "smithy.api#documentation": "

The system-assigned unique identifier for a session that corresponds to the workflow.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the user name, server ID, and session ID for a workflow.

" + } + }, "com.amazonaws.transfer#UserName": { "type": "string", "traits": { @@ -3212,6 +4466,146 @@ }, "com.amazonaws.transfer#VpcId": { "type": "string" + }, + "com.amazonaws.transfer#WorkflowDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + }, + "smithy.api#pattern": "^[\\w- ]*$" + } + }, + "com.amazonaws.transfer#WorkflowDetail": { + "type": "structure", + "members": { + "WorkflowId": { + "target": "com.amazonaws.transfer#WorkflowId", + "traits": { + "smithy.api#documentation": "

A unique identifier for the workflow.

", + "smithy.api#required": {} + } + }, + "ExecutionRole": { + "target": "com.amazonaws.transfer#Role", + "traits": { + "smithy.api#documentation": "

Includes the necessary permissions for S3, EFS, and Lambda operations that Transfer can\n assume, so that all workflow steps can operate on the required resources

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the workflow ID for the workflow to assign and the execution role used for executing the workflow.

" + } + }, + "com.amazonaws.transfer#WorkflowDetails": { + "type": "structure", + "members": { + "OnUpload": { + "target": "com.amazonaws.transfer#OnUploadWorkflowDetails", + "traits": { + "smithy.api#documentation": "

A trigger that starts a workflow: the workflow begins to execute after a file is uploaded.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Container for the WorkflowDetail data type.\n It is used by actions that trigger a workflow to begin execution.

" + } + }, + "com.amazonaws.transfer#WorkflowId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 19, + "max": 19 + }, + "smithy.api#pattern": "^w-([a-z0-9]{17})$" + } + }, + "com.amazonaws.transfer#WorkflowStep": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.transfer#WorkflowStepType", + "traits": { + "smithy.api#documentation": "

\n Currently, the following step types are supported.\n

\n " + } + }, + "CopyStepDetails": { + "target": "com.amazonaws.transfer#CopyStepDetails", + "traits": { + "smithy.api#documentation": "

Details for a step that performs a file copy.

\n

\n Consists of the following values:\n

\n " + } + }, + "CustomStepDetails": { + "target": "com.amazonaws.transfer#CustomStepDetails", + "traits": { + "smithy.api#documentation": "

Details for a step that invokes a lambda function.

\n

\n Consists of the lambda function name, target, and timeout (in seconds).\n

" + } + }, + "DeleteStepDetails": { + "target": "com.amazonaws.transfer#DeleteStepDetails", + "traits": { + "smithy.api#documentation": "

You need to specify the name of the file to be deleted.

" + } + }, + "TagStepDetails": { + "target": "com.amazonaws.transfer#TagStepDetails", + "traits": { + "smithy.api#documentation": "

Details for a step that creates one or more tags.

\n

You specify one or more tags: each tag contains a key/value pair.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The basic building block of a workflow.

" + } + }, + "com.amazonaws.transfer#WorkflowStepName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 30 + }, + "smithy.api#pattern": "^[\\w-]*$" + } + }, + "com.amazonaws.transfer#WorkflowStepType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "COPY", + "name": "COPY" + }, + { + "value": "CUSTOM", + "name": "CUSTOM" + }, + { + "value": "TAG", + "name": "TAG" + }, + { + "value": "DELETE", + "name": "DELETE" + } + ] + } + }, + "com.amazonaws.transfer#WorkflowSteps": { + "type": "list", + "member": { + "target": "com.amazonaws.transfer#WorkflowStep" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 8 + } + } } } } diff --git a/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoints.json b/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoints.json index 4bc1249f276..560a972b4b9 100644 --- a/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoints.json +++ b/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoints.json @@ -251,11 +251,17 @@ "airflow" : { "endpoints" : { "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, "eu-west-1" : { }, + "eu-west-2" : { }, + "eu-west-3" : { }, + "sa-east-1" : { }, "us-east-1" : { }, "us-east-2" : { }, "us-west-2" : { } @@ -1063,9 +1069,11 @@ }, "cloud9" : { "endpoints" : { + "af-south-1" : { }, "ap-east-1" : { }, "ap-northeast-1" : { }, "ap-northeast-2" : { }, + "ap-northeast-3" : { }, "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, @@ -1812,6 +1820,58 @@ "us-west-2" : { } } }, + "data.jobs.iot" : { + "endpoints" : { + "ap-east-1" : { }, + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-north-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "eu-west-3" : { }, + "fips-ca-central-1" : { + "credentialScope" : { + "region" : "ca-central-1" + }, + "hostname" : "data.jobs.iot-fips.ca-central-1.amazonaws.com" + }, + "fips-us-east-1" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "hostname" : "data.jobs.iot-fips.us-east-1.amazonaws.com" + }, + "fips-us-east-2" : { + "credentialScope" : { + "region" : "us-east-2" + }, + "hostname" : "data.jobs.iot-fips.us-east-2.amazonaws.com" + }, + "fips-us-west-1" : { + "credentialScope" : { + "region" : "us-west-1" + }, + "hostname" : "data.jobs.iot-fips.us-west-1.amazonaws.com" + }, + "fips-us-west-2" : { + "credentialScope" : { + "region" : "us-west-2" + }, + "hostname" : "data.jobs.iot-fips.us-west-2.amazonaws.com" + }, + "me-south-1" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, "data.mediastore" : { "endpoints" : { "ap-northeast-1" : { }, @@ -3220,6 +3280,16 @@ "us-west-2" : { } } }, + "frauddetector" : { + "endpoints" : { + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "eu-west-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-2" : { } + } + }, "fsx" : { "endpoints" : { "af-south-1" : { }, @@ -3796,6 +3866,36 @@ "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, + "fips-ca-central-1" : { + "credentialScope" : { + "region" : "ca-central-1" + }, + "hostname" : "api.tunneling.iot-fips.ca-central-1.amazonaws.com" + }, + "fips-us-east-1" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "hostname" : "api.tunneling.iot-fips.us-east-1.amazonaws.com" + }, + "fips-us-east-2" : { + "credentialScope" : { + "region" : "us-east-2" + }, + "hostname" : "api.tunneling.iot-fips.us-east-2.amazonaws.com" + }, + "fips-us-west-1" : { + "credentialScope" : { + "region" : "us-west-1" + }, + "hostname" : "api.tunneling.iot-fips.us-west-1.amazonaws.com" + }, + "fips-us-west-2" : { + "credentialScope" : { + "region" : "us-west-2" + }, + "hostname" : "api.tunneling.iot-fips.us-west-2.amazonaws.com" + }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { }, @@ -3853,6 +3953,13 @@ } } }, + "ivs" : { + "endpoints" : { + "eu-west-1" : { }, + "us-east-1" : { }, + "us-west-2" : { } + } + }, "kafka" : { "endpoints" : { "ap-east-1" : { }, @@ -5008,6 +5115,7 @@ }, "polly" : { "endpoints" : { + "af-south-1" : { }, "ap-east-1" : { }, "ap-northeast-1" : { }, "ap-northeast-2" : { }, @@ -5535,6 +5643,7 @@ "ap-east-1" : { }, "ap-northeast-1" : { }, "ap-northeast-2" : { }, + "ap-northeast-3" : { }, "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, @@ -6667,6 +6776,19 @@ "us-west-2" : { } } }, + "ssm-incidents" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "eu-central-1" : { }, + "eu-north-1" : { }, + "eu-west-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-2" : { } + } + }, "states" : { "endpoints" : { "af-south-1" : { }, @@ -7699,6 +7821,12 @@ "cn-northwest-1" : { } } }, + "data.jobs.iot" : { + "endpoints" : { + "cn-north-1" : { }, + "cn-northwest-1" : { } + } + }, "dax" : { "endpoints" : { "cn-north-1" : { }, @@ -8823,6 +8951,24 @@ "us-gov-west-1" : { } } }, + "data.jobs.iot" : { + "endpoints" : { + "fips-us-gov-east-1" : { + "credentialScope" : { + "region" : "us-gov-east-1" + }, + "hostname" : "data.jobs.iot-fips.us-gov-east-1.amazonaws.com" + }, + "fips-us-gov-west-1" : { + "credentialScope" : { + "region" : "us-gov-west-1" + }, + "hostname" : "data.jobs.iot-fips.us-gov-west-1.amazonaws.com" + }, + "us-gov-east-1" : { }, + "us-gov-west-1" : { } + } + }, "datasync" : { "endpoints" : { "fips-us-gov-east-1" : { @@ -9324,6 +9470,18 @@ }, "iotsecuredtunneling" : { "endpoints" : { + "fips-us-gov-east-1" : { + "credentialScope" : { + "region" : "us-gov-east-1" + }, + "hostname" : "api.tunneling.iot-fips.us-gov-east-1.amazonaws.com" + }, + "fips-us-gov-west-1" : { + "credentialScope" : { + "region" : "us-gov-west-1" + }, + "hostname" : "api.tunneling.iot-fips.us-gov-west-1.amazonaws.com" + }, "us-gov-east-1" : { }, "us-gov-west-1" : { } } diff --git a/service/accessanalyzer/api_op_CreateAccessPreview.go b/service/accessanalyzer/api_op_CreateAccessPreview.go index df6a79d6ad0..1c79f6ebc37 100644 --- a/service/accessanalyzer/api_op_CreateAccessPreview.go +++ b/service/accessanalyzer/api_op_CreateAccessPreview.go @@ -12,8 +12,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates an access preview that allows you to preview Access Analyzer findings -// for your resource before deploying resource permissions. +// Creates an access preview that allows you to preview IAM Access Analyzer +// findings for your resource before deploying resource permissions. func (c *Client) CreateAccessPreview(ctx context.Context, params *CreateAccessPreviewInput, optFns ...func(*Options)) (*CreateAccessPreviewOutput, error) { if params == nil { params = &CreateAccessPreviewInput{} diff --git a/service/accessanalyzer/api_op_CreateArchiveRule.go b/service/accessanalyzer/api_op_CreateArchiveRule.go index 3a2a61cc9f6..311ed46cc13 100644 --- a/service/accessanalyzer/api_op_CreateArchiveRule.go +++ b/service/accessanalyzer/api_op_CreateArchiveRule.go @@ -13,7 +13,7 @@ import ( // Creates an archive rule for the specified analyzer. Archive rules automatically // archive new findings that meet the criteria you define when you create the rule. -// To learn about filter keys that you can use to create an archive rule, see +// To learn about filter keys that you can use to create an archive rule, see IAM // Access Analyzer filter keys // (https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-filter-keys.html) // in the IAM User Guide. diff --git a/service/accessanalyzer/api_op_DeleteAnalyzer.go b/service/accessanalyzer/api_op_DeleteAnalyzer.go index ad790421e2d..8268e20aba6 100644 --- a/service/accessanalyzer/api_op_DeleteAnalyzer.go +++ b/service/accessanalyzer/api_op_DeleteAnalyzer.go @@ -10,10 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes the specified analyzer. When you delete an analyzer, Access Analyzer is -// disabled for the account or organization in the current or specific Region. All -// findings that were generated by the analyzer are deleted. You cannot undo this -// action. +// Deletes the specified analyzer. When you delete an analyzer, IAM Access Analyzer +// is disabled for the account or organization in the current or specific Region. +// All findings that were generated by the analyzer are deleted. You cannot undo +// this action. func (c *Client) DeleteAnalyzer(ctx context.Context, params *DeleteAnalyzerInput, optFns ...func(*Options)) (*DeleteAnalyzerOutput, error) { if params == nil { params = &DeleteAnalyzerInput{} diff --git a/service/accessanalyzer/api_op_GetAnalyzedResource.go b/service/accessanalyzer/api_op_GetAnalyzedResource.go index 64102a5c531..fc6b097496c 100644 --- a/service/accessanalyzer/api_op_GetAnalyzedResource.go +++ b/service/accessanalyzer/api_op_GetAnalyzedResource.go @@ -48,8 +48,8 @@ type GetAnalyzedResourceInput struct { // The response to the request. type GetAnalyzedResourceOutput struct { - // An AnalyzedResource object that contains information that Access Analyzer found - // when it analyzed the resource. + // An AnalyzedResource object that contains information that IAM Access Analyzer + // found when it analyzed the resource. Resource *types.AnalyzedResource // Metadata pertaining to the operation's result. diff --git a/service/accessanalyzer/api_op_GetArchiveRule.go b/service/accessanalyzer/api_op_GetArchiveRule.go index 1f8ac3e9c2f..71cebcf3e0f 100644 --- a/service/accessanalyzer/api_op_GetArchiveRule.go +++ b/service/accessanalyzer/api_op_GetArchiveRule.go @@ -12,7 +12,7 @@ import ( ) // Retrieves information about an archive rule. To learn about filter keys that you -// can use to create an archive rule, see Access Analyzer filter keys +// can use to create an archive rule, see IAM Access Analyzer filter keys // (https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-filter-keys.html) // in the IAM User Guide. func (c *Client) GetArchiveRule(ctx context.Context, params *GetArchiveRuleInput, optFns ...func(*Options)) (*GetArchiveRuleOutput, error) { diff --git a/service/accessanalyzer/api_op_GetGeneratedPolicy.go b/service/accessanalyzer/api_op_GetGeneratedPolicy.go index ec415c5c829..1d581694f18 100644 --- a/service/accessanalyzer/api_op_GetGeneratedPolicy.go +++ b/service/accessanalyzer/api_op_GetGeneratedPolicy.go @@ -44,9 +44,9 @@ type GetGeneratedPolicyInput struct { IncludeResourcePlaceholders *bool // The level of detail that you want to generate. You can specify whether to - // generate service-level policies. Access Analyzer uses iam:servicelastaccessed to - // identify services that have been used recently to create this service-level - // template. + // generate service-level policies. IAM Access Analyzer uses + // iam:servicelastaccessed to identify services that have been used recently to + // create this service-level template. IncludeServiceLevelTemplate *bool noSmithyDocumentSerde diff --git a/service/accessanalyzer/api_op_ListFindings.go b/service/accessanalyzer/api_op_ListFindings.go index df358f66917..1ad9bd36357 100644 --- a/service/accessanalyzer/api_op_ListFindings.go +++ b/service/accessanalyzer/api_op_ListFindings.go @@ -13,8 +13,8 @@ import ( ) // Retrieves a list of findings generated by the specified analyzer. To learn about -// filter keys that you can use to retrieve a list of findings, see Access Analyzer -// filter keys +// filter keys that you can use to retrieve a list of findings, see IAM Access +// Analyzer filter keys // (https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-filter-keys.html) // in the IAM User Guide. func (c *Client) ListFindings(ctx context.Context, params *ListFindingsInput, optFns ...func(*Options)) (*ListFindingsOutput, error) { diff --git a/service/accessanalyzer/api_op_StartPolicyGeneration.go b/service/accessanalyzer/api_op_StartPolicyGeneration.go index f9ee3f0e020..ed71b91b98d 100644 --- a/service/accessanalyzer/api_op_StartPolicyGeneration.go +++ b/service/accessanalyzer/api_op_StartPolicyGeneration.go @@ -41,7 +41,8 @@ type StartPolicyGenerationInput struct { // With an idempotent request, if the original request completes successfully, the // subsequent retries with the same client token return the result from the // original successful request and they have no additional effect. If you do not - // specify a client token, one is automatically generated by the AWS SDK. + // specify a client token, one is automatically generated by the Amazon Web + // Services SDK. ClientToken *string // A CloudTrailDetails object that contains details about a Trail that you want to diff --git a/service/accessanalyzer/api_op_ValidatePolicy.go b/service/accessanalyzer/api_op_ValidatePolicy.go index ad8edd6e8cf..b7b8de776ec 100644 --- a/service/accessanalyzer/api_op_ValidatePolicy.go +++ b/service/accessanalyzer/api_op_ValidatePolicy.go @@ -41,11 +41,12 @@ type ValidatePolicyInput struct { // The type of policy to validate. Identity policies grant permissions to IAM // principals. Identity policies include managed and inline policies for IAM roles, // users, and groups. They also include service-control policies (SCPs) that are - // attached to an AWS organization, organizational unit (OU), or an account. - // Resource policies grant permissions on AWS resources. Resource policies include - // trust policies for IAM roles and bucket policies for S3 buckets. You can provide - // a generic input such as identity policy or resource policy or a specific input - // such as managed policy or S3 bucket policy. + // attached to an Amazon Web Services organization, organizational unit (OU), or an + // account. Resource policies grant permissions on Amazon Web Services resources. + // Resource policies include trust policies for IAM roles and bucket policies for + // Amazon S3 buckets. You can provide a generic input such as identity policy or + // resource policy or a specific input such as managed policy or Amazon S3 bucket + // policy. // // This member is required. PolicyType types.PolicyType @@ -64,8 +65,8 @@ type ValidatePolicyInput struct { type ValidatePolicyOutput struct { - // The list of findings in a policy returned by Access Analyzer based on its suite - // of policy checks. + // The list of findings in a policy returned by IAM Access Analyzer based on its + // suite of policy checks. // // This member is required. Findings []types.ValidatePolicyFinding diff --git a/service/accessanalyzer/doc.go b/service/accessanalyzer/doc.go index 87275cb073c..b024a8bca2c 100644 --- a/service/accessanalyzer/doc.go +++ b/service/accessanalyzer/doc.go @@ -3,17 +3,18 @@ // Package accessanalyzer provides the API client, operations, and parameter types // for Access Analyzer. // -// AWS IAM Access Analyzer helps identify potential resource-access risks by -// enabling you to identify any policies that grant access to an external -// principal. It does this by using logic-based reasoning to analyze resource-based -// policies in your AWS environment. An external principal can be another AWS -// account, a root user, an IAM user or role, a federated user, an AWS service, or -// an anonymous user. You can also use Access Analyzer to preview and validate -// public and cross-account access to your resources before deploying permissions -// changes. This guide describes the AWS IAM Access Analyzer operations that you -// can call programmatically. For general information about Access Analyzer, see -// AWS IAM Access Analyzer +// Identity and Access Management Access Analyzer helps identify potential +// resource-access risks by enabling you to identify any policies that grant access +// to an external principal. It does this by using logic-based reasoning to analyze +// resource-based policies in your Amazon Web Services environment. An external +// principal can be another Amazon Web Services account, a root user, an IAM user +// or role, a federated user, an Amazon Web Services service, or an anonymous user. +// You can also use IAM Access Analyzer to preview and validate public and +// cross-account access to your resources before deploying permissions changes. +// This guide describes the Identity and Access Management Access Analyzer +// operations that you can call programmatically. For general information about IAM +// Access Analyzer, see Identity and Access Management Access Analyzer // (https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html) -// in the IAM User Guide. To start using Access Analyzer, you first need to create -// an analyzer. +// in the IAM User Guide. To start using IAM Access Analyzer, you first need to +// create an analyzer. package accessanalyzer diff --git a/service/accessanalyzer/types/types.go b/service/accessanalyzer/types/types.go index a43f2b97de7..fb7ba0cf921 100644 --- a/service/accessanalyzer/types/types.go +++ b/service/accessanalyzer/types/types.go @@ -57,7 +57,7 @@ type AccessPreview struct { type AccessPreviewFinding struct { // Provides context on how the access preview finding compares to existing access - // identified in Access Analyzer. + // identified in IAM Access Analyzer. // // * New - The finding is for newly-introduced // access. @@ -87,8 +87,9 @@ type AccessPreviewFinding struct { // This member is required. Id *string - // The AWS account ID that owns the resource. For most AWS resources, the owning - // account is the account in which the resource was created. + // The Amazon Web Services account ID that owns the resource. For most Amazon Web + // Services resources, the owning account is the account in which the resource was + // created. // // This member is required. ResourceOwnerAccount *string @@ -116,8 +117,8 @@ type AccessPreviewFinding struct { // An error. Error *string - // The existing ID of the finding in Access Analyzer, provided only for existing - // findings. + // The existing ID of the finding in IAM Access Analyzer, provided only for + // existing findings. ExistingFindingId *string // The existing status of the finding, provided only for existing findings. @@ -207,7 +208,7 @@ type AclGrantee interface { isAclGrantee() } -// The value specified is the canonical user ID of an AWS account. +// The value specified is the canonical user ID of an Amazon Web Services account. type AclGranteeMemberId struct { Value string @@ -249,7 +250,7 @@ type AnalyzedResource struct { // This member is required. ResourceArn *string - // The AWS account ID that owns the resource. + // The Amazon Web Services account ID that owns the resource. // // This member is required. ResourceOwnerAccount *string @@ -289,7 +290,7 @@ type AnalyzedResourceSummary struct { // This member is required. ResourceArn *string - // The AWS account ID that owns the resource. + // The Amazon Web Services account ID that owns the resource. // // This member is required. ResourceOwnerAccount *string @@ -322,10 +323,10 @@ type AnalyzerSummary struct { // The status of the analyzer. An Active analyzer successfully monitors supported // resources and generates new findings. The analyzer is Disabled when a user - // action, such as removing trusted access for AWS IAM Access Analyzer from AWS - // Organizations, causes the analyzer to stop generating new findings. The status - // is Creating when the analyzer creation is in progress and Failed when the - // analyzer creation has failed. + // action, such as removing trusted access for Identity and Access Management + // Access Analyzer from Organizations, causes the analyzer to stop generating new + // findings. The status is Creating when the analyzer creation is in progress and + // Failed when the analyzer creation has failed. // // This member is required. Status AnalyzerStatus @@ -346,7 +347,7 @@ type AnalyzerSummary struct { // For example, if the creation for the analyzer fails, a Failed status is // returned. For an analyzer with organization as the type, this failure can be due // to an issue with creating the service-linked roles required in the member - // accounts of the AWS organization. + // accounts of the Amazon Web Services organization. StatusReason *StatusReason // The tags added to the analyzer. @@ -384,15 +385,15 @@ type ArchiveRuleSummary struct { // Contains information about CloudTrail access. type CloudTrailDetails struct { - // The ARN of the service role that Access Analyzer uses to access your CloudTrail - // trail and service last accessed information. + // The ARN of the service role that IAM Access Analyzer uses to access your + // CloudTrail trail and service last accessed information. // // This member is required. AccessRole *string - // The start of the time range for which Access Analyzer reviews your CloudTrail - // events. Events with a timestamp before this time are not considered to generate - // a policy. + // The start of the time range for which IAM Access Analyzer reviews your + // CloudTrail events. Events with a timestamp before this time are not considered + // to generate a policy. // // This member is required. StartTime *time.Time @@ -402,7 +403,7 @@ type CloudTrailDetails struct { // This member is required. Trails []Trail - // The end of the time range for which Access Analyzer reviews your CloudTrail + // The end of the time range for which IAM Access Analyzer reviews your CloudTrail // events. Events with a timestamp after this time are not considered to generate a // policy. If this is not included in the request, the default value is the current // time. @@ -414,7 +415,7 @@ type CloudTrailDetails struct { // Contains information about CloudTrail access. type CloudTrailProperties struct { - // The end of the time range for which Access Analyzer reviews your CloudTrail + // The end of the time range for which IAM Access Analyzer reviews your CloudTrail // events. Events with a timestamp after this time are not considered to generate a // policy. If this is not included in the request, the default value is the current // time. @@ -422,9 +423,9 @@ type CloudTrailProperties struct { // This member is required. EndTime *time.Time - // The start of the time range for which Access Analyzer reviews your CloudTrail - // events. Events with a timestamp before this time are not considered to generate - // a policy. + // The start of the time range for which IAM Access Analyzer reviews your + // CloudTrail events. Events with a timestamp before this time are not considered + // to generate a policy. // // This member is required. StartTime *time.Time @@ -487,7 +488,7 @@ type ConfigurationMemberS3Bucket struct { func (*ConfigurationMemberS3Bucket) isConfiguration() {} -// The access control configuration is for an SQS queue. +// The access control configuration is for an Amazon SQS queue. type ConfigurationMemberSqsQueue struct { Value SqsQueueConfiguration @@ -537,7 +538,7 @@ type Finding struct { // This member is required. Id *string - // The AWS account ID that owns the resource. + // The Amazon Web Services account ID that owns the resource. // // This member is required. ResourceOwnerAccount *string @@ -601,7 +602,8 @@ type FindingSource struct { // This is populated for Amazon S3 bucket findings. type FindingSourceDetail struct { - // The ARN of the access point that generated the finding. + // The ARN of the access point that generated the finding. The ARN format depends + // on whether the ARN represents an access point or a multi-region access point. AccessPointArn *string noSmithyDocumentSerde @@ -631,7 +633,7 @@ type FindingSummary struct { // This member is required. Id *string - // The AWS account ID that owns the resource. + // The Amazon Web Services account ID that owns the resource. // // This member is required. ResourceOwnerAccount *string @@ -701,8 +703,8 @@ type GeneratedPolicyProperties struct { CloudTrailProperties *CloudTrailProperties // This value is set to true if the generated policy contains all possible actions - // for a service that Access Analyzer identified from the CloudTrail trail that you - // specified, and false otherwise. + // for a service that IAM Access Analyzer identified from the CloudTrail trail that + // you specified, and false otherwise. IsComplete *bool noSmithyDocumentSerde @@ -760,7 +762,8 @@ type InlineArchiveRule struct { noSmithyDocumentSerde } -// This configuration sets the Amazon S3 access point network origin to Internet. +// This configuration sets the network origin for the Amazon S3 access point or +// multi-region access point to Internet. type InternetConfiguration struct { noSmithyDocumentSerde } @@ -788,7 +791,7 @@ type JobDetails struct { // A timestamp of when the job was completed. CompletedOn *time.Time - // Contains the details about the policy generation error. + // The job error for the policy generation request. JobError *JobError noSmithyDocumentSerde @@ -822,8 +825,8 @@ type KmsGrantConfiguration struct { // This member is required. GranteePrincipal *string - // The AWS account under which the grant was issued. The account is used to propose - // KMS grants issued by accounts other than the owner of the key. + // The Amazon Web Services account under which the grant was issued. The account is + // used to propose KMS grants issued by accounts other than the owner of the key. // // This member is required. IssuingAccount *string @@ -921,9 +924,10 @@ type Location struct { } // The proposed InternetConfiguration or VpcConfiguration to apply to the Amazon S3 -// Access point. You can make the access point accessible from the internet, or you -// can specify that all requests made through that access point must originate from -// a specific virtual private cloud (VPC). You can specify only one type of network +// access point. VpcConfiguration does not apply to multi-region access points. You +// can make the access point accessible from the internet, or you can specify that +// all requests made through that access point must originate from a specific +// virtual private cloud (VPC). You can specify only one type of network // configuration. For more information, see Creating access points // (https://docs.aws.amazon.com/AmazonS3/latest/dev/creating-access-points.html). // @@ -935,7 +939,8 @@ type NetworkOriginConfiguration interface { } // The proposed virtual private cloud (VPC) configuration for the Amazon S3 access -// point. For more information, see VpcConfiguration +// point. VPC configuration does not apply to multi-region access points. For more +// information, see VpcConfiguration // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_VpcConfiguration.html). type NetworkOriginConfigurationMemberVpcConfiguration struct { Value VpcConfiguration @@ -945,7 +950,8 @@ type NetworkOriginConfigurationMemberVpcConfiguration struct { func (*NetworkOriginConfigurationMemberVpcConfiguration) isNetworkOriginConfiguration() {} -// The configuration for the Amazon S3 access point with an Internet origin. +// The configuration for the Amazon S3 access point or multi-region access point +// with an Internet origin. type NetworkOriginConfigurationMemberInternetConfiguration struct { Value InternetConfiguration @@ -1064,30 +1070,32 @@ type Position struct { noSmithyDocumentSerde } -// The configuration for an Amazon S3 access point for the bucket. You can propose -// up to 10 access points per bucket. If the proposed Amazon S3 access point -// configuration is for an existing bucket, the access preview uses the proposed -// access point configuration in place of the existing access points. To propose an -// access point without a policy, you can provide an empty string as the access -// point policy. For more information, see Creating access points +// The configuration for an Amazon S3 access point or multi-region access point for +// the bucket. You can propose up to 10 access points or multi-region access points +// per bucket. If the proposed Amazon S3 access point configuration is for an +// existing bucket, the access preview uses the proposed access point configuration +// in place of the existing access points. To propose an access point without a +// policy, you can provide an empty string as the access point policy. For more +// information, see Creating access points // (https://docs.aws.amazon.com/https:/docs.aws.amazon.com/AmazonS3/latest/dev/creating-access-points.html). // For more information about access point policy limits, see Access points // restrictions and limitations // (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-points-restrictions-limitations.html). type S3AccessPointConfiguration struct { - // The access point policy. + // The access point or multi-region access point policy. AccessPointPolicy *string // The proposed Internet and VpcConfiguration to apply to this Amazon S3 access - // point. If the access preview is for a new resource and neither is specified, the - // access preview uses Internet for the network origin. If the access preview is - // for an existing resource and neither is specified, the access preview uses the - // exiting network origin. + // point. VpcConfiguration does not apply to multi-region access points. If the + // access preview is for a new resource and neither is specified, the access + // preview uses Internet for the network origin. If the access preview is for an + // existing resource and neither is specified, the access preview uses the exiting + // network origin. NetworkOrigin NetworkOriginConfiguration - // The proposed S3PublicAccessBlock configuration to apply to this Amazon S3 Access - // Point. + // The proposed S3PublicAccessBlock configuration to apply to this Amazon S3 access + // point or multi-region access point. PublicAccessBlock *S3PublicAccessBlockConfiguration noSmithyDocumentSerde @@ -1114,18 +1122,19 @@ type S3BucketAclGrantConfiguration struct { // Proposed access control configuration for an Amazon S3 bucket. You can propose a // configuration for a new Amazon S3 bucket or an existing Amazon S3 bucket that // you own by specifying the Amazon S3 bucket policy, bucket ACLs, bucket BPA -// settings, and Amazon S3 access points attached to the bucket. If the -// configuration is for an existing Amazon S3 bucket and you do not specify the -// Amazon S3 bucket policy, the access preview uses the existing policy attached to -// the bucket. If the access preview is for a new resource and you do not specify -// the Amazon S3 bucket policy, the access preview assumes a bucket without a -// policy. To propose deletion of an existing bucket policy, you can specify an -// empty string. For more information about bucket policy limits, see Bucket Policy -// Examples +// settings, Amazon S3 access points, and multi-region access points attached to +// the bucket. If the configuration is for an existing Amazon S3 bucket and you do +// not specify the Amazon S3 bucket policy, the access preview uses the existing +// policy attached to the bucket. If the access preview is for a new resource and +// you do not specify the Amazon S3 bucket policy, the access preview assumes a +// bucket without a policy. To propose deletion of an existing bucket policy, you +// can specify an empty string. For more information about bucket policy limits, +// see Bucket Policy Examples // (https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html). type S3BucketConfiguration struct { - // The configuration of Amazon S3 access points for the bucket. + // The configuration of Amazon S3 access points or multi-region access points for + // the bucket. You can propose up to 10 new access points per bucket. AccessPoints map[string]S3AccessPointConfiguration // The proposed list of ACL grants for the Amazon S3 bucket. You can propose up to @@ -1149,8 +1158,9 @@ type S3BucketConfiguration struct { // is not specified, the access preview uses the existing setting. If the proposed // configuration is for a new bucket and the configuration is not specified, the // access preview uses false. If the proposed configuration is for a new access -// point and the access point BPA configuration is not specified, the access -// preview uses true. For more information, see PublicAccessBlockConfiguration +// point or multi-region access point and the access point BPA configuration is not +// specified, the access preview uses true. For more information, see +// PublicAccessBlockConfiguration // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-publicaccessblockconfiguration.html). type S3PublicAccessBlockConfiguration struct { @@ -1180,13 +1190,14 @@ type S3PublicAccessBlockConfiguration struct { // access preview assumes a secret without a policy. To propose deletion of an // existing policy, you can specify an empty string. If the proposed configuration // is for a new secret and you do not specify the KMS key ID, the access preview -// uses the default CMK of the AWS account. If you specify an empty string for the -// KMS key ID, the access preview uses the default CMK of the AWS account. For more -// information about secret policy limits, see Quotas for AWS Secrets Manager. +// uses the default CMK of the Amazon Web Services account. If you specify an empty +// string for the KMS key ID, the access preview uses the default CMK of the Amazon +// Web Services account. For more information about secret policy limits, see +// Quotas for Secrets Manager. // (https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_limits.html). type SecretsManagerSecretConfiguration struct { - // The proposed ARN, key ID, or alias of the AWS KMS customer master key (CMK). + // The proposed ARN, key ID, or alias of the KMS customer master key (CMK). KmsKeyId *string // The proposed resource policy defining who can access or manage the secret. @@ -1224,19 +1235,20 @@ type Span struct { noSmithyDocumentSerde } -// The proposed access control configuration for an SQS queue. You can propose a -// configuration for a new SQS queue or an existing SQS queue that you own by -// specifying the SQS policy. If the configuration is for an existing SQS queue and -// you do not specify the SQS policy, the access preview uses the existing SQS -// policy for the queue. If the access preview is for a new resource and you do not -// specify the policy, the access preview assumes an SQS queue without a policy. To -// propose deletion of an existing SQS queue policy, you can specify an empty -// string for the SQS policy. For more information about SQS policy limits, see +// The proposed access control configuration for an Amazon SQS queue. You can +// propose a configuration for a new Amazon SQS queue or an existing Amazon SQS +// queue that you own by specifying the Amazon SQS policy. If the configuration is +// for an existing Amazon SQS queue and you do not specify the Amazon SQS policy, +// the access preview uses the existing Amazon SQS policy for the queue. If the +// access preview is for a new resource and you do not specify the policy, the +// access preview assumes an Amazon SQS queue without a policy. To propose deletion +// of an existing Amazon SQS queue policy, you can specify an empty string for the +// Amazon SQS policy. For more information about Amazon SQS policy limits, see // Quotas related to policies // (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/quotas-policies.html). type SqsQueueConfiguration struct { - // The proposed resource policy for the SQS queue. + // The proposed resource policy for the Amazon SQS queue. QueuePolicy *string noSmithyDocumentSerde @@ -1245,8 +1257,8 @@ type SqsQueueConfiguration struct { // Provides more details about the current status of the analyzer. For example, if // the creation for the analyzer fails, a Failed status is returned. For an // analyzer with organization as the type, this failure can be due to an issue with -// creating the service-linked roles required in the member accounts of the AWS -// organization. +// creating the service-linked roles required in the member accounts of the Amazon +// Web Services organization. type StatusReason struct { // The reason code for the current status of the analyzer. @@ -1282,7 +1294,7 @@ type Trail struct { // This member is required. CloudTrailArn *string - // Possible values are true or false. If set to true, Access Analyzer retrieves + // Possible values are true or false. If set to true, IAM Access Analyzer retrieves // CloudTrail data from all regions to analyze and generate a policy. AllRegions *bool @@ -1301,7 +1313,7 @@ type TrailProperties struct { // This member is required. CloudTrailArn *string - // Possible values are true or false. If set to true, Access Analyzer retrieves + // Possible values are true or false. If set to true, IAM Access Analyzer retrieves // CloudTrail data from all regions to analyze and generate a policy. AllRegions *bool @@ -1366,7 +1378,8 @@ type ValidationExceptionField struct { } // The proposed virtual private cloud (VPC) configuration for the Amazon S3 access -// point. For more information, see VpcConfiguration +// point. VPC configuration does not apply to multi-region access points. For more +// information, see VpcConfiguration // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_VpcConfiguration.html). type VpcConfiguration struct { diff --git a/service/acmpca/api_op_CreateCertificateAuthority.go b/service/acmpca/api_op_CreateCertificateAuthority.go index c9fa167eb05..c4c43f61627 100644 --- a/service/acmpca/api_op_CreateCertificateAuthority.go +++ b/service/acmpca/api_op_CreateCertificateAuthority.go @@ -12,17 +12,19 @@ import ( ) // Creates a root or subordinate private certificate authority (CA). You must -// specify the CA configuration, the certificate revocation list (CRL) -// configuration, the CA type, and an optional idempotency token to avoid -// accidental creation of multiple CAs. The CA configuration specifies the name of -// the algorithm and key size to be used to create the CA private key, the type of -// signing algorithm that the CA uses, and X.500 subject information. The CRL -// configuration specifies the CRL expiration period in days (the validity period -// of the CRL), the Amazon S3 bucket that will contain the CRL, and a CNAME alias -// for the S3 bucket that is included in certificates issued by the CA. If -// successful, this action returns the Amazon Resource Name (ARN) of the CA. ACM -// Private CA assets that are stored in Amazon S3 can be protected with encryption. -// For more information, see Encrypting Your CRLs +// specify the CA configuration, an optional configuration for Online Certificate +// Status Protocol (OCSP) and/or a certificate revocation list (CRL), the CA type, +// and an optional idempotency token to avoid accidental creation of multiple CAs. +// The CA configuration specifies the name of the algorithm and key size to be used +// to create the CA private key, the type of signing algorithm that the CA uses, +// and X.500 subject information. The OCSP configuration can optionally specify a +// custom URL for the OCSP responder. The CRL configuration specifies the CRL +// expiration period in days (the validity period of the CRL), the Amazon S3 bucket +// that will contain the CRL, and a CNAME alias for the S3 bucket that is included +// in certificates issued by the CA. If successful, this action returns the Amazon +// Resource Name (ARN) of the CA. ACM Private CA assets that are stored in Amazon +// S3 can be protected with encryption. For more information, see Encrypting Your +// CRLs // (https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaCreateCa.html#crl-encryption). // Both PCA and the IAM principal must have permission to write to the S3 bucket // that you specify. If the IAM principal making the call does not have permission @@ -76,13 +78,14 @@ type CreateCertificateAuthorityInput struct { // security standard." KeyStorageSecurityStandard types.KeyStorageSecurityStandard - // Contains a Boolean value that you can use to enable a certification revocation - // list (CRL) for the CA, the name of the S3 bucket to which ACM Private CA will - // write the CRL, and an optional CNAME alias that you can use to hide the name of - // your bucket in the CRL Distribution Points extension of your CA certificate. For - // more information, see the CrlConfiguration + // Contains information to enable Online Certificate Status Protocol (OCSP) + // support, to enable a certificate revocation list (CRL), to enable both, or to + // enable neither. The default is for both certificate validation mechanisms to be + // disabled. For more information, see the OcspConfiguration + // (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_OcspConfiguration.html) + // and CrlConfiguration // (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CrlConfiguration.html) - // structure. + // types. RevocationConfiguration *types.RevocationConfiguration // Key-value pairs that will be attached to the new private CA. You can associate diff --git a/service/acmpca/api_op_UpdateCertificateAuthority.go b/service/acmpca/api_op_UpdateCertificateAuthority.go index 08315683082..557f5a55039 100644 --- a/service/acmpca/api_op_UpdateCertificateAuthority.go +++ b/service/acmpca/api_op_UpdateCertificateAuthority.go @@ -43,7 +43,14 @@ type UpdateCertificateAuthorityInput struct { // This member is required. CertificateAuthorityArn *string - // Revocation information for your private CA. + // Contains information to enable Online Certificate Status Protocol (OCSP) + // support, to enable a certificate revocation list (CRL), to enable both, or to + // enable neither. If this parameter is not supplied, existing capibilites remain + // unchanged. For more information, see the OcspConfiguration + // (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_OcspConfiguration.html) + // and CrlConfiguration + // (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CrlConfiguration.html) + // types. RevocationConfiguration *types.RevocationConfiguration // Status of your private CA. diff --git a/service/acmpca/deserializers.go b/service/acmpca/deserializers.go index 394566b19a8..cca9b2925c9 100644 --- a/service/acmpca/deserializers.go +++ b/service/acmpca/deserializers.go @@ -4744,6 +4744,55 @@ func awsAwsjson11_deserializeDocumentMalformedCSRException(v **types.MalformedCS return nil } +func awsAwsjson11_deserializeDocumentOcspConfiguration(v **types.OcspConfiguration, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.OcspConfiguration + if *v == nil { + sv = &types.OcspConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Enabled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.Enabled = jtv + } + + case "OcspCustomCname": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String253 to be of type string, got %T instead", value) + } + sv.OcspCustomCname = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentOtherName(v **types.OtherName, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -5142,6 +5191,11 @@ func awsAwsjson11_deserializeDocumentRevocationConfiguration(v **types.Revocatio return err } + case "OcspConfiguration": + if err := awsAwsjson11_deserializeDocumentOcspConfiguration(&sv.OcspConfiguration, value); err != nil { + return err + } + default: _, _ = key, value diff --git a/service/acmpca/doc.go b/service/acmpca/doc.go index 66eab00b241..9d251bc1ee2 100644 --- a/service/acmpca/doc.go +++ b/service/acmpca/doc.go @@ -10,8 +10,15 @@ // response. Alternatively, you can use one of the AWS SDKs to access an API that's // tailored to the programming language or platform that you're using. For more // information, see AWS SDKs (https://aws.amazon.com/tools/#SDKs). Each ACM Private -// CA API action has a quota that determines the number of times the action can be -// called per second. For more information, see API Rate Quotas in ACM Private CA -// (https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaLimits.html#PcaLimits-api) -// in the ACM Private CA user guide. +// CA API operation has a quota that determines the number of times the operation +// can be called per second. ACM Private CA throttles API requests at different +// rates depending on the operation. Throttling means that ACM Private CA rejects +// an otherwise valid request because the request exceeds the operation's quota for +// the number of requests per second. When a request is throttled, ACM Private CA +// returns a ThrottlingException +// (https://docs.aws.amazon.com/acm-pca/latest/APIReference/CommonErrors.html) +// error. ACM Private CA does not guarantee a minimum request rate for APIs. To see +// an up-to-date list of your ACM Private CA quotas, or to request a quota +// increase, log into your AWS account and visit the Service Quotas +// (https://console.aws.amazon.com/servicequotas/) console. package acmpca diff --git a/service/acmpca/serializers.go b/service/acmpca/serializers.go index 0a6b955b35b..f2649bd0fbc 100644 --- a/service/acmpca/serializers.go +++ b/service/acmpca/serializers.go @@ -1551,6 +1551,23 @@ func awsAwsjson11_serializeDocumentKeyUsage(v *types.KeyUsage, value smithyjson. return nil } +func awsAwsjson11_serializeDocumentOcspConfiguration(v *types.OcspConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + { + ok := object.Key("Enabled") + ok.Boolean(v.Enabled) + } + + if v.OcspCustomCname != nil { + ok := object.Key("OcspCustomCname") + ok.String(*v.OcspCustomCname) + } + + return nil +} + func awsAwsjson11_serializeDocumentOtherName(v *types.OtherName, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1642,6 +1659,13 @@ func awsAwsjson11_serializeDocumentRevocationConfiguration(v *types.RevocationCo } } + if v.OcspConfiguration != nil { + ok := object.Key("OcspConfiguration") + if err := awsAwsjson11_serializeDocumentOcspConfiguration(v.OcspConfiguration, ok); err != nil { + return err + } + } + return nil } diff --git a/service/acmpca/types/types.go b/service/acmpca/types/types.go index 16ab127e6d4..57e776eae10 100644 --- a/service/acmpca/types/types.go +++ b/service/acmpca/types/types.go @@ -183,8 +183,8 @@ type CertificateAuthority struct { // action. RestorableUntil *time.Time - // Information about the certificate revocation list (CRL) created and maintained - // by your private CA. + // Information about the Online Certificate Status Protocol (OCSP) configuration or + // certificate revocation list (CRL) created and maintained by your private CA. RevocationConfiguration *RevocationConfiguration // Serial number of your private CA. @@ -252,56 +252,61 @@ type CertificateAuthorityConfiguration struct { // update or when a certificate is revoked. When a certificate is revoked, it is // recorded in the next CRL that is generated and in the next audit report. Only // time valid certificates are listed in the CRL. Expired certificates are not -// included. CRLs contain the following fields: +// included. A CRL is typically updated approximately 30 minutes after a +// certificate is revoked. If for any reason a CRL update fails, ACM Private CA +// makes further attempts every 15 minutes. CRLs contain the following fields: // -// * Version: The current version -// number defined in RFC 5280 is V2. The integer value is 0x1. +// * +// Version: The current version number defined in RFC 5280 is V2. The integer value +// is 0x1. // -// * Signature -// Algorithm: The name of the algorithm used to sign the CRL. +// * Signature Algorithm: The name of the algorithm used to sign the +// CRL. // -// * Issuer: The X.500 -// distinguished name of your private CA that issued the CRL. +// * Issuer: The X.500 distinguished name of your private CA that issued the +// CRL. // -// * Last Update: The -// issue date and time of this CRL. +// * Last Update: The issue date and time of this CRL. // -// * Next Update: The day and time by which the -// next CRL will be issued. +// * Next Update: The +// day and time by which the next CRL will be issued. // -// * Revoked Certificates: List of revoked certificates. -// Each list item contains the following information. +// * Revoked Certificates: List +// of revoked certificates. Each list item contains the following information. // -// * Serial Number: The serial -// number, in hexadecimal format, of the revoked certificate. +// * +// Serial Number: The serial number, in hexadecimal format, of the revoked +// certificate. // -// * Revocation Date: -// Date and time the certificate was revoked. +// * Revocation Date: Date and time the certificate was revoked. // -// * CRL Entry Extensions: Optional -// extensions for the CRL entry. +// * +// CRL Entry Extensions: Optional extensions for the CRL entry. // -// * X509v3 CRL Reason Code: Reason the certificate -// was revoked. +// * X509v3 CRL +// Reason Code: Reason the certificate was revoked. // -// * CRL Extensions: Optional extensions for the CRL. +// * CRL Extensions: Optional +// extensions for the CRL. // -// * X509v3 -// Authority Key Identifier: Identifies the public key associated with the private -// key used to sign the certificate. +// * X509v3 Authority Key Identifier: Identifies the +// public key associated with the private key used to sign the certificate. // -// * X509v3 CRL Number:: Decimal sequence number -// for the CRL. +// * +// X509v3 CRL Number:: Decimal sequence number for the CRL. // -// * Signature Algorithm: Algorithm used by your private CA to sign -// the CRL. +// * Signature Algorithm: +// Algorithm used by your private CA to sign the CRL. // -// * Signature Value: Signature computed over the CRL. +// * Signature Value: Signature +// computed over the CRL. // -// Certificate -// revocation lists created by ACM Private CA are DER-encoded. You can use the -// following OpenSSL command to list a CRL. openssl crl -inform DER -text -in -// crl_path -noout +// Certificate revocation lists created by ACM Private CA +// are DER-encoded. You can use the following OpenSSL command to list a CRL. +// openssl crl -inform DER -text -in crl_path -noout For more information, see +// Planning a certificate revocation list (CRL) +// (https://docs.aws.amazon.com/acm-pca/latest/userguide/crl-planning.html) in the +// AWS Certificate Manager Private Certificate Authority (PCA) User Guide type CrlConfiguration struct { // Boolean value that specifies whether certificate revocation lists (CRLs) are @@ -328,7 +333,7 @@ type CrlConfiguration struct { // Distribution Points extension of the issued certificate. You can change the name // of your bucket by calling the UpdateCertificateAuthority // (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UpdateCertificateAuthority.html) - // action. You must specify a bucket policy + // operation. You must specify a bucket policy // (https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaCreateCa.html#s3-policies) // that allows ACM Private CA to write the CRL to your bucket. S3BucketName *string @@ -497,6 +502,30 @@ type KeyUsage struct { noSmithyDocumentSerde } +// Contains information to enable and configure Online Certificate Status Protocol +// (OCSP) for validating certificate revocation status. When you revoke a +// certificate, OCSP responses may take up to 60 minutes to reflect the new status. +type OcspConfiguration struct { + + // Flag enabling use of the Online Certificate Status Protocol (OCSP) for + // validating certificate revocation status. + // + // This member is required. + Enabled bool + + // By default, ACM Private CA injects an AWS domain into certificates being + // validated by the Online Certificate Status Protocol (OCSP). A customer can + // alternatively use this object to define a CNAME specifying a customized OCSP + // domain. Note: The value of the CNAME must not include a protocol prefix such as + // "http://" or "https://". For more information, see Customizing Online + // Certificate Status Protocol (OCSP) + // (https://docs.aws.amazon.com/acm-pca/latest/userguide/ocsp-customize.html) in + // the AWS Certificate Manager Private Certificate Authority (PCA) User Guide. + OcspCustomCname *string + + noSmithyDocumentSerde +} + // Defines a custom ASN.1 X.400 GeneralName using an object identifier (OID) and // value. The OID must satisfy the regular expression shown below. For more // information, see NIST's definition of Object Identifier (OID) @@ -605,16 +634,28 @@ type Qualifier struct { // (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html) // and UpdateCertificateAuthority // (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UpdateCertificateAuthority.html) -// actions. Your private certificate authority (CA) can create and maintain a -// certificate revocation list (CRL). A CRL contains information about certificates -// revoked by your CA. For more information, see RevokeCertificate -// (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_RevokeCertificate.html). +// actions. Your private certificate authority (CA) can configure Online +// Certificate Status Protocol (OCSP) support and/or maintain a certificate +// revocation list (CRL). OCSP returns validation information about certificates as +// requested by clients, and a CRL contains an updated list of certificates revoked +// by your CA. For more information, see RevokeCertificate +// (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_RevokeCertificate.html) +// and Setting up a certificate revocation method +// (https://docs.aws.amazon.com/acm-pca/latest/userguide/revocation-setup.html) in +// the AWS Certificate Manager Private Certificate Authority (PCA) User Guide. type RevocationConfiguration struct { // Configuration of the certificate revocation list (CRL), if any, maintained by - // your private CA. + // your private CA. A CRL is typically updated approximately 30 minutes after a + // certificate is revoked. If for any reason a CRL update fails, ACM Private CA + // makes further attempts every 15 minutes. CrlConfiguration *CrlConfiguration + // Configuration of Online Certificate Status Protocol (OCSP) support, if any, + // maintained by your private CA. When you revoke a certificate, OCSP responses may + // take up to 60 minutes to reflect the new status. + OcspConfiguration *OcspConfiguration + noSmithyDocumentSerde } diff --git a/service/acmpca/validators.go b/service/acmpca/validators.go index d8620f300c7..73267cb2cee 100644 --- a/service/acmpca/validators.go +++ b/service/acmpca/validators.go @@ -742,6 +742,18 @@ func validateGeneralNameList(v []types.GeneralName) error { } } +func validateOcspConfiguration(v *types.OcspConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "OcspConfiguration"} + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOtherName(v *types.OtherName) error { if v == nil { return nil @@ -844,6 +856,11 @@ func validateRevocationConfiguration(v *types.RevocationConfiguration) error { invalidParams.AddNested("CrlConfiguration", err.(smithy.InvalidParamsError)) } } + if v.OcspConfiguration != nil { + if err := validateOcspConfiguration(v.OcspConfiguration); err != nil { + invalidParams.AddNested("OcspConfiguration", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { diff --git a/service/cloud9/internal/endpoints/endpoints.go b/service/cloud9/internal/endpoints/endpoints.go index d61bbbc02d8..2cd44a6c591 100644 --- a/service/cloud9/internal/endpoints/endpoints.go +++ b/service/cloud9/internal/endpoints/endpoints.go @@ -63,9 +63,11 @@ var defaultPartitions = endpoints.Partitions{ RegionRegex: partitionRegexp.Aws, IsRegionalized: true, Endpoints: endpoints.Endpoints{ + "af-south-1": endpoints.Endpoint{}, "ap-east-1": endpoints.Endpoint{}, "ap-northeast-1": endpoints.Endpoint{}, "ap-northeast-2": endpoints.Endpoint{}, + "ap-northeast-3": endpoints.Endpoint{}, "ap-south-1": endpoints.Endpoint{}, "ap-southeast-1": endpoints.Endpoint{}, "ap-southeast-2": endpoints.Endpoint{}, diff --git a/service/cloudformation/api_op_CreateChangeSet.go b/service/cloudformation/api_op_CreateChangeSet.go index a93e2522c0f..7a0dd7f00e8 100644 --- a/service/cloudformation/api_op_CreateChangeSet.go +++ b/service/cloudformation/api_op_CreateChangeSet.go @@ -69,27 +69,27 @@ type CreateChangeSetInput struct { // // * // CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include - // resources that can affect permissions in your account; for example, by creating - // new Identity and Access Management (IAM) users. For those stacks, you must - // explicitly acknowledge this by specifying one of these capabilities. The - // following IAM resources require you to specify either the CAPABILITY_IAM or - // CAPABILITY_NAMED_IAM capability. + // resources that can affect permissions in your Amazon Web Services account; for + // example, by creating new Identity and Access Management (IAM) users. For those + // stacks, you must explicitly acknowledge this by specifying one of these + // capabilities. The following IAM resources require you to specify either the + // CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. // - // * If you have IAM resources, you can specify - // either capability. + // * If you have IAM resources, + // you can specify either capability. // - // * If you have IAM resources with custom names, you must - // specify CAPABILITY_NAMED_IAM. + // * If you have IAM resources with custom + // names, you must specify CAPABILITY_NAMED_IAM. // - // * If you don't specify either of these - // capabilities, CloudFormation returns an InsufficientCapabilities error. + // * If you don't specify either of + // these capabilities, CloudFormation returns an InsufficientCapabilities + // error. // - // If your - // stack template contains these resources, we recommend that you review all - // permissions associated with them and edit their permissions if necessary. + // If your stack template contains these resources, we recommend that you + // review all permissions associated with them and edit their permissions if + // necessary. // - // * - // AWS::IAM::AccessKey + // * AWS::IAM::AccessKey // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html) // // * diff --git a/service/cloudformation/api_op_CreateStack.go b/service/cloudformation/api_op_CreateStack.go index 9348571f038..c334f8b65ee 100644 --- a/service/cloudformation/api_op_CreateStack.go +++ b/service/cloudformation/api_op_CreateStack.go @@ -35,7 +35,7 @@ type CreateStackInput struct { // The name that is associated with the stack. The name must be unique in the // Region in which you are creating the stack. A stack name can contain only // alphanumeric characters (case sensitive) and hyphens. It must start with an - // alphabetic character and cannot be longer than 128 characters. + // alphabetical character and cannot be longer than 128 characters. // // This member is required. StackName *string @@ -45,27 +45,27 @@ type CreateStackInput struct { // // * // CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include - // resources that can affect permissions in your account; for example, by creating - // new Identity and Access Management (IAM) users. For those stacks, you must - // explicitly acknowledge this by specifying one of these capabilities. The - // following IAM resources require you to specify either the CAPABILITY_IAM or - // CAPABILITY_NAMED_IAM capability. + // resources that can affect permissions in your Amazon Web Services account; for + // example, by creating new Identity and Access Management (IAM) users. For those + // stacks, you must explicitly acknowledge this by specifying one of these + // capabilities. The following IAM resources require you to specify either the + // CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. // - // * If you have IAM resources, you can specify - // either capability. + // * If you have IAM resources, + // you can specify either capability. // - // * If you have IAM resources with custom names, you must - // specify CAPABILITY_NAMED_IAM. + // * If you have IAM resources with custom + // names, you must specify CAPABILITY_NAMED_IAM. // - // * If you don't specify either of these - // capabilities, CloudFormation returns an InsufficientCapabilities error. + // * If you don't specify either of + // these capabilities, CloudFormation returns an InsufficientCapabilities + // error. // - // If your - // stack template contains these resources, we recommend that you review all - // permissions associated with them and edit their permissions if necessary. + // If your stack template contains these resources, we recommend that you + // review all permissions associated with them and edit their permissions if + // necessary. // - // * - // AWS::IAM::AccessKey + // * AWS::IAM::AccessKey // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html) // // * diff --git a/service/cloudformation/api_op_CreateStackInstances.go b/service/cloudformation/api_op_CreateStackInstances.go index 528f4268ddc..d244dc4ee2b 100644 --- a/service/cloudformation/api_op_CreateStackInstances.go +++ b/service/cloudformation/api_op_CreateStackInstances.go @@ -34,7 +34,7 @@ func (c *Client) CreateStackInstances(ctx context.Context, params *CreateStackIn type CreateStackInstancesInput struct { // The names of one or more Regions where you want to create stack instances using - // the specified accounts. + // the specified Amazon Web Services accounts. // // This member is required. Regions []string @@ -45,9 +45,9 @@ type CreateStackInstancesInput struct { // This member is required. StackSetName *string - // [Self-managed permissions] The names of one or more accounts that you want to - // create stack instances in the specified Region(s) for. You can specify Accounts - // or DeploymentTargets, but not both. + // [Self-managed permissions] The names of one or more Amazon Web Services accounts + // that you want to create stack instances in the specified Region(s) for. You can + // specify Accounts or DeploymentTargets, but not both. Accounts []string // [Service-managed permissions] Specifies whether you are acting as an account @@ -59,9 +59,9 @@ type CreateStackInstancesInput struct { // management account, specify SELF. // // * If you are signed in to a delegated - // administrator account, specify DELEGATED_ADMIN. Your account must be registered - // as a delegated administrator in the management account. For more information, - // see Register a delegated administrator + // administrator account, specify DELEGATED_ADMIN. Your Amazon Web Services account + // must be registered as a delegated administrator in the management account. For + // more information, see Register a delegated administrator // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) // in the CloudFormation User Guide. CallAs types.CallAs diff --git a/service/cloudformation/api_op_CreateStackSet.go b/service/cloudformation/api_op_CreateStackSet.go index d0e611c4c32..45af687304b 100644 --- a/service/cloudformation/api_op_CreateStackSet.go +++ b/service/cloudformation/api_op_CreateStackSet.go @@ -62,9 +62,9 @@ type CreateStackSetInput struct { // SELF. // // * To create a stack set with service-managed permissions while signed in - // to a delegated administrator account, specify DELEGATED_ADMIN. Your account must - // be registered as a delegated admin in the management account. For more - // information, see Register a delegated administrator + // to a delegated administrator account, specify DELEGATED_ADMIN. Your Amazon Web + // Services account must be registered as a delegated admin in the management + // account. For more information, see Register a delegated administrator // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) // in the CloudFormation User Guide. // @@ -79,26 +79,27 @@ type CreateStackSetInput struct { // // * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some // stack templates might include resources that can affect permissions in your - // account; for example, by creating new Identity and Access Management (IAM) - // users. For those stack sets, you must explicitly acknowledge this by specifying - // one of these capabilities. The following IAM resources require you to specify - // either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. + // Amazon Web Services account; for example, by creating new Identity and Access + // Management (IAM) users. For those stack sets, you must explicitly acknowledge + // this by specifying one of these capabilities. The following IAM resources + // require you to specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM + // capability. // - // * If you have IAM - // resources, you can specify either capability. + // * If you have IAM resources, you can specify either capability. // - // * If you have IAM resources with - // custom names, you must specify CAPABILITY_NAMED_IAM. + // * + // If you have IAM resources with custom names, you must specify + // CAPABILITY_NAMED_IAM. // - // * If you don't specify - // either of these capabilities, CloudFormation returns an InsufficientCapabilities - // error. + // * If you don't specify either of these capabilities, + // CloudFormation returns an InsufficientCapabilities error. // - // If your stack template contains these resources, we recommend that you - // review all permissions associated with them and edit their permissions if - // necessary. + // If your stack + // template contains these resources, we recommend that you review all permissions + // associated with them and edit their permissions if necessary. // - // * AWS::IAM::AccessKey + // * + // AWS::IAM::AccessKey // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html) // // * diff --git a/service/cloudformation/api_op_DeleteStackInstances.go b/service/cloudformation/api_op_DeleteStackInstances.go index 0984acda4bb..ec9f7aefa89 100644 --- a/service/cloudformation/api_op_DeleteStackInstances.go +++ b/service/cloudformation/api_op_DeleteStackInstances.go @@ -49,9 +49,9 @@ type DeleteStackInstancesInput struct { // This member is required. StackSetName *string - // [Self-managed permissions] The names of the accounts that you want to delete - // stack instances for. You can specify Accounts or DeploymentTargets, but not - // both. + // [Self-managed permissions] The names of the Amazon Web Services accounts that + // you want to delete stack instances for. You can specify Accounts or + // DeploymentTargets, but not both. Accounts []string // [Service-managed permissions] Specifies whether you are acting as an account @@ -63,9 +63,9 @@ type DeleteStackInstancesInput struct { // management account, specify SELF. // // * If you are signed in to a delegated - // administrator account, specify DELEGATED_ADMIN. Your account must be registered - // as a delegated administrator in the management account. For more information, - // see Register a delegated administrator + // administrator account, specify DELEGATED_ADMIN. Your Amazon Web Services account + // must be registered as a delegated administrator in the management account. For + // more information, see Register a delegated administrator // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) // in the CloudFormation User Guide. CallAs types.CallAs diff --git a/service/cloudformation/api_op_DeleteStackSet.go b/service/cloudformation/api_op_DeleteStackSet.go index f038328ed6b..bd80300f26c 100644 --- a/service/cloudformation/api_op_DeleteStackSet.go +++ b/service/cloudformation/api_op_DeleteStackSet.go @@ -46,9 +46,9 @@ type DeleteStackSetInput struct { // management account, specify SELF. // // * If you are signed in to a delegated - // administrator account, specify DELEGATED_ADMIN. Your account must be registered - // as a delegated administrator in the management account. For more information, - // see Register a delegated administrator + // administrator account, specify DELEGATED_ADMIN. Your Amazon Web Services account + // must be registered as a delegated administrator in the management account. For + // more information, see Register a delegated administrator // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) // in the CloudFormation User Guide. CallAs types.CallAs diff --git a/service/cloudformation/api_op_DescribeStackInstance.go b/service/cloudformation/api_op_DescribeStackInstance.go index 48433c673e9..92dab0ac330 100644 --- a/service/cloudformation/api_op_DescribeStackInstance.go +++ b/service/cloudformation/api_op_DescribeStackInstance.go @@ -12,8 +12,8 @@ import ( ) // Returns the stack instance that's associated with the specified stack set, -// account, and Region. For a list of stack instances that are associated with a -// specific stack set, use ListStackInstances. +// Amazon Web Services account, and Region. For a list of stack instances that are +// associated with a specific stack set, use ListStackInstances. func (c *Client) DescribeStackInstance(ctx context.Context, params *DescribeStackInstanceInput, optFns ...func(*Options)) (*DescribeStackInstanceOutput, error) { if params == nil { params = &DescribeStackInstanceInput{} @@ -31,7 +31,8 @@ func (c *Client) DescribeStackInstance(ctx context.Context, params *DescribeStac type DescribeStackInstanceInput struct { - // The ID of an account that's associated with this stack instance. + // The ID of an Amazon Web Services account that's associated with this stack + // instance. // // This member is required. StackInstanceAccount *string @@ -56,9 +57,9 @@ type DescribeStackInstanceInput struct { // management account, specify SELF. // // * If you are signed in to a delegated - // administrator account, specify DELEGATED_ADMIN. Your account must be registered - // as a delegated administrator in the management account. For more information, - // see Register a delegated administrator + // administrator account, specify DELEGATED_ADMIN. Your Amazon Web Services account + // must be registered as a delegated administrator in the management account. For + // more information, see Register a delegated administrator // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) // in the CloudFormation User Guide. CallAs types.CallAs diff --git a/service/cloudformation/api_op_DescribeStackSet.go b/service/cloudformation/api_op_DescribeStackSet.go index be30543c6e1..d0ee230e20c 100644 --- a/service/cloudformation/api_op_DescribeStackSet.go +++ b/service/cloudformation/api_op_DescribeStackSet.go @@ -43,9 +43,9 @@ type DescribeStackSetInput struct { // management account, specify SELF. // // * If you are signed in to a delegated - // administrator account, specify DELEGATED_ADMIN. Your account must be registered - // as a delegated administrator in the management account. For more information, - // see Register a delegated administrator + // administrator account, specify DELEGATED_ADMIN. Your Amazon Web Services account + // must be registered as a delegated administrator in the management account. For + // more information, see Register a delegated administrator // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) // in the CloudFormation User Guide. CallAs types.CallAs diff --git a/service/cloudformation/api_op_DescribeStackSetOperation.go b/service/cloudformation/api_op_DescribeStackSetOperation.go index d5ef58b2f1b..af784976dce 100644 --- a/service/cloudformation/api_op_DescribeStackSetOperation.go +++ b/service/cloudformation/api_op_DescribeStackSetOperation.go @@ -48,9 +48,9 @@ type DescribeStackSetOperationInput struct { // management account, specify SELF. // // * If you are signed in to a delegated - // administrator account, specify DELEGATED_ADMIN. Your account must be registered - // as a delegated administrator in the management account. For more information, - // see Register a delegated administrator + // administrator account, specify DELEGATED_ADMIN. Your Amazon Web Services account + // must be registered as a delegated administrator in the management account. For + // more information, see Register a delegated administrator // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) // in the CloudFormation User Guide. CallAs types.CallAs diff --git a/service/cloudformation/api_op_DetectStackSetDrift.go b/service/cloudformation/api_op_DetectStackSetDrift.go index e6e366fff16..f4fd986bca7 100644 --- a/service/cloudformation/api_op_DetectStackSetDrift.go +++ b/service/cloudformation/api_op_DetectStackSetDrift.go @@ -75,9 +75,9 @@ type DetectStackSetDriftInput struct { // management account, specify SELF. // // * If you are signed in to a delegated - // administrator account, specify DELEGATED_ADMIN. Your account must be registered - // as a delegated administrator in the management account. For more information, - // see Register a delegated administrator + // administrator account, specify DELEGATED_ADMIN. Your Amazon Web Services account + // must be registered as a delegated administrator in the management account. For + // more information, see Register a delegated administrator // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) // in the CloudFormation User Guide. CallAs types.CallAs diff --git a/service/cloudformation/api_op_ExecuteChangeSet.go b/service/cloudformation/api_op_ExecuteChangeSet.go index b93b9b72164..8e9ad793314 100644 --- a/service/cloudformation/api_op_ExecuteChangeSet.go +++ b/service/cloudformation/api_op_ExecuteChangeSet.go @@ -50,6 +50,10 @@ type ExecuteChangeSetInput struct { // them. ClientRequestToken *string + // Preserves the state of previously provisioned resources when an operation fails. + // Default: True + DisableRollback *bool + // If you specified the name of a change set, specify the stack name or ID (ARN) // that is associated with the change set you want to execute. StackName *string diff --git a/service/cloudformation/api_op_GetTemplateSummary.go b/service/cloudformation/api_op_GetTemplateSummary.go index 1a2850f98bd..3919b97066a 100644 --- a/service/cloudformation/api_op_GetTemplateSummary.go +++ b/service/cloudformation/api_op_GetTemplateSummary.go @@ -46,9 +46,9 @@ type GetTemplateSummaryInput struct { // management account, specify SELF. // // * If you are signed in to a delegated - // administrator account, specify DELEGATED_ADMIN. Your account must be registered - // as a delegated administrator in the management account. For more information, - // see Register a delegated administrator + // administrator account, specify DELEGATED_ADMIN. Your Amazon Web Services account + // must be registered as a delegated administrator in the management account. For + // more information, see Register a delegated administrator // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) // in the CloudFormation User Guide. CallAs types.CallAs diff --git a/service/cloudformation/api_op_ListStackInstances.go b/service/cloudformation/api_op_ListStackInstances.go index 23003c5e385..319f2fb38e2 100644 --- a/service/cloudformation/api_op_ListStackInstances.go +++ b/service/cloudformation/api_op_ListStackInstances.go @@ -14,7 +14,8 @@ import ( // Returns summary information about stack instances that are associated with the // specified stack set. You can filter for stack instances that are associated with -// a specific account name or Region, or that have a specific status. +// a specific Amazon Web Services account name or Region, or that have a specific +// status. func (c *Client) ListStackInstances(ctx context.Context, params *ListStackInstancesInput, optFns ...func(*Options)) (*ListStackInstancesOutput, error) { if params == nil { params = &ListStackInstancesInput{} @@ -47,9 +48,9 @@ type ListStackInstancesInput struct { // management account, specify SELF. // // * If you are signed in to a delegated - // administrator account, specify DELEGATED_ADMIN. Your account must be registered - // as a delegated administrator in the management account. For more information, - // see Register a delegated administrator + // administrator account, specify DELEGATED_ADMIN. Your Amazon Web Services account + // must be registered as a delegated administrator in the management account. For + // more information, see Register a delegated administrator // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) // in the CloudFormation User Guide. CallAs types.CallAs @@ -70,7 +71,8 @@ type ListStackInstancesInput struct { // response object's NextToken parameter is set to null. NextToken *string - // The name of the account that you want to list stack instances for. + // The name of the Amazon Web Services account that you want to list stack + // instances for. StackInstanceAccount *string // The name of the Region where you want to list stack instances. diff --git a/service/cloudformation/api_op_ListStackSetOperationResults.go b/service/cloudformation/api_op_ListStackSetOperationResults.go index 00a3bc3faad..046407667ac 100644 --- a/service/cloudformation/api_op_ListStackSetOperationResults.go +++ b/service/cloudformation/api_op_ListStackSetOperationResults.go @@ -50,9 +50,9 @@ type ListStackSetOperationResultsInput struct { // management account, specify SELF. // // * If you are signed in to a delegated - // administrator account, specify DELEGATED_ADMIN. Your account must be registered - // as a delegated administrator in the management account. For more information, - // see Register a delegated administrator + // administrator account, specify DELEGATED_ADMIN. Your Amazon Web Services account + // must be registered as a delegated administrator in the management account. For + // more information, see Register a delegated administrator // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) // in the CloudFormation User Guide. CallAs types.CallAs diff --git a/service/cloudformation/api_op_ListStackSetOperations.go b/service/cloudformation/api_op_ListStackSetOperations.go index 8196a416c7f..60dc764ad78 100644 --- a/service/cloudformation/api_op_ListStackSetOperations.go +++ b/service/cloudformation/api_op_ListStackSetOperations.go @@ -45,9 +45,9 @@ type ListStackSetOperationsInput struct { // management account, specify SELF. // // * If you are signed in to a delegated - // administrator account, specify DELEGATED_ADMIN. Your account must be registered - // as a delegated administrator in the management account. For more information, - // see Register a delegated administrator + // administrator account, specify DELEGATED_ADMIN. Your Amazon Web Services account + // must be registered as a delegated administrator in the management account. For + // more information, see Register a delegated administrator // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) // in the CloudFormation User Guide. CallAs types.CallAs diff --git a/service/cloudformation/api_op_ListStackSets.go b/service/cloudformation/api_op_ListStackSets.go index ae100ebce1a..97ae14558d7 100644 --- a/service/cloudformation/api_op_ListStackSets.go +++ b/service/cloudformation/api_op_ListStackSets.go @@ -16,17 +16,18 @@ import ( // user. // // * [Self-managed permissions] If you set the CallAs parameter to SELF -// while signed in to your account, ListStackSets returns all self-managed stack -// sets in your account. +// while signed in to your Amazon Web Services account, ListStackSets returns all +// self-managed stack sets in your Amazon Web Services account. // -// * [Service-managed permissions] If you set the CallAs -// parameter to SELF while signed in to the organization's management account, -// ListStackSets returns all stack sets in the management account. +// * [Service-managed +// permissions] If you set the CallAs parameter to SELF while signed in to the +// organization's management account, ListStackSets returns all stack sets in the +// management account. // -// * -// [Service-managed permissions] If you set the CallAs parameter to DELEGATED_ADMIN -// while signed in to your member account, ListStackSets returns all stack sets -// with service-managed permissions in the management account. +// * [Service-managed permissions] If you set the CallAs +// parameter to DELEGATED_ADMIN while signed in to your member account, +// ListStackSets returns all stack sets with service-managed permissions in the +// management account. func (c *Client) ListStackSets(ctx context.Context, params *ListStackSetsInput, optFns ...func(*Options)) (*ListStackSetsOutput, error) { if params == nil { params = &ListStackSetsInput{} @@ -53,9 +54,9 @@ type ListStackSetsInput struct { // specify SELF. // // * If you are signed in to a delegated administrator account, - // specify DELEGATED_ADMIN. Your account must be registered as a delegated - // administrator in the management account. For more information, see Register a - // delegated administrator + // specify DELEGATED_ADMIN. Your Amazon Web Services account must be registered as + // a delegated administrator in the management account. For more information, see + // Register a delegated administrator // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) // in the CloudFormation User Guide. CallAs types.CallAs diff --git a/service/cloudformation/api_op_RegisterPublisher.go b/service/cloudformation/api_op_RegisterPublisher.go index 406feced49e..ba33592d28e 100644 --- a/service/cloudformation/api_op_RegisterPublisher.go +++ b/service/cloudformation/api_op_RegisterPublisher.go @@ -12,9 +12,9 @@ import ( // Registers your account as a publisher of public extensions in the CloudFormation // registry. Public extensions are available for use by all CloudFormation users. -// This publisher ID applies to your account in all Regions. For information on -// requirements for registering as a public extension publisher, see Registering -// your account to publish CloudFormation extensions +// This publisher ID applies to your account in all Amazon Web Services Regions. +// For information on requirements for registering as a public extension publisher, +// see Registering your account to publish CloudFormation extensions // (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-prereqs) // in the CloudFormation CLI User Guide. func (c *Client) RegisterPublisher(ctx context.Context, params *RegisterPublisherInput, optFns ...func(*Options)) (*RegisterPublisherOutput, error) { diff --git a/service/cloudformation/api_op_RegisterType.go b/service/cloudformation/api_op_RegisterType.go index b467f20e461..892576cd45c 100644 --- a/service/cloudformation/api_op_RegisterType.go +++ b/service/cloudformation/api_op_RegisterType.go @@ -12,19 +12,20 @@ import ( ) // Registers an extension with the CloudFormation service. Registering an extension -// makes it available for use in CloudFormation templates in your account, and -// includes: +// makes it available for use in CloudFormation templates in your Amazon Web +// Services account, and includes: // // * Validating the extension schema // -// * Determining which handlers, if -// any, have been specified for the extension +// * +// Determining which handlers, if any, have been specified for the extension // -// * Making the extension available for -// use in your account +// * +// Making the extension available for use in your account // -// For more information on how to develop extensions and ready -// them for registeration, see Creating Resource Providers +// For more information on +// how to develop extensions and ready them for registeration, see Creating +// Resource Providers // (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-types.html) // in the CloudFormation CLI User Guide. You can have a maximum of 50 resource // extension versions registered at a time. This maximum is per account and per diff --git a/service/cloudformation/api_op_RollbackStack.go b/service/cloudformation/api_op_RollbackStack.go new file mode 100644 index 00000000000..fc1811297db --- /dev/null +++ b/service/cloudformation/api_op_RollbackStack.go @@ -0,0 +1,144 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package cloudformation + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// When specifying RollbackStack, you preserve the state of previously provisioned +// resources when an operation fails. You can check the status of the stack through +// the DescribeStacks API. Rolls back the specified stack to the last known stable +// state from CREATE_FAILED or UPDATE_FAILED stack statuses. This operation will +// delete a stack if it doesn't contain a last known stable state. A last known +// stable state includes any status in a *_COMPLETE. This includes the following +// stack statuses. +// +// * CREATE_COMPLETE +// +// * UPDATE_COMPLETE +// +// * +// UPDATE_ROLLBACK_COMPLETE +// +// * IMPORT_COMPLETE +// +// * IMPORT_ROLLBACK_COMPLETE +func (c *Client) RollbackStack(ctx context.Context, params *RollbackStackInput, optFns ...func(*Options)) (*RollbackStackOutput, error) { + if params == nil { + params = &RollbackStackInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "RollbackStack", params, optFns, c.addOperationRollbackStackMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*RollbackStackOutput) + out.ResultMetadata = metadata + return out, nil +} + +type RollbackStackInput struct { + + // The name that is associated with the stack. + // + // This member is required. + StackName *string + + // A unique identifier for this RollbackStack request. + ClientRequestToken *string + + // The Amazon Resource Name (ARN) of an Identity and Access Management role that + // CloudFormation assumes to rollback the stack. + RoleARN *string + + noSmithyDocumentSerde +} + +type RollbackStackOutput struct { + + // Unique identifier of the stack. + StackId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationRollbackStackMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsquery_serializeOpRollbackStack{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsquery_deserializeOpRollbackStack{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpRollbackStackValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opRollbackStack(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opRollbackStack(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "cloudformation", + OperationName: "RollbackStack", + } +} diff --git a/service/cloudformation/api_op_StopStackSetOperation.go b/service/cloudformation/api_op_StopStackSetOperation.go index ca7de1afaf2..173ae07547e 100644 --- a/service/cloudformation/api_op_StopStackSetOperation.go +++ b/service/cloudformation/api_op_StopStackSetOperation.go @@ -49,9 +49,9 @@ type StopStackSetOperationInput struct { // management account, specify SELF. // // * If you are signed in to a delegated - // administrator account, specify DELEGATED_ADMIN. Your account must be registered - // as a delegated administrator in the management account. For more information, - // see Register a delegated administrator + // administrator account, specify DELEGATED_ADMIN. Your Amazon Web Services account + // must be registered as a delegated administrator in the management account. For + // more information, see Register a delegated administrator // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) // in the CloudFormation User Guide. CallAs types.CallAs diff --git a/service/cloudformation/api_op_UpdateStack.go b/service/cloudformation/api_op_UpdateStack.go index 9a913348536..2d04307ddac 100644 --- a/service/cloudformation/api_op_UpdateStack.go +++ b/service/cloudformation/api_op_UpdateStack.go @@ -46,27 +46,27 @@ type UpdateStackInput struct { // // * // CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include - // resources that can affect permissions in your account; for example, by creating - // new Identity and Access Management (IAM) users. For those stacks, you must - // explicitly acknowledge this by specifying one of these capabilities. The - // following IAM resources require you to specify either the CAPABILITY_IAM or - // CAPABILITY_NAMED_IAM capability. + // resources that can affect permissions in your Amazon Web Services account; for + // example, by creating new Identity and Access Management (IAM) users. For those + // stacks, you must explicitly acknowledge this by specifying one of these + // capabilities. The following IAM resources require you to specify either the + // CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. // - // * If you have IAM resources, you can specify - // either capability. + // * If you have IAM resources, + // you can specify either capability. // - // * If you have IAM resources with custom names, you must - // specify CAPABILITY_NAMED_IAM. + // * If you have IAM resources with custom + // names, you must specify CAPABILITY_NAMED_IAM. // - // * If you don't specify either of these - // capabilities, CloudFormation returns an InsufficientCapabilities error. + // * If you don't specify either of + // these capabilities, CloudFormation returns an InsufficientCapabilities + // error. // - // If your - // stack template contains these resources, we recommend that you review all - // permissions associated with them and edit their permissions if necessary. + // If your stack template contains these resources, we recommend that you + // review all permissions associated with them and edit their permissions if + // necessary. // - // * - // AWS::IAM::AccessKey + // * AWS::IAM::AccessKey // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html) // // * @@ -137,6 +137,10 @@ type UpdateStackInput struct { // format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002. ClientRequestToken *string + // Preserve the state of previously provisioned resources when an operation fails. + // Default: False + DisableRollback *bool + // Amazon Simple Notification Service topic Amazon Resource Names (ARNs) that // CloudFormation associates with the stack. Specify an empty list to remove all // notification topics. diff --git a/service/cloudformation/api_op_UpdateStackInstances.go b/service/cloudformation/api_op_UpdateStackInstances.go index 9c9f8e3c360..50ca43b3449 100644 --- a/service/cloudformation/api_op_UpdateStackInstances.go +++ b/service/cloudformation/api_op_UpdateStackInstances.go @@ -59,10 +59,11 @@ type UpdateStackInstancesInput struct { // This member is required. StackSetName *string - // [Self-managed permissions] The names of one or more accounts for which you want - // to update parameter values for stack instances. The overridden parameter values - // will be applied to all stack instances in the specified accounts and Regions. - // You can specify Accounts or DeploymentTargets, but not both. + // [Self-managed permissions] The names of one or more Amazon Web Services accounts + // for which you want to update parameter values for stack instances. The + // overridden parameter values will be applied to all stack instances in the + // specified accounts and Regions. You can specify Accounts or DeploymentTargets, + // but not both. Accounts []string // [Service-managed permissions] Specifies whether you are acting as an account @@ -74,9 +75,9 @@ type UpdateStackInstancesInput struct { // management account, specify SELF. // // * If you are signed in to a delegated - // administrator account, specify DELEGATED_ADMIN. Your account must be registered - // as a delegated administrator in the management account. For more information, - // see Register a delegated administrator + // administrator account, specify DELEGATED_ADMIN. Your Amazon Web Services account + // must be registered as a delegated administrator in the management account. For + // more information, see Register a delegated administrator // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) // in the CloudFormation User Guide. CallAs types.CallAs diff --git a/service/cloudformation/api_op_UpdateStackSet.go b/service/cloudformation/api_op_UpdateStackSet.go index 701178625ab..30619864a0c 100644 --- a/service/cloudformation/api_op_UpdateStackSet.go +++ b/service/cloudformation/api_op_UpdateStackSet.go @@ -80,9 +80,9 @@ type UpdateStackSetInput struct { // management account, specify SELF. // // * If you are signed in to a delegated - // administrator account, specify DELEGATED_ADMIN. Your account must be registered - // as a delegated administrator in the management account. For more information, - // see Register a delegated administrator + // administrator account, specify DELEGATED_ADMIN. Your Amazon Web Services account + // must be registered as a delegated administrator in the management account. For + // more information, see Register a delegated administrator // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) // in the CloudFormation User Guide. CallAs types.CallAs @@ -93,26 +93,27 @@ type UpdateStackSetInput struct { // // * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some // stack templates might include resources that can affect permissions in your - // account; for example, by creating new Identity and Access Management (IAM) - // users. For those stacks sets, you must explicitly acknowledge this by specifying - // one of these capabilities. The following IAM resources require you to specify - // either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. + // Amazon Web Services account; for example, by creating new Identity and Access + // Management (IAM) users. For those stacks sets, you must explicitly acknowledge + // this by specifying one of these capabilities. The following IAM resources + // require you to specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM + // capability. // - // * If you have IAM - // resources, you can specify either capability. + // * If you have IAM resources, you can specify either capability. // - // * If you have IAM resources with - // custom names, you must specify CAPABILITY_NAMED_IAM. + // * + // If you have IAM resources with custom names, you must specify + // CAPABILITY_NAMED_IAM. // - // * If you don't specify - // either of these capabilities, CloudFormation returns an InsufficientCapabilities - // error. + // * If you don't specify either of these capabilities, + // CloudFormation returns an InsufficientCapabilities error. // - // If your stack template contains these resources, we recommend that you - // review all permissions associated with them and edit their permissions if - // necessary. + // If your stack + // template contains these resources, we recommend that you review all permissions + // associated with them and edit their permissions if necessary. // - // * AWS::IAM::AccessKey + // * + // AWS::IAM::AccessKey // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html) // // * diff --git a/service/cloudformation/deserializers.go b/service/cloudformation/deserializers.go index 954b68ad7c4..3443d3771ec 100644 --- a/service/cloudformation/deserializers.go +++ b/service/cloudformation/deserializers.go @@ -5740,6 +5740,114 @@ func awsAwsquery_deserializeOpErrorRegisterType(response *smithyhttp.Response, m } } +type awsAwsquery_deserializeOpRollbackStack struct { +} + +func (*awsAwsquery_deserializeOpRollbackStack) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsquery_deserializeOpRollbackStack) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsquery_deserializeOpErrorRollbackStack(response, &metadata) + } + output := &RollbackStackOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + t, err = decoder.GetElement("RollbackStackResult") + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + decoder = smithyxml.WrapNodeDecoder(decoder.Decoder, t) + err = awsAwsquery_deserializeOpDocumentRollbackStackOutput(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + return out, metadata, err +} + +func awsAwsquery_deserializeOpErrorRollbackStack(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + errorComponents, err := awsxml.GetErrorResponseComponents(errorBody, false) + if err != nil { + return err + } + if reqID := errorComponents.RequestID; len(reqID) != 0 { + awsmiddleware.SetRequestIDMetadata(metadata, reqID) + } + if len(errorComponents.Code) != 0 { + errorCode = errorComponents.Code + } + if len(errorComponents.Message) != 0 { + errorMessage = errorComponents.Message + } + errorBody.Seek(0, io.SeekStart) + switch { + case strings.EqualFold("TokenAlreadyExistsException", errorCode): + return awsAwsquery_deserializeErrorTokenAlreadyExistsException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsAwsquery_deserializeOpSetStackPolicy struct { } @@ -20965,6 +21073,55 @@ func awsAwsquery_deserializeOpDocumentRegisterTypeOutput(v **RegisterTypeOutput, return nil } +func awsAwsquery_deserializeOpDocumentRollbackStackOutput(v **RollbackStackOutput, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *RollbackStackOutput + if *v == nil { + sv = &RollbackStackOutput{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("StackId", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.StackId = ptr.String(xtv) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + func awsAwsquery_deserializeOpDocumentSetTypeConfigurationOutput(v **SetTypeConfigurationOutput, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/cloudformation/generated.json b/service/cloudformation/generated.json index d1884c3dd73..5f6f1e8b3c1 100644 --- a/service/cloudformation/generated.json +++ b/service/cloudformation/generated.json @@ -59,6 +59,7 @@ "api_op_RecordHandlerProgress.go", "api_op_RegisterPublisher.go", "api_op_RegisterType.go", + "api_op_RollbackStack.go", "api_op_SetStackPolicy.go", "api_op_SetTypeConfiguration.go", "api_op_SetTypeDefaultVersion.go", diff --git a/service/cloudformation/serializers.go b/service/cloudformation/serializers.go index 0f49909349c..78b5f118251 100644 --- a/service/cloudformation/serializers.go +++ b/service/cloudformation/serializers.go @@ -2983,6 +2983,62 @@ func (m *awsAwsquery_serializeOpRegisterType) HandleSerialize(ctx context.Contex return next.HandleSerialize(ctx, in) } +type awsAwsquery_serializeOpRollbackStack struct { +} + +func (*awsAwsquery_serializeOpRollbackStack) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsquery_serializeOpRollbackStack) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*RollbackStackInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-www-form-urlencoded") + + bodyWriter := bytes.NewBuffer(nil) + bodyEncoder := query.NewEncoder(bodyWriter) + body := bodyEncoder.Object() + body.Key("Action").String("RollbackStack") + body.Key("Version").String("2010-05-15") + + if err := awsAwsquery_serializeOpDocumentRollbackStackInput(input, bodyEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + err = bodyEncoder.Encode() + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(bodyWriter.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + type awsAwsquery_serializeOpSetStackPolicy struct { } @@ -5153,6 +5209,11 @@ func awsAwsquery_serializeOpDocumentExecuteChangeSetInput(v *ExecuteChangeSetInp objectKey.String(*v.ClientRequestToken) } + if v.DisableRollback != nil { + objectKey := object.Key("DisableRollback") + objectKey.Boolean(*v.DisableRollback) + } + if v.StackName != nil { objectKey := object.Key("StackName") objectKey.String(*v.StackName) @@ -5723,6 +5784,28 @@ func awsAwsquery_serializeOpDocumentRegisterTypeInput(v *RegisterTypeInput, valu return nil } +func awsAwsquery_serializeOpDocumentRollbackStackInput(v *RollbackStackInput, value query.Value) error { + object := value.Object() + _ = object + + if v.ClientRequestToken != nil { + objectKey := object.Key("ClientRequestToken") + objectKey.String(*v.ClientRequestToken) + } + + if v.RoleARN != nil { + objectKey := object.Key("RoleARN") + objectKey.String(*v.RoleARN) + } + + if v.StackName != nil { + objectKey := object.Key("StackName") + objectKey.String(*v.StackName) + } + + return nil +} + func awsAwsquery_serializeOpDocumentSetStackPolicyInput(v *SetStackPolicyInput, value query.Value) error { object := value.Object() _ = object @@ -5901,6 +5984,11 @@ func awsAwsquery_serializeOpDocumentUpdateStackInput(v *UpdateStackInput, value objectKey.String(*v.ClientRequestToken) } + if v.DisableRollback != nil { + objectKey := object.Key("DisableRollback") + objectKey.Boolean(*v.DisableRollback) + } + if v.NotificationARNs != nil { objectKey := object.Key("NotificationARNs") if err := awsAwsquery_serializeDocumentNotificationARNs(v.NotificationARNs, objectKey); err != nil { diff --git a/service/cloudformation/types/enums.go b/service/cloudformation/types/enums.go index 056f83be882..a15d65d9dcf 100644 --- a/service/cloudformation/types/enums.go +++ b/service/cloudformation/types/enums.go @@ -600,6 +600,12 @@ const ( ResourceStatusImportRollbackInProgress ResourceStatus = "IMPORT_ROLLBACK_IN_PROGRESS" ResourceStatusImportRollbackFailed ResourceStatus = "IMPORT_ROLLBACK_FAILED" ResourceStatusImportRollbackComplete ResourceStatus = "IMPORT_ROLLBACK_COMPLETE" + ResourceStatusUpdateRollbackInProgress ResourceStatus = "UPDATE_ROLLBACK_IN_PROGRESS" + ResourceStatusUpdateRollbackComplete ResourceStatus = "UPDATE_ROLLBACK_COMPLETE" + ResourceStatusUpdateRollbackFailed ResourceStatus = "UPDATE_ROLLBACK_FAILED" + ResourceStatusRollbackInProgress ResourceStatus = "ROLLBACK_IN_PROGRESS" + ResourceStatusRollbackComplete ResourceStatus = "ROLLBACK_COMPLETE" + ResourceStatusRollbackFailed ResourceStatus = "ROLLBACK_FAILED" ) // Values returns all known values for ResourceStatus. Note that this can be @@ -623,6 +629,12 @@ func (ResourceStatus) Values() []ResourceStatus { "IMPORT_ROLLBACK_IN_PROGRESS", "IMPORT_ROLLBACK_FAILED", "IMPORT_ROLLBACK_COMPLETE", + "UPDATE_ROLLBACK_IN_PROGRESS", + "UPDATE_ROLLBACK_COMPLETE", + "UPDATE_ROLLBACK_FAILED", + "ROLLBACK_IN_PROGRESS", + "ROLLBACK_COMPLETE", + "ROLLBACK_FAILED", } } @@ -903,6 +915,7 @@ const ( StackStatusUpdateInProgress StackStatus = "UPDATE_IN_PROGRESS" StackStatusUpdateCompleteCleanupInProgress StackStatus = "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS" StackStatusUpdateComplete StackStatus = "UPDATE_COMPLETE" + StackStatusUpdateFailed StackStatus = "UPDATE_FAILED" StackStatusUpdateRollbackInProgress StackStatus = "UPDATE_ROLLBACK_IN_PROGRESS" StackStatusUpdateRollbackFailed StackStatus = "UPDATE_ROLLBACK_FAILED" StackStatusUpdateRollbackCompleteCleanupInProgress StackStatus = "UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS" @@ -932,6 +945,7 @@ func (StackStatus) Values() []StackStatus { "UPDATE_IN_PROGRESS", "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS", "UPDATE_COMPLETE", + "UPDATE_FAILED", "UPDATE_ROLLBACK_IN_PROGRESS", "UPDATE_ROLLBACK_FAILED", "UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS", diff --git a/service/cloudformation/types/types.go b/service/cloudformation/types/types.go index 98c7b8500c1..02dfe104920 100644 --- a/service/cloudformation/types/types.go +++ b/service/cloudformation/types/types.go @@ -190,8 +190,8 @@ type ChangeSetSummary struct { // operations, specify OrganizationalUnitIds. type DeploymentTargets struct { - // The names of one or more accounts for which you want to deploy stack set - // updates. + // The names of one or more Amazon Web Services accounts for which you want to + // deploy stack set updates. Accounts []string // Returns the value of the AccountsUrl property. @@ -329,7 +329,7 @@ type ParameterDeclaration struct { Description *string // Flag that indicates whether the parameter value is shown as plain text in logs - // and in the Management Console. + // and in the Amazon Web Services Management Console. NoEcho *bool // The criteria that CloudFormation uses to validate parameter values. @@ -929,8 +929,8 @@ type StackEvent struct { // stack and the stack status. type StackInstance struct { - // [Self-managed permissions] The name of the account that the stack instance is - // associated with. + // [Self-managed permissions] The name of the Amazon Web Services account that the + // stack instance is associated with. Account *string // Status of the stack instance's actual configuration compared to the expected @@ -966,7 +966,8 @@ type StackInstance struct { // overridden in this stack instance. ParameterOverrides []Parameter - // The name of the Region that the stack instance is associated with. + // The name of the Amazon Web Services Region that the stack instance is associated + // with. Region *string // The ID of the stack instance. @@ -1056,8 +1057,8 @@ type StackInstanceFilter struct { // The structure that contains summary information about a stack instance. type StackInstanceSummary struct { - // [Self-managed permissions] The name of the account that the stack instance is - // associated with. + // [Self-managed permissions] The name of the Amazon Web Services account that the + // stack instance is associated with. Account *string // Status of the stack instance's actual configuration compared to the expected @@ -1089,7 +1090,8 @@ type StackInstanceSummary struct { // (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html). OrganizationalUnitId *string - // The name of the Region that the stack instance is associated with. + // The name of the Amazon Web Services Region that the stack instance is associated + // with. Region *string // The ID of the stack instance. @@ -1455,9 +1457,10 @@ type StackResourceSummary struct { } // A structure that contains information about a stack set. A stack set enables you -// to provision stacks into accounts and across Regions by using a single -// CloudFormation template. In the stack set, you specify the template to use, as -// well as any parameters and capabilities that the template requires. +// to provision stacks into Amazon Web Services accounts and across Regions by +// using a single CloudFormation template. In the stack set, you specify the +// template to use, as well as any parameters and capabilities that the template +// requires. type StackSet struct { // The Amazon Resource Number (ARN) of the IAM role used to create or update the @@ -1474,9 +1477,10 @@ type StackSet struct { AutoDeployment *AutoDeployment // The capabilities that are allowed in the stack set. Some stack set templates - // might include resources that can affect permissions in your account—for example, - // by creating new Identity and Access Management (IAM) users. For more - // information, see Acknowledging IAM Resources in CloudFormation Templates. + // might include resources that can affect permissions in your Amazon Web Services + // account—for example, by creating new Identity and Access Management (IAM) users. + // For more information, see Acknowledging IAM Resources in CloudFormation + // Templates. // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities) Capabilities []Capability @@ -1779,7 +1783,8 @@ type StackSetOperationPreferences struct { // for a given account in a given Region. type StackSetOperationResultSummary struct { - // [Self-managed permissions] The name of the account for this operation result. + // [Self-managed permissions] The name of the Amazon Web Services account for this + // operation result. Account *string // The results of the account gate function CloudFormation invokes, if present, @@ -1791,7 +1796,7 @@ type StackSetOperationResultSummary struct { // (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html). OrganizationalUnitId *string - // The name of the Region for this operation result. + // The name of the Amazon Web Services Region for this operation result. Region *string // The result status of the stack set operation for the given account in the given diff --git a/service/cloudformation/validators.go b/service/cloudformation/validators.go index 2c9654abef2..59d16ae31b4 100644 --- a/service/cloudformation/validators.go +++ b/service/cloudformation/validators.go @@ -690,6 +690,26 @@ func (m *validateOpRegisterType) HandleInitialize(ctx context.Context, in middle return next.HandleInitialize(ctx, in) } +type validateOpRollbackStack struct { +} + +func (*validateOpRollbackStack) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpRollbackStack) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*RollbackStackInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpRollbackStackInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpSetStackPolicy struct { } @@ -986,6 +1006,10 @@ func addOpRegisterTypeValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpRegisterType{}, middleware.After) } +func addOpRollbackStackValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpRollbackStack{}, middleware.After) +} + func addOpSetStackPolicyValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpSetStackPolicy{}, middleware.After) } @@ -1744,6 +1768,21 @@ func validateOpRegisterTypeInput(v *RegisterTypeInput) error { } } +func validateOpRollbackStackInput(v *RollbackStackInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "RollbackStackInput"} + if v.StackName == nil { + invalidParams.Add(smithy.NewErrParamRequired("StackName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpSetStackPolicyInput(v *SetStackPolicyInput) error { if v == nil { return nil diff --git a/service/cloudtrail/api_op_AddTags.go b/service/cloudtrail/api_op_AddTags.go index 71a2ec8c9fb..90d8ca41ca5 100644 --- a/service/cloudtrail/api_op_AddTags.go +++ b/service/cloudtrail/api_op_AddTags.go @@ -16,8 +16,8 @@ import ( // must be unique for a trail; you cannot have two keys with the same name but // different values. If you specify a key without a value, the tag will be created // with the specified key and a value of null. You can tag a trail that applies to -// all AWS Regions only from the Region in which the trail was created (also known -// as its home region). +// all Amazon Web Services Regions only from the Region in which the trail was +// created (also known as its home region). func (c *Client) AddTags(ctx context.Context, params *AddTagsInput, optFns ...func(*Options)) (*AddTagsOutput, error) { if params == nil { params = &AddTagsInput{} @@ -43,14 +43,13 @@ type AddTagsInput struct { // This member is required. ResourceId *string - // Contains a list of CloudTrail tags, up to a limit of 50 + // Contains a list of tags, up to a limit of 50 TagsList []types.Tag noSmithyDocumentSerde } -// Returns the objects or data listed below if successful. Otherwise, returns an -// error. +// Returns the objects or data if successful. Otherwise, returns an error. type AddTagsOutput struct { // Metadata pertaining to the operation's result. ResultMetadata middleware.Metadata diff --git a/service/cloudtrail/api_op_CreateTrail.go b/service/cloudtrail/api_op_CreateTrail.go index 2612787499b..a216b9d51ef 100644 --- a/service/cloudtrail/api_op_CreateTrail.go +++ b/service/cloudtrail/api_op_CreateTrail.go @@ -44,7 +44,7 @@ type CreateTrailInput struct { // // * Have no adjacent // periods, underscores or dashes. Names like my-_namespace and my--namespace are - // invalid. + // not valid. // // * Not be in IP address format (for example, 192.168.5.4) // @@ -69,7 +69,7 @@ type CreateTrailInput struct { // Specifies whether log file integrity validation is enabled. The default is // false. When you disable log file integrity validation, the chain of digest files - // is broken after one hour. CloudTrail will not create digest files for log files + // is broken after one hour. CloudTrail does not create digest files for log files // that were delivered during a period in which log file integrity validation was // disabled. For example, if you enable log file integrity validation at noon on // January 1, disable it at noon on January 2, and re-enable it at noon on January @@ -89,15 +89,19 @@ type CreateTrailInput struct { IsMultiRegionTrail *bool // Specifies whether the trail is created for all accounts in an organization in - // AWS Organizations, or only for the current AWS account. The default is false, - // and cannot be true unless the call is made on behalf of an AWS account that is - // the master account for an organization in AWS Organizations. + // Organizations, or only for the current Amazon Web Services account. The default + // is false, and cannot be true unless the call is made on behalf of an Amazon Web + // Services account that is the management account for an organization in + // Organizations. IsOrganizationTrail *bool // Specifies the KMS key ID to use to encrypt the logs delivered by CloudTrail. The // value can be an alias name prefixed by "alias/", a fully specified ARN to an // alias, a fully specified ARN to a key, or a globally unique identifier. - // Examples: + // CloudTrail also supports KMS multi-Region keys. For more information about + // multi-Region keys, see Using multi-Region keys + // (https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) + // in the Key Management Service Developer Guide. Examples: // // * alias/MyAliasName // @@ -151,7 +155,7 @@ type CreateTrailOutput struct { IsOrganizationTrail *bool // Specifies the KMS key ID that encrypts the logs delivered by CloudTrail. The - // value is a fully specified ARN to a KMS key in the format: + // value is a fully specified ARN to a KMS key in the following format. // arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012 KmsKeyId *string diff --git a/service/cloudtrail/api_op_DeleteTrail.go b/service/cloudtrail/api_op_DeleteTrail.go index 067e6afef10..fc98c6d3da1 100644 --- a/service/cloudtrail/api_op_DeleteTrail.go +++ b/service/cloudtrail/api_op_DeleteTrail.go @@ -31,8 +31,9 @@ func (c *Client) DeleteTrail(ctx context.Context, params *DeleteTrailInput, optF // The request that specifies the name of a trail to delete. type DeleteTrailInput struct { - // Specifies the name or the CloudTrail ARN of the trail to be deleted. The format - // of a trail ARN is: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail + // Specifies the name or the CloudTrail ARN of the trail to be deleted. The + // following is the format of a trail ARN. + // arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail // // This member is required. Name *string diff --git a/service/cloudtrail/api_op_DescribeTrails.go b/service/cloudtrail/api_op_DescribeTrails.go index aed31660335..61a1ff3ab3d 100644 --- a/service/cloudtrail/api_op_DescribeTrails.go +++ b/service/cloudtrail/api_op_DescribeTrails.go @@ -70,7 +70,7 @@ type DescribeTrailsOutput struct { // values for the objects exist in a trail's configuration. For example, // SNSTopicName and SNSTopicARN are only returned in results if a trail is // configured to send SNS notifications. Similarly, KMSKeyId only appears in - // results if a trail's log files are encrypted with AWS KMS-managed keys. + // results if a trail's log files are encrypted with KMS customer managed keys. TrailList []types.Trail // Metadata pertaining to the operation's result. diff --git a/service/cloudtrail/api_op_GetEventSelectors.go b/service/cloudtrail/api_op_GetEventSelectors.go index c4e80de4861..6949491ae68 100644 --- a/service/cloudtrail/api_op_GetEventSelectors.go +++ b/service/cloudtrail/api_op_GetEventSelectors.go @@ -27,7 +27,7 @@ import ( // // For more information, see Logging Data and Management Events for Trails // (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-and-data-events-with-cloudtrail.html) -// in the AWS CloudTrail User Guide. +// in the CloudTrail User Guide. func (c *Client) GetEventSelectors(ctx context.Context, params *GetEventSelectorsInput, optFns ...func(*Options)) (*GetEventSelectorsOutput, error) { if params == nil { params = &GetEventSelectorsInput{} diff --git a/service/cloudtrail/api_op_GetInsightSelectors.go b/service/cloudtrail/api_op_GetInsightSelectors.go index a09776b5eef..62027071b23 100644 --- a/service/cloudtrail/api_op_GetInsightSelectors.go +++ b/service/cloudtrail/api_op_GetInsightSelectors.go @@ -18,7 +18,7 @@ import ( // operation throws the exception InsightNotEnabledException For more information, // see Logging CloudTrail Insights Events for Trails // (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-insights-events-with-cloudtrail.html) -// in the AWS CloudTrail User Guide. +// in the CloudTrail User Guide. func (c *Client) GetInsightSelectors(ctx context.Context, params *GetInsightSelectorsInput, optFns ...func(*Options)) (*GetInsightSelectorsOutput, error) { if params == nil { params = &GetInsightSelectorsInput{} diff --git a/service/cloudtrail/api_op_GetTrailStatus.go b/service/cloudtrail/api_op_GetTrailStatus.go index d3861661574..cf9a78b2137 100644 --- a/service/cloudtrail/api_op_GetTrailStatus.go +++ b/service/cloudtrail/api_op_GetTrailStatus.go @@ -36,8 +36,8 @@ type GetTrailStatusInput struct { // Specifies the name or the CloudTrail ARN of the trail for which you are // requesting status. To get the status of a shadow trail (a replication of the - // trail in another region), you must specify its ARN. The format of a trail ARN - // is: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail + // trail in another region), you must specify its ARN. The following is the format + // of a trail ARN. arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail // // This member is required. Name *string @@ -49,7 +49,7 @@ type GetTrailStatusInput struct { // error. type GetTrailStatusOutput struct { - // Whether the CloudTrail is currently logging AWS API calls. + // Whether the CloudTrail trail is currently logging Amazon Web Services API calls. IsLogging *bool // Displays any CloudWatch Logs error that CloudTrail encountered when attempting @@ -67,13 +67,13 @@ type GetTrailStatusOutput struct { LatestDeliveryAttemptTime *string // Displays any Amazon S3 error that CloudTrail encountered when attempting to - // deliver log files to the designated bucket. For more information see the topic - // Error Responses - // (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html) in the - // Amazon S3 API Reference. This error occurs only when there is a problem with the - // destination S3 bucket and will not occur for timeouts. To resolve the issue, - // create a new bucket and call UpdateTrail to specify the new bucket, or fix the - // existing objects so that CloudTrail can again write to the bucket. + // deliver log files to the designated bucket. For more information, see Error + // Responses (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html) + // in the Amazon S3 API Reference. This error occurs only when there is a problem + // with the destination S3 bucket, and does not occur for requests that time out. + // To resolve the issue, create a new bucket, and then call UpdateTrail to specify + // the new bucket; or fix the existing objects so that CloudTrail can again write + // to the bucket. LatestDeliveryError *string // Specifies the date and time that CloudTrail last delivered log files to an @@ -81,13 +81,13 @@ type GetTrailStatusOutput struct { LatestDeliveryTime *time.Time // Displays any Amazon S3 error that CloudTrail encountered when attempting to - // deliver a digest file to the designated bucket. For more information see the - // topic Error Responses - // (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html) in the - // Amazon S3 API Reference. This error occurs only when there is a problem with the - // destination S3 bucket and will not occur for timeouts. To resolve the issue, - // create a new bucket and call UpdateTrail to specify the new bucket, or fix the - // existing objects so that CloudTrail can again write to the bucket. + // deliver a digest file to the designated bucket. For more information, see Error + // Responses (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html) + // in the Amazon S3 API Reference. This error occurs only when there is a problem + // with the destination S3 bucket, and does not occur for requests that time out. + // To resolve the issue, create a new bucket, and then call UpdateTrail to specify + // the new bucket; or fix the existing objects so that CloudTrail can again write + // to the bucket. LatestDigestDeliveryError *string // Specifies the date and time that CloudTrail last delivered a digest file to an @@ -111,11 +111,11 @@ type GetTrailStatusOutput struct { LatestNotificationTime *time.Time // Specifies the most recent date and time when CloudTrail started recording API - // calls for an AWS account. + // calls for an Amazon Web Services account. StartLoggingTime *time.Time // Specifies the most recent date and time when CloudTrail stopped recording API - // calls for an AWS account. + // calls for an Amazon Web Services account. StopLoggingTime *time.Time // This field is no longer in use. diff --git a/service/cloudtrail/api_op_ListPublicKeys.go b/service/cloudtrail/api_op_ListPublicKeys.go index 425f6030d06..9c26caca25f 100644 --- a/service/cloudtrail/api_op_ListPublicKeys.go +++ b/service/cloudtrail/api_op_ListPublicKeys.go @@ -16,10 +16,10 @@ import ( // Returns all public keys whose private keys were used to sign the digest files // within the specified time range. The public key is needed to validate digest // files that were signed with its corresponding private key. CloudTrail uses -// different private/public key pairs per region. Each digest file is signed with a -// private key unique to its region. Therefore, when you validate a digest file -// from a particular region, you must look in the same region for its corresponding -// public key. +// different private and public key pairs per region. Each digest file is signed +// with a private key unique to its region. When you validate a digest file from a +// specific region, you must look in the same region for its corresponding public +// key. func (c *Client) ListPublicKeys(ctx context.Context, params *ListPublicKeysInput, optFns ...func(*Options)) (*ListPublicKeysOutput, error) { if params == nil { params = &ListPublicKeysInput{} diff --git a/service/cloudtrail/api_op_ListTags.go b/service/cloudtrail/api_op_ListTags.go index 172e08e3626..f170ea2495e 100644 --- a/service/cloudtrail/api_op_ListTags.go +++ b/service/cloudtrail/api_op_ListTags.go @@ -32,7 +32,7 @@ func (c *Client) ListTags(ctx context.Context, params *ListTagsInput, optFns ... type ListTagsInput struct { // Specifies a list of trail ARNs whose tags will be listed. The list has a limit - // of 20 ARNs. The format of a trail ARN is: + // of 20 ARNs. The following is the format of a trail ARN. // arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail // // This member is required. diff --git a/service/cloudtrail/api_op_LookupEvents.go b/service/cloudtrail/api_op_LookupEvents.go index f01ebf38e18..bb8513c84b4 100644 --- a/service/cloudtrail/api_op_LookupEvents.go +++ b/service/cloudtrail/api_op_LookupEvents.go @@ -21,14 +21,14 @@ import ( // region within the last 90 days. Lookup supports the following attributes for // management events: // -// * AWS access key +// * Amazon Web Services access key // // * Event ID // -// * Event name -// // * Event -// source +// name +// +// * Event source // // * Read only // @@ -36,23 +36,23 @@ import ( // // * Resource type // -// * User name -// -// Lookup -// supports the following attributes for Insights events: +// * User +// name // -// * Event ID +// Lookup supports the following attributes for Insights events: // // * Event -// name +// ID +// +// * Event name // // * Event source // -// All attributes are optional. The default number of results -// returned is 50, with a maximum of 50 possible. The response includes a token -// that you can use to get the next page of results. The rate of lookup requests is -// limited to two per second, per account, per region. If this limit is exceeded, a -// throttling error occurs. +// All attributes are optional. The default +// number of results returned is 50, with a maximum of 50 possible. The response +// includes a token that you can use to get the next page of results. The rate of +// lookup requests is limited to two per second, per account, per region. If this +// limit is exceeded, a throttling error occurs. func (c *Client) LookupEvents(ctx context.Context, params *LookupEventsInput, optFns ...func(*Options)) (*LookupEventsOutput, error) { if params == nil { params = &LookupEventsInput{} diff --git a/service/cloudtrail/api_op_PutEventSelectors.go b/service/cloudtrail/api_op_PutEventSelectors.go index 11e4feedeea..63a5abd3e07 100644 --- a/service/cloudtrail/api_op_PutEventSelectors.go +++ b/service/cloudtrail/api_op_PutEventSelectors.go @@ -42,9 +42,9 @@ import ( // thrown. You can configure up to five event selectors for each trail. For more // information, see Logging data and management events for trails // (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-and-data-events-with-cloudtrail.html) -// and Quotas in AWS CloudTrail +// and Quotas in CloudTrail // (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/WhatIsCloudTrail-Limits.html) -// in the AWS CloudTrail User Guide. You can add advanced event selectors, and +// in the CloudTrail User Guide. You can add advanced event selectors, and // conditions for your advanced event selectors, up to a maximum of 500 values for // all conditions and selectors on a trail. You can use either // AdvancedEventSelectors or EventSelectors, but not both. If you apply @@ -52,7 +52,7 @@ import ( // For more information about advanced event selectors, see Logging data events for // trails // (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html) -// in the AWS CloudTrail User Guide. +// in the CloudTrail User Guide. func (c *Client) PutEventSelectors(ctx context.Context, params *PutEventSelectorsInput, optFns ...func(*Options)) (*PutEventSelectorsOutput, error) { if params == nil { params = &PutEventSelectorsInput{} @@ -83,13 +83,13 @@ type PutEventSelectorsInput struct { // characters // // * Have no adjacent periods, underscores or dashes. Names like - // my-_namespace and my--namespace are invalid. + // my-_namespace and my--namespace are not valid. // - // * Not be in IP address format (for - // example, 192.168.5.4) + // * Not be in IP address format + // (for example, 192.168.5.4) // - // If you specify a trail ARN, it must be in the format: - // arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail + // If you specify a trail ARN, it must be in the + // following format. arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail // // This member is required. TrailName *string @@ -102,7 +102,7 @@ type PutEventSelectorsInput struct { // For more information about advanced event selectors, see Logging data events for // trails // (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html) - // in the AWS CloudTrail User Guide. + // in the CloudTrail User Guide. AdvancedEventSelectors []types.AdvancedEventSelector // Specifies the settings for your event selectors. You can configure up to five @@ -123,8 +123,9 @@ type PutEventSelectorsOutput struct { // Specifies the event selectors configured for your trail. EventSelectors []types.EventSelector - // Specifies the ARN of the trail that was updated with event selectors. The format - // of a trail ARN is: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail + // Specifies the ARN of the trail that was updated with event selectors. The + // following is the format of a trail ARN. + // arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail TrailARN *string // Metadata pertaining to the operation's result. diff --git a/service/cloudtrail/api_op_PutInsightSelectors.go b/service/cloudtrail/api_op_PutInsightSelectors.go index 9f1b71213b0..d04f220e605 100644 --- a/service/cloudtrail/api_op_PutInsightSelectors.go +++ b/service/cloudtrail/api_op_PutInsightSelectors.go @@ -13,8 +13,8 @@ import ( // Lets you enable Insights event logging by specifying the Insights selectors that // you want to enable on an existing trail. You also use PutInsightSelectors to -// turn off Insights event logging, by passing an empty list of insight types. In -// this release, only ApiCallRateInsight is supported as an Insights selector. +// turn off Insights event logging, by passing an empty list of insight types. The +// valid Insights event type in this release is ApiCallRateInsight. func (c *Client) PutInsightSelectors(ctx context.Context, params *PutInsightSelectorsInput, optFns ...func(*Options)) (*PutInsightSelectorsOutput, error) { if params == nil { params = &PutInsightSelectorsInput{} @@ -32,8 +32,8 @@ func (c *Client) PutInsightSelectors(ctx context.Context, params *PutInsightSele type PutInsightSelectorsInput struct { - // A JSON string that contains the insight types you want to log on a trail. In - // this release, only ApiCallRateInsight is supported as an insight type. + // A JSON string that contains the Insights types that you want to log on a trail. + // The valid Insights type in this release is ApiCallRateInsight. // // This member is required. InsightSelectors []types.InsightSelector @@ -49,8 +49,8 @@ type PutInsightSelectorsInput struct { type PutInsightSelectorsOutput struct { - // A JSON string that contains the insight types you want to log on a trail. In - // this release, only ApiCallRateInsight is supported as an insight type. + // A JSON string that contains the Insights event types that you want to log on a + // trail. The valid Insights type in this release is ApiCallRateInsight. InsightSelectors []types.InsightSelector // The Amazon Resource Name (ARN) of a trail for which you want to change or add diff --git a/service/cloudtrail/api_op_StartLogging.go b/service/cloudtrail/api_op_StartLogging.go index c6f0906ab74..1b12cfd5e9d 100644 --- a/service/cloudtrail/api_op_StartLogging.go +++ b/service/cloudtrail/api_op_StartLogging.go @@ -10,11 +10,11 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Starts the recording of AWS API calls and log file delivery for a trail. For a -// trail that is enabled in all regions, this operation must be called from the -// region in which the trail was created. This operation cannot be called on the -// shadow trails (replicated trails in other regions) of a trail that is enabled in -// all regions. +// Starts the recording of Amazon Web Services API calls and log file delivery for +// a trail. For a trail that is enabled in all regions, this operation must be +// called from the region in which the trail was created. This operation cannot be +// called on the shadow trails (replicated trails in other regions) of a trail that +// is enabled in all regions. func (c *Client) StartLogging(ctx context.Context, params *StartLoggingInput, optFns ...func(*Options)) (*StartLoggingOutput, error) { if params == nil { params = &StartLoggingInput{} @@ -30,11 +30,12 @@ func (c *Client) StartLogging(ctx context.Context, params *StartLoggingInput, op return out, nil } -// The request to CloudTrail to start logging AWS API calls for an account. +// The request to CloudTrail to start logging Amazon Web Services API calls for an +// account. type StartLoggingInput struct { // Specifies the name or the CloudTrail ARN of the trail for which CloudTrail logs - // AWS API calls. The format of a trail ARN is: + // Amazon Web Services API calls. The following is the format of a trail ARN. // arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail // // This member is required. diff --git a/service/cloudtrail/api_op_StopLogging.go b/service/cloudtrail/api_op_StopLogging.go index a2d84c50f68..4331d70bebd 100644 --- a/service/cloudtrail/api_op_StopLogging.go +++ b/service/cloudtrail/api_op_StopLogging.go @@ -10,13 +10,14 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Suspends the recording of AWS API calls and log file delivery for the specified -// trail. Under most circumstances, there is no need to use this action. You can -// update a trail without stopping it first. This action is the only way to stop -// recording. For a trail enabled in all regions, this operation must be called -// from the region in which the trail was created, or an InvalidHomeRegionException -// will occur. This operation cannot be called on the shadow trails (replicated -// trails in other regions) of a trail enabled in all regions. +// Suspends the recording of Amazon Web Services API calls and log file delivery +// for the specified trail. Under most circumstances, there is no need to use this +// action. You can update a trail without stopping it first. This action is the +// only way to stop recording. For a trail enabled in all regions, this operation +// must be called from the region in which the trail was created, or an +// InvalidHomeRegionException will occur. This operation cannot be called on the +// shadow trails (replicated trails in other regions) of a trail enabled in all +// regions. func (c *Client) StopLogging(ctx context.Context, params *StopLoggingInput, optFns ...func(*Options)) (*StopLoggingOutput, error) { if params == nil { params = &StopLoggingInput{} @@ -32,13 +33,13 @@ func (c *Client) StopLogging(ctx context.Context, params *StopLoggingInput, optF return out, nil } -// Passes the request to CloudTrail to stop logging AWS API calls for the specified -// account. +// Passes the request to CloudTrail to stop logging Amazon Web Services API calls +// for the specified account. type StopLoggingInput struct { // Specifies the name or the CloudTrail ARN of the trail for which CloudTrail will - // stop logging AWS API calls. The format of a trail ARN is: - // arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail + // stop logging Amazon Web Services API calls. The following is the format of a + // trail ARN. arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail // // This member is required. Name *string diff --git a/service/cloudtrail/api_op_UpdateTrail.go b/service/cloudtrail/api_op_UpdateTrail.go index 1ef5729b951..269c6d0b35e 100644 --- a/service/cloudtrail/api_op_UpdateTrail.go +++ b/service/cloudtrail/api_op_UpdateTrail.go @@ -10,12 +10,12 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Updates the settings that specify delivery of log files. Changes to a trail do -// not require stopping the CloudTrail service. Use this action to designate an -// existing bucket for log delivery. If the existing bucket has previously been a -// target for CloudTrail log files, an IAM policy exists for the bucket. -// UpdateTrail must be called from the region in which the trail was created; -// otherwise, an InvalidHomeRegionException is thrown. +// Updates trail settings that control what events you are logging, and how to +// handle log files. Changes to a trail do not require stopping the CloudTrail +// service. Use this action to designate an existing bucket for log delivery. If +// the existing bucket has previously been a target for CloudTrail log files, an +// IAM policy exists for the bucket. UpdateTrail must be called from the region in +// which the trail was created; otherwise, an InvalidHomeRegionException is thrown. func (c *Client) UpdateTrail(ctx context.Context, params *UpdateTrailInput, optFns ...func(*Options)) (*UpdateTrailOutput, error) { if params == nil { params = &UpdateTrailInput{} @@ -47,20 +47,20 @@ type UpdateTrailInput struct { // characters // // * Have no adjacent periods, underscores or dashes. Names like - // my-_namespace and my--namespace are invalid. + // my-_namespace and my--namespace are not valid. // - // * Not be in IP address format (for - // example, 192.168.5.4) + // * Not be in IP address format + // (for example, 192.168.5.4) // - // If Name is a trail ARN, it must be in the format: - // arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail + // If Name is a trail ARN, it must be in the following + // format. arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail // // This member is required. Name *string // Specifies a log group name using an Amazon Resource Name (ARN), a unique - // identifier that represents the log group to which CloudTrail logs will be - // delivered. Not required unless you specify CloudWatchLogsRoleArn. + // identifier that represents the log group to which CloudTrail logs are delivered. + // Not required unless you specify CloudWatchLogsRoleArn. CloudWatchLogsLogGroupArn *string // Specifies the role for the CloudWatch Logs endpoint to assume to write to a @@ -69,7 +69,7 @@ type UpdateTrailInput struct { // Specifies whether log file validation is enabled. The default is false. When you // disable log file integrity validation, the chain of digest files is broken after - // one hour. CloudTrail will not create digest files for log files that were + // one hour. CloudTrail does not create digest files for log files that were // delivered during a period in which log file integrity validation was disabled. // For example, if you enable log file integrity validation at noon on January 1, // disable it at noon on January 2, and re-enable it at noon on January 10, digest @@ -91,20 +91,24 @@ type UpdateTrailInput struct { // using trails that log events in all regions. IsMultiRegionTrail *bool - // Specifies whether the trail is applied to all accounts in an organization in AWS - // Organizations, or only for the current AWS account. The default is false, and - // cannot be true unless the call is made on behalf of an AWS account that is the - // master account for an organization in AWS Organizations. If the trail is not an - // organization trail and this is set to true, the trail will be created in all AWS - // accounts that belong to the organization. If the trail is an organization trail - // and this is set to false, the trail will remain in the current AWS account but - // be deleted from all member accounts in the organization. + // Specifies whether the trail is applied to all accounts in an organization in + // Organizations, or only for the current Amazon Web Services account. The default + // is false, and cannot be true unless the call is made on behalf of an Amazon Web + // Services account that is the management account for an organization in + // Organizations. If the trail is not an organization trail and this is set to + // true, the trail will be created in all Amazon Web Services accounts that belong + // to the organization. If the trail is an organization trail and this is set to + // false, the trail will remain in the current Amazon Web Services account but be + // deleted from all member accounts in the organization. IsOrganizationTrail *bool // Specifies the KMS key ID to use to encrypt the logs delivered by CloudTrail. The // value can be an alias name prefixed by "alias/", a fully specified ARN to an // alias, a fully specified ARN to a key, or a globally unique identifier. - // Examples: + // CloudTrail also supports KMS multi-Region keys. For more information about + // multi-Region keys, see Using multi-Region keys + // (https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) + // in the Key Management Service Developer Guide. Examples: // // * alias/MyAliasName // @@ -142,7 +146,7 @@ type UpdateTrailInput struct { type UpdateTrailOutput struct { // Specifies the Amazon Resource Name (ARN) of the log group to which CloudTrail - // logs will be delivered. + // logs are delivered. CloudWatchLogsLogGroupArn *string // Specifies the role for the CloudWatch Logs endpoint to assume to write to a @@ -160,7 +164,7 @@ type UpdateTrailOutput struct { IsOrganizationTrail *bool // Specifies the KMS key ID that encrypts the logs delivered by CloudTrail. The - // value is a fully specified ARN to a KMS key in the format: + // value is a fully specified ARN to a KMS key in the following format. // arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012 KmsKeyId *string @@ -175,22 +179,22 @@ type UpdateTrailOutput struct { // Specifies the Amazon S3 key prefix that comes after the name of the bucket you // have designated for log file delivery. For more information, see Finding Your - // CloudTrail Log Files + // IAM Log Files // (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-find-log-files.html). S3KeyPrefix *string // Specifies the ARN of the Amazon SNS topic that CloudTrail uses to send - // notifications when log files are delivered. The format of a topic ARN is: - // arn:aws:sns:us-east-2:123456789012:MyTopic + // notifications when log files are delivered. The following is the format of a + // topic ARN. arn:aws:sns:us-east-2:123456789012:MyTopic SnsTopicARN *string - // This field is no longer in use. Use SnsTopicARN. + // This field is no longer in use. Use UpdateTrailResponse$SnsTopicARN. // // Deprecated: This member has been deprecated. SnsTopicName *string - // Specifies the ARN of the trail that was updated. The format of a trail ARN is: - // arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail + // Specifies the ARN of the trail that was updated. The following is the format of + // a trail ARN. arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail TrailARN *string // Metadata pertaining to the operation's result. diff --git a/service/cloudtrail/doc.go b/service/cloudtrail/doc.go index cf2c733dc9c..44ee7e496ae 100644 --- a/service/cloudtrail/doc.go +++ b/service/cloudtrail/doc.go @@ -3,21 +3,22 @@ // Package cloudtrail provides the API client, operations, and parameter types for // AWS CloudTrail. // -// AWS CloudTrail This is the CloudTrail API Reference. It provides descriptions of +// CloudTrail This is the CloudTrail API Reference. It provides descriptions of // actions, data types, common parameters, and common errors for CloudTrail. -// CloudTrail is a web service that records AWS API calls for your AWS account and -// delivers log files to an Amazon S3 bucket. The recorded information includes the -// identity of the user, the start time of the AWS API call, the source IP address, -// the request parameters, and the response elements returned by the service. As an -// alternative to the API, you can use one of the AWS SDKs, which consist of -// libraries and sample code for various programming languages and platforms (Java, -// Ruby, .NET, iOS, Android, etc.). The SDKs provide a convenient way to create -// programmatic access to AWSCloudTrail. For example, the SDKs take care of -// cryptographically signing requests, managing errors, and retrying requests -// automatically. For information about the AWS SDKs, including how to download and -// install them, see the Tools for Amazon Web Services page -// (http://aws.amazon.com/tools/). See the AWS CloudTrail User Guide +// CloudTrail is a web service that records Amazon Web Services API calls for your +// Amazon Web Services account and delivers log files to an Amazon S3 bucket. The +// recorded information includes the identity of the user, the start time of the +// Amazon Web Services API call, the source IP address, the request parameters, and +// the response elements returned by the service. As an alternative to the API, you +// can use one of the Amazon Web Services SDKs, which consist of libraries and +// sample code for various programming languages and platforms (Java, Ruby, .NET, +// iOS, Android, etc.). The SDKs provide programmatic access to CloudTrail. For +// example, the SDKs handle cryptographically signing requests, managing errors, +// and retrying requests automatically. For more information about the Amazon Web +// Services SDKs, including how to download and install them, see Tools to Build on +// Amazon Web Services (http://aws.amazon.com/tools/). See the CloudTrail User +// Guide // (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) -// for information about the data that is included with each AWS API call listed in -// the log files. +// for information about the data that is included with each Amazon Web Services +// API call listed in the log files. package cloudtrail diff --git a/service/cloudtrail/types/errors.go b/service/cloudtrail/types/errors.go index 4f9ea809836..622008e659b 100644 --- a/service/cloudtrail/types/errors.go +++ b/service/cloudtrail/types/errors.go @@ -7,9 +7,9 @@ import ( smithy "github.com/aws/smithy-go" ) -// This exception is thrown when trusted access has not been enabled between AWS -// CloudTrail and AWS Organizations. For more information, see Enabling Trusted -// Access with Other AWS Services +// This exception is thrown when trusted access has not been enabled between +// CloudTrail and Organizations. For more information, see Enabling Trusted Access +// with Other Amazon Web Services Services // (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_integrate_services.html) // and Prepare For Creating a Trail For Your Organization // (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/creating-an-organizational-trail-prepare.html). @@ -35,8 +35,8 @@ func (e *CloudTrailAccessNotEnabledException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// This exception is thrown when an operation is called with an invalid trail ARN. -// The format of a trail ARN is: +// This exception is thrown when an operation is called with a trail ARN that is +// not valid. The following is the format of a trail ARN. // arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail type CloudTrailARNInvalidException struct { Message *string @@ -58,7 +58,8 @@ func (e *CloudTrailARNInvalidException) ErrorFault() smithy.ErrorFault { return // This exception is thrown when a call results in the InvalidClientTokenId error // code. This can occur when you are creating or updating a trail to send -// notifications to an Amazon SNS topic that is in a suspended AWS account. +// notifications to an Amazon SNS topic that is in a suspended Amazon Web Services +// account. type CloudTrailInvalidClientTokenIdException struct { Message *string @@ -220,7 +221,8 @@ func (e *InsufficientS3BucketPolicyException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// This exception is thrown when the policy on the SNS topic is not sufficient. +// This exception is thrown when the policy on the Amazon SNS topic is not +// sufficient. type InsufficientSnsTopicPolicyException struct { Message *string @@ -243,7 +245,8 @@ func (e *InsufficientSnsTopicPolicyException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// This exception is thrown when the provided CloudWatch log group is not valid. +// This exception is thrown when the provided CloudWatch Logs log group is not +// valid. type InvalidCloudWatchLogsLogGroupArnException struct { Message *string @@ -332,7 +335,7 @@ func (e *InvalidEventCategoryException) ErrorFault() smithy.ErrorFault { return // // * Specify a valid value // for a parameter. For example, specifying the ReadWriteType parameter with a -// value of read-only is invalid. +// value of read-only is not valid. type InvalidEventSelectorsException struct { Message *string @@ -395,7 +398,7 @@ func (e *InvalidInsightSelectorsException) ErrorCode() string { } func (e *InvalidInsightSelectorsException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// This exception is thrown when the KMS key ARN is invalid. +// This exception is thrown when the KMS key ARN is not valid. type InvalidKmsKeyIdException struct { Message *string @@ -414,7 +417,7 @@ func (e *InvalidKmsKeyIdException) ErrorMessage() string { func (e *InvalidKmsKeyIdException) ErrorCode() string { return "InvalidKmsKeyIdException" } func (e *InvalidKmsKeyIdException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// Occurs when an invalid lookup attribute is specified. +// Occurs when a lookup attribute is specified that is not valid. type InvalidLookupAttributesException struct { Message *string @@ -435,7 +438,7 @@ func (e *InvalidLookupAttributesException) ErrorCode() string { } func (e *InvalidLookupAttributesException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// This exception is thrown if the limit specified is invalid. +// This exception is thrown if the limit specified is not valid. type InvalidMaxResultsException struct { Message *string @@ -454,8 +457,8 @@ func (e *InvalidMaxResultsException) ErrorMessage() string { func (e *InvalidMaxResultsException) ErrorCode() string { return "InvalidMaxResultsException" } func (e *InvalidMaxResultsException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// Invalid token or token that was previously used in a request with different -// parameters. This exception is thrown if the token is invalid. +// A token that is not valid, or a token that was previously used in a request with +// different parameters. This exception is thrown if the token is not valid. type InvalidNextTokenException struct { Message *string @@ -575,8 +578,8 @@ func (e *InvalidTagParameterException) ErrorMessage() string { func (e *InvalidTagParameterException) ErrorCode() string { return "InvalidTagParameterException" } func (e *InvalidTagParameterException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// Occurs if the timestamp values are invalid. Either the start time occurs after -// the end time or the time range is outside the range of possible values. +// Occurs if the timestamp values are not valid. Either the start time occurs after +// the end time, or the time range is outside the range of possible values. type InvalidTimeRangeException struct { Message *string @@ -627,10 +630,10 @@ func (e *InvalidTokenException) ErrorFault() smithy.ErrorFault { return smithy.F // characters // // * Have no adjacent periods, underscores or dashes. Names like -// my-_namespace and my--namespace are invalid. +// my-_namespace and my--namespace are not valid. // -// * Not be in IP address format (for -// example, 192.168.5.4) +// * Not be in IP address format +// (for example, 192.168.5.4) type InvalidTrailNameException struct { Message *string @@ -688,10 +691,9 @@ func (e *KmsKeyDisabledException) ErrorMessage() string { func (e *KmsKeyDisabledException) ErrorCode() string { return "KmsKeyDisabledException" } func (e *KmsKeyDisabledException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// This exception is thrown when the AWS KMS key does not exist, when the S3 bucket -// and the AWS KMS key are not in the same region, or when the AWS KMS key -// associated with the SNS topic either does not exist or is not in the same -// region. +// This exception is thrown when the KMS key does not exist, when the S3 bucket and +// the KMS key are not in the same region, or when the KMS key associated with the +// Amazon SNS topic either does not exist or is not in the same region. type KmsKeyNotFoundException struct { Message *string @@ -733,10 +735,10 @@ func (e *MaximumNumberOfTrailsExceededException) ErrorFault() smithy.ErrorFault return smithy.FaultClient } -// This exception is thrown when the AWS account making the request to create or -// update an organization trail is not the master account for an organization in -// AWS Organizations. For more information, see Prepare For Creating a Trail For -// Your Organization +// This exception is thrown when the Amazon Web Services account making the request +// to create or update an organization trail is not the management account for an +// organization in Organizations. For more information, see Prepare For Creating a +// Trail For Your Organization // (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/creating-an-organizational-trail-prepare.html). type NotOrganizationMasterAccountException struct { Message *string @@ -779,10 +781,10 @@ func (e *OperationNotPermittedException) ErrorMessage() string { func (e *OperationNotPermittedException) ErrorCode() string { return "OperationNotPermittedException" } func (e *OperationNotPermittedException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// This exception is thrown when AWS Organizations is not configured to support all -// features. All features must be enabled in AWS Organization to support creating -// an organization trail. For more information, see Prepare For Creating a Trail -// For Your Organization +// This exception is thrown when Organizations is not configured to support all +// features. All features must be enabled in Organizations to support creating an +// organization trail. For more information, see Prepare For Creating a Trail For +// Your Organization // (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/creating-an-organizational-trail-prepare.html). type OrganizationNotInAllFeaturesModeException struct { Message *string @@ -806,9 +808,9 @@ func (e *OrganizationNotInAllFeaturesModeException) ErrorFault() smithy.ErrorFau return smithy.FaultClient } -// This exception is thrown when the request is made from an AWS account that is -// not a member of an organization. To make this request, sign in using the -// credentials of an account that belongs to an organization. +// This exception is thrown when the request is made from an Amazon Web Services +// account that is not a member of an organization. To make this request, sign in +// using the credentials of an account that belongs to an organization. type OrganizationsNotInUseException struct { Message *string diff --git a/service/cloudtrail/types/types.go b/service/cloudtrail/types/types.go index 56ba530b31e..0555a32e229 100644 --- a/service/cloudtrail/types/types.go +++ b/service/cloudtrail/types/types.go @@ -8,11 +8,11 @@ import ( ) // Advanced event selectors let you create fine-grained selectors for the following -// AWS CloudTrail event record fields. They help you control costs by logging only -// those events that are important to you. For more information about advanced -// event selectors, see Logging data events for trails +// CloudTrail event record fields. They help you control costs by logging only those +// events that are important to you. For more information about advanced event +// selectors, see Logging data events for trails // (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html) -// in the AWS CloudTrail User Guide. +// in the CloudTrail User Guide. // // * readOnly // @@ -59,68 +59,84 @@ type AdvancedFieldSelector struct { // // * eventName - Can use any operator. You can // use it to filter in or filter out any data event logged to CloudTrail, such as - // PutBucket. You can have multiple values for this field, separated by commas. + // PutBucket or GetSnapshotBlock. You can have multiple values for this field, + // separated by commas. // - // * - // eventCategory - This is required. It must be set to Equals, and the value must - // be Management or Data. - // - // * resources.type - This field is required. resources.type - // can only use the Equals operator, and the value can be one of the following: - // AWS::S3::Object, AWS::Lambda::Function, AWS::DynamoDB::Table, - // AWS::S3Outposts::Object, AWS::ManagedBlockchain::Node, or - // AWS::S3ObjectLambda::AccessPoint. You can have only one resources.type field per - // selector. To log data events on more than one resource type, add another - // selector. - // - // * resources.ARN - You can use any operator with resources.ARN, but if - // you use Equals or NotEquals, the value must exactly match the ARN of a valid - // resource of the type you've specified in the template as the value of - // resources.type. For example, if resources.type equals AWS::S3::Object, the ARN - // must be in one of the following formats. To log all data events for all objects - // in a specific S3 bucket, use the StartsWith operator, and include only the - // bucket ARN as the matching value. The trailing slash is intentional; do not - // exclude it. - // - // * arn:partition:s3:::bucket_name/ + // * eventCategory - This is required. It must be set to + // Equals, and the value must be Management or Data. + // + // * resources.type - This field + // is required. resources.type can only use the Equals operator, and the value can + // be one of the following: AWS::S3::Object, AWS::S3::AccessPoint, + // AWS::Lambda::Function, AWS::DynamoDB::Table, AWS::S3Outposts::Object, + // AWS::ManagedBlockchain::Node, AWS::S3ObjectLambda::AccessPoint, or + // AWS::EC2::Snapshot. You can have only one resources.type field per selector. To + // log data events on more than one resource type, add another selector. // // * - // arn:partition:s3:::bucket_name/object_or_file_name/ + // resources.ARN - You can use any operator with resources.ARN, but if you use + // Equals or NotEquals, the value must exactly match the ARN of a valid resource of + // the type you've specified in the template as the value of resources.type. For + // example, if resources.type equals AWS::S3::Object, the ARN must be in one of the + // following formats. To log all data events for all objects in a specific S3 + // bucket, use the StartsWith operator, and include only the bucket ARN as the + // matching value. The trailing slash is intentional; do not exclude it. Replace + // the text between less than and greater than symbols (<>) with resource-specific + // information. + // + // * arn::s3:::/ + // + // * arn::s3:::// // // When resources.type equals - // AWS::Lambda::Function, and the operator is set to Equals or NotEquals, the ARN - // must be in the following format: + // AWS::S3::AccessPoint, and the operator is set to Equals or NotEquals, the ARN + // must be in one of the following formats. To log events on all objects in an S3 + // access point, we recommend that you use only the access point ARN, don’t include + // the object path, and use the StartsWith or NotStartsWith operators. // // * - // arn:partition:lambda:region:account_ID:function:function_name + // arn::s3:::accesspoint/ + // + // * arn::s3:::accesspoint//object/ + // + // When resources.type + // equals AWS::Lambda::Function, and the operator is set to Equals or NotEquals, + // the ARN must be in the following format: + // + // * arn::lambda:::function: // // When // resources.type equals AWS::DynamoDB::Table, and the operator is set to Equals or // NotEquals, the ARN must be in the following format: // // * - // arn:partition:dynamodb:region:account_ID:table:table_name + // arn::dynamodb:::table: // - // When resources.type - // equals AWS::S3Outposts::Object, and the operator is set to Equals or NotEquals, + // When resources.type equals AWS::S3Outposts::Object, and + // the operator is set to Equals or NotEquals, the ARN must be in the following + // format: + // + // * arn::s3-outposts::: + // + // When resources.type equals + // AWS::ManagedBlockchain::Node, and the operator is set to Equals or NotEquals, // the ARN must be in the following format: // // * - // arn:partition:s3-outposts:region:>account_ID:object_path + // arn::managedblockchain:::nodes/ // - // When resources.type - // equals AWS::ManagedBlockchain::Node, and the operator is set to Equals or + // When resources.type equals + // AWS::S3ObjectLambda::AccessPoint, and the operator is set to Equals or // NotEquals, the ARN must be in the following format: // // * - // arn:partition:managedblockchain:region:account_ID:nodes/node_ID + // arn::s3-object-lambda:::accesspoint/ // - // When - // resources.type equals AWS::S3ObjectLambda::AccessPoint, and the operator is set - // to Equals or NotEquals, the ARN must be in the following format: + // When resources.type equals + // AWS::EC2::Snapshot, and the operator is set to Equals or NotEquals, the ARN must + // be in the following format: // - // * - // arn:partition:s3-object-lambda:region:account_ID:accesspoint/access_point_name + // * arn::ec2:::snapshot/ // // This member is required. Field *string @@ -153,7 +169,7 @@ type AdvancedFieldSelector struct { noSmithyDocumentSerde } -// The Amazon S3 buckets, AWS Lambda functions, or Amazon DynamoDB tables that you +// The Amazon S3 buckets, Lambda functions, or Amazon DynamoDB tables that you // specify in your event selectors for your trail to log data events. Data events // provide information about the resource operations performed on or within a // resource itself. These are also known as data plane operations. You can specify @@ -183,68 +199,68 @@ type AdvancedFieldSelector struct { // doesn’t log the event. // // The following example demonstrates how logging works -// when you configure logging of AWS Lambda data events for a Lambda function named -// MyLambdaFunction, but not for all AWS Lambda functions. +// when you configure logging of Lambda data events for a Lambda function named +// MyLambdaFunction, but not for all Lambda functions. // -// * A user runs a script -// that includes a call to the MyLambdaFunction function and the -// MyOtherLambdaFunction function. +// * A user runs a script that +// includes a call to the MyLambdaFunction function and the MyOtherLambdaFunction +// function. // -// * The Invoke API operation on MyLambdaFunction -// is an AWS Lambda API. It is recorded as a data event in CloudTrail. Because the -// CloudTrail user specified logging data events for MyLambdaFunction, any -// invocations of that function are logged. The trail processes and logs the -// event. +// * The Invoke API operation on MyLambdaFunction is an Lambda API. It +// is recorded as a data event in CloudTrail. Because the CloudTrail user specified +// logging data events for MyLambdaFunction, any invocations of that function are +// logged. The trail processes and logs the event. // -// * The Invoke API operation on MyOtherLambdaFunction is an AWS Lambda -// API. Because the CloudTrail user did not specify logging data events for all -// Lambda functions, the Invoke operation for MyOtherLambdaFunction does not match -// the function specified for the trail. The trail doesn’t log the event. +// * The Invoke API operation on +// MyOtherLambdaFunction is an Lambda API. Because the CloudTrail user did not +// specify logging data events for all Lambda functions, the Invoke operation for +// MyOtherLambdaFunction does not match the function specified for the trail. The +// trail doesn’t log the event. type DataResource struct { // The resource type in which you want to log data events. You can specify // AWS::S3::Object, AWS::Lambda::Function, or AWS::DynamoDB::Table resources. The - // AWS::S3Outposts::Object, AWS::ManagedBlockchain::Node, and - // AWS::S3ObjectLambda::AccessPoint resource types are not valid in basic event - // selectors. To log data events on these resource types, use advanced event - // selectors. + // AWS::S3Outposts::Object, AWS::ManagedBlockchain::Node, + // AWS::S3ObjectLambda::AccessPoint, and AWS::EC2::Snapshot resource types are not + // valid in basic event selectors. To log data events on these resource types, use + // advanced event selectors. Type *string // An array of Amazon Resource Name (ARN) strings or partial ARN strings for the // specified objects. // // * To log data events for all objects in all S3 buckets in - // your AWS account, specify the prefix as arn:aws:s3:::. This will also enable - // logging of data event activity performed by any user or role in your AWS - // account, even if that activity is performed on a bucket that belongs to another - // AWS account. - // - // * To log data events for all objects in an S3 bucket, specify the - // bucket and an empty object prefix such as arn:aws:s3:::bucket-1/. The trail logs - // data events for all objects in this S3 bucket. - // - // * To log data events for - // specific objects, specify the S3 bucket and object prefix such as - // arn:aws:s3:::bucket-1/example-images. The trail logs data events for objects in - // this S3 bucket that match the prefix. - // - // * To log data events for all Lambda - // functions in your AWS account, specify the prefix as arn:aws:lambda. This will - // also enable logging of Invoke activity performed by any user or role in your AWS - // account, even if that activity is performed on a function that belongs to - // another AWS account. - // - // * To log data events for a specific Lambda function, - // specify the function ARN. Lambda function ARNs are exact. For example, if you - // specify a function ARN - // arn:aws:lambda:us-west-2:111111111111:function:helloworld, data events will only - // be logged for arn:aws:lambda:us-west-2:111111111111:function:helloworld. They - // will not be logged for - // arn:aws:lambda:us-west-2:111111111111:function:helloworld2. + // your Amazon Web Services account, specify the prefix as arn:aws:s3:::. This also + // enables logging of data event activity performed by any user or role in your + // Amazon Web Services account, even if that activity is performed on a bucket that + // belongs to another Amazon Web Services account. + // + // * To log data events for all + // objects in an S3 bucket, specify the bucket and an empty object prefix such as + // arn:aws:s3:::bucket-1/. The trail logs data events for all objects in this S3 + // bucket. + // + // * To log data events for specific objects, specify the S3 bucket and + // object prefix such as arn:aws:s3:::bucket-1/example-images. The trail logs data + // events for objects in this S3 bucket that match the prefix. // // * To log data - // events for all DynamoDB tables in your AWS account, specify the prefix as - // arn:aws:dynamodb. + // events for all Lambda functions in your Amazon Web Services account, specify the + // prefix as arn:aws:lambda. This also enables logging of Invoke activity performed + // by any user or role in your Amazon Web Services account, even if that activity + // is performed on a function that belongs to another Amazon Web Services + // account. + // + // * To log data events for a specific Lambda function, specify the + // function ARN. Lambda function ARNs are exact. For example, if you specify a + // function ARN arn:aws:lambda:us-west-2:111111111111:function:helloworld, data + // events will only be logged for + // arn:aws:lambda:us-west-2:111111111111:function:helloworld. They will not be + // logged for arn:aws:lambda:us-west-2:111111111111:function:helloworld2. + // + // * To log + // data events for all DynamoDB tables in your Amazon Web Services account, specify + // the prefix as arn:aws:dynamodb. Values []string noSmithyDocumentSerde @@ -254,9 +270,9 @@ type DataResource struct { // result includes a representation of a CloudTrail event. type Event struct { - // The AWS access key ID that was used to sign the request. If the request was made - // with temporary security credentials, this is the access key ID of the temporary - // credentials. + // The Amazon Web Services access key ID that was used to sign the request. If the + // request was made with temporary security credentials, this is the access key ID + // of the temporary credentials. AccessKeyId *string // A JSON string that contains a representation of the event returned. @@ -268,7 +284,7 @@ type Event struct { // The name of the event returned. EventName *string - // The AWS service that the request was made to. + // The Amazon Web Services service to which the request was made. EventSource *string // The date and time of the event returned. @@ -298,33 +314,34 @@ type Event struct { // selectors to a trail. type EventSelector struct { - // CloudTrail supports data event logging for Amazon S3 objects and AWS Lambda - // functions with basic event selectors. You can specify up to 250 resources for an - // individual event selector, but the total number of data resources cannot exceed - // 250 across all event selectors in a trail. This limit does not apply if you - // configure resource logging for all data events. For more information, see Data - // Events + // CloudTrail supports data event logging for Amazon S3 objects, Lambda functions, + // and Amazon DynamoDB tables with basic event selectors. You can specify up to 250 + // resources for an individual event selector, but the total number of data + // resources cannot exceed 250 across all event selectors in a trail. This limit + // does not apply if you configure resource logging for all data events. For more + // information, see Data Events // (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-and-data-events-with-cloudtrail.html#logging-data-events) - // and Limits in AWS CloudTrail + // and Limits in CloudTrail // (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/WhatIsCloudTrail-Limits.html) - // in the AWS CloudTrail User Guide. + // in the CloudTrail User Guide. DataResources []DataResource // An optional list of service event sources from which you do not want management // events to be logged on your trail. In this release, the list can be empty - // (disables the filter), or it can filter out AWS Key Management Service events by - // containing "kms.amazonaws.com". By default, ExcludeManagementEventSources is - // empty, and AWS KMS events are included in events that are logged to your trail. + // (disables the filter), or it can filter out Key Management Service or Amazon RDS + // Data API events by containing kms.amazonaws.com or rdsdata.amazonaws.com. By + // default, ExcludeManagementEventSources is empty, and KMS and Amazon RDS Data API + // events are logged to your trail. ExcludeManagementEventSources []string // Specify if you want your event selector to include management events for your // trail. For more information, see Management Events // (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-and-data-events-with-cloudtrail.html#logging-management-events) - // in the AWS CloudTrail User Guide. By default, the value is true. The first copy - // of management events is free. You are charged for additional copies of - // management events that you are logging on any subsequent trail in the same - // region. For more information about CloudTrail pricing, see AWS CloudTrail - // Pricing (http://aws.amazon.com/cloudtrail/pricing/). + // in the CloudTrail User Guide. By default, the value is true. The first copy of + // management events is free. You are charged for additional copies of management + // events that you are logging on any subsequent trail in the same region. For more + // information about CloudTrail pricing, see CloudTrail Pricing + // (http://aws.amazon.com/cloudtrail/pricing/). IncludeManagementEvents *bool // Specify if you want your trail to log read-only events, write-only events, or @@ -338,8 +355,8 @@ type EventSelector struct { // A JSON string that contains a list of insight types that are logged on a trail. type InsightSelector struct { - // The type of insights to log on a trail. In this release, only ApiCallRateInsight - // is supported as an insight type. + // The type of Insights events to log on a trail. The valid Insights type in this + // release is ApiCallRateInsight. InsightType InsightType noSmithyDocumentSerde @@ -390,9 +407,9 @@ type Resource struct { // The type of a resource referenced by the event returned. When the resource type // cannot be determined, null is returned. Some examples of resource types are: - // Instance for EC2, Trail for CloudTrail, DBInstance for RDS, and AccessKey for - // IAM. To learn more about how to look up and filter events by the resource types - // supported for a service, see Filtering CloudTrail Events + // Instance for EC2, Trail for CloudTrail, DBInstance for Amazon RDS, and AccessKey + // for IAM. To learn more about how to look up and filter events by the resource + // types supported for a service, see Filtering CloudTrail Events // (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events-console.html#filtering-cloudtrail-events). ResourceType *string @@ -448,8 +465,8 @@ type Trail struct { // The region in which the trail was created. HomeRegion *string - // Set to True to include AWS API calls from AWS global services such as IAM. - // Otherwise, False. + // Set to True to include Amazon Web Services API calls from Amazon Web Services + // global services such as IAM. Otherwise, False. IncludeGlobalServiceEvents *bool // Specifies whether the trail exists only in one region or exists in all regions. @@ -459,7 +476,7 @@ type Trail struct { IsOrganizationTrail *bool // Specifies the KMS key ID that encrypts the logs delivered by CloudTrail. The - // value is a fully specified ARN to a KMS key in the format: + // value is a fully specified ARN to a KMS key in the following format. // arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012 KmsKeyId *string @@ -478,13 +495,13 @@ type Trail struct { // Specifies the Amazon S3 key prefix that comes after the name of the bucket you // have designated for log file delivery. For more information, see Finding Your // CloudTrail Log Files - // (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-find-log-files.html).The - // maximum length is 200 characters. + // (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-find-log-files.html). + // The maximum length is 200 characters. S3KeyPrefix *string // Specifies the ARN of the Amazon SNS topic that CloudTrail uses to send - // notifications when log files are delivered. The format of a topic ARN is: - // arn:aws:sns:us-east-2:123456789012:MyTopic + // notifications when log files are delivered. The following is the format of a + // topic ARN. arn:aws:sns:us-east-2:123456789012:MyTopic SnsTopicARN *string // This field is no longer in use. Use SnsTopicARN. @@ -492,7 +509,7 @@ type Trail struct { // Deprecated: This member has been deprecated. SnsTopicName *string - // Specifies the ARN of the trail. The format of a trail ARN is: + // Specifies the ARN of the trail. The following is the format of a trail ARN. // arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail TrailARN *string @@ -503,7 +520,7 @@ type Trail struct { // and Amazon Resource Name (ARN). type TrailInfo struct { - // The AWS region in which a trail was created. + // The Amazon Web Services Region in which a trail was created. HomeRegion *string // The name of a trail. diff --git a/service/codebuild/types/types.go b/service/codebuild/types/types.go index bdbebe7f28d..0ada14bc016 100644 --- a/service/codebuild/types/types.go +++ b/service/codebuild/types/types.go @@ -433,9 +433,8 @@ type BuildBatchPhase struct { // The current status of the batch build phase. Valid values include: FAILED The // build phase failed. FAULT The build phase faulted. IN_PROGRESS The build phase - // is still in progress. QUEUED The build has been submitted and is queued behind - // other submitted builds. STOPPED The build phase stopped. SUCCEEDED The build - // phase succeeded. TIMED_OUT The build phase timed out. + // is still in progress. STOPPED The build phase stopped. SUCCEEDED The build phase + // succeeded. TIMED_OUT The build phase timed out. PhaseStatus StatusType // The name of the batch build phase. Valid values include: COMBINE_ARTIFACTS Build @@ -505,44 +504,20 @@ type BuildPhase struct { // The current status of the build phase. Valid values include: FAILED The build // phase failed. FAULT The build phase faulted. IN_PROGRESS The build phase is - // still in progress. QUEUED The build has been submitted and is queued behind - // other submitted builds. STOPPED The build phase stopped. SUCCEEDED The build - // phase succeeded. TIMED_OUT The build phase timed out. + // still in progress. STOPPED The build phase stopped. SUCCEEDED The build phase + // succeeded. TIMED_OUT The build phase timed out. PhaseStatus StatusType - // The name of the build phase. Valid values include: - // - // * BUILD: Core build - // activities typically occur in this build phase. - // - // * COMPLETED: The build has been - // completed. - // - // * DOWNLOAD_SOURCE: Source code is being downloaded in this build - // phase. - // - // * FINALIZING: The build process is completing in this build phase. - // - // * - // INSTALL: Installation activities typically occur in this build phase. - // - // * - // POST_BUILD: Post-build activities typically occur in this build phase. - // - // * - // PRE_BUILD: Pre-build activities typically occur in this build phase. - // - // * - // PROVISIONING: The build environment is being set up. - // - // * QUEUED: The build has - // been submitted and is queued behind other submitted builds. - // - // * SUBMITTED: The - // build has been submitted. - // - // * UPLOAD_ARTIFACTS: Build output artifacts are being - // uploaded to the output location. + // The name of the build phase. Valid values include: BUILD Core build activities + // typically occur in this build phase. COMPLETED The build has been completed. + // DOWNLOAD_SOURCE Source code is being downloaded in this build phase. FINALIZING + // The build process is completing in this build phase. INSTALL Installation + // activities typically occur in this build phase. POST_BUILD Post-build activities + // typically occur in this build phase. PRE_BUILD Pre-build activities typically + // occur in this build phase. PROVISIONING The build environment is being set up. + // QUEUED The build has been submitted and is queued behind other submitted builds. + // SUBMITTED The build has been submitted. UPLOAD_ARTIFACTS Build output artifacts + // are being uploaded to the output location. PhaseType BuildPhaseType // When the build phase started, expressed in Unix time format. diff --git a/service/computeoptimizer/types/types.go b/service/computeoptimizer/types/types.go index 5ce561847fb..a77c763e776 100644 --- a/service/computeoptimizer/types/types.go +++ b/service/computeoptimizer/types/types.go @@ -627,8 +627,8 @@ type InstanceRecommendationOption struct { // // * Architecture — The CPU architecture // between the recommended instance type and the current instance is different. For - // example, the recommended instance type might use an x86 CPU architecture and the - // current instance type might use a different one, such as ARM. Before migrating, + // example, the recommended instance type might use an Arm CPU architecture and the + // current instance type might use a different one, such as x86. Before migrating, // you should consider recompiling the software on your instance for the new // architecture. Alternatively, you might switch to an Amazon Machine Image (AMI) // that supports the new architecture. For more information about the CPU diff --git a/service/configservice/api_op_BatchGetAggregateResourceConfig.go b/service/configservice/api_op_BatchGetAggregateResourceConfig.go index 1c92ec25b89..80cb03affa4 100644 --- a/service/configservice/api_op_BatchGetAggregateResourceConfig.go +++ b/service/configservice/api_op_BatchGetAggregateResourceConfig.go @@ -12,8 +12,8 @@ import ( ) // Returns the current configuration items for resources that are present in your -// AWS Config aggregator. The operation also returns a list of resources that are -// not processed in the current request. If there are no unprocessed resources, the +// Config aggregator. The operation also returns a list of resources that are not +// processed in the current request. If there are no unprocessed resources, the // operation returns an empty unprocessedResourceIdentifiers list. // // * The API does diff --git a/service/configservice/api_op_BatchGetResourceConfig.go b/service/configservice/api_op_BatchGetResourceConfig.go index 952f5360ab9..e859bb65702 100644 --- a/service/configservice/api_op_BatchGetResourceConfig.go +++ b/service/configservice/api_op_BatchGetResourceConfig.go @@ -11,7 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns the current configuration for one or more requested resources. The +// Returns the BaseConfigurationItem for one or more requested resources. The // operation also returns a list of resources that are not processed in the current // request. If there are no unprocessed resources, the operation returns an empty // unprocessedResourceKeys list. diff --git a/service/configservice/api_op_DeleteConfigRule.go b/service/configservice/api_op_DeleteConfigRule.go index c2d40effdc4..ad2e578ab60 100644 --- a/service/configservice/api_op_DeleteConfigRule.go +++ b/service/configservice/api_op_DeleteConfigRule.go @@ -10,9 +10,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes the specified AWS Config rule and all of its evaluation results. AWS -// Config sets the state of a rule to DELETING until the deletion is complete. You -// cannot update a rule while it is in this state. If you make a PutConfigRule or +// Deletes the specified Config rule and all of its evaluation results. Config sets +// the state of a rule to DELETING until the deletion is complete. You cannot +// update a rule while it is in this state. If you make a PutConfigRule or // DeleteConfigRule request for the rule, you will receive a // ResourceInUseException. You can check the state of a rule by using the // DescribeConfigRules request. @@ -34,7 +34,7 @@ func (c *Client) DeleteConfigRule(ctx context.Context, params *DeleteConfigRuleI // type DeleteConfigRuleInput struct { - // The name of the AWS Config rule that you want to delete. + // The name of the Config rule that you want to delete. // // This member is required. ConfigRuleName *string diff --git a/service/configservice/api_op_DeleteConfigurationRecorder.go b/service/configservice/api_op_DeleteConfigurationRecorder.go index 4eef5b64c18..2beac738fbc 100644 --- a/service/configservice/api_op_DeleteConfigurationRecorder.go +++ b/service/configservice/api_op_DeleteConfigurationRecorder.go @@ -11,12 +11,12 @@ import ( ) // Deletes the configuration recorder. After the configuration recorder is deleted, -// AWS Config will not record resource configuration changes until you create a new +// Config will not record resource configuration changes until you create a new // configuration recorder. This action does not delete the configuration // information that was previously recorded. You will be able to access the // previously recorded information by using the GetResourceConfigHistory action, -// but you will not be able to access this information in the AWS Config console -// until you create a new configuration recorder. +// but you will not be able to access this information in the Config console until +// you create a new configuration recorder. func (c *Client) DeleteConfigurationRecorder(ctx context.Context, params *DeleteConfigurationRecorderInput, optFns ...func(*Options)) (*DeleteConfigurationRecorderOutput, error) { if params == nil { params = &DeleteConfigurationRecorderInput{} diff --git a/service/configservice/api_op_DeleteConformancePack.go b/service/configservice/api_op_DeleteConformancePack.go index b88f278f449..ea0eb63f14a 100644 --- a/service/configservice/api_op_DeleteConformancePack.go +++ b/service/configservice/api_op_DeleteConformancePack.go @@ -10,10 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes the specified conformance pack and all the AWS Config rules, remediation -// actions, and all evaluation results within that conformance pack. AWS Config -// sets the conformance pack to DELETE_IN_PROGRESS until the deletion is complete. -// You cannot update a conformance pack while it is in this state. +// Deletes the specified conformance pack and all the Config rules, remediation +// actions, and all evaluation results within that conformance pack. Config sets +// the conformance pack to DELETE_IN_PROGRESS until the deletion is complete. You +// cannot update a conformance pack while it is in this state. func (c *Client) DeleteConformancePack(ctx context.Context, params *DeleteConformancePackInput, optFns ...func(*Options)) (*DeleteConformancePackOutput, error) { if params == nil { params = &DeleteConformancePackInput{} diff --git a/service/configservice/api_op_DeleteEvaluationResults.go b/service/configservice/api_op_DeleteEvaluationResults.go index 839d39654db..1b68bedd163 100644 --- a/service/configservice/api_op_DeleteEvaluationResults.go +++ b/service/configservice/api_op_DeleteEvaluationResults.go @@ -10,10 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes the evaluation results for the specified AWS Config rule. You can -// specify one AWS Config rule per request. After you delete the evaluation -// results, you can call the StartConfigRulesEvaluation API to start evaluating -// your AWS resources against the rule. +// Deletes the evaluation results for the specified Config rule. You can specify +// one Config rule per request. After you delete the evaluation results, you can +// call the StartConfigRulesEvaluation API to start evaluating your Amazon Web +// Services resources against the rule. func (c *Client) DeleteEvaluationResults(ctx context.Context, params *DeleteEvaluationResultsInput, optFns ...func(*Options)) (*DeleteEvaluationResultsOutput, error) { if params == nil { params = &DeleteEvaluationResultsInput{} @@ -32,8 +32,7 @@ func (c *Client) DeleteEvaluationResults(ctx context.Context, params *DeleteEval // type DeleteEvaluationResultsInput struct { - // The name of the AWS Config rule for which you want to delete the evaluation - // results. + // The name of the Config rule for which you want to delete the evaluation results. // // This member is required. ConfigRuleName *string @@ -41,8 +40,7 @@ type DeleteEvaluationResultsInput struct { noSmithyDocumentSerde } -// The output when you delete the evaluation results for the specified AWS Config -// rule. +// The output when you delete the evaluation results for the specified Config rule. type DeleteEvaluationResultsOutput struct { // Metadata pertaining to the operation's result. ResultMetadata middleware.Metadata diff --git a/service/configservice/api_op_DeleteOrganizationConfigRule.go b/service/configservice/api_op_DeleteOrganizationConfigRule.go index e97f5ede251..e59363ff321 100644 --- a/service/configservice/api_op_DeleteOrganizationConfigRule.go +++ b/service/configservice/api_op_DeleteOrganizationConfigRule.go @@ -13,10 +13,10 @@ import ( // Deletes the specified organization config rule and all of its evaluation results // from all member accounts in that organization. Only a master account and a // delegated administrator account can delete an organization config rule. When -// calling this API with a delegated administrator, you must ensure AWS -// Organizations ListDelegatedAdministrator permissions are added. AWS Config sets -// the state of a rule to DELETE_IN_PROGRESS until the deletion is complete. You -// cannot update a rule while it is in this state. +// calling this API with a delegated administrator, you must ensure Organizations +// ListDelegatedAdministrator permissions are added. Config sets the state of a +// rule to DELETE_IN_PROGRESS until the deletion is complete. You cannot update a +// rule while it is in this state. func (c *Client) DeleteOrganizationConfigRule(ctx context.Context, params *DeleteOrganizationConfigRuleInput, optFns ...func(*Options)) (*DeleteOrganizationConfigRuleOutput, error) { if params == nil { params = &DeleteOrganizationConfigRuleInput{} diff --git a/service/configservice/api_op_DeleteOrganizationConformancePack.go b/service/configservice/api_op_DeleteOrganizationConformancePack.go index 98928142b56..15b1cfa6892 100644 --- a/service/configservice/api_op_DeleteOrganizationConformancePack.go +++ b/service/configservice/api_op_DeleteOrganizationConformancePack.go @@ -14,10 +14,9 @@ import ( // and remediation actions from all member accounts in that organization. Only a // master account or a delegated administrator account can delete an organization // conformance pack. When calling this API with a delegated administrator, you must -// ensure AWS Organizations ListDelegatedAdministrator permissions are added. AWS -// Config sets the state of a conformance pack to DELETE_IN_PROGRESS until the -// deletion is complete. You cannot update a conformance pack while it is in this -// state. +// ensure Organizations ListDelegatedAdministrator permissions are added. Config +// sets the state of a conformance pack to DELETE_IN_PROGRESS until the deletion is +// complete. You cannot update a conformance pack while it is in this state. func (c *Client) DeleteOrganizationConformancePack(ctx context.Context, params *DeleteOrganizationConformancePackInput, optFns ...func(*Options)) (*DeleteOrganizationConformancePackOutput, error) { if params == nil { params = &DeleteOrganizationConformancePackInput{} diff --git a/service/configservice/api_op_DeleteRemediationConfiguration.go b/service/configservice/api_op_DeleteRemediationConfiguration.go index 23cae9e8e28..3609b5b7093 100644 --- a/service/configservice/api_op_DeleteRemediationConfiguration.go +++ b/service/configservice/api_op_DeleteRemediationConfiguration.go @@ -28,7 +28,7 @@ func (c *Client) DeleteRemediationConfiguration(ctx context.Context, params *Del type DeleteRemediationConfigurationInput struct { - // The name of the AWS Config rule for which you want to delete remediation + // The name of the Config rule for which you want to delete remediation // configuration. // // This member is required. diff --git a/service/configservice/api_op_DeleteRemediationExceptions.go b/service/configservice/api_op_DeleteRemediationExceptions.go index 6cba2a5066c..fb0a93aea56 100644 --- a/service/configservice/api_op_DeleteRemediationExceptions.go +++ b/service/configservice/api_op_DeleteRemediationExceptions.go @@ -11,7 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes one or more remediation exceptions mentioned in the resource keys. AWS +// Deletes one or more remediation exceptions mentioned in the resource keys. // Config generates a remediation exception when a problem occurs executing a // remediation action to a specific resource. Remediation exceptions blocks // auto-remediation until the exception is cleared. @@ -32,15 +32,15 @@ func (c *Client) DeleteRemediationExceptions(ctx context.Context, params *Delete type DeleteRemediationExceptionsInput struct { - // The name of the AWS Config rule for which you want to delete remediation - // exception configuration. + // The name of the Config rule for which you want to delete remediation exception + // configuration. // // This member is required. ConfigRuleName *string // An exception list of resource exception keys to be processed with the current - // request. AWS Config adds exception for each resource key. For example, AWS - // Config adds 3 exceptions for 3 resource keys. + // request. Config adds exception for each resource key. For example, Config adds 3 + // exceptions for 3 resource keys. // // This member is required. ResourceKeys []types.RemediationExceptionResourceKey diff --git a/service/configservice/api_op_DeleteResourceConfig.go b/service/configservice/api_op_DeleteResourceConfig.go index 4cd0d4cc679..0460be5c544 100644 --- a/service/configservice/api_op_DeleteResourceConfig.go +++ b/service/configservice/api_op_DeleteResourceConfig.go @@ -12,7 +12,7 @@ import ( // Records the configuration state for a custom resource that has been deleted. // This API records a new ConfigurationItem with a ResourceDeleted status. You can -// retrieve the ConfigurationItems recorded for this resource in your AWS Config +// retrieve the ConfigurationItems recorded for this resource in your Config // History. func (c *Client) DeleteResourceConfig(ctx context.Context, params *DeleteResourceConfigInput, optFns ...func(*Options)) (*DeleteResourceConfigOutput, error) { if params == nil { diff --git a/service/configservice/api_op_DeleteStoredQuery.go b/service/configservice/api_op_DeleteStoredQuery.go index aa1fd03c4db..54fa8c841e4 100644 --- a/service/configservice/api_op_DeleteStoredQuery.go +++ b/service/configservice/api_op_DeleteStoredQuery.go @@ -10,7 +10,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes the stored query for a single AWS account and a single AWS Region. +// Deletes the stored query for a single Amazon Web Services account and a single +// Amazon Web Services Region. func (c *Client) DeleteStoredQuery(ctx context.Context, params *DeleteStoredQueryInput, optFns ...func(*Options)) (*DeleteStoredQueryOutput, error) { if params == nil { params = &DeleteStoredQueryInput{} diff --git a/service/configservice/api_op_DeliverConfigSnapshot.go b/service/configservice/api_op_DeliverConfigSnapshot.go index c26a3c3b8a6..191f3101049 100644 --- a/service/configservice/api_op_DeliverConfigSnapshot.go +++ b/service/configservice/api_op_DeliverConfigSnapshot.go @@ -11,7 +11,7 @@ import ( ) // Schedules delivery of a configuration snapshot to the Amazon S3 bucket in the -// specified delivery channel. After the delivery has started, AWS Config sends the +// specified delivery channel. After the delivery has started, Config sends the // following notifications using an Amazon SNS topic that you have specified. // // * diff --git a/service/configservice/api_op_DescribeAggregateComplianceByConfigRules.go b/service/configservice/api_op_DescribeAggregateComplianceByConfigRules.go index 2d52061862e..f838a9d767b 100644 --- a/service/configservice/api_op_DescribeAggregateComplianceByConfigRules.go +++ b/service/configservice/api_op_DescribeAggregateComplianceByConfigRules.go @@ -13,8 +13,9 @@ import ( ) // Returns a list of compliant and noncompliant rules with the number of resources -// for compliant and noncompliant rules. The results can return an empty result -// page, but if you have a nextToken, the results are displayed on the next page. +// for compliant and noncompliant rules. Does not display rules that do not have +// compliance results. The results can return an empty result page, but if you have +// a nextToken, the results are displayed on the next page. func (c *Client) DescribeAggregateComplianceByConfigRules(ctx context.Context, params *DescribeAggregateComplianceByConfigRulesInput, optFns ...func(*Options)) (*DescribeAggregateComplianceByConfigRulesOutput, error) { if params == nil { params = &DescribeAggregateComplianceByConfigRulesInput{} @@ -41,7 +42,7 @@ type DescribeAggregateComplianceByConfigRulesInput struct { Filters *types.ConfigRuleComplianceFilters // The maximum number of evaluation results returned on each page. The default is - // maximum. If you specify 0, AWS Config uses the default. + // maximum. If you specify 0, Config uses the default. Limit int32 // The nextToken string returned on a previous page that you use to get the next @@ -141,7 +142,7 @@ var _ DescribeAggregateComplianceByConfigRulesAPIClient = (*Client)(nil) // options for DescribeAggregateComplianceByConfigRules type DescribeAggregateComplianceByConfigRulesPaginatorOptions struct { // The maximum number of evaluation results returned on each page. The default is - // maximum. If you specify 0, AWS Config uses the default. + // maximum. If you specify 0, Config uses the default. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/configservice/api_op_DescribeAggregateComplianceByConformancePacks.go b/service/configservice/api_op_DescribeAggregateComplianceByConformancePacks.go index 0c55e5aae79..f0c19df9cc9 100644 --- a/service/configservice/api_op_DescribeAggregateComplianceByConformancePacks.go +++ b/service/configservice/api_op_DescribeAggregateComplianceByConformancePacks.go @@ -13,7 +13,7 @@ import ( ) // Returns a list of the conformance packs and their associated compliance status -// with the count of compliant and noncompliant AWS Config rules within each +// with the count of compliant and noncompliant Config rules within each // conformance pack. Also returns the total rule count which includes compliant // rules, noncompliant rules, and rules that cannot be evaluated due to // insufficient data. The results can return an empty result page, but if you have @@ -44,7 +44,7 @@ type DescribeAggregateComplianceByConformancePacksInput struct { Filters *types.AggregateConformancePackComplianceFilters // The maximum number of conformance packs compliance details returned on each - // page. The default is maximum. If you specify 0, AWS Config uses the default. + // page. The default is maximum. If you specify 0, Config uses the default. Limit int32 // The nextToken string returned on a previous page that you use to get the next @@ -144,7 +144,7 @@ var _ DescribeAggregateComplianceByConformancePacksAPIClient = (*Client)(nil) // options for DescribeAggregateComplianceByConformancePacks type DescribeAggregateComplianceByConformancePacksPaginatorOptions struct { // The maximum number of conformance packs compliance details returned on each - // page. The default is maximum. If you specify 0, AWS Config uses the default. + // page. The default is maximum. If you specify 0, Config uses the default. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/configservice/api_op_DescribeAggregationAuthorizations.go b/service/configservice/api_op_DescribeAggregationAuthorizations.go index a5924d95c2d..9fded4fc0f2 100644 --- a/service/configservice/api_op_DescribeAggregationAuthorizations.go +++ b/service/configservice/api_op_DescribeAggregationAuthorizations.go @@ -32,7 +32,7 @@ func (c *Client) DescribeAggregationAuthorizations(ctx context.Context, params * type DescribeAggregationAuthorizationsInput struct { // The maximum number of AggregationAuthorizations returned on each page. The - // default is maximum. If you specify 0, AWS Config uses the default. + // default is maximum. If you specify 0, Config uses the default. Limit int32 // The nextToken string returned on a previous page that you use to get the next @@ -130,7 +130,7 @@ var _ DescribeAggregationAuthorizationsAPIClient = (*Client)(nil) // DescribeAggregationAuthorizations type DescribeAggregationAuthorizationsPaginatorOptions struct { // The maximum number of AggregationAuthorizations returned on each page. The - // default is maximum. If you specify 0, AWS Config uses the default. + // default is maximum. If you specify 0, Config uses the default. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/configservice/api_op_DescribeComplianceByConfigRule.go b/service/configservice/api_op_DescribeComplianceByConfigRule.go index 16e4234f9f7..8cf8c9ecef0 100644 --- a/service/configservice/api_op_DescribeComplianceByConfigRule.go +++ b/service/configservice/api_op_DescribeComplianceByConfigRule.go @@ -12,28 +12,27 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Indicates whether the specified AWS Config rules are compliant. If a rule is -// noncompliant, this action returns the number of AWS resources that do not comply -// with the rule. A rule is compliant if all of the evaluated resources comply with -// it. It is noncompliant if any of these resources do not comply. If AWS Config -// has no current evaluation results for the rule, it returns INSUFFICIENT_DATA. -// This result might indicate one of the following conditions: +// Indicates whether the specified Config rules are compliant. If a rule is +// noncompliant, this action returns the number of Amazon Web Services resources +// that do not comply with the rule. A rule is compliant if all of the evaluated +// resources comply with it. It is noncompliant if any of these resources do not +// comply. If Config has no current evaluation results for the rule, it returns +// INSUFFICIENT_DATA. This result might indicate one of the following +// conditions: // -// * AWS Config has -// never invoked an evaluation for the rule. To check whether it has, use the -// DescribeConfigRuleEvaluationStatus action to get the +// * Config has never invoked an evaluation for the rule. To check +// whether it has, use the DescribeConfigRuleEvaluationStatus action to get the // LastSuccessfulInvocationTime and LastFailedInvocationTime. // -// * The rule's AWS -// Lambda function is failing to send evaluation results to AWS Config. Verify that -// the role you assigned to your configuration recorder includes the -// config:PutEvaluations permission. If the rule is a custom rule, verify that the -// AWS Lambda execution role includes the config:PutEvaluations permission. +// * The rule's Lambda +// function is failing to send evaluation results to Config. Verify that the role +// you assigned to your configuration recorder includes the config:PutEvaluations +// permission. If the rule is a custom rule, verify that the Lambda execution role +// includes the config:PutEvaluations permission. // -// * The -// rule's AWS Lambda function has returned NOT_APPLICABLE for all evaluation -// results. This can occur if the resources were deleted or removed from the rule's -// scope. +// * The rule's Lambda function has +// returned NOT_APPLICABLE for all evaluation results. This can occur if the +// resources were deleted or removed from the rule's scope. func (c *Client) DescribeComplianceByConfigRule(ctx context.Context, params *DescribeComplianceByConfigRuleInput, optFns ...func(*Options)) (*DescribeComplianceByConfigRuleOutput, error) { if params == nil { params = &DescribeComplianceByConfigRuleInput{} @@ -56,7 +55,7 @@ type DescribeComplianceByConfigRuleInput struct { // NON_COMPLIANT. ComplianceTypes []types.ComplianceType - // Specify one or more AWS Config rule names to filter the results by rule. + // Specify one or more Config rule names to filter the results by rule. ConfigRuleNames []string // The nextToken string returned on a previous page that you use to get the next @@ -69,7 +68,7 @@ type DescribeComplianceByConfigRuleInput struct { // type DescribeComplianceByConfigRuleOutput struct { - // Indicates whether each of the specified AWS Config rules is compliant. + // Indicates whether each of the specified Config rules is compliant. ComplianceByConfigRules []types.ComplianceByConfigRule // The string that you use in a subsequent request to get the next page of results diff --git a/service/configservice/api_op_DescribeComplianceByResource.go b/service/configservice/api_op_DescribeComplianceByResource.go index e040ba837a8..7a3222137e5 100644 --- a/service/configservice/api_op_DescribeComplianceByResource.go +++ b/service/configservice/api_op_DescribeComplianceByResource.go @@ -12,29 +12,28 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Indicates whether the specified AWS resources are compliant. If a resource is -// noncompliant, this action returns the number of AWS Config rules that the -// resource does not comply with. A resource is compliant if it complies with all -// the AWS Config rules that evaluate it. It is noncompliant if it does not comply -// with one or more of these rules. If AWS Config has no current evaluation results -// for the resource, it returns INSUFFICIENT_DATA. This result might indicate one -// of the following conditions about the rules that evaluate the resource: +// Indicates whether the specified Amazon Web Services resources are compliant. If +// a resource is noncompliant, this action returns the number of Config rules that +// the resource does not comply with. A resource is compliant if it complies with +// all the Config rules that evaluate it. It is noncompliant if it does not comply +// with one or more of these rules. If Config has no current evaluation results for +// the resource, it returns INSUFFICIENT_DATA. This result might indicate one of +// the following conditions about the rules that evaluate the resource: // -// * AWS -// Config has never invoked an evaluation for the rule. To check whether it has, -// use the DescribeConfigRuleEvaluationStatus action to get the +// * Config +// has never invoked an evaluation for the rule. To check whether it has, use the +// DescribeConfigRuleEvaluationStatus action to get the // LastSuccessfulInvocationTime and LastFailedInvocationTime. // -// * The rule's AWS -// Lambda function is failing to send evaluation results to AWS Config. Verify that -// the role that you assigned to your configuration recorder includes the +// * The rule's Lambda +// function is failing to send evaluation results to Config. Verify that the role +// that you assigned to your configuration recorder includes the // config:PutEvaluations permission. If the rule is a custom rule, verify that the -// AWS Lambda execution role includes the config:PutEvaluations permission. +// Lambda execution role includes the config:PutEvaluations permission. // // * The -// rule's AWS Lambda function has returned NOT_APPLICABLE for all evaluation -// results. This can occur if the resources were deleted or removed from the rule's -// scope. +// rule's Lambda function has returned NOT_APPLICABLE for all evaluation results. +// This can occur if the resources were deleted or removed from the rule's scope. func (c *Client) DescribeComplianceByResource(ctx context.Context, params *DescribeComplianceByResourceInput, optFns ...func(*Options)) (*DescribeComplianceByResourceOutput, error) { if params == nil { params = &DescribeComplianceByResourceInput{} @@ -58,22 +57,23 @@ type DescribeComplianceByResourceInput struct { ComplianceTypes []types.ComplianceType // The maximum number of evaluation results returned on each page. The default is - // 10. You cannot specify a number greater than 100. If you specify 0, AWS Config - // uses the default. + // 10. You cannot specify a number greater than 100. If you specify 0, Config uses + // the default. Limit int32 // The nextToken string returned on a previous page that you use to get the next // page of results in a paginated response. NextToken *string - // The ID of the AWS resource for which you want compliance information. You can - // specify only one resource ID. If you specify a resource ID, you must also - // specify a type for ResourceType. + // The ID of the Amazon Web Services resource for which you want compliance + // information. You can specify only one resource ID. If you specify a resource ID, + // you must also specify a type for ResourceType. ResourceId *string - // The types of AWS resources for which you want compliance information (for - // example, AWS::EC2::Instance). For this action, you can specify that the resource - // type is an AWS account by specifying AWS::::Account. + // The types of Amazon Web Services resources for which you want compliance + // information (for example, AWS::EC2::Instance). For this action, you can specify + // that the resource type is an Amazon Web Services account by specifying + // AWS::::Account. ResourceType *string noSmithyDocumentSerde @@ -82,8 +82,8 @@ type DescribeComplianceByResourceInput struct { // type DescribeComplianceByResourceOutput struct { - // Indicates whether the specified AWS resource complies with all of the AWS Config - // rules that evaluate it. + // Indicates whether the specified Amazon Web Services resource complies with all + // of the Config rules that evaluate it. ComplianceByResources []types.ComplianceByResource // The string that you use in a subsequent request to get the next page of results @@ -168,8 +168,8 @@ var _ DescribeComplianceByResourceAPIClient = (*Client)(nil) // DescribeComplianceByResource type DescribeComplianceByResourcePaginatorOptions struct { // The maximum number of evaluation results returned on each page. The default is - // 10. You cannot specify a number greater than 100. If you specify 0, AWS Config - // uses the default. + // 10. You cannot specify a number greater than 100. If you specify 0, Config uses + // the default. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/configservice/api_op_DescribeConfigRuleEvaluationStatus.go b/service/configservice/api_op_DescribeConfigRuleEvaluationStatus.go index f736c6058f5..346ae00c357 100644 --- a/service/configservice/api_op_DescribeConfigRuleEvaluationStatus.go +++ b/service/configservice/api_op_DescribeConfigRuleEvaluationStatus.go @@ -12,9 +12,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns status information for each of your AWS managed Config rules. The status -// includes information such as the last time AWS Config invoked the rule, the last -// time AWS Config failed to invoke the rule, and the related error for the last +// Returns status information for each of your Config managed rules. The status +// includes information such as the last time Config invoked the rule, the last +// time Config failed to invoke the rule, and the related error for the last // failure. func (c *Client) DescribeConfigRuleEvaluationStatus(ctx context.Context, params *DescribeConfigRuleEvaluationStatusInput, optFns ...func(*Options)) (*DescribeConfigRuleEvaluationStatusOutput, error) { if params == nil { @@ -34,17 +34,16 @@ func (c *Client) DescribeConfigRuleEvaluationStatus(ctx context.Context, params // type DescribeConfigRuleEvaluationStatusInput struct { - // The name of the AWS managed Config rules for which you want status information. - // If you do not specify any names, AWS Config returns status information for all - // AWS managed Config rules that you use. + // The name of the Config managed rules for which you want status information. If + // you do not specify any names, Config returns status information for all Config + // managed rules that you use. ConfigRuleNames []string // The number of rule evaluation results that you want returned. This parameter is // required if the rule limit for your account is more than the default of 150 - // rules. For information about requesting a rule limit increase, see AWS Config - // Limits + // rules. For information about requesting a rule limit increase, see Config Limits // (http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_config) - // in the AWS General Reference Guide. + // in the Amazon Web Services General Reference Guide. Limit int32 // The nextToken string returned on a previous page that you use to get the next @@ -57,7 +56,7 @@ type DescribeConfigRuleEvaluationStatusInput struct { // type DescribeConfigRuleEvaluationStatusOutput struct { - // Status information about your AWS managed Config rules. + // Status information about your Config managed rules. ConfigRulesEvaluationStatus []types.ConfigRuleEvaluationStatus // The string that you use in a subsequent request to get the next page of results @@ -143,10 +142,9 @@ var _ DescribeConfigRuleEvaluationStatusAPIClient = (*Client)(nil) type DescribeConfigRuleEvaluationStatusPaginatorOptions struct { // The number of rule evaluation results that you want returned. This parameter is // required if the rule limit for your account is more than the default of 150 - // rules. For information about requesting a rule limit increase, see AWS Config - // Limits + // rules. For information about requesting a rule limit increase, see Config Limits // (http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_config) - // in the AWS General Reference Guide. + // in the Amazon Web Services General Reference Guide. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/configservice/api_op_DescribeConfigRules.go b/service/configservice/api_op_DescribeConfigRules.go index 1629a4de42b..799ff3ea260 100644 --- a/service/configservice/api_op_DescribeConfigRules.go +++ b/service/configservice/api_op_DescribeConfigRules.go @@ -12,7 +12,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns details about your AWS Config rules. +// Returns details about your Config rules. func (c *Client) DescribeConfigRules(ctx context.Context, params *DescribeConfigRulesInput, optFns ...func(*Options)) (*DescribeConfigRulesOutput, error) { if params == nil { params = &DescribeConfigRulesInput{} @@ -31,8 +31,8 @@ func (c *Client) DescribeConfigRules(ctx context.Context, params *DescribeConfig // type DescribeConfigRulesInput struct { - // The names of the AWS Config rules for which you want details. If you do not - // specify any names, AWS Config returns details for all your rules. + // The names of the Config rules for which you want details. If you do not specify + // any names, Config returns details for all your rules. ConfigRuleNames []string // The nextToken string returned on a previous page that you use to get the next @@ -45,7 +45,7 @@ type DescribeConfigRulesInput struct { // type DescribeConfigRulesOutput struct { - // The details about your AWS Config rules. + // The details about your Config rules. ConfigRules []types.ConfigRule // The string that you use in a subsequent request to get the next page of results diff --git a/service/configservice/api_op_DescribeConfigurationAggregatorSourcesStatus.go b/service/configservice/api_op_DescribeConfigurationAggregatorSourcesStatus.go index e6b0058a66f..26b6db2bd49 100644 --- a/service/configservice/api_op_DescribeConfigurationAggregatorSourcesStatus.go +++ b/service/configservice/api_op_DescribeConfigurationAggregatorSourcesStatus.go @@ -13,9 +13,9 @@ import ( ) // Returns status information for sources within an aggregator. The status includes -// information about the last time AWS Config verified authorization between the -// source account and an aggregator account. In case of a failure, the status -// contains the related error code or message. +// information about the last time Config verified authorization between the source +// account and an aggregator account. In case of a failure, the status contains the +// related error code or message. func (c *Client) DescribeConfigurationAggregatorSourcesStatus(ctx context.Context, params *DescribeConfigurationAggregatorSourcesStatusInput, optFns ...func(*Options)) (*DescribeConfigurationAggregatorSourcesStatusOutput, error) { if params == nil { params = &DescribeConfigurationAggregatorSourcesStatusInput{} @@ -39,7 +39,7 @@ type DescribeConfigurationAggregatorSourcesStatusInput struct { ConfigurationAggregatorName *string // The maximum number of AggregatorSourceStatus returned on each page. The default - // is maximum. If you specify 0, AWS Config uses the default. + // is maximum. If you specify 0, Config uses the default. Limit int32 // The nextToken string returned on a previous page that you use to get the next @@ -150,7 +150,7 @@ var _ DescribeConfigurationAggregatorSourcesStatusAPIClient = (*Client)(nil) // options for DescribeConfigurationAggregatorSourcesStatus type DescribeConfigurationAggregatorSourcesStatusPaginatorOptions struct { // The maximum number of AggregatorSourceStatus returned on each page. The default - // is maximum. If you specify 0, AWS Config uses the default. + // is maximum. If you specify 0, Config uses the default. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/configservice/api_op_DescribeConfigurationAggregators.go b/service/configservice/api_op_DescribeConfigurationAggregators.go index 114f34ac469..033ed01cd66 100644 --- a/service/configservice/api_op_DescribeConfigurationAggregators.go +++ b/service/configservice/api_op_DescribeConfigurationAggregators.go @@ -36,7 +36,7 @@ type DescribeConfigurationAggregatorsInput struct { ConfigurationAggregatorNames []string // The maximum number of configuration aggregators returned on each page. The - // default is maximum. If you specify 0, AWS Config uses the default. + // default is maximum. If you specify 0, Config uses the default. Limit int32 // The nextToken string returned on a previous page that you use to get the next @@ -133,7 +133,7 @@ var _ DescribeConfigurationAggregatorsAPIClient = (*Client)(nil) // DescribeConfigurationAggregators type DescribeConfigurationAggregatorsPaginatorOptions struct { // The maximum number of configuration aggregators returned on each page. The - // default is maximum. If you specify 0, AWS Config uses the default. + // default is maximum. If you specify 0, Config uses the default. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/configservice/api_op_DescribeConformancePackCompliance.go b/service/configservice/api_op_DescribeConformancePackCompliance.go index 00d2e98e0fb..a333da52a16 100644 --- a/service/configservice/api_op_DescribeConformancePackCompliance.go +++ b/service/configservice/api_op_DescribeConformancePackCompliance.go @@ -39,7 +39,7 @@ type DescribeConformancePackComplianceInput struct { // A ConformancePackComplianceFilters object. Filters *types.ConformancePackComplianceFilters - // The maximum number of AWS Config rules within a conformance pack are returned on + // The maximum number of Config rules within a conformance pack are returned on // each page. Limit int32 @@ -146,7 +146,7 @@ var _ DescribeConformancePackComplianceAPIClient = (*Client)(nil) // DescribeConformancePackCompliancePaginatorOptions is the paginator options for // DescribeConformancePackCompliance type DescribeConformancePackCompliancePaginatorOptions struct { - // The maximum number of AWS Config rules within a conformance pack are returned on + // The maximum number of Config rules within a conformance pack are returned on // each page. Limit int32 diff --git a/service/configservice/api_op_DescribeConformancePacks.go b/service/configservice/api_op_DescribeConformancePacks.go index 75127bacdc8..3f53eebfbe6 100644 --- a/service/configservice/api_op_DescribeConformancePacks.go +++ b/service/configservice/api_op_DescribeConformancePacks.go @@ -31,8 +31,8 @@ func (c *Client) DescribeConformancePacks(ctx context.Context, params *DescribeC type DescribeConformancePacksInput struct { // Comma-separated list of conformance pack names for which you want details. If - // you do not specify any names, AWS Config returns details for all your - // conformance packs. + // you do not specify any names, Config returns details for all your conformance + // packs. ConformancePackNames []string // The maximum number of conformance packs returned on each page. diff --git a/service/configservice/api_op_DescribeOrganizationConfigRuleStatuses.go b/service/configservice/api_op_DescribeOrganizationConfigRuleStatuses.go index ea4ab692c6f..40936cbc1db 100644 --- a/service/configservice/api_op_DescribeOrganizationConfigRuleStatuses.go +++ b/service/configservice/api_op_DescribeOrganizationConfigRuleStatuses.go @@ -37,7 +37,7 @@ func (c *Client) DescribeOrganizationConfigRuleStatuses(ctx context.Context, par type DescribeOrganizationConfigRuleStatusesInput struct { // The maximum number of OrganizationConfigRuleStatuses returned on each page. If - // you do no specify a number, AWS Config uses the default. The default is 100. + // you do no specify a number, Config uses the default. The default is 100. Limit int32 // The nextToken string returned on a previous page that you use to get the next @@ -45,8 +45,8 @@ type DescribeOrganizationConfigRuleStatusesInput struct { NextToken *string // The names of organization config rules for which you want status details. If you - // do not specify any names, AWS Config returns details for all your organization - // AWS Confg rules. + // do not specify any names, Config returns details for all your organization + // Config rules. OrganizationConfigRuleNames []string noSmithyDocumentSerde @@ -139,7 +139,7 @@ var _ DescribeOrganizationConfigRuleStatusesAPIClient = (*Client)(nil) // for DescribeOrganizationConfigRuleStatuses type DescribeOrganizationConfigRuleStatusesPaginatorOptions struct { // The maximum number of OrganizationConfigRuleStatuses returned on each page. If - // you do no specify a number, AWS Config uses the default. The default is 100. + // you do no specify a number, Config uses the default. The default is 100. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/configservice/api_op_DescribeOrganizationConfigRules.go b/service/configservice/api_op_DescribeOrganizationConfigRules.go index 98322529217..cbd5149857a 100644 --- a/service/configservice/api_op_DescribeOrganizationConfigRules.go +++ b/service/configservice/api_op_DescribeOrganizationConfigRules.go @@ -34,7 +34,7 @@ func (c *Client) DescribeOrganizationConfigRules(ctx context.Context, params *De type DescribeOrganizationConfigRulesInput struct { // The maximum number of organization config rules returned on each page. If you do - // no specify a number, AWS Config uses the default. The default is 100. + // no specify a number, Config uses the default. The default is 100. Limit int32 // The nextToken string returned on a previous page that you use to get the next @@ -42,7 +42,7 @@ type DescribeOrganizationConfigRulesInput struct { NextToken *string // The names of organization config rules for which you want details. If you do not - // specify any names, AWS Config returns details for all your organization config + // specify any names, Config returns details for all your organization config // rules. OrganizationConfigRuleNames []string @@ -136,7 +136,7 @@ var _ DescribeOrganizationConfigRulesAPIClient = (*Client)(nil) // DescribeOrganizationConfigRules type DescribeOrganizationConfigRulesPaginatorOptions struct { // The maximum number of organization config rules returned on each page. If you do - // no specify a number, AWS Config uses the default. The default is 100. + // no specify a number, Config uses the default. The default is 100. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/configservice/api_op_DescribeOrganizationConformancePackStatuses.go b/service/configservice/api_op_DescribeOrganizationConformancePackStatuses.go index b6d9a647dab..a2136df83f1 100644 --- a/service/configservice/api_op_DescribeOrganizationConformancePackStatuses.go +++ b/service/configservice/api_op_DescribeOrganizationConformancePackStatuses.go @@ -37,7 +37,7 @@ func (c *Client) DescribeOrganizationConformancePackStatuses(ctx context.Context type DescribeOrganizationConformancePackStatusesInput struct { // The maximum number of OrganizationConformancePackStatuses returned on each page. - // If you do no specify a number, AWS Config uses the default. The default is 100. + // If you do no specify a number, Config uses the default. The default is 100. Limit int32 // The nextToken string returned on a previous page that you use to get the next @@ -45,7 +45,7 @@ type DescribeOrganizationConformancePackStatusesInput struct { NextToken *string // The names of organization conformance packs for which you want status details. - // If you do not specify any names, AWS Config returns details for all your + // If you do not specify any names, Config returns details for all your // organization conformance packs. OrganizationConformancePackNames []string @@ -139,7 +139,7 @@ var _ DescribeOrganizationConformancePackStatusesAPIClient = (*Client)(nil) // options for DescribeOrganizationConformancePackStatuses type DescribeOrganizationConformancePackStatusesPaginatorOptions struct { // The maximum number of OrganizationConformancePackStatuses returned on each page. - // If you do no specify a number, AWS Config uses the default. The default is 100. + // If you do no specify a number, Config uses the default. The default is 100. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/configservice/api_op_DescribeOrganizationConformancePacks.go b/service/configservice/api_op_DescribeOrganizationConformancePacks.go index 412e550c0aa..7773503a345 100644 --- a/service/configservice/api_op_DescribeOrganizationConformancePacks.go +++ b/service/configservice/api_op_DescribeOrganizationConformancePacks.go @@ -34,7 +34,7 @@ func (c *Client) DescribeOrganizationConformancePacks(ctx context.Context, param type DescribeOrganizationConformancePacksInput struct { // The maximum number of organization config packs returned on each page. If you do - // no specify a number, AWS Config uses the default. The default is 100. + // no specify a number, Config uses the default. The default is 100. Limit int32 // The nextToken string returned on a previous page that you use to get the next @@ -134,7 +134,7 @@ var _ DescribeOrganizationConformancePacksAPIClient = (*Client)(nil) // for DescribeOrganizationConformancePacks type DescribeOrganizationConformancePacksPaginatorOptions struct { // The maximum number of organization config packs returned on each page. If you do - // no specify a number, AWS Config uses the default. The default is 100. + // no specify a number, Config uses the default. The default is 100. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/configservice/api_op_DescribePendingAggregationRequests.go b/service/configservice/api_op_DescribePendingAggregationRequests.go index 7828a1d85fa..8e794dd2630 100644 --- a/service/configservice/api_op_DescribePendingAggregationRequests.go +++ b/service/configservice/api_op_DescribePendingAggregationRequests.go @@ -31,7 +31,7 @@ func (c *Client) DescribePendingAggregationRequests(ctx context.Context, params type DescribePendingAggregationRequestsInput struct { // The maximum number of evaluation results returned on each page. The default is - // maximum. If you specify 0, AWS Config uses the default. + // maximum. If you specify 0, Config uses the default. Limit int32 // The nextToken string returned on a previous page that you use to get the next @@ -128,7 +128,7 @@ var _ DescribePendingAggregationRequestsAPIClient = (*Client)(nil) // DescribePendingAggregationRequests type DescribePendingAggregationRequestsPaginatorOptions struct { // The maximum number of evaluation results returned on each page. The default is - // maximum. If you specify 0, AWS Config uses the default. + // maximum. If you specify 0, Config uses the default. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/configservice/api_op_DescribeRemediationConfigurations.go b/service/configservice/api_op_DescribeRemediationConfigurations.go index 09a01eebd4e..70c8938fd7a 100644 --- a/service/configservice/api_op_DescribeRemediationConfigurations.go +++ b/service/configservice/api_op_DescribeRemediationConfigurations.go @@ -29,7 +29,7 @@ func (c *Client) DescribeRemediationConfigurations(ctx context.Context, params * type DescribeRemediationConfigurationsInput struct { - // A list of AWS Config rule names of remediation configurations for which you want + // A list of Config rule names of remediation configurations for which you want // details. // // This member is required. diff --git a/service/configservice/api_op_DescribeRemediationExceptions.go b/service/configservice/api_op_DescribeRemediationExceptions.go index 2c6327501e6..55b329f0a10 100644 --- a/service/configservice/api_op_DescribeRemediationExceptions.go +++ b/service/configservice/api_op_DescribeRemediationExceptions.go @@ -15,9 +15,9 @@ import ( // Returns the details of one or more remediation exceptions. A detailed view of a // remediation exception for a set of resources that includes an explanation of an // exception and the time when the exception will be deleted. When you specify the -// limit and the next token, you receive a paginated response. AWS Config generates -// a remediation exception when a problem occurs executing a remediation action to -// a specific resource. Remediation exceptions blocks auto-remediation until the +// limit and the next token, you receive a paginated response. Config generates a +// remediation exception when a problem occurs executing a remediation action to a +// specific resource. Remediation exceptions blocks auto-remediation until the // exception is cleared. When you specify the limit and the next token, you receive // a paginated response. Limit and next token are not applicable if you request // resources in batch. It is only applicable, when you request all resources. @@ -38,13 +38,13 @@ func (c *Client) DescribeRemediationExceptions(ctx context.Context, params *Desc type DescribeRemediationExceptionsInput struct { - // The name of the AWS Config rule. + // The name of the Config rule. // // This member is required. ConfigRuleName *string // The maximum number of RemediationExceptionResourceKey returned on each page. The - // default is 25. If you specify 0, AWS Config uses the default. + // default is 25. If you specify 0, Config uses the default. Limit int32 // The nextToken string returned in a previous request that you use to request the @@ -52,8 +52,8 @@ type DescribeRemediationExceptionsInput struct { NextToken *string // An exception list of resource exception keys to be processed with the current - // request. AWS Config adds exception for each resource key. For example, AWS - // Config adds 3 exceptions for 3 resource keys. + // request. Config adds exception for each resource key. For example, Config adds 3 + // exceptions for 3 resource keys. ResourceKeys []types.RemediationExceptionResourceKey noSmithyDocumentSerde @@ -149,7 +149,7 @@ var _ DescribeRemediationExceptionsAPIClient = (*Client)(nil) // DescribeRemediationExceptions type DescribeRemediationExceptionsPaginatorOptions struct { // The maximum number of RemediationExceptionResourceKey returned on each page. The - // default is 25. If you specify 0, AWS Config uses the default. + // default is 25. If you specify 0, Config uses the default. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/configservice/api_op_DescribeRemediationExecutionStatus.go b/service/configservice/api_op_DescribeRemediationExecutionStatus.go index 0af9cf90134..9a255b74a23 100644 --- a/service/configservice/api_op_DescribeRemediationExecutionStatus.go +++ b/service/configservice/api_op_DescribeRemediationExecutionStatus.go @@ -33,13 +33,13 @@ func (c *Client) DescribeRemediationExecutionStatus(ctx context.Context, params type DescribeRemediationExecutionStatusInput struct { - // A list of AWS Config rule names. + // A list of Config rule names. // // This member is required. ConfigRuleName *string // The maximum number of RemediationExecutionStatuses returned on each page. The - // default is maximum. If you specify 0, AWS Config uses the default. + // default is maximum. If you specify 0, Config uses the default. Limit int32 // The nextToken string returned on a previous page that you use to get the next @@ -143,7 +143,7 @@ var _ DescribeRemediationExecutionStatusAPIClient = (*Client)(nil) // DescribeRemediationExecutionStatus type DescribeRemediationExecutionStatusPaginatorOptions struct { // The maximum number of RemediationExecutionStatuses returned on each page. The - // default is maximum. If you specify 0, AWS Config uses the default. + // default is maximum. If you specify 0, Config uses the default. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/configservice/api_op_DescribeRetentionConfigurations.go b/service/configservice/api_op_DescribeRetentionConfigurations.go index 931b27ce617..559c42642d6 100644 --- a/service/configservice/api_op_DescribeRetentionConfigurations.go +++ b/service/configservice/api_op_DescribeRetentionConfigurations.go @@ -14,8 +14,8 @@ import ( // Returns the details of one or more retention configurations. If the retention // configuration name is not specified, this action returns the details for all the -// retention configurations for that account. Currently, AWS Config supports only -// one retention configuration per region in your account. +// retention configurations for that account. Currently, Config supports only one +// retention configuration per region in your account. func (c *Client) DescribeRetentionConfigurations(ctx context.Context, params *DescribeRetentionConfigurationsInput, optFns ...func(*Options)) (*DescribeRetentionConfigurationsOutput, error) { if params == nil { params = &DescribeRetentionConfigurationsInput{} @@ -38,9 +38,9 @@ type DescribeRetentionConfigurationsInput struct { NextToken *string // A list of names of retention configurations for which you want details. If you - // do not specify a name, AWS Config returns details for all the retention - // configurations for that account. Currently, AWS Config supports only one - // retention configuration per region in your account. + // do not specify a name, Config returns details for all the retention + // configurations for that account. Currently, Config supports only one retention + // configuration per region in your account. RetentionConfigurationNames []string noSmithyDocumentSerde diff --git a/service/configservice/api_op_GetAggregateComplianceDetailsByConfigRule.go b/service/configservice/api_op_GetAggregateComplianceDetailsByConfigRule.go index 9e42d8c924f..1d31cc84a23 100644 --- a/service/configservice/api_op_GetAggregateComplianceDetailsByConfigRule.go +++ b/service/configservice/api_op_GetAggregateComplianceDetailsByConfigRule.go @@ -12,11 +12,11 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns the evaluation results for the specified AWS Config rule for a specific -// resource in a rule. The results indicate which AWS resources were evaluated by -// the rule, when each resource was last evaluated, and whether each resource -// complies with the rule. The results can return an empty result page. But if you -// have a nextToken, the results are displayed on the next page. +// Returns the evaluation results for the specified Config rule for a specific +// resource in a rule. The results indicate which Amazon Web Services resources +// were evaluated by the rule, when each resource was last evaluated, and whether +// each resource complies with the rule. The results can return an empty result +// page. But if you have a nextToken, the results are displayed on the next page. func (c *Client) GetAggregateComplianceDetailsByConfigRule(ctx context.Context, params *GetAggregateComplianceDetailsByConfigRuleInput, optFns ...func(*Options)) (*GetAggregateComplianceDetailsByConfigRuleOutput, error) { if params == nil { params = &GetAggregateComplianceDetailsByConfigRuleInput{} @@ -44,7 +44,7 @@ type GetAggregateComplianceDetailsByConfigRuleInput struct { // This member is required. AwsRegion *string - // The name of the AWS Config rule for which you want compliance information. + // The name of the Config rule for which you want compliance information. // // This member is required. ConfigRuleName *string @@ -55,14 +55,14 @@ type GetAggregateComplianceDetailsByConfigRuleInput struct { ConfigurationAggregatorName *string // The resource compliance status. For the - // GetAggregateComplianceDetailsByConfigRuleRequest data type, AWS Config supports - // only the COMPLIANT and NON_COMPLIANT. AWS Config does not support the - // NOT_APPLICABLE and INSUFFICIENT_DATA values. + // GetAggregateComplianceDetailsByConfigRuleRequest data type, Config supports only + // the COMPLIANT and NON_COMPLIANT. Config does not support the NOT_APPLICABLE and + // INSUFFICIENT_DATA values. ComplianceType types.ComplianceType // The maximum number of evaluation results returned on each page. The default is - // 50. You cannot specify a number greater than 100. If you specify 0, AWS Config - // uses the default. + // 50. You cannot specify a number greater than 100. If you specify 0, Config uses + // the default. Limit int32 // The nextToken string returned on a previous page that you use to get the next @@ -162,8 +162,8 @@ var _ GetAggregateComplianceDetailsByConfigRuleAPIClient = (*Client)(nil) // options for GetAggregateComplianceDetailsByConfigRule type GetAggregateComplianceDetailsByConfigRulePaginatorOptions struct { // The maximum number of evaluation results returned on each page. The default is - // 50. You cannot specify a number greater than 100. If you specify 0, AWS Config - // uses the default. + // 50. You cannot specify a number greater than 100. If you specify 0, Config uses + // the default. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/configservice/api_op_GetAggregateConfigRuleComplianceSummary.go b/service/configservice/api_op_GetAggregateConfigRuleComplianceSummary.go index 44b3bf68990..f6458d2cc3a 100644 --- a/service/configservice/api_op_GetAggregateConfigRuleComplianceSummary.go +++ b/service/configservice/api_op_GetAggregateConfigRuleComplianceSummary.go @@ -44,8 +44,8 @@ type GetAggregateConfigRuleComplianceSummaryInput struct { GroupByKey types.ConfigRuleComplianceSummaryGroupKey // The maximum number of evaluation results returned on each page. The default is - // 1000. You cannot specify a number greater than 1000. If you specify 0, AWS - // Config uses the default. + // 1000. You cannot specify a number greater than 1000. If you specify 0, Config + // uses the default. Limit int32 // The nextToken string returned on a previous page that you use to get the next @@ -148,8 +148,8 @@ var _ GetAggregateConfigRuleComplianceSummaryAPIClient = (*Client)(nil) // for GetAggregateConfigRuleComplianceSummary type GetAggregateConfigRuleComplianceSummaryPaginatorOptions struct { // The maximum number of evaluation results returned on each page. The default is - // 1000. You cannot specify a number greater than 1000. If you specify 0, AWS - // Config uses the default. + // 1000. You cannot specify a number greater than 1000. If you specify 0, Config + // uses the default. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/configservice/api_op_GetAggregateConformancePackComplianceSummary.go b/service/configservice/api_op_GetAggregateConformancePackComplianceSummary.go index e42972208f0..32adec4a574 100644 --- a/service/configservice/api_op_GetAggregateConformancePackComplianceSummary.go +++ b/service/configservice/api_op_GetAggregateConformancePackComplianceSummary.go @@ -12,9 +12,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns the count of compliant and noncompliant conformance packs across all AWS -// Accounts and AWS Regions in an aggregator. You can filter based on AWS Account -// ID or AWS Region. The results can return an empty result page, but if you have a +// Returns the count of compliant and noncompliant conformance packs across all +// Amazon Web Services accounts and Amazon Web Services Regions in an aggregator. +// You can filter based on Amazon Web Services account ID or Amazon Web Services +// Region. The results can return an empty result page, but if you have a // nextToken, the results are displayed on the next page. func (c *Client) GetAggregateConformancePackComplianceSummary(ctx context.Context, params *GetAggregateConformancePackComplianceSummaryInput, optFns ...func(*Options)) (*GetAggregateConformancePackComplianceSummaryOutput, error) { if params == nil { @@ -42,11 +43,12 @@ type GetAggregateConformancePackComplianceSummaryInput struct { // AggregateConformancePackComplianceSummaryFilters object. Filters *types.AggregateConformancePackComplianceSummaryFilters - // Groups the result based on AWS Account ID or AWS Region. + // Groups the result based on Amazon Web Services account ID or Amazon Web Services + // Region. GroupByKey types.AggregateConformancePackComplianceSummaryGroupKey // The maximum number of results returned on each page. The default is maximum. If - // you specify 0, AWS Config uses the default. + // you specify 0, Config uses the default. Limit int32 // The nextToken string returned on a previous page that you use to get the next @@ -61,7 +63,8 @@ type GetAggregateConformancePackComplianceSummaryOutput struct { // Returns a list of AggregateConformancePackComplianceSummary object. AggregateConformancePackComplianceSummaries []types.AggregateConformancePackComplianceSummary - // Groups the result based on AWS Account ID or AWS Region. + // Groups the result based on Amazon Web Services account ID or Amazon Web Services + // Region. GroupByKey *string // The nextToken string returned on a previous page that you use to get the next @@ -149,7 +152,7 @@ var _ GetAggregateConformancePackComplianceSummaryAPIClient = (*Client)(nil) // options for GetAggregateConformancePackComplianceSummary type GetAggregateConformancePackComplianceSummaryPaginatorOptions struct { // The maximum number of results returned on each page. The default is maximum. If - // you specify 0, AWS Config uses the default. + // you specify 0, Config uses the default. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/configservice/api_op_GetAggregateDiscoveredResourceCounts.go b/service/configservice/api_op_GetAggregateDiscoveredResourceCounts.go index ca9b41b9c89..e8e8aadc79e 100644 --- a/service/configservice/api_op_GetAggregateDiscoveredResourceCounts.go +++ b/service/configservice/api_op_GetAggregateDiscoveredResourceCounts.go @@ -13,10 +13,10 @@ import ( ) // Returns the resource counts across accounts and regions that are present in your -// AWS Config aggregator. You can request the resource counts by providing filters -// and GroupByKey. For example, if the input contains accountID 12345678910 and -// region us-east-1 in filters, the API returns the count of resources in account -// ID 12345678910 and region us-east-1. If the input contains ACCOUNT_ID as a +// Config aggregator. You can request the resource counts by providing filters and +// GroupByKey. For example, if the input contains accountID 12345678910 and region +// us-east-1 in filters, the API returns the count of resources in account ID +// 12345678910 and region us-east-1. If the input contains ACCOUNT_ID as a // GroupByKey, the API returns resource counts for all source accounts that are // present in your aggregator. func (c *Client) GetAggregateDiscoveredResourceCounts(ctx context.Context, params *GetAggregateDiscoveredResourceCountsInput, optFns ...func(*Options)) (*GetAggregateDiscoveredResourceCountsOutput, error) { @@ -49,7 +49,7 @@ type GetAggregateDiscoveredResourceCountsInput struct { // The maximum number of GroupedResourceCount objects returned on each page. The // default is 1000. You cannot specify a number greater than 1000. If you specify - // 0, AWS Config uses the default. + // 0, Config uses the default. Limit int32 // The nextToken string returned on a previous page that you use to get the next @@ -160,7 +160,7 @@ var _ GetAggregateDiscoveredResourceCountsAPIClient = (*Client)(nil) type GetAggregateDiscoveredResourceCountsPaginatorOptions struct { // The maximum number of GroupedResourceCount objects returned on each page. The // default is 1000. You cannot specify a number greater than 1000. If you specify - // 0, AWS Config uses the default. + // 0, Config uses the default. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/configservice/api_op_GetComplianceDetailsByConfigRule.go b/service/configservice/api_op_GetComplianceDetailsByConfigRule.go index 6739f10f534..d3208fa96a3 100644 --- a/service/configservice/api_op_GetComplianceDetailsByConfigRule.go +++ b/service/configservice/api_op_GetComplianceDetailsByConfigRule.go @@ -12,9 +12,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns the evaluation results for the specified AWS Config rule. The results -// indicate which AWS resources were evaluated by the rule, when each resource was -// last evaluated, and whether each resource complies with the rule. +// Returns the evaluation results for the specified Config rule. The results +// indicate which Amazon Web Services resources were evaluated by the rule, when +// each resource was last evaluated, and whether each resource complies with the +// rule. func (c *Client) GetComplianceDetailsByConfigRule(ctx context.Context, params *GetComplianceDetailsByConfigRuleInput, optFns ...func(*Options)) (*GetComplianceDetailsByConfigRuleOutput, error) { if params == nil { params = &GetComplianceDetailsByConfigRuleInput{} @@ -33,7 +34,7 @@ func (c *Client) GetComplianceDetailsByConfigRule(ctx context.Context, params *G // type GetComplianceDetailsByConfigRuleInput struct { - // The name of the AWS Config rule for which you want compliance information. + // The name of the Config rule for which you want compliance information. // // This member is required. ConfigRuleName *string @@ -43,8 +44,8 @@ type GetComplianceDetailsByConfigRuleInput struct { ComplianceTypes []types.ComplianceType // The maximum number of evaluation results returned on each page. The default is - // 10. You cannot specify a number greater than 100. If you specify 0, AWS Config - // uses the default. + // 10. You cannot specify a number greater than 100. If you specify 0, Config uses + // the default. Limit int32 // The nextToken string returned on a previous page that you use to get the next @@ -57,7 +58,8 @@ type GetComplianceDetailsByConfigRuleInput struct { // type GetComplianceDetailsByConfigRuleOutput struct { - // Indicates whether the AWS resource complies with the specified AWS Config rule. + // Indicates whether the Amazon Web Services resource complies with the specified + // Config rule. EvaluationResults []types.EvaluationResult // The string that you use in a subsequent request to get the next page of results @@ -145,8 +147,8 @@ var _ GetComplianceDetailsByConfigRuleAPIClient = (*Client)(nil) // GetComplianceDetailsByConfigRule type GetComplianceDetailsByConfigRulePaginatorOptions struct { // The maximum number of evaluation results returned on each page. The default is - // 10. You cannot specify a number greater than 100. If you specify 0, AWS Config - // uses the default. + // 10. You cannot specify a number greater than 100. If you specify 0, Config uses + // the default. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/configservice/api_op_GetComplianceDetailsByResource.go b/service/configservice/api_op_GetComplianceDetailsByResource.go index 7e6d1b67449..e27f30ac3bd 100644 --- a/service/configservice/api_op_GetComplianceDetailsByResource.go +++ b/service/configservice/api_op_GetComplianceDetailsByResource.go @@ -12,9 +12,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns the evaluation results for the specified AWS resource. The results -// indicate which AWS Config rules were used to evaluate the resource, when each -// rule was last used, and whether the resource complies with each rule. +// Returns the evaluation results for the specified Amazon Web Services resource. +// The results indicate which Config rules were used to evaluate the resource, when +// each rule was last used, and whether the resource complies with each rule. func (c *Client) GetComplianceDetailsByResource(ctx context.Context, params *GetComplianceDetailsByResourceInput, optFns ...func(*Options)) (*GetComplianceDetailsByResourceOutput, error) { if params == nil { params = &GetComplianceDetailsByResourceInput{} @@ -33,12 +33,14 @@ func (c *Client) GetComplianceDetailsByResource(ctx context.Context, params *Get // type GetComplianceDetailsByResourceInput struct { - // The ID of the AWS resource for which you want compliance information. + // The ID of the Amazon Web Services resource for which you want compliance + // information. // // This member is required. ResourceId *string - // The type of the AWS resource for which you want compliance information. + // The type of the Amazon Web Services resource for which you want compliance + // information. // // This member is required. ResourceType *string @@ -57,7 +59,8 @@ type GetComplianceDetailsByResourceInput struct { // type GetComplianceDetailsByResourceOutput struct { - // Indicates whether the specified AWS resource complies each AWS Config rule. + // Indicates whether the specified Amazon Web Services resource complies each + // Config rule. EvaluationResults []types.EvaluationResult // The string that you use in a subsequent request to get the next page of results diff --git a/service/configservice/api_op_GetComplianceSummaryByConfigRule.go b/service/configservice/api_op_GetComplianceSummaryByConfigRule.go index 6cd51910cbb..2d394a85e76 100644 --- a/service/configservice/api_op_GetComplianceSummaryByConfigRule.go +++ b/service/configservice/api_op_GetComplianceSummaryByConfigRule.go @@ -11,8 +11,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns the number of AWS Config rules that are compliant and noncompliant, up -// to a maximum of 25 for each. +// Returns the number of Config rules that are compliant and noncompliant, up to a +// maximum of 25 for each. func (c *Client) GetComplianceSummaryByConfigRule(ctx context.Context, params *GetComplianceSummaryByConfigRuleInput, optFns ...func(*Options)) (*GetComplianceSummaryByConfigRuleOutput, error) { if params == nil { params = &GetComplianceSummaryByConfigRuleInput{} @@ -35,7 +35,7 @@ type GetComplianceSummaryByConfigRuleInput struct { // type GetComplianceSummaryByConfigRuleOutput struct { - // The number of AWS Config rules that are compliant and the number that are + // The number of Config rules that are compliant and the number that are // noncompliant, up to a maximum of 25 for each. ComplianceSummary *types.ComplianceSummary diff --git a/service/configservice/api_op_GetComplianceSummaryByResourceType.go b/service/configservice/api_op_GetComplianceSummaryByResourceType.go index a3eb50bc45a..53c75f60366 100644 --- a/service/configservice/api_op_GetComplianceSummaryByResourceType.go +++ b/service/configservice/api_op_GetComplianceSummaryByResourceType.go @@ -34,9 +34,9 @@ type GetComplianceSummaryByResourceTypeInput struct { // Specify one or more resource types to get the number of resources that are // compliant and the number that are noncompliant for each resource type. For this - // request, you can specify an AWS resource type such as AWS::EC2::Instance. You - // can specify that the resource type is an AWS account by specifying - // AWS::::Account. + // request, you can specify an Amazon Web Services resource type such as + // AWS::EC2::Instance. You can specify that the resource type is an Amazon Web + // Services account by specifying AWS::::Account. ResourceTypes []string noSmithyDocumentSerde diff --git a/service/configservice/api_op_GetConformancePackComplianceDetails.go b/service/configservice/api_op_GetConformancePackComplianceDetails.go index 6632f71bdd4..d4d533080b4 100644 --- a/service/configservice/api_op_GetConformancePackComplianceDetails.go +++ b/service/configservice/api_op_GetConformancePackComplianceDetails.go @@ -12,8 +12,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns compliance details of a conformance pack for all AWS resources that are -// monitered by conformance pack. +// Returns compliance details of a conformance pack for all Amazon Web Services +// resources that are monitered by conformance pack. func (c *Client) GetConformancePackComplianceDetails(ctx context.Context, params *GetConformancePackComplianceDetailsInput, optFns ...func(*Options)) (*GetConformancePackComplianceDetailsOutput, error) { if params == nil { params = &GetConformancePackComplianceDetailsInput{} @@ -40,7 +40,7 @@ type GetConformancePackComplianceDetailsInput struct { Filters *types.ConformancePackEvaluationFilters // The maximum number of evaluation results returned on each page. If you do no - // specify a number, AWS Config uses the default. The default is 100. + // specify a number, Config uses the default. The default is 100. Limit int32 // The nextToken string returned in a previous request that you use to request the @@ -145,7 +145,7 @@ var _ GetConformancePackComplianceDetailsAPIClient = (*Client)(nil) // GetConformancePackComplianceDetails type GetConformancePackComplianceDetailsPaginatorOptions struct { // The maximum number of evaluation results returned on each page. If you do no - // specify a number, AWS Config uses the default. The default is 100. + // specify a number, Config uses the default. The default is 100. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/configservice/api_op_GetDiscoveredResourceCounts.go b/service/configservice/api_op_GetDiscoveredResourceCounts.go index fc89a8f5453..a1602eb5c61 100644 --- a/service/configservice/api_op_GetDiscoveredResourceCounts.go +++ b/service/configservice/api_op_GetDiscoveredResourceCounts.go @@ -13,42 +13,42 @@ import ( ) // Returns the resource types, the number of each resource type, and the total -// number of resources that AWS Config is recording in this region for your AWS -// account. Example +// number of resources that Config is recording in this region for your Amazon Web +// Services account. Example // -// * AWS Config is recording three resource types in the US East -// (Ohio) Region for your account: 25 EC2 instances, 20 IAM users, and 15 S3 +// * Config is recording three resource types in the US +// East (Ohio) Region for your account: 25 EC2 instances, 20 IAM users, and 15 S3 // buckets. // // * You make a call to the GetDiscoveredResourceCounts action and // specify that you want all resource types. // -// * AWS Config returns the -// following: -// -// * The resource types (EC2 instances, IAM users, and S3 buckets). +// * Config returns the following: // // * -// The number of each resource type (25, 20, and 15). +// The resource types (EC2 instances, IAM users, and S3 buckets). // -// * The total number of all -// resources (60). +// * The number of +// each resource type (25, 20, and 15). // -// The response is paginated. By default, AWS Config lists 100 -// ResourceCount objects on each page. You can customize this number with the limit -// parameter. The response includes a nextToken string. To get the next page of -// results, run the request again and specify the string for the nextToken -// parameter. If you make a call to the GetDiscoveredResourceCounts action, you -// might not immediately receive resource counts in the following situations: +// * The total number of all resources +// (60). // -// * -// You are a new AWS Config customer. +// The response is paginated. By default, Config lists 100 ResourceCount +// objects on each page. You can customize this number with the limit parameter. +// The response includes a nextToken string. To get the next page of results, run +// the request again and specify the string for the nextToken parameter. If you +// make a call to the GetDiscoveredResourceCounts action, you might not immediately +// receive resource counts in the following situations: +// +// * You are a new Config +// customer. // // * You just enabled resource recording. // -// It -// might take a few minutes for AWS Config to record and count your resources. Wait -// a few minutes and then retry the GetDiscoveredResourceCounts action. +// It might take a few minutes +// for Config to record and count your resources. Wait a few minutes and then retry +// the GetDiscoveredResourceCounts action. func (c *Client) GetDiscoveredResourceCounts(ctx context.Context, params *GetDiscoveredResourceCountsInput, optFns ...func(*Options)) (*GetDiscoveredResourceCountsOutput, error) { if params == nil { params = &GetDiscoveredResourceCountsInput{} @@ -67,22 +67,22 @@ func (c *Client) GetDiscoveredResourceCounts(ctx context.Context, params *GetDis type GetDiscoveredResourceCountsInput struct { // The maximum number of ResourceCount objects returned on each page. The default - // is 100. You cannot specify a number greater than 100. If you specify 0, AWS - // Config uses the default. + // is 100. You cannot specify a number greater than 100. If you specify 0, Config + // uses the default. Limit int32 // The nextToken string returned on a previous page that you use to get the next // page of results in a paginated response. NextToken *string - // The comma-separated list that specifies the resource types that you want AWS - // Config to return (for example, "AWS::EC2::Instance", "AWS::IAM::User"). If a - // value for resourceTypes is not specified, AWS Config returns all resource types - // that AWS Config is recording in the region for your account. If the - // configuration recorder is turned off, AWS Config returns an empty list of - // ResourceCount objects. If the configuration recorder is not recording a specific - // resource type (for example, S3 buckets), that resource type is not returned in - // the list of ResourceCount objects. + // The comma-separated list that specifies the resource types that you want Config + // to return (for example, "AWS::EC2::Instance", "AWS::IAM::User"). If a value for + // resourceTypes is not specified, Config returns all resource types that Config is + // recording in the region for your account. If the configuration recorder is + // turned off, Config returns an empty list of ResourceCount objects. If the + // configuration recorder is not recording a specific resource type (for example, + // S3 buckets), that resource type is not returned in the list of ResourceCount + // objects. ResourceTypes []string noSmithyDocumentSerde @@ -98,20 +98,20 @@ type GetDiscoveredResourceCountsOutput struct { // the number of resources. ResourceCounts []types.ResourceCount - // The total number of resources that AWS Config is recording in the region for - // your account. If you specify resource types in the request, AWS Config returns - // only the total number of resources for those resource types. Example + // The total number of resources that Config is recording in the region for your + // account. If you specify resource types in the request, Config returns only the + // total number of resources for those resource types. Example // - // * AWS - // Config is recording three resource types in the US East (Ohio) Region for your - // account: 25 EC2 instances, 20 IAM users, and 15 S3 buckets, for a total of 60 - // resources. + // * Config is + // recording three resource types in the US East (Ohio) Region for your account: 25 + // EC2 instances, 20 IAM users, and 15 S3 buckets, for a total of 60 resources. // - // * You make a call to the GetDiscoveredResourceCounts action and - // specify the resource type, "AWS::EC2::Instances", in the request. + // * + // You make a call to the GetDiscoveredResourceCounts action and specify the + // resource type, "AWS::EC2::Instances", in the request. // - // * AWS Config - // returns 25 for totalDiscoveredResources. + // * Config returns 25 for + // totalDiscoveredResources. TotalDiscoveredResources int64 // Metadata pertaining to the operation's result. @@ -192,8 +192,8 @@ var _ GetDiscoveredResourceCountsAPIClient = (*Client)(nil) // GetDiscoveredResourceCounts type GetDiscoveredResourceCountsPaginatorOptions struct { // The maximum number of ResourceCount objects returned on each page. The default - // is 100. You cannot specify a number greater than 100. If you specify 0, AWS - // Config uses the default. + // is 100. You cannot specify a number greater than 100. If you specify 0, Config + // uses the default. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/configservice/api_op_GetOrganizationConfigRuleDetailedStatus.go b/service/configservice/api_op_GetOrganizationConfigRuleDetailedStatus.go index 06ef7c0d81b..29262fd9208 100644 --- a/service/configservice/api_op_GetOrganizationConfigRuleDetailedStatus.go +++ b/service/configservice/api_op_GetOrganizationConfigRuleDetailedStatus.go @@ -41,8 +41,8 @@ type GetOrganizationConfigRuleDetailedStatusInput struct { Filters *types.StatusDetailFilters // The maximum number of OrganizationConfigRuleDetailedStatus returned on each - // page. If you do not specify a number, AWS Config uses the default. The default - // is 100. + // page. If you do not specify a number, Config uses the default. The default is + // 100. Limit int32 // The nextToken string returned on a previous page that you use to get the next @@ -142,8 +142,8 @@ var _ GetOrganizationConfigRuleDetailedStatusAPIClient = (*Client)(nil) // for GetOrganizationConfigRuleDetailedStatus type GetOrganizationConfigRuleDetailedStatusPaginatorOptions struct { // The maximum number of OrganizationConfigRuleDetailedStatus returned on each - // page. If you do not specify a number, AWS Config uses the default. The default - // is 100. + // page. If you do not specify a number, Config uses the default. The default is + // 100. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/configservice/api_op_GetOrganizationConformancePackDetailedStatus.go b/service/configservice/api_op_GetOrganizationConformancePackDetailedStatus.go index 009705c2fc5..0582dd574ce 100644 --- a/service/configservice/api_op_GetOrganizationConformancePackDetailedStatus.go +++ b/service/configservice/api_op_GetOrganizationConformancePackDetailedStatus.go @@ -41,8 +41,8 @@ type GetOrganizationConformancePackDetailedStatusInput struct { Filters *types.OrganizationResourceDetailedStatusFilters // The maximum number of OrganizationConformancePackDetailedStatuses returned on - // each page. If you do not specify a number, AWS Config uses the default. The - // default is 100. + // each page. If you do not specify a number, Config uses the default. The default + // is 100. Limit int32 // The nextToken string returned on a previous page that you use to get the next @@ -142,8 +142,8 @@ var _ GetOrganizationConformancePackDetailedStatusAPIClient = (*Client)(nil) // options for GetOrganizationConformancePackDetailedStatus type GetOrganizationConformancePackDetailedStatusPaginatorOptions struct { // The maximum number of OrganizationConformancePackDetailedStatuses returned on - // each page. If you do not specify a number, AWS Config uses the default. The - // default is 100. + // each page. If you do not specify a number, Config uses the default. The default + // is 100. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/configservice/api_op_GetResourceConfigHistory.go b/service/configservice/api_op_GetResourceConfigHistory.go index 60a97a47238..2cc8f298bbf 100644 --- a/service/configservice/api_op_GetResourceConfigHistory.go +++ b/service/configservice/api_op_GetResourceConfigHistory.go @@ -13,13 +13,13 @@ import ( "time" ) -// Returns a list of configuration items for the specified resource. The list +// Returns a list of ConfigurationItems for the specified resource. The list // contains details about each state of the resource during the specified time // interval. If you specified a retention period to retain your ConfigurationItems -// between a minimum of 30 days and a maximum of 7 years (2557 days), AWS Config +// between a minimum of 30 days and a maximum of 7 years (2557 days), Config // returns the ConfigurationItems for the specified retention period. The response -// is paginated. By default, AWS Config returns a limit of 10 configuration items -// per page. You can customize this number with the limit parameter. The response +// is paginated. By default, Config returns a limit of 10 configuration items per +// page. You can customize this number with the limit parameter. The response // includes a nextToken string. To get the next page of results, run the request // again and specify the string for the nextToken parameter. Each call to the API // is limited to span a duration of seven days. It is likely that the number of @@ -67,8 +67,8 @@ type GetResourceConfigHistoryInput struct { LaterTime *time.Time // The maximum number of configuration items returned on each page. The default is - // 10. You cannot specify a number greater than 100. If you specify 0, AWS Config - // uses the default. + // 10. You cannot specify a number greater than 100. If you specify 0, Config uses + // the default. Limit int32 // The nextToken string returned on a previous page that you use to get the next @@ -169,8 +169,8 @@ var _ GetResourceConfigHistoryAPIClient = (*Client)(nil) // GetResourceConfigHistory type GetResourceConfigHistoryPaginatorOptions struct { // The maximum number of configuration items returned on each page. The default is - // 10. You cannot specify a number greater than 100. If you specify 0, AWS Config - // uses the default. + // 10. You cannot specify a number greater than 100. If you specify 0, Config uses + // the default. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/configservice/api_op_ListAggregateDiscoveredResources.go b/service/configservice/api_op_ListAggregateDiscoveredResources.go index 08bc2aa8f93..e95de2fc5df 100644 --- a/service/configservice/api_op_ListAggregateDiscoveredResources.go +++ b/service/configservice/api_op_ListAggregateDiscoveredResources.go @@ -43,7 +43,7 @@ type ListAggregateDiscoveredResourcesInput struct { // This member is required. ConfigurationAggregatorName *string - // The type of resources that you want AWS Config to list in the response. + // The type of resources that you want Config to list in the response. // // This member is required. ResourceType types.ResourceType @@ -52,8 +52,7 @@ type ListAggregateDiscoveredResourcesInput struct { Filters *types.ResourceFilters // The maximum number of resource identifiers returned on each page. You cannot - // specify a number greater than 100. If you specify 0, AWS Config uses the - // default. + // specify a number greater than 100. If you specify 0, Config uses the default. Limit int32 // The nextToken string returned on a previous page that you use to get the next @@ -153,8 +152,7 @@ var _ ListAggregateDiscoveredResourcesAPIClient = (*Client)(nil) // ListAggregateDiscoveredResources type ListAggregateDiscoveredResourcesPaginatorOptions struct { // The maximum number of resource identifiers returned on each page. You cannot - // specify a number greater than 100. If you specify 0, AWS Config uses the - // default. + // specify a number greater than 100. If you specify 0, Config uses the default. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/configservice/api_op_ListDiscoveredResources.go b/service/configservice/api_op_ListDiscoveredResources.go index 08fdb65048d..15521e5561b 100644 --- a/service/configservice/api_op_ListDiscoveredResources.go +++ b/service/configservice/api_op_ListDiscoveredResources.go @@ -15,11 +15,11 @@ import ( // Accepts a resource type and returns a list of resource identifiers for the // resources of that type. A resource identifier includes the resource type, ID, // and (if available) the custom resource name. The results consist of resources -// that AWS Config has discovered, including those that AWS Config is not currently +// that Config has discovered, including those that Config is not currently // recording. You can narrow the results to include only resources that have // specific resource IDs or a resource name. You can specify either resource IDs or // a resource name, but not both, in the same request. The response is paginated. -// By default, AWS Config lists 100 resource identifiers on each page. You can +// By default, Config lists 100 resource identifiers on each page. You can // customize this number with the limit parameter. The response includes a // nextToken string. To get the next page of results, run the request again and // specify the string for the nextToken parameter. @@ -41,32 +41,32 @@ func (c *Client) ListDiscoveredResources(ctx context.Context, params *ListDiscov // type ListDiscoveredResourcesInput struct { - // The type of resources that you want AWS Config to list in the response. + // The type of resources that you want Config to list in the response. // // This member is required. ResourceType types.ResourceType - // Specifies whether AWS Config includes deleted resources in the results. By - // default, deleted resources are not included. + // Specifies whether Config includes deleted resources in the results. By default, + // deleted resources are not included. IncludeDeletedResources bool // The maximum number of resource identifiers returned on each page. The default is - // 100. You cannot specify a number greater than 100. If you specify 0, AWS Config - // uses the default. + // 100. You cannot specify a number greater than 100. If you specify 0, Config uses + // the default. Limit int32 // The nextToken string returned on a previous page that you use to get the next // page of results in a paginated response. NextToken *string - // The IDs of only those resources that you want AWS Config to list in the - // response. If you do not specify this parameter, AWS Config lists all resources - // of the specified type that it has discovered. + // The IDs of only those resources that you want Config to list in the response. If + // you do not specify this parameter, Config lists all resources of the specified + // type that it has discovered. ResourceIds []string - // The custom name of only those resources that you want AWS Config to list in the - // response. If you do not specify this parameter, AWS Config lists all resources - // of the specified type that it has discovered. + // The custom name of only those resources that you want Config to list in the + // response. If you do not specify this parameter, Config lists all resources of + // the specified type that it has discovered. ResourceName *string noSmithyDocumentSerde @@ -79,8 +79,8 @@ type ListDiscoveredResourcesOutput struct { // in a paginated response. NextToken *string - // The details that identify a resource that is discovered by AWS Config, including - // the resource type, ID, and (if available) the custom resource name. + // The details that identify a resource that is discovered by Config, including the + // resource type, ID, and (if available) the custom resource name. ResourceIdentifiers []types.ResourceIdentifier // Metadata pertaining to the operation's result. @@ -164,8 +164,8 @@ var _ ListDiscoveredResourcesAPIClient = (*Client)(nil) // ListDiscoveredResources type ListDiscoveredResourcesPaginatorOptions struct { // The maximum number of resource identifiers returned on each page. The default is - // 100. You cannot specify a number greater than 100. If you specify 0, AWS Config - // uses the default. + // 100. You cannot specify a number greater than 100. If you specify 0, Config uses + // the default. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/configservice/api_op_ListStoredQueries.go b/service/configservice/api_op_ListStoredQueries.go index 2499823ce00..5d7745e8d81 100644 --- a/service/configservice/api_op_ListStoredQueries.go +++ b/service/configservice/api_op_ListStoredQueries.go @@ -12,8 +12,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists the stored queries for a single AWS account and a single AWS Region. The -// default is 100. +// Lists the stored queries for a single Amazon Web Services account and a single +// Amazon Web Services Region. The default is 100. func (c *Client) ListStoredQueries(ctx context.Context, params *ListStoredQueriesInput, optFns ...func(*Options)) (*ListStoredQueriesOutput, error) { if params == nil { params = &ListStoredQueriesInput{} diff --git a/service/configservice/api_op_ListTagsForResource.go b/service/configservice/api_op_ListTagsForResource.go index cbe81701a7d..b1b4f87d872 100644 --- a/service/configservice/api_op_ListTagsForResource.go +++ b/service/configservice/api_op_ListTagsForResource.go @@ -12,7 +12,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// List the tags for AWS Config resource. +// List the tags for Config resource. func (c *Client) ListTagsForResource(ctx context.Context, params *ListTagsForResourceInput, optFns ...func(*Options)) (*ListTagsForResourceOutput, error) { if params == nil { params = &ListTagsForResourceInput{} @@ -38,7 +38,7 @@ type ListTagsForResourceInput struct { ResourceArn *string // The maximum number of tags returned on each page. The limit maximum is 50. You - // cannot specify a number greater than 50. If you specify 0, AWS Config uses the + // cannot specify a number greater than 50. If you specify 0, Config uses the // default. Limit int32 @@ -139,7 +139,7 @@ var _ ListTagsForResourceAPIClient = (*Client)(nil) // ListTagsForResource type ListTagsForResourcePaginatorOptions struct { // The maximum number of tags returned on each page. The limit maximum is 50. You - // cannot specify a number greater than 50. If you specify 0, AWS Config uses the + // cannot specify a number greater than 50. If you specify 0, Config uses the // default. Limit int32 diff --git a/service/configservice/api_op_PutConfigRule.go b/service/configservice/api_op_PutConfigRule.go index 54bfefcff83..3bb4feb5fce 100644 --- a/service/configservice/api_op_PutConfigRule.go +++ b/service/configservice/api_op_PutConfigRule.go @@ -11,33 +11,33 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Adds or updates an AWS Config rule for evaluating whether your AWS resources -// comply with your desired configurations. You can use this action for custom AWS -// Config rules and AWS managed Config rules. A custom AWS Config rule is a rule -// that you develop and maintain. An AWS managed Config rule is a customizable, -// predefined rule that AWS Config provides. If you are adding a new custom AWS -// Config rule, you must first create the AWS Lambda function that the rule invokes -// to evaluate your resources. When you use the PutConfigRule action to add the -// rule to AWS Config, you must specify the Amazon Resource Name (ARN) that AWS -// Lambda assigns to the function. Specify the ARN for the SourceIdentifier key. -// This key is part of the Source object, which is part of the ConfigRule object. -// If you are adding an AWS managed Config rule, specify the rule's identifier for -// the SourceIdentifier key. To reference AWS managed Config rule identifiers, see -// About AWS Managed Config Rules +// Adds or updates an Config rule for evaluating whether your Amazon Web Services +// resources comply with your desired configurations. You can use this action for +// custom Config rules and Config managed rules. A custom Config rule is a rule +// that you develop and maintain. An Config managed rule is a customizable, +// predefined rule that Config provides. If you are adding a new custom Config +// rule, you must first create the Lambda function that the rule invokes to +// evaluate your resources. When you use the PutConfigRule action to add the rule +// to Config, you must specify the Amazon Resource Name (ARN) that Lambda assigns +// to the function. Specify the ARN for the SourceIdentifier key. This key is part +// of the Source object, which is part of the ConfigRule object. If you are adding +// an Config managed rule, specify the rule's identifier for the SourceIdentifier +// key. To reference Config managed rule identifiers, see About Config managed +// rules // (https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html). // For any new rule that you add, specify the ConfigRuleName in the ConfigRule // object. Do not specify the ConfigRuleArn or the ConfigRuleId. These values are -// generated by AWS Config for new rules. If you are updating a rule that you added +// generated by Config for new rules. If you are updating a rule that you added // previously, you can specify the rule by ConfigRuleName, ConfigRuleId, or // ConfigRuleArn in the ConfigRule data type that you use in this request. The -// maximum number of rules that AWS Config supports is 150. For information about -// requesting a rule limit increase, see AWS Config Limits +// maximum number of rules that Config supports is 150. For information about +// requesting a rule limit increase, see Config Limits // (http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_config) -// in the AWS General Reference Guide. For more information about developing and -// using AWS Config rules, see Evaluating AWS Resource Configurations with AWS -// Config +// in the Amazon Web Services General Reference Guide. For more information about +// developing and using Config rules, see Evaluating Amazon Web Services resource +// Configurations with Config // (https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) -// in the AWS Config Developer Guide. +// in the Config Developer Guide. func (c *Client) PutConfigRule(ctx context.Context, params *PutConfigRuleInput, optFns ...func(*Options)) (*PutConfigRuleOutput, error) { if params == nil { params = &PutConfigRuleInput{} diff --git a/service/configservice/api_op_PutConfigurationAggregator.go b/service/configservice/api_op_PutConfigurationAggregator.go index 603ee75956d..2b9ba7fb900 100644 --- a/service/configservice/api_op_PutConfigurationAggregator.go +++ b/service/configservice/api_op_PutConfigurationAggregator.go @@ -15,18 +15,18 @@ import ( // accounts and regions. The source account can be individual account(s) or an // organization. accountIds that are passed will be replaced with existing // accounts. If you want to add additional accounts into the aggregator, call -// DescribeAggregator to get the previous accounts and then append new ones. AWS -// Config should be enabled in source accounts and regions you want to aggregate. -// If your source type is an organization, you must be signed in to the management -// account or a registered delegated administrator and all the features must be -// enabled in your organization. If the caller is a management account, AWS Config -// calls EnableAwsServiceAccess API to enable integration between AWS Config and -// AWS Organizations. If the caller is a registered delegated administrator, AWS -// Config calls ListDelegatedAdministrators API to verify whether the caller is a -// valid delegated administrator. To register a delegated administrator, see -// Register a Delegated Administrator +// DescribeAggregator to get the previous accounts and then append new ones. Config +// should be enabled in source accounts and regions you want to aggregate. If your +// source type is an organization, you must be signed in to the management account +// or a registered delegated administrator and all the features must be enabled in +// your organization. If the caller is a management account, Config calls +// EnableAwsServiceAccess API to enable integration between Config and +// Organizations. If the caller is a registered delegated administrator, Config +// calls ListDelegatedAdministrators API to verify whether the caller is a valid +// delegated administrator. To register a delegated administrator, see Register a +// Delegated Administrator // (https://docs.aws.amazon.com/config/latest/developerguide/set-up-aggregator-cli.html#register-a-delegated-administrator-cli) -// in the AWS Config developer guide. +// in the Config developer guide. func (c *Client) PutConfigurationAggregator(ctx context.Context, params *PutConfigurationAggregatorInput, optFns ...func(*Options)) (*PutConfigurationAggregatorOutput, error) { if params == nil { params = &PutConfigurationAggregatorInput{} diff --git a/service/configservice/api_op_PutConformancePack.go b/service/configservice/api_op_PutConformancePack.go index 52f35e3f6d5..b73cfa7b4ae 100644 --- a/service/configservice/api_op_PutConformancePack.go +++ b/service/configservice/api_op_PutConformancePack.go @@ -11,13 +11,13 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates or updates a conformance pack. A conformance pack is a collection of AWS +// Creates or updates a conformance pack. A conformance pack is a collection of // Config rules that can be easily deployed in an account and a region and across -// AWS Organization. This API creates a service linked role +// Amazon Web Services Organization. This API creates a service linked role // AWSServiceRoleForConfigConforms in your account. The service linked role is // created only when the role does not exist in your account. You must specify // either the TemplateS3Uri or the TemplateBody parameter, but not both. If you -// provide both AWS Config uses the TemplateS3Uri parameter and ignores the +// provide both Config uses the TemplateS3Uri parameter and ignores the // TemplateBody parameter. func (c *Client) PutConformancePack(ctx context.Context, params *PutConformancePackInput, optFns ...func(*Options)) (*PutConformancePackOutput, error) { if params == nil { @@ -44,8 +44,8 @@ type PutConformancePackInput struct { // A list of ConformancePackInputParameter objects. ConformancePackInputParameters []types.ConformancePackInputParameter - // Amazon S3 bucket where AWS Config stores conformance pack templates. This field - // is optional. + // The name of the Amazon S3 bucket where Config stores conformance pack templates. + // This field is optional. DeliveryS3Bucket *string // The prefix for the Amazon S3 bucket. This field is optional. diff --git a/service/configservice/api_op_PutEvaluations.go b/service/configservice/api_op_PutEvaluations.go index 532f4c8fd28..db13ea7bbc5 100644 --- a/service/configservice/api_op_PutEvaluations.go +++ b/service/configservice/api_op_PutEvaluations.go @@ -11,9 +11,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Used by an AWS Lambda function to deliver evaluation results to AWS Config. This -// action is required in every AWS Lambda function that is invoked by an AWS Config -// rule. +// Used by an Lambda function to deliver evaluation results to Config. This action +// is required in every Lambda function that is invoked by an Config rule. func (c *Client) PutEvaluations(ctx context.Context, params *PutEvaluationsInput, optFns ...func(*Options)) (*PutEvaluationsOutput, error) { if params == nil { params = &PutEvaluationsInput{} @@ -32,22 +31,22 @@ func (c *Client) PutEvaluations(ctx context.Context, params *PutEvaluationsInput // type PutEvaluationsInput struct { - // An encrypted token that associates an evaluation with an AWS Config rule. - // Identifies the rule and the event that triggered the evaluation. + // An encrypted token that associates an evaluation with an Config rule. Identifies + // the rule and the event that triggered the evaluation. // // This member is required. ResultToken *string - // The assessments that the AWS Lambda function performs. Each evaluation - // identifies an AWS resource and indicates whether it complies with the AWS Config - // rule that invokes the AWS Lambda function. + // The assessments that the Lambda function performs. Each evaluation identifies an + // Amazon Web Services resource and indicates whether it complies with the Config + // rule that invokes the Lambda function. Evaluations []types.Evaluation // Use this parameter to specify a test run for PutEvaluations. You can verify - // whether your AWS Lambda function will deliver evaluation results to AWS Config. - // No updates occur to your existing evaluations, and evaluation results are not - // sent to AWS Config. When TestMode is true, PutEvaluations doesn't require a - // valid value for the ResultToken parameter, but the value cannot be null. + // whether your Lambda function will deliver evaluation results to Config. No + // updates occur to your existing evaluations, and evaluation results are not sent + // to Config. When TestMode is true, PutEvaluations doesn't require a valid value + // for the ResultToken parameter, but the value cannot be null. TestMode bool noSmithyDocumentSerde diff --git a/service/configservice/api_op_PutExternalEvaluation.go b/service/configservice/api_op_PutExternalEvaluation.go index 31909789c7c..af859769ef2 100644 --- a/service/configservice/api_op_PutExternalEvaluation.go +++ b/service/configservice/api_op_PutExternalEvaluation.go @@ -12,7 +12,7 @@ import ( ) // Add or updates the evaluations for process checks. This API checks if the rule -// is a process check when the name of the AWS Config rule is provided. +// is a process check when the name of the Config rule is provided. func (c *Client) PutExternalEvaluation(ctx context.Context, params *PutExternalEvaluationInput, optFns ...func(*Options)) (*PutExternalEvaluationOutput, error) { if params == nil { params = &PutExternalEvaluationInput{} @@ -30,7 +30,7 @@ func (c *Client) PutExternalEvaluation(ctx context.Context, params *PutExternalE type PutExternalEvaluationInput struct { - // The name of the AWS Config rule. + // The name of the Config rule. // // This member is required. ConfigRuleName *string diff --git a/service/configservice/api_op_PutOrganizationConfigRule.go b/service/configservice/api_op_PutOrganizationConfigRule.go index 9e2dbc4c292..f72c654cbf6 100644 --- a/service/configservice/api_op_PutOrganizationConfigRule.go +++ b/service/configservice/api_op_PutOrganizationConfigRule.go @@ -12,29 +12,30 @@ import ( ) // Adds or updates organization config rule for your entire organization evaluating -// whether your AWS resources comply with your desired configurations. Only a -// master account and a delegated administrator can create or update an -// organization config rule. When calling this API with a delegated administrator, -// you must ensure AWS Organizations ListDelegatedAdministrator permissions are -// added. This API enables organization service access through the +// whether your Amazon Web Services resources comply with your desired +// configurations. Only a master account and a delegated administrator can create +// or update an organization config rule. When calling this API with a delegated +// administrator, you must ensure Organizations ListDelegatedAdministrator +// permissions are added. This API enables organization service access through the // EnableAWSServiceAccess action and creates a service linked role // AWSServiceRoleForConfigMultiAccountSetup in the master or delegated // administrator account of your organization. The service linked role is created -// only when the role does not exist in the caller account. AWS Config verifies the +// only when the role does not exist in the caller account. Config verifies the // existence of role with GetRole action. To use this API with delegated -// administrator, register a delegated administrator by calling AWS Organization -// register-delegated-administrator for config-multiaccountsetup.amazonaws.com. You -// can use this action to create both custom AWS Config rules and AWS managed -// Config rules. If you are adding a new custom AWS Config rule, you must first -// create AWS Lambda function in the master account or a delegated administrator -// that the rule invokes to evaluate your resources. When you use the -// PutOrganizationConfigRule action to add the rule to AWS Config, you must specify -// the Amazon Resource Name (ARN) that AWS Lambda assigns to the function. If you -// are adding an AWS managed Config rule, specify the rule's identifier for the -// RuleIdentifier key. The maximum number of organization config rules that AWS -// Config supports is 150 and 3 delegated administrator per organization. -// Prerequisite: Ensure you call EnableAllFeatures API to enable all features in an -// organization. Specify either OrganizationCustomRuleMetadata or +// administrator, register a delegated administrator by calling Amazon Web Services +// Organization register-delegated-administrator for +// config-multiaccountsetup.amazonaws.com. You can use this action to create both +// custom Config rules and Config managed rules. If you are adding a new custom +// Config rule, you must first create Lambda function in the master account or a +// delegated administrator that the rule invokes to evaluate your resources. You +// also need to create an IAM role in the managed-account that can be assumed by +// the Lambda function. When you use the PutOrganizationConfigRule action to add +// the rule to Config, you must specify the Amazon Resource Name (ARN) that Lambda +// assigns to the function. If you are adding an Config managed rule, specify the +// rule's identifier for the RuleIdentifier key. The maximum number of organization +// config rules that Config supports is 150 and 3 delegated administrator per +// organization. Prerequisite: Ensure you call EnableAllFeatures API to enable all +// features in an organization. Specify either OrganizationCustomRuleMetadata or // OrganizationManagedRuleMetadata. func (c *Client) PutOrganizationConfigRule(ctx context.Context, params *PutOrganizationConfigRuleInput, optFns ...func(*Options)) (*PutOrganizationConfigRuleOutput, error) { if params == nil { diff --git a/service/configservice/api_op_PutOrganizationConformancePack.go b/service/configservice/api_op_PutOrganizationConformancePack.go index b928fc769a1..3fa68553132 100644 --- a/service/configservice/api_op_PutOrganizationConformancePack.go +++ b/service/configservice/api_op_PutOrganizationConformancePack.go @@ -11,27 +11,28 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deploys conformance packs across member accounts in an AWS Organization. Only a -// master account and a delegated administrator can call this API. When calling -// this API with a delegated administrator, you must ensure AWS Organizations -// ListDelegatedAdministrator permissions are added. This API enables organization -// service access for config-multiaccountsetup.amazonaws.com through the -// EnableAWSServiceAccess action and creates a service linked role +// Deploys conformance packs across member accounts in an Amazon Web Services +// Organization. Only a master account and a delegated administrator can call this +// API. When calling this API with a delegated administrator, you must ensure +// Organizations ListDelegatedAdministrator permissions are added. This API enables +// organization service access for config-multiaccountsetup.amazonaws.com through +// the EnableAWSServiceAccess action and creates a service linked role // AWSServiceRoleForConfigMultiAccountSetup in the master or delegated // administrator account of your organization. The service linked role is created // only when the role does not exist in the caller account. To use this API with -// delegated administrator, register a delegated administrator by calling AWS -// Organization register-delegate-admin for config-multiaccountsetup.amazonaws.com. -// Prerequisite: Ensure you call EnableAllFeatures API to enable all features in an -// organization. You must specify either the TemplateS3Uri or the TemplateBody -// parameter, but not both. If you provide both AWS Config uses the TemplateS3Uri -// parameter and ignores the TemplateBody parameter. AWS Config sets the state of a -// conformance pack to CREATE_IN_PROGRESS and UPDATE_IN_PROGRESS until the -// conformance pack is created or updated. +// delegated administrator, register a delegated administrator by calling Amazon +// Web Services Organization register-delegate-admin for +// config-multiaccountsetup.amazonaws.com. Prerequisite: Ensure you call +// EnableAllFeatures API to enable all features in an organization. You must +// specify either the TemplateS3Uri or the TemplateBody parameter, but not both. If +// you provide both Config uses the TemplateS3Uri parameter and ignores the +// TemplateBody parameter. Config sets the state of a conformance pack to +// CREATE_IN_PROGRESS and UPDATE_IN_PROGRESS until the conformance pack is created +// or updated. // -// You cannot update a conformance pack -// while it is in this state. You can create 50 conformance packs with 25 AWS -// Config rules in each pack and 3 delegated administrator per organization. +// You cannot update a conformance pack while it is in this state. You +// can create 50 conformance packs with 25 Config rules in each pack and 3 +// delegated administrator per organization. func (c *Client) PutOrganizationConformancePack(ctx context.Context, params *PutOrganizationConformancePackInput, optFns ...func(*Options)) (*PutOrganizationConformancePackOutput, error) { if params == nil { params = &PutOrganizationConformancePackInput{} @@ -57,15 +58,15 @@ type PutOrganizationConformancePackInput struct { // A list of ConformancePackInputParameter objects. ConformancePackInputParameters []types.ConformancePackInputParameter - // Amazon S3 bucket where AWS Config stores conformance pack templates. This field - // is optional. If used, it must be prefixed with awsconfigconforms. + // The name of the Amazon S3 bucket where Config stores conformance pack templates. + // This field is optional. If used, it must be prefixed with awsconfigconforms. DeliveryS3Bucket *string // The prefix for the Amazon S3 bucket. This field is optional. DeliveryS3KeyPrefix *string - // A list of AWS accounts to be excluded from an organization conformance pack - // while deploying a conformance pack. + // A list of Amazon Web Services accounts to be excluded from an organization + // conformance pack while deploying a conformance pack. ExcludedAccounts []string // A string containing full conformance pack template body. Structure containing diff --git a/service/configservice/api_op_PutRemediationConfigurations.go b/service/configservice/api_op_PutRemediationConfigurations.go index 3ce711f3839..da092a37218 100644 --- a/service/configservice/api_op_PutRemediationConfigurations.go +++ b/service/configservice/api_op_PutRemediationConfigurations.go @@ -11,15 +11,15 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Adds or updates the remediation configuration with a specific AWS Config rule -// with the selected target or action. The API creates the RemediationConfiguration -// object for the AWS Config rule. The AWS Config rule must already exist for you -// to add a remediation configuration. The target (SSM document) must exist and -// have permissions to use the target. If you make backward incompatible changes to -// the SSM document, you must call this again to ensure the remediations can run. -// This API does not support adding remediation configurations for service-linked -// AWS Config Rules such as Organization Config rules, the rules deployed by -// conformance packs, and rules deployed by AWS Security Hub. +// Adds or updates the remediation configuration with a specific Config rule with +// the selected target or action. The API creates the RemediationConfiguration +// object for the Config rule. The Config rule must already exist for you to add a +// remediation configuration. The target (SSM document) must exist and have +// permissions to use the target. If you make backward incompatible changes to the +// SSM document, you must call this again to ensure the remediations can run. This +// API does not support adding remediation configurations for service-linked Config +// Rules such as Organization Config rules, the rules deployed by conformance +// packs, and rules deployed by Amazon Web Services Security Hub. func (c *Client) PutRemediationConfigurations(ctx context.Context, params *PutRemediationConfigurationsInput, optFns ...func(*Options)) (*PutRemediationConfigurationsOutput, error) { if params == nil { params = &PutRemediationConfigurationsInput{} diff --git a/service/configservice/api_op_PutRemediationExceptions.go b/service/configservice/api_op_PutRemediationExceptions.go index c8da2c22266..64e998c6c83 100644 --- a/service/configservice/api_op_PutRemediationExceptions.go +++ b/service/configservice/api_op_PutRemediationExceptions.go @@ -14,7 +14,7 @@ import ( // A remediation exception is when a specific resource is no longer considered for // auto-remediation. This API adds a new exception or updates an existing exception -// for a specific resource with a specific AWS Config rule. AWS Config generates a +// for a specific resource with a specific Config rule. Config generates a // remediation exception when a problem occurs executing a remediation action to a // specific resource. Remediation exceptions blocks auto-remediation until the // exception is cleared. @@ -35,15 +35,14 @@ func (c *Client) PutRemediationExceptions(ctx context.Context, params *PutRemedi type PutRemediationExceptionsInput struct { - // The name of the AWS Config rule for which you want to create remediation - // exception. + // The name of the Config rule for which you want to create remediation exception. // // This member is required. ConfigRuleName *string // An exception list of resource exception keys to be processed with the current - // request. AWS Config adds exception for each resource key. For example, AWS - // Config adds 3 exceptions for 3 resource keys. + // request. Config adds exception for each resource key. For example, Config adds 3 + // exceptions for 3 resource keys. // // This member is required. ResourceKeys []types.RemediationExceptionResourceKey diff --git a/service/configservice/api_op_PutResourceConfig.go b/service/configservice/api_op_PutResourceConfig.go index f9367f24771..ce826ed877b 100644 --- a/service/configservice/api_op_PutResourceConfig.go +++ b/service/configservice/api_op_PutResourceConfig.go @@ -11,15 +11,15 @@ import ( ) // Records the configuration state for the resource provided in the request. The -// configuration state of a resource is represented in AWS Config as Configuration +// configuration state of a resource is represented in Config as Configuration // Items. Once this API records the configuration item, you can retrieve the list -// of configuration items for the custom resource type using existing AWS Config -// APIs. The custom resource type must be registered with AWS CloudFormation. This -// API accepts the configuration item registered with AWS CloudFormation. When you -// call this API, AWS Config only stores configuration state of the resource -// provided in the request. This API does not change or remediate the configuration -// of the resource. Write-only schema properites are not recorded as part of the -// published configuration item. +// of configuration items for the custom resource type using existing Config APIs. +// The custom resource type must be registered with CloudFormation. This API +// accepts the configuration item registered with CloudFormation. When you call +// this API, Config only stores configuration state of the resource provided in the +// request. This API does not change or remediate the configuration of the +// resource. Write-only schema properites are not recorded as part of the published +// configuration item. func (c *Client) PutResourceConfig(ctx context.Context, params *PutResourceConfigInput, optFns ...func(*Options)) (*PutResourceConfigOutput, error) { if params == nil { params = &PutResourceConfigInput{} @@ -38,8 +38,8 @@ func (c *Client) PutResourceConfig(ctx context.Context, params *PutResourceConfi type PutResourceConfigInput struct { // The configuration object of the resource in valid JSON format. It must match the - // schema registered with AWS CloudFormation. The configuration JSON must not - // exceed 64 KB. + // schema registered with CloudFormation. The configuration JSON must not exceed 64 + // KB. // // This member is required. Configuration *string @@ -49,15 +49,15 @@ type PutResourceConfigInput struct { // This member is required. ResourceId *string - // The type of the resource. The custom resource type must be registered with AWS - // CloudFormation. You cannot use the organization names “aws”, “amzn”, “amazon”, - // “alexa”, “custom” with custom resource types. It is the first part of the - // ResourceType up to the first ::. + // The type of the resource. The custom resource type must be registered with + // CloudFormation. You cannot use the organization names “amzn”, “amazon”, “alexa”, + // “custom” with custom resource types. It is the first part of the ResourceType up + // to the first ::. // // This member is required. ResourceType *string - // Version of the schema registered for the ResourceType in AWS CloudFormation. + // Version of the schema registered for the ResourceType in CloudFormation. // // This member is required. SchemaVersionId *string diff --git a/service/configservice/api_op_PutRetentionConfiguration.go b/service/configservice/api_op_PutRetentionConfiguration.go index a86fe822333..022b1a7fc53 100644 --- a/service/configservice/api_op_PutRetentionConfiguration.go +++ b/service/configservice/api_op_PutRetentionConfiguration.go @@ -12,11 +12,11 @@ import ( ) // Creates and updates the retention configuration with details about retention -// period (number of days) that AWS Config stores your historical information. The -// API creates the RetentionConfiguration object and names the object as default. -// When you have a RetentionConfiguration object named default, calling the API -// modifies the default object. Currently, AWS Config supports only one retention -// configuration per region in your account. +// period (number of days) that Config stores your historical information. The API +// creates the RetentionConfiguration object and names the object as default. When +// you have a RetentionConfiguration object named default, calling the API modifies +// the default object. Currently, Config supports only one retention configuration +// per region in your account. func (c *Client) PutRetentionConfiguration(ctx context.Context, params *PutRetentionConfigurationInput, optFns ...func(*Options)) (*PutRetentionConfigurationOutput, error) { if params == nil { params = &PutRetentionConfigurationInput{} @@ -34,7 +34,7 @@ func (c *Client) PutRetentionConfiguration(ctx context.Context, params *PutReten type PutRetentionConfigurationInput struct { - // Number of days AWS Config stores your historical information. Currently, only + // Number of days Config stores your historical information. Currently, only // applicable to the configuration item history. // // This member is required. diff --git a/service/configservice/api_op_PutStoredQuery.go b/service/configservice/api_op_PutStoredQuery.go index 5f12c4fdd0c..20a5eef511a 100644 --- a/service/configservice/api_op_PutStoredQuery.go +++ b/service/configservice/api_op_PutStoredQuery.go @@ -12,8 +12,9 @@ import ( ) // Saves a new query or updates an existing saved query. The QueryName must be -// unique for a single AWS account and a single AWS Region. You can create upto 300 -// queries in a single AWS account and a single AWS Region. +// unique for a single Amazon Web Services account and a single Amazon Web Services +// Region. You can create upto 300 queries in a single Amazon Web Services account +// and a single Amazon Web Services Region. func (c *Client) PutStoredQuery(ctx context.Context, params *PutStoredQueryInput, optFns ...func(*Options)) (*PutStoredQueryOutput, error) { if params == nil { params = &PutStoredQueryInput{} diff --git a/service/configservice/api_op_SelectAggregateResourceConfig.go b/service/configservice/api_op_SelectAggregateResourceConfig.go index e504148bbc0..5c78abb252a 100644 --- a/service/configservice/api_op_SelectAggregateResourceConfig.go +++ b/service/configservice/api_op_SelectAggregateResourceConfig.go @@ -13,12 +13,19 @@ import ( ) // Accepts a structured query language (SQL) SELECT command and an aggregator to -// query configuration state of AWS resources across multiple accounts and regions, -// performs the corresponding search, and returns resource configurations matching -// the properties. For more information about query components, see the Query -// Components +// query configuration state of Amazon Web Services resources across multiple +// accounts and regions, performs the corresponding search, and returns resource +// configurations matching the properties. For more information about query +// components, see the Query Components // (https://docs.aws.amazon.com/config/latest/developerguide/query-components.html) -// section in the AWS Config Developer Guide. +// section in the Config Developer Guide. If you run an aggregation query (i.e., +// using GROUP BY or using aggregate functions such as COUNT; e.g., SELECT +// resourceId, COUNT(*) WHERE resourceType = 'AWS::IAM::Role' GROUP BY resourceId) +// and do not specify the MaxResults or the Limit query parameters, the default +// page size is set to 500. If you run a non-aggregation query (i.e., not using +// GROUP BY or aggregate function; e.g., SELECT * WHERE resourceType = +// 'AWS::IAM::Role') and do not specify the MaxResults or the Limit query +// parameters, the default page size is set to 25. func (c *Client) SelectAggregateResourceConfig(ctx context.Context, params *SelectAggregateResourceConfigInput, optFns ...func(*Options)) (*SelectAggregateResourceConfigOutput, error) { if params == nil { params = &SelectAggregateResourceConfigInput{} @@ -49,8 +56,8 @@ type SelectAggregateResourceConfigInput struct { // The maximum number of query results returned on each page. Limit int32 - // The maximum number of query results returned on each page. AWS Config also - // allows the Limit request parameter. + // The maximum number of query results returned on each page. Config also allows + // the Limit request parameter. MaxResults int32 // The nextToken string returned in a previous request that you use to request the diff --git a/service/configservice/api_op_SelectResourceConfig.go b/service/configservice/api_op_SelectResourceConfig.go index 7799805ae79..9d0abeaa8e1 100644 --- a/service/configservice/api_op_SelectResourceConfig.go +++ b/service/configservice/api_op_SelectResourceConfig.go @@ -17,7 +17,7 @@ import ( // properties. For more information about query components, see the Query // Components // (https://docs.aws.amazon.com/config/latest/developerguide/query-components.html) -// section in the AWS Config Developer Guide. +// section in the Config Developer Guide. func (c *Client) SelectResourceConfig(ctx context.Context, params *SelectResourceConfigInput, optFns ...func(*Options)) (*SelectResourceConfigOutput, error) { if params == nil { params = &SelectResourceConfigInput{} diff --git a/service/configservice/api_op_StartConfigRulesEvaluation.go b/service/configservice/api_op_StartConfigRulesEvaluation.go index 95da0291c01..f6e713d9072 100644 --- a/service/configservice/api_op_StartConfigRulesEvaluation.go +++ b/service/configservice/api_op_StartConfigRulesEvaluation.go @@ -10,19 +10,19 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Runs an on-demand evaluation for the specified AWS Config rules against the last +// Runs an on-demand evaluation for the specified Config rules against the last // known configuration state of the resources. Use StartConfigRulesEvaluation when // you want to test that a rule you updated is working as expected. // StartConfigRulesEvaluation does not re-record the latest configuration state for // your resources. It re-runs an evaluation against the last known state of your -// resources. You can specify up to 25 AWS Config rules per request. An existing +// resources. You can specify up to 25 Config rules per request. An existing // StartConfigRulesEvaluation call for the specified rules must complete before you -// can call the API again. If you chose to have AWS Config stream to an Amazon SNS +// can call the API again. If you chose to have Config stream to an Amazon SNS // topic, you will receive a ConfigRuleEvaluationStarted notification when the // evaluation starts. You don't need to call the StartConfigRulesEvaluation API to -// run an evaluation for a new rule. When you create a rule, AWS Config evaluates -// your resources against the rule automatically. The StartConfigRulesEvaluation -// API is useful if you want to run on-demand evaluations, such as the following +// run an evaluation for a new rule. When you create a rule, Config evaluates your +// resources against the rule automatically. The StartConfigRulesEvaluation API is +// useful if you want to run on-demand evaluations, such as the following // example: // // * You have a custom rule that evaluates your IAM resources every 24 @@ -34,7 +34,7 @@ import ( // * Instead of waiting for the next periodic evaluation, you call the // StartConfigRulesEvaluation API. // -// * AWS Config invokes your Lambda function and +// * Config invokes your Lambda function and // evaluates your IAM resources. // // * Your custom rule will still run periodic @@ -57,13 +57,13 @@ func (c *Client) StartConfigRulesEvaluation(ctx context.Context, params *StartCo // type StartConfigRulesEvaluationInput struct { - // The list of names of AWS Config rules that you want to run evaluations for. + // The list of names of Config rules that you want to run evaluations for. ConfigRuleNames []string noSmithyDocumentSerde } -// The output when you start the evaluation for the specified AWS Config rule. +// The output when you start the evaluation for the specified Config rule. type StartConfigRulesEvaluationOutput struct { // Metadata pertaining to the operation's result. ResultMetadata middleware.Metadata diff --git a/service/configservice/api_op_StartConfigurationRecorder.go b/service/configservice/api_op_StartConfigurationRecorder.go index b14da6b2bb0..f2b50129c29 100644 --- a/service/configservice/api_op_StartConfigurationRecorder.go +++ b/service/configservice/api_op_StartConfigurationRecorder.go @@ -10,9 +10,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Starts recording configurations of the AWS resources you have selected to record -// in your AWS account. You must have created at least one delivery channel to -// successfully start the configuration recorder. +// Starts recording configurations of the Amazon Web Services resources you have +// selected to record in your Amazon Web Services account. You must have created at +// least one delivery channel to successfully start the configuration recorder. func (c *Client) StartConfigurationRecorder(ctx context.Context, params *StartConfigurationRecorderInput, optFns ...func(*Options)) (*StartConfigurationRecorderOutput, error) { if params == nil { params = &StartConfigurationRecorderInput{} diff --git a/service/configservice/api_op_StartRemediationExecution.go b/service/configservice/api_op_StartRemediationExecution.go index d3e5a8739ff..4e708bb4043 100644 --- a/service/configservice/api_op_StartRemediationExecution.go +++ b/service/configservice/api_op_StartRemediationExecution.go @@ -11,11 +11,11 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Runs an on-demand remediation for the specified AWS Config rules against the -// last known remediation configuration. It runs an execution against the current -// state of your resources. Remediation execution is asynchronous. You can specify -// up to 100 resource keys per request. An existing StartRemediationExecution call -// for the specified resource keys must complete before you can call the API again. +// Runs an on-demand remediation for the specified Config rules against the last +// known remediation configuration. It runs an execution against the current state +// of your resources. Remediation execution is asynchronous. You can specify up to +// 100 resource keys per request. An existing StartRemediationExecution call for +// the specified resource keys must complete before you can call the API again. func (c *Client) StartRemediationExecution(ctx context.Context, params *StartRemediationExecutionInput, optFns ...func(*Options)) (*StartRemediationExecutionOutput, error) { if params == nil { params = &StartRemediationExecutionInput{} @@ -33,7 +33,7 @@ func (c *Client) StartRemediationExecution(ctx context.Context, params *StartRem type StartRemediationExecutionInput struct { - // The list of names of AWS Config rules that you want to run remediation execution + // The list of names of Config rules that you want to run remediation execution // for. // // This member is required. diff --git a/service/configservice/api_op_StopConfigurationRecorder.go b/service/configservice/api_op_StopConfigurationRecorder.go index 2df8ca8da8c..b5f7da0b7f1 100644 --- a/service/configservice/api_op_StopConfigurationRecorder.go +++ b/service/configservice/api_op_StopConfigurationRecorder.go @@ -10,8 +10,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Stops recording configurations of the AWS resources you have selected to record -// in your AWS account. +// Stops recording configurations of the Amazon Web Services resources you have +// selected to record in your Amazon Web Services account. func (c *Client) StopConfigurationRecorder(ctx context.Context, params *StopConfigurationRecorderInput, optFns ...func(*Options)) (*StopConfigurationRecorderOutput, error) { if params == nil { params = &StopConfigurationRecorderInput{} diff --git a/service/configservice/doc.go b/service/configservice/doc.go index 4f2fcc8116a..9d0a3b3b14f 100644 --- a/service/configservice/doc.go +++ b/service/configservice/doc.go @@ -3,26 +3,26 @@ // Package configservice provides the API client, operations, and parameter types // for AWS Config. // -// AWS Config AWS Config provides a way to keep track of the configurations of all -// the AWS resources associated with your AWS account. You can use AWS Config to -// get the current and historical configurations of each AWS resource and also to -// get information about the relationship between the resources. An AWS resource -// can be an Amazon Compute Cloud (Amazon EC2) instance, an Elastic Block Store -// (EBS) volume, an elastic network Interface (ENI), or a security group. For a -// complete list of resources currently supported by AWS Config, see Supported AWS -// Resources +// Config Config provides a way to keep track of the configurations of all the +// Amazon Web Services resources associated with your Amazon Web Services account. +// You can use Config to get the current and historical configurations of each +// Amazon Web Services resource and also to get information about the relationship +// between the resources. An Amazon Web Services resource can be an Amazon Compute +// Cloud (Amazon EC2) instance, an Elastic Block Store (EBS) volume, an elastic +// network Interface (ENI), or a security group. For a complete list of resources +// currently supported by Config, see Supported Amazon Web Services resources // (https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html#supported-resources). -// You can access and manage AWS Config through the AWS Management Console, the AWS -// Command Line Interface (AWS CLI), the AWS Config API, or the AWS SDKs for AWS -// Config. This reference guide contains documentation for the AWS Config API and -// the AWS CLI commands that you can use to manage AWS Config. The AWS Config API -// uses the Signature Version 4 protocol for signing requests. For more information -// about how to sign a request with this protocol, see Signature Version 4 Signing -// Process +// You can access and manage Config through the Amazon Web Services Management +// Console, the Amazon Web Services Command Line Interface (Amazon Web Services +// CLI), the Config API, or the Amazon Web Services SDKs for Config. This reference +// guide contains documentation for the Config API and the Amazon Web Services CLI +// commands that you can use to manage Config. The Config API uses the Signature +// Version 4 protocol for signing requests. For more information about how to sign +// a request with this protocol, see Signature Version 4 Signing Process // (https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). For -// detailed information about AWS Config features and their associated actions or -// commands, as well as how to work with AWS Management Console, see What Is AWS -// Config +// detailed information about Config features and their associated actions or +// commands, as well as how to work with Amazon Web Services Management Console, +// see What Is Config // (https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) in -// the AWS Config Developer Guide. +// the Config Developer Guide. package configservice diff --git a/service/configservice/types/errors.go b/service/configservice/types/errors.go index 5fa102eb828..ced8524ca11 100644 --- a/service/configservice/types/errors.go +++ b/service/configservice/types/errors.go @@ -30,7 +30,7 @@ func (e *ConformancePackTemplateValidationException) ErrorFault() smithy.ErrorFa return smithy.FaultClient } -// Your Amazon S3 bucket policy does not permit AWS Config to write to it. +// Your Amazon S3 bucket policy does not permit Config to write to it. type InsufficientDeliveryPolicyException struct { Message *string @@ -56,11 +56,11 @@ func (e *InsufficientDeliveryPolicyException) ErrorFault() smithy.ErrorFault { // Indicates one of the following errors: // // * For PutConfigRule, the rule cannot be -// created because the IAM role assigned to AWS Config lacks permissions to perform -// the config:Put* action. +// created because the IAM role assigned to Config lacks permissions to perform the +// config:Put* action. // -// * For PutConfigRule, the AWS Lambda function cannot be -// invoked. Check the function ARN, and check the function's permissions. +// * For PutConfigRule, the Lambda function cannot be invoked. +// Check the function ARN, and check the function's permissions. // // * For // PutOrganizationConfigRule, organization config rule cannot be created because @@ -219,8 +219,8 @@ func (e *InvalidParameterValueException) ErrorMessage() string { func (e *InvalidParameterValueException) ErrorCode() string { return "InvalidParameterValueException" } func (e *InvalidParameterValueException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// AWS Config throws an exception if the recording group does not contain a valid -// list of resource types. Invalid values might also be incorrectly formatted. +// Config throws an exception if the recording group does not contain a valid list +// of resource types. Invalid values might also be incorrectly formatted. type InvalidRecordingGroupException struct { Message *string @@ -424,9 +424,9 @@ func (e *MaxActiveResourcesExceededException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// Failed to add the AWS Config rule because the account already contains the -// maximum number of 150 rules. Consider deleting any deactivated rules before you -// add new rules. +// Failed to add the Config rule because the account already contains the maximum +// number of 150 rules. Consider deleting any deactivated rules before you add new +// rules. type MaxNumberOfConfigRulesExceededException struct { Message *string @@ -473,7 +473,7 @@ func (e *MaxNumberOfConfigurationRecordersExceededException) ErrorFault() smithy } // You have reached the limit (6) of the number of conformance packs in an account -// (6 conformance pack with 25 AWS Config rules per pack). +// (6 conformance pack with 25 Config rules per pack). type MaxNumberOfConformancePacksExceededException struct { Message *string @@ -544,8 +544,7 @@ func (e *MaxNumberOfOrganizationConfigRulesExceededException) ErrorFault() smith } // You have reached the limit (6) of the number of organization conformance packs -// in an account (6 conformance pack with 25 AWS Config rules per pack per -// account). +// in an account (6 conformance pack with 25 Config rules per pack per account). type MaxNumberOfOrganizationConformancePacksExceededException struct { Message *string @@ -702,8 +701,8 @@ func (e *NoSuchBucketException) ErrorMessage() string { func (e *NoSuchBucketException) ErrorCode() string { return "NoSuchBucketException" } func (e *NoSuchBucketException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// One or more AWS Config rules in the request are invalid. Verify that the rule -// names are correct and try again. +// One or more Config rules in the request are invalid. Verify that the rule names +// are correct and try again. type NoSuchConfigRuleException struct { Message *string @@ -722,7 +721,7 @@ func (e *NoSuchConfigRuleException) ErrorMessage() string { func (e *NoSuchConfigRuleException) ErrorCode() string { return "NoSuchConfigRuleException" } func (e *NoSuchConfigRuleException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// AWS Config rule that you passed in the filter does not exist. +// Config rule that you passed in the filter does not exist. type NoSuchConfigRuleInConformancePackException struct { Message *string @@ -852,7 +851,7 @@ func (e *NoSuchOrganizationConfigRuleException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// AWS Config organization conformance pack that you passed in the filter does not +// Config organization conformance pack that you passed in the filter does not // exist. For DeleteOrganizationConformancePack, you tried to delete an // organization conformance pack that does not exist. type NoSuchOrganizationConformancePackException struct { @@ -877,7 +876,7 @@ func (e *NoSuchOrganizationConformancePackException) ErrorFault() smithy.ErrorFa return smithy.FaultClient } -// You specified an AWS Config rule without a remediation configuration. +// You specified an Config rule without a remediation configuration. type NoSuchRemediationConfigurationException struct { Message *string @@ -952,25 +951,25 @@ func (e *NoSuchRetentionConfigurationException) ErrorFault() smithy.ErrorFault { // * No permission to call EnableAWSServiceAccess API // // * The -// configuration aggregator cannot be updated because your AWS Organization -// management account or the delegated administrator role changed. Delete this -// aggregator and create a new one with the current AWS Organization. +// configuration aggregator cannot be updated because your Amazon Web Services +// Organization management account or the delegated administrator role changed. +// Delete this aggregator and create a new one with the current Amazon Web Services +// Organization. // -// * The -// configuration aggregator is associated with a previous AWS Organization and AWS -// Config cannot aggregate data with current AWS Organization. Delete this -// aggregator and create a new one with the current AWS Organization. +// * The configuration aggregator is associated with a previous +// Amazon Web Services Organization and Config cannot aggregate data with current +// Amazon Web Services Organization. Delete this aggregator and create a new one +// with the current Amazon Web Services Organization. // -// * You are -// not a registered delegated administrator for AWS Config with permissions to call +// * You are not a registered +// delegated administrator for Config with permissions to call // ListDelegatedAdministrators API. Ensure that the management account registers -// delagated administrator for AWS Config service principle name before the -// delegated administrator creates an aggregator. +// delagated administrator for Config service principle name before the delegated +// administrator creates an aggregator. // -// For all OrganizationConfigRule -// and OrganizationConformancePack APIs, AWS Config throws an exception if APIs are -// called from member accounts. All APIs must be called from organization master -// account. +// For all OrganizationConfigRule and +// OrganizationConformancePack APIs, Config throws an exception if APIs are called +// from member accounts. All APIs must be called from organization master account. type OrganizationAccessDeniedException struct { Message *string @@ -991,8 +990,8 @@ func (e *OrganizationAccessDeniedException) ErrorCode() string { } func (e *OrganizationAccessDeniedException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// AWS Config resource cannot be created because your organization does not have -// all features enabled. +// Config resource cannot be created because your organization does not have all +// features enabled. type OrganizationAllFeaturesNotEnabledException struct { Message *string @@ -1061,8 +1060,8 @@ func (e *OversizedConfigurationItemException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// Remediation action is in progress. You can either cancel execution in AWS -// Systems Manager or wait and try again later. +// Remediation action is in progress. You can either cancel execution in Amazon Web +// Services Systems Manager or wait and try again later. type RemediationInProgressException struct { Message *string @@ -1107,31 +1106,31 @@ func (e *ResourceConcurrentModificationException) ErrorFault() smithy.ErrorFault // You see this exception in the following cases: // -// * For DeleteConfigRule, AWS -// Config is deleting this rule. Try your request again later. +// * For DeleteConfigRule, Config +// is deleting this rule. Try your request again later. // -// * For -// DeleteConfigRule, the rule is deleting your evaluation results. Try your request -// again later. +// * For DeleteConfigRule, +// the rule is deleting your evaluation results. Try your request again later. // -// * For DeleteConfigRule, a remediation action is associated with -// the rule and AWS Config cannot delete this rule. Delete the remediation action -// associated with the rule before deleting the rule and try your request again -// later. +// * +// For DeleteConfigRule, a remediation action is associated with the rule and +// Config cannot delete this rule. Delete the remediation action associated with +// the rule before deleting the rule and try your request again later. // -// * For PutConfigOrganizationRule, organization config rule deletion is in -// progress. Try your request again later. +// * For +// PutConfigOrganizationRule, organization config rule deletion is in progress. Try +// your request again later. // -// * For DeleteOrganizationConfigRule, -// organization config rule creation is in progress. Try your request again -// later. +// * For DeleteOrganizationConfigRule, organization +// config rule creation is in progress. Try your request again later. // -// * For PutConformancePack and PutOrganizationConformancePack, a -// conformance pack creation, update, and deletion is in progress. Try your request -// again later. +// * For +// PutConformancePack and PutOrganizationConformancePack, a conformance pack +// creation, update, and deletion is in progress. Try your request again later. // -// * For DeleteConformancePack, a conformance pack creation, update, -// and deletion is in progress. Try your request again later. +// * +// For DeleteConformancePack, a conformance pack creation, update, and deletion is +// in progress. Try your request again later. type ResourceInUseException struct { Message *string diff --git a/service/configservice/types/types.go b/service/configservice/types/types.go index 2ed11d7ed72..536e19aa9a4 100644 --- a/service/configservice/types/types.go +++ b/service/configservice/types/types.go @@ -15,7 +15,7 @@ type AccountAggregationSource struct { // This member is required. AccountIds []string - // If true, aggregate existing AWS Config regions and future regions. + // If true, aggregate existing Config regions and future regions. AllAwsRegions bool // The source regions being aggregated. @@ -24,7 +24,7 @@ type AccountAggregationSource struct { noSmithyDocumentSerde } -// Indicates whether an AWS Config rule is compliant based on account ID, region, +// Indicates whether an Config rule is compliant based on account ID, region, // compliance, and rule name. A rule is compliant if all of the resources that the // rule evaluated comply with it. It is noncompliant if any of these resources do // not comply. @@ -36,11 +36,11 @@ type AggregateComplianceByConfigRule struct { // The source region from where the data is aggregated. AwsRegion *string - // Indicates whether an AWS resource or AWS Config rule is compliant and provides - // the number of contributors that affect the compliance. + // Indicates whether an Amazon Web Services resource or Config rule is compliant + // and provides the number of contributors that affect the compliance. Compliance *Compliance - // The name of the AWS Config rule. + // The name of the Config rule. ConfigRuleName *string noSmithyDocumentSerde @@ -57,10 +57,10 @@ type AggregateComplianceByConfigRule struct { // INSUFFICIENT_DATA, the conformance pack shows compliant. type AggregateComplianceByConformancePack struct { - // The 12-digit AWS account ID of the source account. + // The 12-digit Amazon Web Services account ID of the source account. AccountId *string - // The source AWS Region from where the data is aggregated. + // The source Amazon Web Services Region from where the data is aggregated. AwsRegion *string // The compliance status of the conformance pack. @@ -76,7 +76,7 @@ type AggregateComplianceByConformancePack struct { // and regions in an aggregator. type AggregateComplianceCount struct { - // The number of compliant and noncompliant AWS Config rules. + // The number of compliant and noncompliant Config rules. ComplianceSummary *ComplianceSummary // The 12-digit account ID or region based on the GroupByKey value. @@ -100,10 +100,10 @@ type AggregateConformancePackCompliance struct { // The compliance status of the conformance pack. ComplianceType ConformancePackComplianceType - // The number of compliant AWS Config Rules. + // The number of compliant Config Rules. CompliantRuleCount int32 - // The number of noncompliant AWS Config Rules. + // The number of noncompliant Config Rules. NonCompliantRuleCount int32 // Total number of compliant rules, noncompliant rules, and the rules that do not @@ -129,10 +129,10 @@ type AggregateConformancePackComplianceCount struct { // and the name of the conformance pack. type AggregateConformancePackComplianceFilters struct { - // The 12-digit AWS account ID of the source account. + // The 12-digit Amazon Web Services account ID of the source account. AccountId *string - // The source AWS Region from where the data is aggregated. + // The source Amazon Web Services Region from where the data is aggregated. AwsRegion *string // The compliance status of the conformance pack. @@ -150,7 +150,8 @@ type AggregateConformancePackComplianceSummary struct { // Returns an AggregateConformancePackComplianceCount object. ComplianceSummary *AggregateConformancePackComplianceCount - // Groups the result based on AWS Account ID or AWS Region. + // Groups the result based on Amazon Web Services account ID or Amazon Web Services + // Region. GroupName *string noSmithyDocumentSerde @@ -159,10 +160,10 @@ type AggregateConformancePackComplianceSummary struct { // Filters the results based on account ID and region. type AggregateConformancePackComplianceSummaryFilters struct { - // The 12-digit AWS account ID of the source account. + // The 12-digit Amazon Web Services account ID of the source account. AccountId *string - // The source AWS Region from where the data is aggregated. + // The source Amazon Web Services Region from where the data is aggregated. AwsRegion *string noSmithyDocumentSerde @@ -174,7 +175,7 @@ type AggregatedSourceStatus struct { // The region authorized to collect aggregated data. AwsRegion *string - // The error code that AWS Config returned when the source account aggregation last + // The error code that Config returned when the source account aggregation last // failed. LastErrorCode *string @@ -205,9 +206,9 @@ type AggregatedSourceStatus struct { noSmithyDocumentSerde } -// The details of an AWS Config evaluation for an account ID and region in an -// aggregator. Provides the AWS resource that was evaluated, the compliance of the -// resource, related time stamps, and supplementary information. +// The details of an Config evaluation for an account ID and region in an +// aggregator. Provides the Amazon Web Services resource that was evaluated, the +// compliance of the resource, related time stamps, and supplementary information. type AggregateEvaluationResult struct { // The 12-digit account ID of the source account. @@ -221,33 +222,33 @@ type AggregateEvaluationResult struct { AwsRegion *string // The resource compliance status. For the AggregationEvaluationResult data type, - // AWS Config supports only the COMPLIANT and NON_COMPLIANT. AWS Config does not - // support the NOT_APPLICABLE and INSUFFICIENT_DATA value. + // Config supports only the COMPLIANT and NON_COMPLIANT. Config does not support + // the NOT_APPLICABLE and INSUFFICIENT_DATA value. ComplianceType ComplianceType - // The time when the AWS Config rule evaluated the AWS resource. + // The time when the Config rule evaluated the Amazon Web Services resource. ConfigRuleInvokedTime *time.Time // Uniquely identifies the evaluation result. EvaluationResultIdentifier *EvaluationResultIdentifier - // The time when AWS Config recorded the aggregate evaluation result. + // The time when Config recorded the aggregate evaluation result. ResultRecordedTime *time.Time noSmithyDocumentSerde } -// The details that identify a resource that is collected by AWS Config aggregator, +// The details that identify a resource that is collected by Config aggregator, // including the resource type, ID, (if available) the custom resource name, the // source account, and source region. type AggregateResourceIdentifier struct { - // The ID of the AWS resource. + // The ID of the Amazon Web Services resource. // // This member is required. ResourceId *string - // The type of the AWS resource. + // The type of the Amazon Web Services resource. // // This member is required. ResourceType ResourceType @@ -262,7 +263,7 @@ type AggregateResourceIdentifier struct { // This member is required. SourceRegion *string - // The name of the AWS resource. + // The name of the Amazon Web Services resource. ResourceName *string noSmithyDocumentSerde @@ -290,7 +291,7 @@ type AggregationAuthorization struct { // The detailed configuration of a specified resource. type BaseConfigurationItem struct { - // The 12-digit AWS account ID associated with the resource. + // The 12-digit Amazon Web Services account ID associated with the resource. AccountId *string // The Amazon Resource Name (ARN) of the resource. @@ -343,10 +344,10 @@ type BaseConfigurationItem struct { // The custom name of the resource, if available. ResourceName *string - // The type of AWS resource. + // The type of Amazon Web Services resource. ResourceType ResourceType - // Configuration attributes that AWS Config returns for certain resource types to + // Configuration attributes that Config returns for certain resource types to // supplement the information returned for the configuration parameter. SupplementaryConfiguration map[string]string @@ -356,102 +357,103 @@ type BaseConfigurationItem struct { noSmithyDocumentSerde } -// Indicates whether an AWS resource or AWS Config rule is compliant and provides -// the number of contributors that affect the compliance. +// Indicates whether an Amazon Web Services resource or Config rule is compliant +// and provides the number of contributors that affect the compliance. type Compliance struct { - // The number of AWS resources or AWS Config rules that cause a result of - // NON_COMPLIANT, up to a maximum number. + // The number of Amazon Web Services resources or Config rules that cause a result + // of NON_COMPLIANT, up to a maximum number. ComplianceContributorCount *ComplianceContributorCount - // Indicates whether an AWS resource or AWS Config rule is compliant. A resource is - // compliant if it complies with all of the AWS Config rules that evaluate it. A - // resource is noncompliant if it does not comply with one or more of these rules. - // A rule is compliant if all of the resources that the rule evaluates comply with - // it. A rule is noncompliant if any of these resources do not comply. AWS Config - // returns the INSUFFICIENT_DATA value when no evaluation results are available for - // the AWS resource or AWS Config rule. For the Compliance data type, AWS Config - // supports only COMPLIANT, NON_COMPLIANT, and INSUFFICIENT_DATA values. AWS Config - // does not support the NOT_APPLICABLE value for the Compliance data type. + // Indicates whether an Amazon Web Services resource or Config rule is compliant. A + // resource is compliant if it complies with all of the Config rules that evaluate + // it. A resource is noncompliant if it does not comply with one or more of these + // rules. A rule is compliant if all of the resources that the rule evaluates + // comply with it. A rule is noncompliant if any of these resources do not comply. + // Config returns the INSUFFICIENT_DATA value when no evaluation results are + // available for the Amazon Web Services resource or Config rule. For the + // Compliance data type, Config supports only COMPLIANT, NON_COMPLIANT, and + // INSUFFICIENT_DATA values. Config does not support the NOT_APPLICABLE value for + // the Compliance data type. ComplianceType ComplianceType noSmithyDocumentSerde } -// Indicates whether an AWS Config rule is compliant. A rule is compliant if all of -// the resources that the rule evaluated comply with it. A rule is noncompliant if -// any of these resources do not comply. +// Indicates whether an Config rule is compliant. A rule is compliant if all of the +// resources that the rule evaluated comply with it. A rule is noncompliant if any +// of these resources do not comply. type ComplianceByConfigRule struct { - // Indicates whether the AWS Config rule is compliant. + // Indicates whether the Config rule is compliant. Compliance *Compliance - // The name of the AWS Config rule. + // The name of the Config rule. ConfigRuleName *string noSmithyDocumentSerde } -// Indicates whether an AWS resource that is evaluated according to one or more AWS -// Config rules is compliant. A resource is compliant if it complies with all of -// the rules that evaluate it. A resource is noncompliant if it does not comply -// with one or more of these rules. +// Indicates whether an Amazon Web Services resource that is evaluated according to +// one or more Config rules is compliant. A resource is compliant if it complies +// with all of the rules that evaluate it. A resource is noncompliant if it does +// not comply with one or more of these rules. type ComplianceByResource struct { - // Indicates whether the AWS resource complies with all of the AWS Config rules - // that evaluated it. + // Indicates whether the Amazon Web Services resource complies with all of the + // Config rules that evaluated it. Compliance *Compliance - // The ID of the AWS resource that was evaluated. + // The ID of the Amazon Web Services resource that was evaluated. ResourceId *string - // The type of the AWS resource that was evaluated. + // The type of the Amazon Web Services resource that was evaluated. ResourceType *string noSmithyDocumentSerde } -// The number of AWS resources or AWS Config rules responsible for the current -// compliance of the item, up to a maximum number. +// The number of Amazon Web Services resources or Config rules responsible for the +// current compliance of the item, up to a maximum number. type ComplianceContributorCount struct { // Indicates whether the maximum count is reached. CapExceeded bool - // The number of AWS resources or AWS Config rules responsible for the current - // compliance of the item. + // The number of Amazon Web Services resources or Config rules responsible for the + // current compliance of the item. CappedCount int32 noSmithyDocumentSerde } -// The number of AWS Config rules or AWS resources that are compliant and -// noncompliant. +// The number of Config rules or Amazon Web Services resources that are compliant +// and noncompliant. type ComplianceSummary struct { - // The time that AWS Config created the compliance summary. + // The time that Config created the compliance summary. ComplianceSummaryTimestamp *time.Time - // The number of AWS Config rules or AWS resources that are compliant, up to a - // maximum of 25 for rules and 100 for resources. + // The number of Config rules or Amazon Web Services resources that are compliant, + // up to a maximum of 25 for rules and 100 for resources. CompliantResourceCount *ComplianceContributorCount - // The number of AWS Config rules or AWS resources that are noncompliant, up to a - // maximum of 25 for rules and 100 for resources. + // The number of Config rules or Amazon Web Services resources that are + // noncompliant, up to a maximum of 25 for rules and 100 for resources. NonCompliantResourceCount *ComplianceContributorCount noSmithyDocumentSerde } -// The number of AWS resources of a specific type that are compliant or -// noncompliant, up to a maximum of 100 for each. +// The number of Amazon Web Services resources of a specific type that are +// compliant or noncompliant, up to a maximum of 100 for each. type ComplianceSummaryByResourceType struct { - // The number of AWS resources that are compliant or noncompliant, up to a maximum - // of 100 for each. + // The number of Amazon Web Services resources that are compliant or noncompliant, + // up to a maximum of 100 for each. ComplianceSummary *ComplianceSummary - // The type of AWS resource. + // The type of Amazon Web Services resource. ResourceType *string noSmithyDocumentSerde @@ -483,47 +485,48 @@ type ConfigExportDeliveryInfo struct { noSmithyDocumentSerde } -// An AWS Config rule represents an AWS Lambda function that you create for a -// custom rule or a predefined function for an AWS managed rule. The function -// evaluates configuration items to assess whether your AWS resources comply with -// your desired configurations. This function can run when AWS Config detects a -// configuration change to an AWS resource and at a periodic frequency that you -// choose (for example, every 24 hours). You can use the AWS CLI and AWS SDKs if -// you want to create a rule that triggers evaluations for your resources when AWS -// Config delivers the configuration snapshot. For more information, see -// ConfigSnapshotDeliveryProperties. For more information about developing and -// using AWS Config rules, see Evaluating AWS Resource Configurations with AWS -// Config +// An Config rule represents an Lambda function that you create for a custom rule +// or a predefined function for an Config managed rule. The function evaluates +// configuration items to assess whether your Amazon Web Services resources comply +// with your desired configurations. This function can run when Config detects a +// configuration change to an Amazon Web Services resource and at a periodic +// frequency that you choose (for example, every 24 hours). You can use the Amazon +// Web Services CLI and Amazon Web Services SDKs if you want to create a rule that +// triggers evaluations for your resources when Config delivers the configuration +// snapshot. For more information, see ConfigSnapshotDeliveryProperties. For more +// information about developing and using Config rules, see Evaluating Amazon Web +// Services resource Configurations with Config // (https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) -// in the AWS Config Developer Guide. +// in the Config Developer Guide. type ConfigRule struct { - // Provides the rule owner (AWS or customer), the rule identifier, and the - // notifications that cause the function to evaluate your AWS resources. + // Provides the rule owner (Amazon Web Services or customer), the rule identifier, + // and the notifications that cause the function to evaluate your Amazon Web + // Services resources. // // This member is required. Source *Source - // The Amazon Resource Name (ARN) of the AWS Config rule. + // The Amazon Resource Name (ARN) of the Config rule. ConfigRuleArn *string - // The ID of the AWS Config rule. + // The ID of the Config rule. ConfigRuleId *string - // The name that you assign to the AWS Config rule. The name is required if you are + // The name that you assign to the Config rule. The name is required if you are // adding a new rule. ConfigRuleName *string - // Indicates whether the AWS Config rule is active or is currently being deleted by - // AWS Config. It can also indicate the evaluation status for the AWS Config rule. - // AWS Config sets the state of the rule to EVALUATING temporarily after you use - // the StartConfigRulesEvaluation request to evaluate your resources against the - // AWS Config rule. AWS Config sets the state of the rule to DELETING_RESULTS - // temporarily after you use the DeleteEvaluationResults request to delete the - // current evaluation results for the AWS Config rule. AWS Config temporarily sets - // the state of a rule to DELETING after you use the DeleteConfigRule request to - // delete the rule. After AWS Config deletes the rule, the rule and all of its - // evaluations are erased and are no longer available. + // Indicates whether the Config rule is active or is currently being deleted by + // Config. It can also indicate the evaluation status for the Config rule. Config + // sets the state of the rule to EVALUATING temporarily after you use the + // StartConfigRulesEvaluation request to evaluate your resources against the Config + // rule. Config sets the state of the rule to DELETING_RESULTS temporarily after + // you use the DeleteEvaluationResults request to delete the current evaluation + // results for the Config rule. Config temporarily sets the state of a rule to + // DELETING after you use the DeleteConfigRule request to delete the rule. After + // Config deletes the rule, the rule and all of its evaluations are erased and are + // no longer available. ConfigRuleState ConfigRuleState // Service principal name of the service that created the rule. The field is @@ -531,25 +534,25 @@ type ConfigRule struct { // empty if you create your own rule. CreatedBy *string - // The description that you provide for the AWS Config rule. + // The description that you provide for the Config rule. Description *string - // A string, in JSON format, that is passed to the AWS Config rule Lambda function. + // A string, in JSON format, that is passed to the Config rule Lambda function. InputParameters *string - // The maximum frequency with which AWS Config runs evaluations for a rule. You can + // The maximum frequency with which Config runs evaluations for a rule. You can // specify a value for MaximumExecutionFrequency when: // - // * You are using an AWS + // * You are using an Config // managed rule that is triggered at a periodic frequency. // // * Your custom rule is - // triggered when AWS Config delivers the configuration snapshot. For more - // information, see ConfigSnapshotDeliveryProperties. + // triggered when Config delivers the configuration snapshot. For more information, + // see ConfigSnapshotDeliveryProperties. // - // By default, rules with a - // periodic trigger are evaluated every 24 hours. To change the frequency, specify - // a valid value for the MaximumExecutionFrequency parameter. + // By default, rules with a periodic trigger + // are evaluated every 24 hours. To change the frequency, specify a valid value for + // the MaximumExecutionFrequency parameter. MaximumExecutionFrequency MaximumExecutionFrequency // Defines which resources can trigger an evaluation for the rule. The scope can @@ -573,12 +576,12 @@ type ConfigRuleComplianceFilters struct { // The source region where the data is aggregated. AwsRegion *string - // The rule compliance status. For the ConfigRuleComplianceFilters data type, AWS - // Config supports only COMPLIANT and NON_COMPLIANT. AWS Config does not support - // the NOT_APPLICABLE and the INSUFFICIENT_DATA values. + // The rule compliance status. For the ConfigRuleComplianceFilters data type, + // Config supports only COMPLIANT and NON_COMPLIANT. Config does not support the + // NOT_APPLICABLE and the INSUFFICIENT_DATA values. ComplianceType ComplianceType - // The name of the AWS Config rule. + // The name of the Config rule. ConfigRuleName *string noSmithyDocumentSerde @@ -596,103 +599,102 @@ type ConfigRuleComplianceSummaryFilters struct { noSmithyDocumentSerde } -// Status information for your AWS managed Config rules. The status includes +// Status information for your Config managed rules. The status includes // information such as the last time the rule ran, the last time it failed, and the // related error for the last failure. This action does not return status -// information about custom AWS Config rules. +// information about custom Config rules. type ConfigRuleEvaluationStatus struct { - // The Amazon Resource Name (ARN) of the AWS Config rule. + // The Amazon Resource Name (ARN) of the Config rule. ConfigRuleArn *string - // The ID of the AWS Config rule. + // The ID of the Config rule. ConfigRuleId *string - // The name of the AWS Config rule. + // The name of the Config rule. ConfigRuleName *string - // The time that you first activated the AWS Config rule. + // The time that you first activated the Config rule. FirstActivatedTime *time.Time - // Indicates whether AWS Config has evaluated your resources against the rule at - // least once. + // Indicates whether Config has evaluated your resources against the rule at least + // once. // - // * true - AWS Config has evaluated your AWS resources against the - // rule at least once. + // * true - Config has evaluated your Amazon Web Services resources against + // the rule at least once. // - // * false - AWS Config has not once finished evaluating your - // AWS resources against the rule. + // * false - Config has not once finished evaluating your + // Amazon Web Services resources against the rule. FirstEvaluationStarted bool - // The time that you last turned off the AWS Config rule. + // The time that you last turned off the Config rule. LastDeactivatedTime *time.Time - // The error code that AWS Config returned when the rule last failed. + // The error code that Config returned when the rule last failed. LastErrorCode *string - // The error message that AWS Config returned when the rule last failed. + // The error message that Config returned when the rule last failed. LastErrorMessage *string - // The time that AWS Config last failed to evaluate your AWS resources against the - // rule. + // The time that Config last failed to evaluate your Amazon Web Services resources + // against the rule. LastFailedEvaluationTime *time.Time - // The time that AWS Config last failed to invoke the AWS Config rule to evaluate - // your AWS resources. + // The time that Config last failed to invoke the Config rule to evaluate your + // Amazon Web Services resources. LastFailedInvocationTime *time.Time - // The time that AWS Config last successfully evaluated your AWS resources against - // the rule. + // The time that Config last successfully evaluated your Amazon Web Services + // resources against the rule. LastSuccessfulEvaluationTime *time.Time - // The time that AWS Config last successfully invoked the AWS Config rule to - // evaluate your AWS resources. + // The time that Config last successfully invoked the Config rule to evaluate your + // Amazon Web Services resources. LastSuccessfulInvocationTime *time.Time noSmithyDocumentSerde } -// Provides options for how often AWS Config delivers configuration snapshots to -// the Amazon S3 bucket in your delivery channel. The frequency for a rule that -// triggers evaluations for your resources when AWS Config delivers the -// configuration snapshot is set by one of two values, depending on which is less -// frequent: +// Provides options for how often Config delivers configuration snapshots to the +// Amazon S3 bucket in your delivery channel. The frequency for a rule that +// triggers evaluations for your resources when Config delivers the configuration +// snapshot is set by one of two values, depending on which is less frequent: // -// * The value for the deliveryFrequency parameter within the delivery -// channel configuration, which sets how often AWS Config delivers configuration -// snapshots. This value also sets how often AWS Config invokes evaluations for AWS -// Config rules. +// * +// The value for the deliveryFrequency parameter within the delivery channel +// configuration, which sets how often Config delivers configuration snapshots. +// This value also sets how often Config invokes evaluations for Config rules. // -// * The value for the MaximumExecutionFrequency parameter, which -// sets the maximum frequency with which AWS Config invokes evaluations for the -// rule. For more information, see ConfigRule. +// * +// The value for the MaximumExecutionFrequency parameter, which sets the maximum +// frequency with which Config invokes evaluations for the rule. For more +// information, see ConfigRule. // -// If the deliveryFrequency value is -// less frequent than the MaximumExecutionFrequency value for a rule, AWS Config -// invokes the rule only as often as the deliveryFrequency value. +// If the deliveryFrequency value is less frequent +// than the MaximumExecutionFrequency value for a rule, Config invokes the rule +// only as often as the deliveryFrequency value. // -// * For example, -// you want your rule to run evaluations when AWS Config delivers the configuration -// snapshot. +// * For example, you want your rule +// to run evaluations when Config delivers the configuration snapshot. // -// * You specify the MaximumExecutionFrequency value for Six_Hours. +// * You +// specify the MaximumExecutionFrequency value for Six_Hours. // -// * -// You then specify the delivery channel deliveryFrequency value for -// TwentyFour_Hours. +// * You then specify +// the delivery channel deliveryFrequency value for TwentyFour_Hours. // -// * Because the value for deliveryFrequency is less frequent -// than MaximumExecutionFrequency, AWS Config invokes evaluations for the rule -// every 24 hours. +// * Because +// the value for deliveryFrequency is less frequent than MaximumExecutionFrequency, +// Config invokes evaluations for the rule every 24 hours. // -// You should set the MaximumExecutionFrequency value to be at -// least as frequent as the deliveryFrequency value. You can view the -// deliveryFrequency value by using the DescribeDeliveryChannnels action. To update -// the deliveryFrequency with which AWS Config delivers your configuration -// snapshots, use the PutDeliveryChannel action. +// You should set the +// MaximumExecutionFrequency value to be at least as frequent as the +// deliveryFrequency value. You can view the deliveryFrequency value by using the +// DescribeDeliveryChannnels action. To update the deliveryFrequency with which +// Config delivers your configuration snapshots, use the PutDeliveryChannel action. type ConfigSnapshotDeliveryProperties struct { - // The frequency with which AWS Config delivers configuration snapshots. + // The frequency with which Config delivers configuration snapshots. DeliveryFrequency MaximumExecutionFrequency noSmithyDocumentSerde @@ -711,8 +713,8 @@ type ConfigStreamDeliveryInfo struct { // Status of the last attempted delivery. Note Providing an SNS topic on a // DeliveryChannel // (https://docs.aws.amazon.com/config/latest/APIReference/API_DeliveryChannel.html) - // for AWS Config is optional. If the SNS delivery is turned off, the last status - // will be Not_Applicable. + // for Config is optional. If the SNS delivery is turned off, the last status will + // be Not_Applicable. LastStatus DeliveryStatus // The time from the last status change. @@ -734,7 +736,7 @@ type ConfigurationAggregator struct { // The name of the aggregator. ConfigurationAggregatorName *string - // AWS service that created the configuration aggregator. + // Amazon Web Services service that created the configuration aggregator. CreatedBy *string // The time stamp when the configuration aggregator was created. @@ -752,7 +754,7 @@ type ConfigurationAggregator struct { // A list that contains detailed configurations of a specified resource. type ConfigurationItem struct { - // The 12-digit AWS account ID associated with the resource. + // The 12-digit Amazon Web Services account ID associated with the resource. AccountId *string // Amazon Resource Name (ARN) associated with the resource. @@ -803,16 +805,16 @@ type ConfigurationItem struct { // A list of CloudTrail event IDs. A populated field indicates that the current // configuration was initiated by the events recorded in the CloudTrail log. For - // more information about CloudTrail, see What Is AWS CloudTrail + // more information about CloudTrail, see What Is CloudTrail // (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/what_is_cloud_trail_top_level.html). // An empty field indicates that the current configuration was not initiated by any // event. As of Version 1.3, the relatedEvents field is empty. You can access the // LookupEvents API // (https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_LookupEvents.html) - // in the AWS CloudTrail API Reference to retrieve the events for the resource. + // in the CloudTrail API Reference to retrieve the events for the resource. RelatedEvents []string - // A list of related AWS resources. + // A list of related Amazon Web Services resources. Relationships []Relationship // The time stamp when the resource was created. @@ -824,10 +826,10 @@ type ConfigurationItem struct { // The custom name of the resource, if available. ResourceName *string - // The type of AWS resource. + // The type of Amazon Web Services resource. ResourceType ResourceType - // Configuration attributes that AWS Config returns for certain resource types to + // Configuration attributes that Config returns for certain resource types to // supplement the information returned for the configuration parameter. SupplementaryConfiguration map[string]string @@ -840,21 +842,21 @@ type ConfigurationItem struct { noSmithyDocumentSerde } -// An object that represents the recording of configuration changes of an AWS -// resource. +// An object that represents the recording of configuration changes of an Amazon +// Web Services resource. type ConfigurationRecorder struct { - // The name of the recorder. By default, AWS Config automatically assigns the name + // The name of the recorder. By default, Config automatically assigns the name // "default" when creating the configuration recorder. You cannot change the // assigned name. Name *string - // Specifies the types of AWS resources for which AWS Config records configuration - // changes. + // Specifies the types of Amazon Web Services resources for which Config records + // configuration changes. RecordingGroup *RecordingGroup - // Amazon Resource Name (ARN) of the IAM role used to describe the AWS resources - // associated with the account. + // Amazon Resource Name (ARN) of the IAM role used to describe the Amazon Web + // Services resources associated with the account. RoleARN *string noSmithyDocumentSerde @@ -890,14 +892,14 @@ type ConfigurationRecorderStatus struct { noSmithyDocumentSerde } -// Filters the conformance pack by compliance types and AWS Config rule names. +// Filters the conformance pack by compliance types and Config rule names. type ConformancePackComplianceFilters struct { // Filters the results by compliance. The allowed values are COMPLIANT and // NON_COMPLIANT. INSUFFICIENT_DATA is not supported. ComplianceType ConformancePackComplianceType - // Filters the results by AWS Config rule names. + // Filters the results by Config rule names. ConfigRuleNames []string noSmithyDocumentSerde @@ -920,7 +922,7 @@ type ConformancePackComplianceSummary struct { noSmithyDocumentSerde } -// Returns details of a conformance pack. A conformance pack is a collection of AWS +// Returns details of a conformance pack. A conformance pack is a collection of // Config rules and remediation actions that can be easily deployed in an account // and a region. type ConformancePackDetail struct { @@ -943,11 +945,11 @@ type ConformancePackDetail struct { // A list of ConformancePackInputParameter objects. ConformancePackInputParameters []ConformancePackInputParameter - // AWS service that created the conformance pack. + // Amazon Web Services service that created the conformance pack. CreatedBy *string - // Amazon S3 bucket where AWS Config stores conformance pack templates. This field - // is optional. + // The name of the Amazon S3 bucket where Config stores conformance pack templates. + // This field is optional. DeliveryS3Bucket *string // The prefix for the Amazon S3 bucket. This field is optional. @@ -959,15 +961,15 @@ type ConformancePackDetail struct { noSmithyDocumentSerde } -// Filters a conformance pack by AWS Config rule names, compliance types, AWS -// resource types, and resource IDs. +// Filters a conformance pack by Config rule names, compliance types, Amazon Web +// Services resource types, and resource IDs. type ConformancePackEvaluationFilters struct { // Filters the results by compliance. The allowed values are COMPLIANT and // NON_COMPLIANT. INSUFFICIENT_DATA is not supported. ComplianceType ConformancePackComplianceType - // Filters the results by AWS Config rule names. + // Filters the results by Config rule names. ConfigRuleNames []string // Filters the results by resource IDs. This is valid only when you provide @@ -980,9 +982,9 @@ type ConformancePackEvaluationFilters struct { noSmithyDocumentSerde } -// The details of a conformance pack evaluation. Provides AWS Config rule and AWS -// resource type that was evaluated, the compliance of the conformance pack, -// related time stamps, and supplementary information. +// The details of a conformance pack evaluation. Provides Config rule and Amazon +// Web Services resource type that was evaluated, the compliance of the conformance +// pack, related time stamps, and supplementary information. type ConformancePackEvaluationResult struct { // The compliance type. The allowed values are COMPLIANT and NON_COMPLIANT. @@ -991,7 +993,7 @@ type ConformancePackEvaluationResult struct { // This member is required. ComplianceType ConformancePackComplianceType - // The time when AWS Config rule evaluated AWS resource. + // The time when Config rule evaluated Amazon Web Services resource. // // This member is required. ConfigRuleInvokedTime *time.Time @@ -1001,7 +1003,7 @@ type ConformancePackEvaluationResult struct { // This member is required. EvaluationResultIdentifier *EvaluationResultIdentifier - // The time when AWS Config recorded the evaluation result. + // The time when Config recorded the evaluation result. // // This member is required. ResultRecordedTime *time.Time @@ -1030,12 +1032,12 @@ type ConformancePackInputParameter struct { noSmithyDocumentSerde } -// Compliance information of one or more AWS Config rules within a conformance -// pack. You can filter using AWS Config rule names and compliance types. +// Compliance information of one or more Config rules within a conformance pack. +// You can filter using Config rule names and compliance types. type ConformancePackRuleCompliance struct { - // Compliance of the AWS Config rule. The allowed values are COMPLIANT, - // NON_COMPLIANT, and INSUFFICIENT_DATA. + // Compliance of the Config rule. The allowed values are COMPLIANT, NON_COMPLIANT, + // and INSUFFICIENT_DATA. ComplianceType ConformancePackComplianceType // Name of the config rule. @@ -1067,20 +1069,20 @@ type ConformancePackStatusDetail struct { // This member is required. ConformancePackName *string - // Indicates deployment status of conformance pack. AWS Config sets the state of - // the conformance pack to: + // Indicates deployment status of conformance pack. Config sets the state of the + // conformance pack to: // - // * CREATE_IN_PROGRESS when a conformance pack creation - // is in progress for an account. + // * CREATE_IN_PROGRESS when a conformance pack creation is + // in progress for an account. // - // * CREATE_COMPLETE when a conformance pack has - // been successfully created in your account. + // * CREATE_COMPLETE when a conformance pack has been + // successfully created in your account. // - // * CREATE_FAILED when a conformance - // pack creation failed in your account. + // * CREATE_FAILED when a conformance pack + // creation failed in your account. // - // * DELETE_IN_PROGRESS when a conformance - // pack deletion is in progress. + // * DELETE_IN_PROGRESS when a conformance pack + // deletion is in progress. // // * DELETE_FAILED when a conformance pack deletion // failed in your account. @@ -1093,7 +1095,7 @@ type ConformancePackStatusDetail struct { // This member is required. LastUpdateRequestedTime *time.Time - // Amazon Resource Name (ARN) of AWS CloudFormation stack. + // Amazon Resource Name (ARN) of CloudFormation stack. // // This member is required. StackArn *string @@ -1107,44 +1109,44 @@ type ConformancePackStatusDetail struct { noSmithyDocumentSerde } -// The channel through which AWS Config delivers notifications and updated +// The channel through which Config delivers notifications and updated // configuration states. type DeliveryChannel struct { - // The options for how often AWS Config delivers configuration snapshots to the - // Amazon S3 bucket. + // The options for how often Config delivers configuration snapshots to the Amazon + // S3 bucket. ConfigSnapshotDeliveryProperties *ConfigSnapshotDeliveryProperties - // The name of the delivery channel. By default, AWS Config assigns the name - // "default" when creating the delivery channel. To change the delivery channel - // name, you must use the DeleteDeliveryChannel action to delete your current - // delivery channel, and then you must use the PutDeliveryChannel command to create - // a delivery channel that has the desired name. + // The name of the delivery channel. By default, Config assigns the name "default" + // when creating the delivery channel. To change the delivery channel name, you + // must use the DeleteDeliveryChannel action to delete your current delivery + // channel, and then you must use the PutDeliveryChannel command to create a + // delivery channel that has the desired name. Name *string - // The name of the Amazon S3 bucket to which AWS Config delivers configuration + // The name of the Amazon S3 bucket to which Config delivers configuration // snapshots and configuration history files. If you specify a bucket that belongs - // to another AWS account, that bucket must have policies that grant access - // permissions to AWS Config. For more information, see Permissions for the Amazon - // S3 Bucket + // to another Amazon Web Services account, that bucket must have policies that + // grant access permissions to Config. For more information, see Permissions for + // the Amazon S3 Bucket // (https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-policy.html) - // in the AWS Config Developer Guide. + // in the Config Developer Guide. S3BucketName *string // The prefix for the specified Amazon S3 bucket. S3KeyPrefix *string - // The Amazon Resource Name (ARN) of the AWS Key Management Service (KMS) customer - // managed key (CMK) used to encrypt objects delivered by AWS Config. Must belong - // to the same Region as the destination S3 bucket. + // The Amazon Resource Name (ARN) of the Key Management Service (KMS ) KMS key (KMS + // key) used to encrypt objects delivered by Config. Must belong to the same Region + // as the destination S3 bucket. S3KmsKeyArn *string - // The Amazon Resource Name (ARN) of the Amazon SNS topic to which AWS Config sends + // The Amazon Resource Name (ARN) of the Amazon SNS topic to which Config sends // notifications about configuration changes. If you choose a topic from another - // account, the topic must have policies that grant access permissions to AWS - // Config. For more information, see Permissions for the Amazon SNS Topic + // account, the topic must have policies that grant access permissions to Config. + // For more information, see Permissions for the Amazon SNS Topic // (https://docs.aws.amazon.com/config/latest/developerguide/sns-topic-policy.html) - // in the AWS Config Developer Guide. + // in the Config Developer Guide. SnsTopicARN *string noSmithyDocumentSerde @@ -1171,36 +1173,36 @@ type DeliveryChannelStatus struct { noSmithyDocumentSerde } -// Identifies an AWS resource and indicates whether it complies with the AWS Config -// rule that it was evaluated against. +// Identifies an Amazon Web Services resource and indicates whether it complies +// with the Config rule that it was evaluated against. type Evaluation struct { - // The ID of the AWS resource that was evaluated. + // The ID of the Amazon Web Services resource that was evaluated. // // This member is required. ComplianceResourceId *string - // The type of AWS resource that was evaluated. + // The type of Amazon Web Services resource that was evaluated. // // This member is required. ComplianceResourceType *string - // Indicates whether the AWS resource complies with the AWS Config rule that it was - // evaluated against. For the Evaluation data type, AWS Config supports only the - // COMPLIANT, NON_COMPLIANT, and NOT_APPLICABLE values. AWS Config does not support - // the INSUFFICIENT_DATA value for this data type. Similarly, AWS Config does not - // accept INSUFFICIENT_DATA as the value for ComplianceType from a PutEvaluations - // request. For example, an AWS Lambda function for a custom AWS Config rule cannot - // pass an INSUFFICIENT_DATA value to AWS Config. + // Indicates whether the Amazon Web Services resource complies with the Config rule + // that it was evaluated against. For the Evaluation data type, Config supports + // only the COMPLIANT, NON_COMPLIANT, and NOT_APPLICABLE values. Config does not + // support the INSUFFICIENT_DATA value for this data type. Similarly, Config does + // not accept INSUFFICIENT_DATA as the value for ComplianceType from a + // PutEvaluations request. For example, an Lambda function for a custom Config rule + // cannot pass an INSUFFICIENT_DATA value to Config. // // This member is required. ComplianceType ComplianceType - // The time of the event in AWS Config that triggered the evaluation. For - // event-based evaluations, the time indicates when AWS Config created the - // configuration item that triggered the evaluation. For periodic evaluations, the - // time indicates when AWS Config triggered the evaluation at the frequency that - // you specified (for example, every 24 hours). + // The time of the event in Config that triggered the evaluation. For event-based + // evaluations, the time indicates when Config created the configuration item that + // triggered the evaluation. For periodic evaluations, the time indicates when + // Config triggered the evaluation at the frequency that you specified (for + // example, every 24 hours). // // This member is required. OrderingTimestamp *time.Time @@ -1211,32 +1213,32 @@ type Evaluation struct { noSmithyDocumentSerde } -// The details of an AWS Config evaluation. Provides the AWS resource that was -// evaluated, the compliance of the resource, related time stamps, and +// The details of an Config evaluation. Provides the Amazon Web Services resource +// that was evaluated, the compliance of the resource, related time stamps, and // supplementary information. type EvaluationResult struct { // Supplementary information about how the evaluation determined the compliance. Annotation *string - // Indicates whether the AWS resource complies with the AWS Config rule that - // evaluated it. For the EvaluationResult data type, AWS Config supports only the - // COMPLIANT, NON_COMPLIANT, and NOT_APPLICABLE values. AWS Config does not support - // the INSUFFICIENT_DATA value for the EvaluationResult data type. + // Indicates whether the Amazon Web Services resource complies with the Config rule + // that evaluated it. For the EvaluationResult data type, Config supports only the + // COMPLIANT, NON_COMPLIANT, and NOT_APPLICABLE values. Config does not support the + // INSUFFICIENT_DATA value for the EvaluationResult data type. ComplianceType ComplianceType - // The time when the AWS Config rule evaluated the AWS resource. + // The time when the Config rule evaluated the Amazon Web Services resource. ConfigRuleInvokedTime *time.Time // Uniquely identifies the evaluation result. EvaluationResultIdentifier *EvaluationResultIdentifier - // The time when AWS Config recorded the evaluation result. + // The time when Config recorded the evaluation result. ResultRecordedTime *time.Time - // An encrypted token that associates an evaluation with an AWS Config rule. The - // token identifies the rule, the AWS resource being evaluated, and the event that - // triggered the evaluation. + // An encrypted token that associates an evaluation with an Config rule. The token + // identifies the rule, the Amazon Web Services resource being evaluated, and the + // event that triggered the evaluation. ResultToken *string noSmithyDocumentSerde @@ -1245,36 +1247,36 @@ type EvaluationResult struct { // Uniquely identifies an evaluation result. type EvaluationResultIdentifier struct { - // Identifies an AWS Config rule used to evaluate an AWS resource, and provides the - // type and ID of the evaluated resource. + // Identifies an Config rule used to evaluate an Amazon Web Services resource, and + // provides the type and ID of the evaluated resource. EvaluationResultQualifier *EvaluationResultQualifier - // The time of the event that triggered the evaluation of your AWS resources. The - // time can indicate when AWS Config delivered a configuration item change - // notification, or it can indicate when AWS Config delivered the configuration + // The time of the event that triggered the evaluation of your Amazon Web Services + // resources. The time can indicate when Config delivered a configuration item + // change notification, or it can indicate when Config delivered the configuration // snapshot, depending on which event triggered the evaluation. OrderingTimestamp *time.Time noSmithyDocumentSerde } -// Identifies an AWS Config rule that evaluated an AWS resource, and provides the -// type and ID of the resource that the rule evaluated. +// Identifies an Config rule that evaluated an Amazon Web Services resource, and +// provides the type and ID of the resource that the rule evaluated. type EvaluationResultQualifier struct { - // The name of the AWS Config rule that was used in the evaluation. + // The name of the Config rule that was used in the evaluation. ConfigRuleName *string - // The ID of the evaluated AWS resource. + // The ID of the evaluated Amazon Web Services resource. ResourceId *string - // The type of AWS resource that was evaluated. + // The type of Amazon Web Services resource that was evaluated. ResourceType *string noSmithyDocumentSerde } -// The controls that AWS Config uses for executing remediations. +// The controls that Config uses for executing remediations. type ExecutionControls struct { // A SsmControls object. @@ -1283,23 +1285,24 @@ type ExecutionControls struct { noSmithyDocumentSerde } -// Identifies an AWS resource and indicates whether it complies with the AWS Config -// rule that it was evaluated against. +// Identifies an Amazon Web Services resource and indicates whether it complies +// with the Config rule that it was evaluated against. type ExternalEvaluation struct { - // The evaluated compliance resource ID. AWS Config accepts only AWS account ID. + // The evaluated compliance resource ID. Config accepts only Amazon Web Services + // account ID. // // This member is required. ComplianceResourceId *string - // The evaluated compliance resource type. AWS Config accepts AWS::::Account - // resource type. + // The evaluated compliance resource type. Config accepts AWS::::Account resource + // type. // // This member is required. ComplianceResourceType *string - // The compliance of the AWS resource. The valid values are COMPLIANT, - // NON_COMPLIANT, and NOT_APPLICABLE. + // The compliance of the Amazon Web Services resource. The valid values are + // COMPLIANT, NON_COMPLIANT, and NOT_APPLICABLE. // // This member is required. ComplianceType ComplianceType @@ -1322,8 +1325,8 @@ type FailedDeleteRemediationExceptionsBatch struct { // Returns remediation exception resource key object of the failed items. FailedItems []RemediationExceptionResourceKey - // Returns a failure message for delete remediation exception. For example, AWS - // Config creates an exception due to an internal error. + // Returns a failure message for delete remediation exception. For example, Config + // creates an exception due to an internal error. FailureMessage *string noSmithyDocumentSerde @@ -1400,35 +1403,34 @@ type MemberAccountStatus struct { // PutOrganizationConfigRule action for the second time, config rule status is // updated in the member account. Config rule status is deleted when the master // account deletes OrganizationConfigRule and disables service access for - // config-multiaccountsetup.amazonaws.com. AWS Config sets the state of the rule - // to: + // config-multiaccountsetup.amazonaws.com. Config sets the state of the rule to: // - // * CREATE_SUCCESSFUL when config rule has been created in the member - // account. + // * + // CREATE_SUCCESSFUL when config rule has been created in the member account. // - // * CREATE_IN_PROGRESS when config rule is being created in the member - // account. + // * + // CREATE_IN_PROGRESS when config rule is being created in the member account. // - // * CREATE_FAILED when config rule creation has failed in the member - // account. + // * + // CREATE_FAILED when config rule creation has failed in the member account. // - // * DELETE_FAILED when config rule deletion has failed in the member - // account. + // * + // DELETE_FAILED when config rule deletion has failed in the member account. // - // * DELETE_IN_PROGRESS when config rule is being deleted in the member - // account. + // * + // DELETE_IN_PROGRESS when config rule is being deleted in the member account. // - // * DELETE_SUCCESSFUL when config rule has been deleted in the member - // account. + // * + // DELETE_SUCCESSFUL when config rule has been deleted in the member account. // - // * UPDATE_SUCCESSFUL when config rule has been updated in the member - // account. + // * + // UPDATE_SUCCESSFUL when config rule has been updated in the member account. // - // * UPDATE_IN_PROGRESS when config rule is being updated in the member - // account. + // * + // UPDATE_IN_PROGRESS when config rule is being updated in the member account. // - // * UPDATE_FAILED when config rule deletion has failed in the member - // account. + // * + // UPDATE_FAILED when config rule deletion has failed in the member account. // // This member is required. MemberAccountRuleStatus MemberAccountRuleStatus @@ -1451,13 +1453,13 @@ type MemberAccountStatus struct { // retrieve organization details. type OrganizationAggregationSource struct { - // ARN of the IAM role used to retrieve AWS Organization details associated with - // the aggregator account. + // ARN of the IAM role used to retrieve Amazon Web Services Organization details + // associated with the aggregator account. // // This member is required. RoleArn *string - // If true, aggregate existing AWS Config regions and future regions. + // If true, aggregate existing Config regions and future regions. AllAwsRegions bool // The source regions being aggregated. @@ -1466,8 +1468,8 @@ type OrganizationAggregationSource struct { noSmithyDocumentSerde } -// An organization config rule that has information about config rules that AWS -// Config creates in member accounts. +// An organization config rule that has information about config rules that Config +// creates in member accounts. type OrganizationConfigRule struct { // Amazon Resource Name (ARN) of organization config rule. @@ -1511,28 +1513,28 @@ type OrganizationConfigRuleStatus struct { // when one or more member accounts join or leave an organization. Config rule // status is deleted when the master account deletes OrganizationConfigRule in all // the member accounts and disables service access for - // config-multiaccountsetup.amazonaws.com. AWS Config sets the state of the rule - // to: + // config-multiaccountsetup.amazonaws.com. Config sets the state of the rule to: // - // * CREATE_SUCCESSFUL when an organization config rule has been successfully - // created in all the member accounts. + // * + // CREATE_SUCCESSFUL when an organization config rule has been successfully created + // in all the member accounts. // - // * CREATE_IN_PROGRESS when an organization - // config rule creation is in progress. + // * CREATE_IN_PROGRESS when an organization config + // rule creation is in progress. // - // * CREATE_FAILED when an organization - // config rule creation failed in one or more member accounts within that - // organization. + // * CREATE_FAILED when an organization config rule + // creation failed in one or more member accounts within that organization. // - // * DELETE_FAILED when an organization config rule deletion failed - // in one or more member accounts within that organization. + // * + // DELETE_FAILED when an organization config rule deletion failed in one or more + // member accounts within that organization. // - // * DELETE_IN_PROGRESS - // when an organization config rule deletion is in progress. + // * DELETE_IN_PROGRESS when an + // organization config rule deletion is in progress. // - // * DELETE_SUCCESSFUL - // when an organization config rule has been successfully deleted from all the - // member accounts. + // * DELETE_SUCCESSFUL when an + // organization config rule has been successfully deleted from all the member + // accounts. // // * UPDATE_SUCCESSFUL when an organization config rule has been // successfully updated in all the member accounts. @@ -1562,7 +1564,7 @@ type OrganizationConfigRuleStatus struct { } // An organization conformance pack that has information about conformance packs -// that AWS Config creates in member accounts. +// that Config creates in member accounts. type OrganizationConformancePack struct { // Last time when organization conformation pack was updated. @@ -1583,8 +1585,8 @@ type OrganizationConformancePack struct { // A list of ConformancePackInputParameter objects. ConformancePackInputParameters []ConformancePackInputParameter - // Amazon S3 bucket where AWS Config stores conformance pack templates. This field - // is optional. + // The name of the Amazon S3 bucket where Config stores conformance pack templates. + // This field is optional. DeliveryS3Bucket *string // Any folder structure you want to add to an Amazon S3 bucket. This field is @@ -1618,20 +1620,20 @@ type OrganizationConformancePackDetailedStatus struct { // calls PutOrganizationConformancePack action for the second time, conformance // pack status is updated in the member account. Conformance pack status is deleted // when the master account deletes OrganizationConformancePack and disables service - // access for config-multiaccountsetup.amazonaws.com. AWS Config sets the state of - // the conformance pack to: + // access for config-multiaccountsetup.amazonaws.com. Config sets the state of the + // conformance pack to: // - // * CREATE_SUCCESSFUL when conformance pack has been - // created in the member account. + // * CREATE_SUCCESSFUL when conformance pack has been created + // in the member account. // - // * CREATE_IN_PROGRESS when conformance pack is - // being created in the member account. + // * CREATE_IN_PROGRESS when conformance pack is being + // created in the member account. // - // * CREATE_FAILED when conformance pack - // creation has failed in the member account. + // * CREATE_FAILED when conformance pack creation + // has failed in the member account. // - // * DELETE_FAILED when conformance - // pack deletion has failed in the member account. + // * DELETE_FAILED when conformance pack + // deletion has failed in the member account. // // * DELETE_IN_PROGRESS when // conformance pack is being deleted in the member account. @@ -1682,28 +1684,28 @@ type OrganizationConformancePackStatus struct { // updated when one or more member accounts join or leave an organization. // Conformance pack status is deleted when the master account deletes // OrganizationConformancePack in all the member accounts and disables service - // access for config-multiaccountsetup.amazonaws.com. AWS Config sets the state of - // the conformance pack to: + // access for config-multiaccountsetup.amazonaws.com. Config sets the state of the + // conformance pack to: // - // * CREATE_SUCCESSFUL when an organization conformance - // pack has been successfully created in all the member accounts. + // * CREATE_SUCCESSFUL when an organization conformance pack + // has been successfully created in all the member accounts. // - // * - // CREATE_IN_PROGRESS when an organization conformance pack creation is in - // progress. + // * CREATE_IN_PROGRESS + // when an organization conformance pack creation is in progress. // - // * CREATE_FAILED when an organization conformance pack creation failed - // in one or more member accounts within that organization. + // * CREATE_FAILED + // when an organization conformance pack creation failed in one or more member + // accounts within that organization. // - // * DELETE_FAILED when - // an organization conformance pack deletion failed in one or more member accounts - // within that organization. + // * DELETE_FAILED when an organization + // conformance pack deletion failed in one or more member accounts within that + // organization. // - // * DELETE_IN_PROGRESS when an organization conformance - // pack deletion is in progress. + // * DELETE_IN_PROGRESS when an organization conformance pack + // deletion is in progress. // - // * DELETE_SUCCESSFUL when an organization - // conformance pack has been successfully deleted from all the member accounts. + // * DELETE_SUCCESSFUL when an organization conformance + // pack has been successfully deleted from all the member accounts. // // * // UPDATE_SUCCESSFUL when an organization conformance pack has been successfully @@ -1734,10 +1736,10 @@ type OrganizationConformancePackStatus struct { } // An object that specifies organization custom rule metadata such as resource -// type, resource ID of AWS resource, Lamdba function ARN, and organization trigger -// types that trigger AWS Config to evaluate your AWS resources against a rule. It -// also provides the frequency with which you want AWS Config to run evaluations -// for the rule if the trigger type is periodic. +// type, resource ID of Amazon Web Services resource, Lambda function ARN, and +// organization trigger types that trigger Config to evaluate your Amazon Web +// Services resources against a rule. It also provides the frequency with which you +// want Config to run evaluations for the rule if the trigger type is periodic. type OrganizationCustomRuleMetadata struct { // The lambda function ARN. @@ -1745,16 +1747,16 @@ type OrganizationCustomRuleMetadata struct { // This member is required. LambdaFunctionArn *string - // The type of notification that triggers AWS Config to run an evaluation for a - // rule. You can specify the following notification types: + // The type of notification that triggers Config to run an evaluation for a rule. + // You can specify the following notification types: // // * - // ConfigurationItemChangeNotification - Triggers an evaluation when AWS Config + // ConfigurationItemChangeNotification - Triggers an evaluation when Config // delivers a configuration item as a result of a resource change. // // * - // OversizedConfigurationItemChangeNotification - Triggers an evaluation when AWS - // Config delivers an oversized configuration item. AWS Config may generate this + // OversizedConfigurationItemChangeNotification - Triggers an evaluation when + // Config delivers an oversized configuration item. Config may generate this // notification type when a resource changes and the notification exceeds the // maximum size allowed by Amazon SNS. // @@ -1771,17 +1773,17 @@ type OrganizationCustomRuleMetadata struct { // function. InputParameters *string - // The maximum frequency with which AWS Config runs evaluations for a rule. Your - // custom rule is triggered when AWS Config delivers the configuration snapshot. - // For more information, see ConfigSnapshotDeliveryProperties. By default, rules - // with a periodic trigger are evaluated every 24 hours. To change the frequency, - // specify a valid value for the MaximumExecutionFrequency parameter. + // The maximum frequency with which Config runs evaluations for a rule. Your custom + // rule is triggered when Config delivers the configuration snapshot. For more + // information, see ConfigSnapshotDeliveryProperties. By default, rules with a + // periodic trigger are evaluated every 24 hours. To change the frequency, specify + // a valid value for the MaximumExecutionFrequency parameter. MaximumExecutionFrequency MaximumExecutionFrequency - // The ID of the AWS resource that was evaluated. + // The ID of the Amazon Web Services resource that was evaluated. ResourceIdScope *string - // The type of the AWS resource that was evaluated. + // The type of the Amazon Web Services resource that was evaluated. ResourceTypesScope []string // One part of a key-value pair that make up a tag. A key is a general label that @@ -1796,14 +1798,14 @@ type OrganizationCustomRuleMetadata struct { } // An object that specifies organization managed rule metadata such as resource -// type and ID of AWS resource along with the rule identifier. It also provides the -// frequency with which you want AWS Config to run evaluations for the rule if the -// trigger type is periodic. +// type and ID of Amazon Web Services resource along with the rule identifier. It +// also provides the frequency with which you want Config to run evaluations for +// the rule if the trigger type is periodic. type OrganizationManagedRuleMetadata struct { // For organization config managed rules, a predefined identifier from a list. For // example, IAM_PASSWORD_POLICY is a managed rule. To reference a managed rule, see - // Using AWS Managed Config Rules + // Using Config managed rules // (https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html). // // This member is required. @@ -1816,16 +1818,17 @@ type OrganizationManagedRuleMetadata struct { // function. InputParameters *string - // The maximum frequency with which AWS Config runs evaluations for a rule. You are - // using an AWS managed rule that is triggered at a periodic frequency. By default, - // rules with a periodic trigger are evaluated every 24 hours. To change the - // frequency, specify a valid value for the MaximumExecutionFrequency parameter. + // The maximum frequency with which Config runs evaluations for a rule. You are + // using an Config managed rule that is triggered at a periodic frequency. By + // default, rules with a periodic trigger are evaluated every 24 hours. To change + // the frequency, specify a valid value for the MaximumExecutionFrequency + // parameter. MaximumExecutionFrequency MaximumExecutionFrequency - // The ID of the AWS resource that was evaluated. + // The ID of the Amazon Web Services resource that was evaluated. ResourceIdScope *string - // The type of the AWS resource that was evaluated. + // The type of the Amazon Web Services resource that was evaluated. ResourceTypesScope []string // One part of a key-value pair that make up a tag. A key is a general label that @@ -1852,20 +1855,20 @@ type OrganizationResourceDetailedStatusFilters struct { // calls PutOrganizationConformancePack action for the second time, conformance // pack status is updated in the member account. Conformance pack status is deleted // when the master account deletes OrganizationConformancePack and disables service - // access for config-multiaccountsetup.amazonaws.com. AWS Config sets the state of - // the conformance pack to: + // access for config-multiaccountsetup.amazonaws.com. Config sets the state of the + // conformance pack to: // - // * CREATE_SUCCESSFUL when conformance pack has been - // created in the member account. + // * CREATE_SUCCESSFUL when conformance pack has been created + // in the member account. // - // * CREATE_IN_PROGRESS when conformance pack is - // being created in the member account. + // * CREATE_IN_PROGRESS when conformance pack is being + // created in the member account. // - // * CREATE_FAILED when conformance pack - // creation has failed in the member account. + // * CREATE_FAILED when conformance pack creation + // has failed in the member account. // - // * DELETE_FAILED when conformance - // pack deletion has failed in the member account. + // * DELETE_FAILED when conformance pack + // deletion has failed in the member account. // // * DELETE_IN_PROGRESS when // conformance pack is being deleted in the member account. @@ -1909,55 +1912,55 @@ type QueryInfo struct { noSmithyDocumentSerde } -// Specifies the types of AWS resource for which AWS Config records configuration -// changes. In the recording group, you specify whether all supported types or -// specific types of resources are recorded. By default, AWS Config records -// configuration changes for all supported types of regional resources that AWS -// Config discovers in the region in which it is running. Regional resources are -// tied to a region and can be used only in that region. Examples of regional -// resources are EC2 instances and EBS volumes. You can also have AWS Config record -// configuration changes for supported types of global resources (for example, IAM -// resources). Global resources are not tied to an individual region and can be -// used in all regions. The configuration details for any global resource are the -// same in all regions. If you customize AWS Config in multiple regions to record -// global resources, it will create multiple configuration items each time a global -// resource changes: one configuration item for each region. These configuration -// items will contain identical data. To prevent duplicate configuration items, you -// should consider customizing AWS Config in only one region to record global -// resources, unless you want the configuration items to be available in multiple -// regions. If you don't want AWS Config to record all resources, you can specify -// which types of resources it will record with the resourceTypes parameter. For a -// list of supported resource types, see Supported Resource Types +// Specifies the types of Amazon Web Services resource for which Config records +// configuration changes. In the recording group, you specify whether all supported +// types or specific types of resources are recorded. By default, Config records +// configuration changes for all supported types of regional resources that Config +// discovers in the region in which it is running. Regional resources are tied to a +// region and can be used only in that region. Examples of regional resources are +// EC2 instances and EBS volumes. You can also have Config record configuration +// changes for supported types of global resources (for example, IAM resources). +// Global resources are not tied to an individual region and can be used in all +// regions. The configuration details for any global resource are the same in all +// regions. If you customize Config in multiple regions to record global resources, +// it will create multiple configuration items each time a global resource changes: +// one configuration item for each region. These configuration items will contain +// identical data. To prevent duplicate configuration items, you should consider +// customizing Config in only one region to record global resources, unless you +// want the configuration items to be available in multiple regions. If you don't +// want Config to record all resources, you can specify which types of resources it +// will record with the resourceTypes parameter. For a list of supported resource +// types, see Supported Resource Types // (https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html#supported-resources). -// For more information, see Selecting Which Resources AWS Config Records +// For more information, see Selecting Which Resources Config Records // (https://docs.aws.amazon.com/config/latest/developerguide/select-resources.html). type RecordingGroup struct { - // Specifies whether AWS Config records configuration changes for every supported - // type of regional resource. If you set this option to true, when AWS Config adds - // support for a new type of regional resource, it starts recording resources of - // that type automatically. If you set this option to true, you cannot enumerate a - // list of resourceTypes. + // Specifies whether Config records configuration changes for every supported type + // of regional resource. If you set this option to true, when Config adds support + // for a new type of regional resource, it starts recording resources of that type + // automatically. If you set this option to true, you cannot enumerate a list of + // resourceTypes. AllSupported bool - // Specifies whether AWS Config includes all supported types of global resources - // (for example, IAM resources) with the resources that it records. Before you can - // set this option to true, you must set the allSupported option to true. If you - // set this option to true, when AWS Config adds support for a new type of global - // resource, it starts recording resources of that type automatically. The - // configuration details for any global resource are the same in all regions. To - // prevent duplicate configuration items, you should consider customizing AWS - // Config in only one region to record global resources. + // Specifies whether Config includes all supported types of global resources (for + // example, IAM resources) with the resources that it records. Before you can set + // this option to true, you must set the allSupported option to true. If you set + // this option to true, when Config adds support for a new type of global resource, + // it starts recording resources of that type automatically. The configuration + // details for any global resource are the same in all regions. To prevent + // duplicate configuration items, you should consider customizing Config in only + // one region to record global resources. IncludeGlobalResourceTypes bool - // A comma-separated list that specifies the types of AWS resources for which AWS - // Config records configuration changes (for example, AWS::EC2::Instance or - // AWS::CloudTrail::Trail). To record all configuration changes, you must set the - // allSupported option to true. If you set this option to false, when AWS Config + // A comma-separated list that specifies the types of Amazon Web Services resources + // for which Config records configuration changes (for example, AWS::EC2::Instance + // or AWS::CloudTrail::Trail). To record all configuration changes, you must set + // the allSupported option to true. If you set this option to false, when Config // adds support for a new type of resource, it will not record resources of that // type unless you manually add that type to your recording group. For a list of - // valid resourceTypes values, see the resourceType Value column in Supported AWS - // Resource Types + // valid resourceTypes values, see the resourceType Value column in Supported + // Amazon Web Services resource Types // (https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html#supported-resources). ResourceTypes []ResourceType @@ -1986,7 +1989,7 @@ type Relationship struct { // includes the remediation action, parameters, and data to execute the action. type RemediationConfiguration struct { - // The name of the AWS Config rule. + // The name of the Config rule. // // This member is required. ConfigRuleName *string @@ -2015,7 +2018,7 @@ type RemediationConfiguration struct { // The maximum number of failed attempts for auto-remediation. If you do not select // a number, the default is 5. For example, if you specify MaximumAutomaticAttempts - // as 5 with RetryAttemptSeconds as 50 seconds, AWS Config will put a + // as 5 with RetryAttemptSeconds as 50 seconds, Config will put a // RemediationException on your behalf for the failing resource after the 5th // failed attempt within 50 seconds. MaximumAutomaticAttempts *int32 @@ -2026,11 +2029,10 @@ type RemediationConfiguration struct { // The type of a resource. ResourceType *string - // Maximum time in seconds that AWS Config runs auto-remediation. If you do not - // select a number, the default is 60 seconds. For example, if you specify - // RetryAttemptSeconds as 50 seconds and MaximumAutomaticAttempts as 5, AWS Config - // will run auto-remediations 5 times within 50 seconds before throwing an - // exception. + // Maximum time in seconds that Config runs auto-remediation. If you do not select + // a number, the default is 60 seconds. For example, if you specify + // RetryAttemptSeconds as 50 seconds and MaximumAutomaticAttempts as 5, Config will + // run auto-remediations 5 times within 50 seconds before throwing an exception. RetryAttemptSeconds *int64 // Version of the target. For example, version of the SSM document. If you make @@ -2046,7 +2048,7 @@ type RemediationConfiguration struct { // exception will be deleted, the resource ID, and resource type. type RemediationException struct { - // The name of the AWS Config rule. + // The name of the Config rule. // // This member is required. ConfigRuleName *string @@ -2070,8 +2072,8 @@ type RemediationException struct { noSmithyDocumentSerde } -// The details that identify a resource within AWS Config, including the resource -// type and resource ID. +// The details that identify a resource within Config, including the resource type +// and resource ID. type RemediationExceptionResourceKey struct { // The ID of the resource (for example., sg-xxxxxx). @@ -2093,8 +2095,8 @@ type RemediationExecutionStatus struct { // The time when the remediation execution was last updated. LastUpdatedTime *time.Time - // The details that identify a resource within AWS Config, including the resource - // type and resource ID. + // The details that identify a resource within Config, including the resource type + // and resource ID. ResourceKey *ResourceKey // ENUM of the values. @@ -2161,7 +2163,7 @@ type ResourceCountFilters struct { // The region where the account is located. Region *string - // The type of the AWS resource. + // The type of the Amazon Web Services resource. ResourceType ResourceType noSmithyDocumentSerde @@ -2186,8 +2188,8 @@ type ResourceFilters struct { noSmithyDocumentSerde } -// The details that identify a resource that is discovered by AWS Config, including -// the resource type, ID, and (if available) the custom resource name. +// The details that identify a resource that is discovered by Config, including the +// resource type, ID, and (if available) the custom resource name. type ResourceIdentifier struct { // The time that the resource was deleted. @@ -2205,8 +2207,8 @@ type ResourceIdentifier struct { noSmithyDocumentSerde } -// The details that identify a resource within AWS Config, including the resource -// type and resource ID. +// The details that identify a resource within Config, including the resource type +// and resource ID. type ResourceKey struct { // The ID of the resource (for example., sg-xxxxxx). @@ -2234,7 +2236,7 @@ type ResourceValue struct { } // An object with the name of the retention configuration and the retention period -// in days. The object stores the configuration for data retention in AWS Config. +// in days. The object stores the configuration for data retention in Config. type RetentionConfiguration struct { // The name of the retention configuration object. @@ -2242,7 +2244,7 @@ type RetentionConfiguration struct { // This member is required. Name *string - // Number of days AWS Config stores your historical information. Currently, only + // Number of days Config stores your historical information. Currently, only // applicable to the configuration item history. // // This member is required. @@ -2251,93 +2253,96 @@ type RetentionConfiguration struct { noSmithyDocumentSerde } -// Defines which resources trigger an evaluation for an AWS Config rule. The scope -// can include one or more resource types, a combination of a tag key and value, or -// a combination of one resource type and one resource ID. Specify a scope to +// Defines which resources trigger an evaluation for an Config rule. The scope can +// include one or more resource types, a combination of a tag key and value, or a +// combination of one resource type and one resource ID. Specify a scope to // constrain which resources trigger an evaluation for a rule. Otherwise, // evaluations for the rule are triggered when any resource in your recording group // changes in configuration. type Scope struct { - // The ID of the only AWS resource that you want to trigger an evaluation for the - // rule. If you specify a resource ID, you must specify one resource type for - // ComplianceResourceTypes. + // The ID of the only Amazon Web Services resource that you want to trigger an + // evaluation for the rule. If you specify a resource ID, you must specify one + // resource type for ComplianceResourceTypes. ComplianceResourceId *string - // The resource types of only those AWS resources that you want to trigger an - // evaluation for the rule. You can only specify one type if you also specify a - // resource ID for ComplianceResourceId. + // The resource types of only those Amazon Web Services resources that you want to + // trigger an evaluation for the rule. You can only specify one type if you also + // specify a resource ID for ComplianceResourceId. ComplianceResourceTypes []string - // The tag key that is applied to only those AWS resources that you want to trigger - // an evaluation for the rule. + // The tag key that is applied to only those Amazon Web Services resources that you + // want to trigger an evaluation for the rule. TagKey *string - // The tag value applied to only those AWS resources that you want to trigger an - // evaluation for the rule. If you specify a value for TagValue, you must also - // specify a value for TagKey. + // The tag value applied to only those Amazon Web Services resources that you want + // to trigger an evaluation for the rule. If you specify a value for TagValue, you + // must also specify a value for TagKey. TagValue *string noSmithyDocumentSerde } -// Provides the AWS Config rule owner (AWS or customer), the rule identifier, and -// the events that trigger the evaluation of your AWS resources. +// Provides the Config rule owner (Amazon Web Services or customer), the rule +// identifier, and the events that trigger the evaluation of your Amazon Web +// Services resources. type Source struct { - // Indicates whether AWS or the customer owns and manages the AWS Config rule. + // Indicates whether Amazon Web Services or the customer owns and manages the + // Config rule. // // This member is required. Owner Owner - // For AWS Config managed rules, a predefined identifier from a list. For example, + // For Config managed rules, a predefined identifier from a list. For example, // IAM_PASSWORD_POLICY is a managed rule. To reference a managed rule, see Using - // AWS Managed Config Rules + // Config managed rules // (https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html). // For custom rules, the identifier is the Amazon Resource Name (ARN) of the rule's - // AWS Lambda function, such as + // Lambda function, such as // arn:aws:lambda:us-east-2:123456789012:function:custom_rule_name. // // This member is required. SourceIdentifier *string - // Provides the source and type of the event that causes AWS Config to evaluate - // your AWS resources. + // Provides the source and type of the event that causes Config to evaluate your + // Amazon Web Services resources. SourceDetails []SourceDetail noSmithyDocumentSerde } -// Provides the source and the message types that trigger AWS Config to evaluate -// your AWS resources against a rule. It also provides the frequency with which you -// want AWS Config to run evaluations for the rule if the trigger type is periodic. -// You can specify the parameter values for SourceDetail only for custom rules. +// Provides the source and the message types that trigger Config to evaluate your +// Amazon Web Services resources against a rule. It also provides the frequency +// with which you want Config to run evaluations for the rule if the trigger type +// is periodic. You can specify the parameter values for SourceDetail only for +// custom rules. type SourceDetail struct { - // The source of the event, such as an AWS service, that triggers AWS Config to - // evaluate your AWS resources. + // The source of the event, such as an Amazon Web Services service, that triggers + // Config to evaluate your Amazon Web Services resources. EventSource EventSource - // The frequency at which you want AWS Config to run evaluations for a custom rule - // with a periodic trigger. If you specify a value for MaximumExecutionFrequency, - // then MessageType must use the ScheduledNotification value. By default, rules - // with a periodic trigger are evaluated every 24 hours. To change the frequency, - // specify a valid value for the MaximumExecutionFrequency parameter. Based on the - // valid value you choose, AWS Config runs evaluations once for each valid value. - // For example, if you choose Three_Hours, AWS Config runs evaluations once every - // three hours. In this case, Three_Hours is the frequency of this rule. + // The frequency at which you want Config to run evaluations for a custom rule with + // a periodic trigger. If you specify a value for MaximumExecutionFrequency, then + // MessageType must use the ScheduledNotification value. By default, rules with a + // periodic trigger are evaluated every 24 hours. To change the frequency, specify + // a valid value for the MaximumExecutionFrequency parameter. Based on the valid + // value you choose, Config runs evaluations once for each valid value. For + // example, if you choose Three_Hours, Config runs evaluations once every three + // hours. In this case, Three_Hours is the frequency of this rule. MaximumExecutionFrequency MaximumExecutionFrequency - // The type of notification that triggers AWS Config to run an evaluation for a - // rule. You can specify the following notification types: + // The type of notification that triggers Config to run an evaluation for a rule. + // You can specify the following notification types: // // * - // ConfigurationItemChangeNotification - Triggers an evaluation when AWS Config + // ConfigurationItemChangeNotification - Triggers an evaluation when Config // delivers a configuration item as a result of a resource change. // // * - // OversizedConfigurationItemChangeNotification - Triggers an evaluation when AWS - // Config delivers an oversized configuration item. AWS Config may generate this + // OversizedConfigurationItemChangeNotification - Triggers an evaluation when + // Config delivers an oversized configuration item. Config may generate this // notification type when a resource changes and the notification exceeds the // maximum size allowed by Amazon SNS. // @@ -2345,7 +2350,7 @@ type SourceDetail struct { // periodic evaluation at the frequency specified for MaximumExecutionFrequency. // // * - // ConfigurationSnapshotDeliveryCompleted - Triggers a periodic evaluation when AWS + // ConfigurationSnapshotDeliveryCompleted - Triggers a periodic evaluation when // Config delivers a configuration snapshot. // // If you want your custom rule to be @@ -2357,7 +2362,7 @@ type SourceDetail struct { noSmithyDocumentSerde } -// AWS Systems Manager (SSM) specific remediation controls. +// Amazon Web Services Systems Manager (SSM) specific remediation controls. type SsmControls struct { // The maximum percentage of remediation actions allowed to run in parallel on the @@ -2400,35 +2405,34 @@ type StatusDetailFilters struct { // PutOrganizationConfigRule action for the second time, config rule status is // updated in the member account. Config rule status is deleted when the master // account deletes OrganizationConfigRule and disables service access for - // config-multiaccountsetup.amazonaws.com. AWS Config sets the state of the rule - // to: + // config-multiaccountsetup.amazonaws.com. Config sets the state of the rule to: // - // * CREATE_SUCCESSFUL when config rule has been created in the member - // account. + // * + // CREATE_SUCCESSFUL when config rule has been created in the member account. // - // * CREATE_IN_PROGRESS when config rule is being created in the member - // account. + // * + // CREATE_IN_PROGRESS when config rule is being created in the member account. // - // * CREATE_FAILED when config rule creation has failed in the member - // account. + // * + // CREATE_FAILED when config rule creation has failed in the member account. // - // * DELETE_FAILED when config rule deletion has failed in the member - // account. + // * + // DELETE_FAILED when config rule deletion has failed in the member account. // - // * DELETE_IN_PROGRESS when config rule is being deleted in the member - // account. + // * + // DELETE_IN_PROGRESS when config rule is being deleted in the member account. // - // * DELETE_SUCCESSFUL when config rule has been deleted in the member - // account. + // * + // DELETE_SUCCESSFUL when config rule has been deleted in the member account. // - // * UPDATE_SUCCESSFUL when config rule has been updated in the member - // account. + // * + // UPDATE_SUCCESSFUL when config rule has been updated in the member account. // - // * UPDATE_IN_PROGRESS when config rule is being updated in the member - // account. + // * + // UPDATE_IN_PROGRESS when config rule is being updated in the member account. // - // * UPDATE_FAILED when config rule deletion has failed in the member - // account. + // * + // UPDATE_FAILED when config rule deletion has failed in the member account. MemberAccountRuleStatus MemberAccountRuleStatus noSmithyDocumentSerde diff --git a/service/ebs/api_op_StartSnapshot.go b/service/ebs/api_op_StartSnapshot.go index a847115c22b..aaf5f0c64ac 100644 --- a/service/ebs/api_op_StartSnapshot.go +++ b/service/ebs/api_op_StartSnapshot.go @@ -34,7 +34,7 @@ func (c *Client) StartSnapshot(ctx context.Context, params *StartSnapshotInput, type StartSnapshotInput struct { - // The size of the volume, in GiB. The maximum size is 16384 GiB (16 TiB). + // The size of the volume, in GiB. The maximum size is 65536 GiB (64 TiB). // // This member is required. VolumeSize *int64 diff --git a/service/ec2/api_op_ImportImage.go b/service/ec2/api_op_ImportImage.go index 7a37962f6c4..9f7c614f2ba 100644 --- a/service/ec2/api_op_ImportImage.go +++ b/service/ec2/api_op_ImportImage.go @@ -36,6 +36,9 @@ type ImportImageInput struct { // The architecture of the virtual machine. Valid values: i386 | x86_64 | arm64 Architecture *string + // The boot mode of the virtual machine. + BootMode types.BootModeValues + // The client-specific data. ClientData *types.ClientData diff --git a/service/ec2/deserializers.go b/service/ec2/deserializers.go index c7cc751e8b5..f6412e9073a 100644 --- a/service/ec2/deserializers.go +++ b/service/ec2/deserializers.go @@ -60820,6 +60820,19 @@ func awsEc2query_deserializeDocumentImportImageTask(v **types.ImportImageTask, d sv.Architecture = ptr.String(xtv) } + case strings.EqualFold("bootMode", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.BootMode = types.BootModeValues(xtv) + } + case strings.EqualFold("description", t.Name.Local): val, err := decoder.Value() if err != nil { @@ -70793,6 +70806,19 @@ func awsEc2query_deserializeDocumentLaunchTemplateInstanceMetadataOptions(v **ty sv.HttpEndpoint = types.LaunchTemplateInstanceMetadataEndpointState(xtv) } + case strings.EqualFold("httpProtocolIpv6", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.HttpProtocolIpv6 = types.LaunchTemplateInstanceMetadataProtocolIpv6(xtv) + } + case strings.EqualFold("httpPutResponseHopLimit", t.Name.Local): val, err := decoder.Value() if err != nil { diff --git a/service/ec2/serializers.go b/service/ec2/serializers.go index a4565ff4c7b..386fa4b8725 100644 --- a/service/ec2/serializers.go +++ b/service/ec2/serializers.go @@ -29001,6 +29001,11 @@ func awsEc2query_serializeDocumentLaunchTemplateInstanceMetadataOptionsRequest(v objectKey.String(string(v.HttpEndpoint)) } + if len(v.HttpProtocolIpv6) > 0 { + objectKey := object.Key("HttpProtocolIpv6") + objectKey.String(string(v.HttpProtocolIpv6)) + } + if v.HttpPutResponseHopLimit != nil { objectKey := object.Key("HttpPutResponseHopLimit") objectKey.Integer(*v.HttpPutResponseHopLimit) @@ -44026,6 +44031,11 @@ func awsEc2query_serializeOpDocumentImportImageInput(v *ImportImageInput, value objectKey.String(*v.Architecture) } + if len(v.BootMode) > 0 { + objectKey := object.Key("BootMode") + objectKey.String(string(v.BootMode)) + } + if v.ClientData != nil { objectKey := object.Key("ClientData") if err := awsEc2query_serializeDocumentClientData(v.ClientData, objectKey); err != nil { diff --git a/service/ec2/types/enums.go b/service/ec2/types/enums.go index d9775bbe075..ddfab039215 100644 --- a/service/ec2/types/enums.go +++ b/service/ec2/types/enums.go @@ -3160,6 +3160,25 @@ func (LaunchTemplateInstanceMetadataOptionsState) Values() []LaunchTemplateInsta } } +type LaunchTemplateInstanceMetadataProtocolIpv6 string + +// Enum values for LaunchTemplateInstanceMetadataProtocolIpv6 +const ( + LaunchTemplateInstanceMetadataProtocolIpv6Disabled LaunchTemplateInstanceMetadataProtocolIpv6 = "disabled" + LaunchTemplateInstanceMetadataProtocolIpv6Enabled LaunchTemplateInstanceMetadataProtocolIpv6 = "enabled" +) + +// Values returns all known values for LaunchTemplateInstanceMetadataProtocolIpv6. +// Note that this can be expanded in the future, and so it is only as up to date as +// the client. The ordering of this slice is not guaranteed to be stable across +// updates. +func (LaunchTemplateInstanceMetadataProtocolIpv6) Values() []LaunchTemplateInstanceMetadataProtocolIpv6 { + return []LaunchTemplateInstanceMetadataProtocolIpv6{ + "disabled", + "enabled", + } +} + type ListingState string // Enum values for ListingState diff --git a/service/ec2/types/types.go b/service/ec2/types/types.go index b4fed74a408..1eafbbe3612 100644 --- a/service/ec2/types/types.go +++ b/service/ec2/types/types.go @@ -4078,6 +4078,9 @@ type ImportImageTask struct { // The architecture of the virtual machine. Valid values: i386 | x86_64 | arm64 Architecture *string + // The boot mode of the virtual machine. + BootMode BootModeValues + // A description of the import task. Description *string @@ -6088,6 +6091,10 @@ type LaunchTemplateInstanceMetadataOptions struct { // a value of disabled, you will not be able to access your instance metadata. HttpEndpoint LaunchTemplateInstanceMetadataEndpointState + // Enables or disables the IPv6 endpoint for the instance metadata service. + // Default: disabled + HttpProtocolIpv6 LaunchTemplateInstanceMetadataProtocolIpv6 + // The desired HTTP PUT response hop limit for instance metadata requests. The // larger the number, the further instance metadata requests can travel. Default: 1 // Possible values: Integers from 1 to 64 @@ -6125,6 +6132,10 @@ type LaunchTemplateInstanceMetadataOptionsRequest struct { // a value of disabled, you will not be able to access your instance metadata. HttpEndpoint LaunchTemplateInstanceMetadataEndpointState + // Enables or disables the IPv6 endpoint for the instance metadata service. + // Default: disabled + HttpProtocolIpv6 LaunchTemplateInstanceMetadataProtocolIpv6 + // The desired HTTP PUT response hop limit for instance metadata requests. The // larger the number, the further instance metadata requests can travel. Default: 1 // Possible values: Integers from 1 to 64 @@ -6176,11 +6187,11 @@ type LaunchTemplateInstanceNetworkInterfaceSpecification struct { // The type of network interface. InterfaceType *string - // The number of IPv4 delegated prefixes that AWS automatically assigned to the - // network interface. + // The number of IPv4 prefixes that Amazon Web Services automatically assigned to + // the network interface. Ipv4PrefixCount *int32 - // One or more IPv4 delegated prefixes assigned to the network interface. + // One or more IPv4 prefixes assigned to the network interface. Ipv4Prefixes []Ipv4PrefixSpecificationResponse // The number of IPv6 addresses for the network interface. @@ -6189,11 +6200,11 @@ type LaunchTemplateInstanceNetworkInterfaceSpecification struct { // The IPv6 addresses for the network interface. Ipv6Addresses []InstanceIpv6Address - // The number of IPv6 delegated prefixes that AWS automatically assigned to the - // network interface. + // The number of IPv6 prefixes that Amazon Web Services automatically assigned to + // the network interface. Ipv6PrefixCount *int32 - // One or more IPv6 delegated prefixes assigned to the network interface. + // One or more IPv6 prefixes assigned to the network interface. Ipv6Prefixes []Ipv6PrefixSpecificationResponse // The index of the network card. @@ -6251,12 +6262,12 @@ type LaunchTemplateInstanceNetworkInterfaceSpecificationRequest struct { // interface or omit this parameter. Valid values: interface | efa InterfaceType *string - // The number of IPv4 delegated prefixes to be automatically assigned to the - // network interface. You cannot use this option if you use the Ipv4Prefix option. + // The number of IPv4 prefixes to be automatically assigned to the network + // interface. You cannot use this option if you use the Ipv4Prefix option. Ipv4PrefixCount *int32 - // One or more IPv4 delegated prefixes to be assigned to the network interface. You - // cannot use this option if you use the Ipv4PrefixCount option. + // One or more IPv4 prefixes to be assigned to the network interface. You cannot + // use this option if you use the Ipv4PrefixCount option. Ipv4Prefixes []Ipv4PrefixSpecificationRequest // The number of IPv6 addresses to assign to a network interface. Amazon EC2 @@ -6269,12 +6280,12 @@ type LaunchTemplateInstanceNetworkInterfaceSpecificationRequest struct { // addresses. Ipv6Addresses []InstanceIpv6AddressRequest - // The number of IPv6 delegated prefixes to be automatically assigned to the - // network interface. You cannot use this option if you use the Ipv6Prefix option. + // The number of IPv6 prefixes to be automatically assigned to the network + // interface. You cannot use this option if you use the Ipv6Prefix option. Ipv6PrefixCount *int32 - // One or more IPv6 delegated prefixes to be assigned to the network interface. You - // cannot use this option if you use the Ipv6PrefixCount option. + // One or more IPv6 prefixes to be assigned to the network interface. You cannot + // use this option if you use the Ipv6PrefixCount option. Ipv6Prefixes []Ipv6PrefixSpecificationRequest // The index of the network card. Some instance types support multiple network @@ -8625,12 +8636,18 @@ type RequestLaunchTemplateData struct { // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html). TagSpecifications []LaunchTemplateTagSpecificationRequest - // The Base64-encoded user data to make available to the instance. For more - // information, see Running Commands on Your Linux Instance at Launch - // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) (Linux) and + // The user data to make available to the instance. You must provide base64-encoded + // text. User data is limited to 16 KB. For more information, see Running Commands + // on Your Linux Instance at Launch + // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) (Linux) or // Adding User Data // (https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-metadata.html#instancedata-add-user-data) - // (Windows). + // (Windows). If you are creating the launch template for use with Batch, the user + // data must be provided in the MIME multi-part archive format + // (https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive). + // For more information, see Amazon EC2 user data in launch templates + // (https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in + // the Batch User Guide. UserData *string noSmithyDocumentSerde diff --git a/service/efs/api_op_CreateAccessPoint.go b/service/efs/api_op_CreateAccessPoint.go index e001e6724b8..457118e6831 100644 --- a/service/efs/api_op_CreateAccessPoint.go +++ b/service/efs/api_op_CreateAccessPoint.go @@ -67,7 +67,10 @@ type CreateAccessPointInput struct { // fail. RootDirectory *types.RootDirectory - // Creates tags associated with the access point. Each tag is a key-value pair. + // Creates tags associated with the access point. Each tag is a key-value pair, + // each key must be unique. For more information, see Tagging Amazon Web Services + // resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in + // the Amazon Web Services General Reference Guide. Tags []types.Tag noSmithyDocumentSerde @@ -94,7 +97,7 @@ type CreateAccessPointOutput struct { // The name of the access point. This is the value of the Name tag. Name *string - // Identified the AWS account that owns the access point resource. + // Identified the Amazon Web Services account that owns the access point resource. OwnerId *string // The full POSIX identity, including the user ID, group ID, and secondary group diff --git a/service/efs/api_op_CreateFileSystem.go b/service/efs/api_op_CreateFileSystem.go index 2d28a6b9aa6..6258fd9282e 100644 --- a/service/efs/api_op_CreateFileSystem.go +++ b/service/efs/api_op_CreateFileSystem.go @@ -16,26 +16,27 @@ import ( // Creates a new, empty file system. The operation requires a creation token in the // request that Amazon EFS uses to ensure idempotent creation (calling the // operation with same creation token has no effect). If a file system does not -// currently exist that is owned by the caller's AWS account with the specified -// creation token, this operation does the following: +// currently exist that is owned by the caller's Amazon Web Services account with +// the specified creation token, this operation does the following: // -// * Creates a new, empty file -// system. The file system will have an Amazon EFS assigned ID, and an initial -// lifecycle state creating. +// * Creates a +// new, empty file system. The file system will have an Amazon EFS assigned ID, and +// an initial lifecycle state creating. // -// * Returns with the description of the created file -// system. +// * Returns with the description of the +// created file system. // -// Otherwise, this operation returns a FileSystemAlreadyExists error with -// the ID of the existing file system. For basic use cases, you can use a randomly -// generated UUID for the creation token. The idempotent operation allows you to -// retry a CreateFileSystem call without risk of creating an extra file system. -// This can happen when an initial call fails in a way that leaves it uncertain -// whether or not a file system was actually created. An example might be that a -// transport level timeout occurred or your connection was reset. As long as you -// use the same creation token, if the initial call had succeeded in creating a -// file system, the client can learn of its existence from the -// FileSystemAlreadyExists error. For more information, see Creating a file system +// Otherwise, this operation returns a +// FileSystemAlreadyExists error with the ID of the existing file system. For basic +// use cases, you can use a randomly generated UUID for the creation token. The +// idempotent operation allows you to retry a CreateFileSystem call without risk of +// creating an extra file system. This can happen when an initial call fails in a +// way that leaves it uncertain whether or not a file system was actually created. +// An example might be that a transport level timeout occurred or your connection +// was reset. As long as you use the same creation token, if the initial call had +// succeeded in creating a file system, the client can learn of its existence from +// the FileSystemAlreadyExists error. For more information, see Creating a file +// system // (https://docs.aws.amazon.com/efs/latest/ug/creating-using-create-fs.html#creating-using-create-fs-part1) // in the Amazon EFS User Guide. The CreateFileSystem call returns while the file // system's lifecycle state is still creating. You can check the file system @@ -80,12 +81,12 @@ type CreateFileSystemInput struct { CreationToken *string // Used to create a file system that uses One Zone storage classes. It specifies - // the AWS Availability Zone in which to create the file system. Use the format - // us-east-1a to specify the Availability Zone. For more information about One Zone - // storage classes, see Using EFS storage classes + // the Amazon Web Services Availability Zone in which to create the file system. + // Use the format us-east-1a to specify the Availability Zone. For more information + // about One Zone storage classes, see Using EFS storage classes // (https://docs.aws.amazon.com/efs/latest/ug/storage-classes.html) in the Amazon // EFS User Guide. One Zone storage classes are not available in all Availability - // Zones in AWS Regions where Amazon EFS is available. + // Zones in Amazon Web Services Regions where Amazon EFS is available. AvailabilityZoneName *string // Specifies whether automatic backups are enabled on the file system that you are @@ -94,25 +95,25 @@ type CreateFileSystemInput struct { // by default. For more information, see Automatic backups // (https://docs.aws.amazon.com/efs/latest/ug/awsbackup.html#automatic-backups) in // the Amazon EFS User Guide. Default is false. However, if you specify an - // AvailabilityZoneName, the default is true. AWS Backup is not available in all - // AWS Regions where Amazon EFS is available. + // AvailabilityZoneName, the default is true. Backup is not available in all Amazon + // Web Services Regionswhere Amazon EFS is available. Backup *bool // A Boolean value that, if true, creates an encrypted file system. When creating // an encrypted file system, you have the option of specifying - // CreateFileSystemRequest$KmsKeyId for an existing AWS Key Management Service (AWS - // KMS) customer master key (CMK). If you don't specify a CMK, then the default CMK - // for Amazon EFS, /aws/elasticfilesystem, is used to protect the encrypted file + // CreateFileSystemRequest$KmsKeyId for an existing Key Management Service (KMS + // customer master key (CMK). If you don't specify a CMK, then the default CMK for + // Amazon EFS, /aws/elasticfilesystem, is used to protect the encrypted file // system. Encrypted *bool - // The ID of the AWS KMS CMK that you want to use to protect the encrypted file - // system. This parameter is only required if you want to use a non-default KMS - // key. If this parameter is not specified, the default CMK for Amazon EFS is used. - // This ID can be in one of the following formats: + // The ID of the KMS CMK that you want to use to protect the encrypted file system. + // This parameter is only required if you want to use a non-default KMS key. If + // this parameter is not specified, the default CMK for Amazon EFS is used. This ID + // can be in one of the following formats: // - // * Key ID - A unique identifier - // of the key, for example 1234abcd-12ab-34cd-56ef-1234567890ab. + // * Key ID - A unique identifier of the + // key, for example 1234abcd-12ab-34cd-56ef-1234567890ab. // // * ARN - An Amazon // Resource Name (ARN) for the key, for example @@ -142,14 +143,18 @@ type CreateFileSystemInput struct { // The throughput, measured in MiB/s, that you want to provision for a file system // that you're creating. Valid values are 1-1024. Required if ThroughputMode is set // to provisioned. The upper limit for throughput is 1024 MiB/s. To increase this - // limit, contact AWS Support. For more information, see Amazon EFS quotas that you - // can increase (https://docs.aws.amazon.com/efs/latest/ug/limits.html#soft-limits) - // in the Amazon EFS User Guide. + // limit, contact Amazon Web Services Support. For more information, see Amazon EFS + // quotas that you can increase + // (https://docs.aws.amazon.com/efs/latest/ug/limits.html#soft-limits) in the + // Amazon EFS User Guide. ProvisionedThroughputInMibps *float64 - // A value that specifies to create one or more tags associated with the file - // system. Each tag is a user-defined key-value pair. Name your file system on - // creation by including a "Key":"Name","Value":"{value}" key-value pair. + // Use to create one or more tags associated with the file system. Each tag is a + // user-defined key-value pair. Name your file system on creation by including a + // "Key":"Name","Value":"{value}" key-value pair. Each key must be unique. For more + // information, see Tagging Amazon Web Services resources + // (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the Amazon + // Web Services General Reference Guide. Tags []types.Tag // Specifies the throughput mode for the file system, either bursting or @@ -196,8 +201,9 @@ type CreateFileSystemOutput struct { // This member is required. NumberOfMountTargets int32 - // The AWS account that created the file system. If the file system was created by - // an IAM user, the parent account to which the user belongs is the owner. + // The Amazon Web Services account that created the file system. If the file system + // was created by an IAM user, the parent account to which the user belongs is the + // owner. // // This member is required. OwnerId *string @@ -227,13 +233,13 @@ type CreateFileSystemOutput struct { // The unique and consistent identifier of the Availability Zone in which the file // system's One Zone storage classes exist. For example, use1-az1 is an - // Availability Zone ID for the us-east-1 AWS Region, and it has the same location - // in every AWS account. + // Availability Zone ID for the us-east-1 Amazon Web Services Region, and it has + // the same location in every Amazon Web Services account. AvailabilityZoneId *string - // Describes the AWS Availability Zone in which the file system is located, and is - // valid only for file systems using One Zone storage classes. For more - // information, see Using EFS storage classes + // Describes the Amazon Web Services Availability Zone in which the file system is + // located, and is valid only for file systems using One Zone storage classes. For + // more information, see Using EFS storage classes // (https://docs.aws.amazon.com/efs/latest/ug/storage-classes.html) in the Amazon // EFS User Guide. AvailabilityZoneName *string @@ -247,8 +253,8 @@ type CreateFileSystemOutput struct { // arn:aws:elasticfilesystem:us-west-2:1111333322228888:file-system/fs-01234567 FileSystemArn *string - // The ID of an AWS Key Management Service (AWS KMS) customer master key (CMK) that - // was used to protect the encrypted file system. + // The ID of an Key Management Service customer master key (CMK) that was used to + // protect the encrypted file system. KmsKeyId *string // You can add tags to a file system, including a Name tag. For more information, diff --git a/service/efs/api_op_CreateMountTarget.go b/service/efs/api_op_CreateMountTarget.go index 1d4febe7a97..211d5cac6d4 100644 --- a/service/efs/api_op_CreateMountTarget.go +++ b/service/efs/api_op_CreateMountTarget.go @@ -186,13 +186,14 @@ type CreateMountTargetOutput struct { // The unique and consistent identifier of the Availability Zone that the mount // target resides in. For example, use1-az1 is an AZ ID for the us-east-1 Region - // and it has the same location in every AWS account. + // and it has the same location in every Amazon Web Services account. AvailabilityZoneId *string // The name of the Availability Zone in which the mount target is located. - // Availability Zones are independently mapped to names for each AWS account. For - // example, the Availability Zone us-east-1a for your AWS account might not be the - // same location as us-east-1a for another AWS account. + // Availability Zones are independently mapped to names for each Amazon Web + // Services account. For example, the Availability Zone us-east-1a for your Amazon + // Web Services account might not be the same location as us-east-1a for another + // Amazon Web Services account. AvailabilityZoneName *string // Address at which the file system can be mounted by using the mount target. @@ -202,7 +203,7 @@ type CreateMountTargetOutput struct { // mount target. NetworkInterfaceId *string - // AWS account ID that owns the resource. + // Amazon Web Services account ID that owns the resource. OwnerId *string // The virtual private cloud (VPC) ID that the mount target is configured in. diff --git a/service/efs/api_op_DeleteTags.go b/service/efs/api_op_DeleteTags.go index 65a8810254c..74b8e74bc6d 100644 --- a/service/efs/api_op_DeleteTags.go +++ b/service/efs/api_op_DeleteTags.go @@ -14,9 +14,9 @@ import ( // action to remove tags from EFS resources. Deletes the specified tags from a file // system. If the DeleteTags request includes a tag key that doesn't exist, Amazon // EFS ignores it and doesn't cause an error. For more information about tags and -// related restrictions, see Tag Restrictions +// related restrictions, see Tag restrictions // (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html) -// in the AWS Billing and Cost Management User Guide. This operation requires +// in the Billing and Cost Management User Guide. This operation requires // permissions for the elasticfilesystem:DeleteTags action. // // Deprecated: Use UntagResource. diff --git a/service/efs/api_op_DescribeAccountPreferences.go b/service/efs/api_op_DescribeAccountPreferences.go index 29cd4827522..f3d1721f3f5 100644 --- a/service/efs/api_op_DescribeAccountPreferences.go +++ b/service/efs/api_op_DescribeAccountPreferences.go @@ -11,6 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) +// Returns the account preferences settings for the Amazon Web Services account +// associated with the user making the request, in the current Amazon Web Services +// Region. For more information, see Managing Amazon EFS resource IDs. func (c *Client) DescribeAccountPreferences(ctx context.Context, params *DescribeAccountPreferencesInput, optFns ...func(*Options)) (*DescribeAccountPreferencesOutput, error) { if params == nil { params = &DescribeAccountPreferencesInput{} @@ -28,10 +31,14 @@ func (c *Client) DescribeAccountPreferences(ctx context.Context, params *Describ type DescribeAccountPreferencesInput struct { - // Max results used for pagination. + // (Optional) When retrieving account preferences, you can optionally specify the + // MaxItems parameter to limit the number of objects returned in a response. The + // default value is 100. MaxResults *int32 - // Token used for pagination. + // (Optional) You can use NextToken in a subsequent request to fetch the next page + // of Amazon Web Services account preferences if the response payload was + // paginated. NextToken *string noSmithyDocumentSerde @@ -39,9 +46,13 @@ type DescribeAccountPreferencesInput struct { type DescribeAccountPreferencesOutput struct { - // Token used for pagination. + // Present if there are more records than returned in the response. You can use the + // NextToken in the subsequent request to fetch the additional descriptions. NextToken *string + // Describes the resource ID preference setting for the Amazon Web Services account + // associated with the user making the request, in the current Amazon Web Services + // Region. ResourceIdPreference *types.ResourceIdPreference // Metadata pertaining to the operation's result. diff --git a/service/efs/api_op_DescribeFileSystems.go b/service/efs/api_op_DescribeFileSystems.go index 75c1c5c792d..33111115fb5 100644 --- a/service/efs/api_op_DescribeFileSystems.go +++ b/service/efs/api_op_DescribeFileSystems.go @@ -14,21 +14,22 @@ import ( // Returns the description of a specific Amazon EFS file system if either the file // system CreationToken or the FileSystemId is provided. Otherwise, it returns -// descriptions of all file systems owned by the caller's AWS account in the AWS -// Region of the endpoint that you're calling. When retrieving all file system -// descriptions, you can optionally specify the MaxItems parameter to limit the -// number of descriptions in a response. Currently, this number is automatically -// set to 10. If more file system descriptions remain, Amazon EFS returns a -// NextMarker, an opaque token, in the response. In this case, you should send a -// subsequent request with the Marker request parameter set to the value of -// NextMarker. To retrieve a list of your file system descriptions, this operation -// is used in an iterative process, where DescribeFileSystems is called first -// without the Marker and then the operation continues to call it with the Marker -// parameter set to the value of the NextMarker from the previous response until -// the response has no NextMarker. The order of file systems returned in the -// response of one DescribeFileSystems call and the order of file systems returned -// across the responses of a multi-call iteration is unspecified. This operation -// requires permissions for the elasticfilesystem:DescribeFileSystems action. +// descriptions of all file systems owned by the caller's Amazon Web Services +// account in the Amazon Web Services Region of the endpoint that you're calling. +// When retrieving all file system descriptions, you can optionally specify the +// MaxItems parameter to limit the number of descriptions in a response. Currently, +// this number is automatically set to 10. If more file system descriptions remain, +// Amazon EFS returns a NextMarker, an opaque token, in the response. In this case, +// you should send a subsequent request with the Marker request parameter set to +// the value of NextMarker. To retrieve a list of your file system descriptions, +// this operation is used in an iterative process, where DescribeFileSystems is +// called first without the Marker and then the operation continues to call it with +// the Marker parameter set to the value of the NextMarker from the previous +// response until the response has no NextMarker. The order of file systems +// returned in the response of one DescribeFileSystems call and the order of file +// systems returned across the responses of a multi-call iteration is unspecified. +// This operation requires permissions for the +// elasticfilesystem:DescribeFileSystems action. func (c *Client) DescribeFileSystems(ctx context.Context, params *DescribeFileSystemsInput, optFns ...func(*Options)) (*DescribeFileSystemsOutput, error) { if params == nil { params = &DescribeFileSystemsInput{} diff --git a/service/efs/api_op_DescribeLifecycleConfiguration.go b/service/efs/api_op_DescribeLifecycleConfiguration.go index cb9a428d5a8..f8dca22530f 100644 --- a/service/efs/api_op_DescribeLifecycleConfiguration.go +++ b/service/efs/api_op_DescribeLifecycleConfiguration.go @@ -15,8 +15,10 @@ import ( // file system. EFS lifecycle management uses the LifecycleConfiguration object to // identify which files to move to the EFS Infrequent Access (IA) storage class. // For a file system without a LifecycleConfiguration object, the call returns an -// empty array in the response. This operation requires permissions for the -// elasticfilesystem:DescribeLifecycleConfiguration operation. +// empty array in the response. When EFS Intelligent Tiering is enabled, +// TransitionToPrimaryStorageClass has a value of AFTER_1_ACCESS. This operation +// requires permissions for the elasticfilesystem:DescribeLifecycleConfiguration +// operation. func (c *Client) DescribeLifecycleConfiguration(ctx context.Context, params *DescribeLifecycleConfigurationInput, optFns ...func(*Options)) (*DescribeLifecycleConfigurationOutput, error) { if params == nil { params = &DescribeLifecycleConfigurationInput{} @@ -45,8 +47,8 @@ type DescribeLifecycleConfigurationInput struct { type DescribeLifecycleConfigurationOutput struct { - // An array of lifecycle management policies. Currently, EFS supports a maximum of - // one policy per file system. + // An array of lifecycle management policies. EFS supports a maximum of one policy + // per file system. LifecyclePolicies []types.LifecyclePolicy // Metadata pertaining to the operation's result. diff --git a/service/efs/api_op_PutAccountPreferences.go b/service/efs/api_op_PutAccountPreferences.go index 2c3950619a0..d49d52328fc 100644 --- a/service/efs/api_op_PutAccountPreferences.go +++ b/service/efs/api_op_PutAccountPreferences.go @@ -11,6 +11,12 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) +// Use this operation to set the account preference in the current Amazon Web +// Services Region to use either long 17 character (63 bit) or short 8 character +// (32 bit) IDs for new EFS file systems and mount targets created. All existing +// resource IDs are not affected by any changes you make. You can set the ID +// preference during the opt-in period as EFS transitions to long resource IDs. For +// more information, see Managing Amazon EFS resource IDs. func (c *Client) PutAccountPreferences(ctx context.Context, params *PutAccountPreferencesInput, optFns ...func(*Options)) (*PutAccountPreferencesOutput, error) { if params == nil { params = &PutAccountPreferencesInput{} @@ -28,8 +34,9 @@ func (c *Client) PutAccountPreferences(ctx context.Context, params *PutAccountPr type PutAccountPreferencesInput struct { - // A preference indicating a choice to use 63bit/32bit IDs for all applicable - // resources. + // Specifies the EFS resource ID preference to set for the user's Amazon Web + // Services account, in the current Amazon Web Services Region, either LONG_ID (17 + // characters), or SHORT_ID (8 characters). // // This member is required. ResourceIdType types.ResourceIdType @@ -38,6 +45,9 @@ type PutAccountPreferencesInput struct { } type PutAccountPreferencesOutput struct { + + // Describes the resource type and its ID preference for the user's Amazon Web + // Services account, in the current Amazon Web Services Region. ResourceIdPreference *types.ResourceIdPreference // Metadata pertaining to the operation's result. diff --git a/service/efs/api_op_PutLifecycleConfiguration.go b/service/efs/api_op_PutLifecycleConfiguration.go index 85c88f8af65..3bdedab8ed3 100644 --- a/service/efs/api_op_PutLifecycleConfiguration.go +++ b/service/efs/api_op_PutLifecycleConfiguration.go @@ -14,27 +14,30 @@ import ( // Enables lifecycle management by creating a new LifecycleConfiguration object. A // LifecycleConfiguration object defines when files in an Amazon EFS file system // are automatically transitioned to the lower-cost EFS Infrequent Access (IA) -// storage class. A LifecycleConfiguration applies to all files in a file system. -// Each Amazon EFS file system supports one lifecycle configuration, which applies -// to all files in the file system. If a LifecycleConfiguration object already -// exists for the specified file system, a PutLifecycleConfiguration call modifies -// the existing configuration. A PutLifecycleConfiguration call with an empty -// LifecyclePolicies array in the request body deletes any existing -// LifecycleConfiguration and disables lifecycle management. In the request, -// specify the following: +// storage class. To enable EFS Intelligent Tiering, set the value of +// TransitionToPrimaryStorageClass to AFTER_1_ACCESS. For more information, see EFS +// Lifecycle Management +// (https://docs.aws.amazon.com/efs/latest/ug/lifecycle-management-efs.html). A +// LifecycleConfiguration applies to all files in a file system. Each Amazon EFS +// file system supports one lifecycle configuration, which applies to all files in +// the file system. If a LifecycleConfiguration object already exists for the +// specified file system, a PutLifecycleConfiguration call modifies the existing +// configuration. A PutLifecycleConfiguration call with an empty LifecyclePolicies +// array in the request body deletes any existing LifecycleConfiguration and +// disables lifecycle management. In the request, specify the following: // -// * The ID for the file system for which you are enabling, -// disabling, or modifying lifecycle management. +// * The ID +// for the file system for which you are enabling, disabling, or modifying +// lifecycle management. // -// * A LifecyclePolicies array of -// LifecyclePolicy objects that define when files are moved to the IA storage -// class. The array can contain only one LifecyclePolicy item. +// * A LifecyclePolicies array of LifecyclePolicy objects +// that define when files are moved to the IA storage class. The array can contain +// only one LifecyclePolicy item. // -// This operation -// requires permissions for the elasticfilesystem:PutLifecycleConfiguration -// operation. To apply a LifecycleConfiguration object to an encrypted file system, -// you need the same AWS Key Management Service (AWS KMS) permissions as when you -// created the encrypted file system. +// This operation requires permissions for the +// elasticfilesystem:PutLifecycleConfiguration operation. To apply a +// LifecycleConfiguration object to an encrypted file system, you need the same Key +// Management Service permissions as when you created the encrypted file system. func (c *Client) PutLifecycleConfiguration(ctx context.Context, params *PutLifecycleConfigurationInput, optFns ...func(*Options)) (*PutLifecycleConfigurationOutput, error) { if params == nil { params = &PutLifecycleConfigurationInput{} @@ -71,8 +74,8 @@ type PutLifecycleConfigurationInput struct { type PutLifecycleConfigurationOutput struct { - // An array of lifecycle management policies. Currently, EFS supports a maximum of - // one policy per file system. + // An array of lifecycle management policies. EFS supports a maximum of one policy + // per file system. LifecyclePolicies []types.LifecyclePolicy // Metadata pertaining to the operation's result. diff --git a/service/efs/api_op_UpdateFileSystem.go b/service/efs/api_op_UpdateFileSystem.go index 2ecf692ebd1..d7ab85e48c0 100644 --- a/service/efs/api_op_UpdateFileSystem.go +++ b/service/efs/api_op_UpdateFileSystem.go @@ -81,8 +81,9 @@ type UpdateFileSystemOutput struct { // This member is required. NumberOfMountTargets int32 - // The AWS account that created the file system. If the file system was created by - // an IAM user, the parent account to which the user belongs is the owner. + // The Amazon Web Services account that created the file system. If the file system + // was created by an IAM user, the parent account to which the user belongs is the + // owner. // // This member is required. OwnerId *string @@ -112,13 +113,13 @@ type UpdateFileSystemOutput struct { // The unique and consistent identifier of the Availability Zone in which the file // system's One Zone storage classes exist. For example, use1-az1 is an - // Availability Zone ID for the us-east-1 AWS Region, and it has the same location - // in every AWS account. + // Availability Zone ID for the us-east-1 Amazon Web Services Region, and it has + // the same location in every Amazon Web Services account. AvailabilityZoneId *string - // Describes the AWS Availability Zone in which the file system is located, and is - // valid only for file systems using One Zone storage classes. For more - // information, see Using EFS storage classes + // Describes the Amazon Web Services Availability Zone in which the file system is + // located, and is valid only for file systems using One Zone storage classes. For + // more information, see Using EFS storage classes // (https://docs.aws.amazon.com/efs/latest/ug/storage-classes.html) in the Amazon // EFS User Guide. AvailabilityZoneName *string @@ -132,8 +133,8 @@ type UpdateFileSystemOutput struct { // arn:aws:elasticfilesystem:us-west-2:1111333322228888:file-system/fs-01234567 FileSystemArn *string - // The ID of an AWS Key Management Service (AWS KMS) customer master key (CMK) that - // was used to protect the encrypted file system. + // The ID of an Key Management Service customer master key (CMK) that was used to + // protect the encrypted file system. KmsKeyId *string // You can add tags to a file system, including a Name tag. For more information, diff --git a/service/efs/deserializers.go b/service/efs/deserializers.go index b3e1f8e23cf..49150fefb46 100644 --- a/service/efs/deserializers.go +++ b/service/efs/deserializers.go @@ -6808,6 +6808,15 @@ func awsRestjson1_deserializeDocumentLifecyclePolicy(v **types.LifecyclePolicy, sv.TransitionToIA = types.TransitionToIARules(jtv) } + case "TransitionToPrimaryStorageClass": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TransitionToPrimaryStorageClassRules to be of type string, got %T instead", value) + } + sv.TransitionToPrimaryStorageClass = types.TransitionToPrimaryStorageClassRules(jtv) + } + default: _, _ = key, value diff --git a/service/efs/doc.go b/service/efs/doc.go index 24868d86d8d..d0000fbf7fc 100644 --- a/service/efs/doc.go +++ b/service/efs/doc.go @@ -4,11 +4,11 @@ // Elastic File System. // // Amazon Elastic File System Amazon Elastic File System (Amazon EFS) provides -// simple, scalable file storage for use with Amazon EC2 instances in the AWS -// Cloud. With Amazon EFS, storage capacity is elastic, growing and shrinking -// automatically as you add and remove files, so your applications have the storage -// they need, when they need it. For more information, see the Amazon Elastic File -// System API Reference +// simple, scalable file storage for use with Amazon EC2 instances in the Amazon +// Web Services Cloud. With Amazon EFS, storage capacity is elastic, growing and +// shrinking automatically as you add and remove files, so your applications have +// the storage they need, when they need it. For more information, see the Amazon +// Elastic File System API Reference // (https://docs.aws.amazon.com/efs/latest/ug/api-reference.html) and the Amazon // Elastic File System User Guide // (https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html). diff --git a/service/efs/serializers.go b/service/efs/serializers.go index c3dae3e3a00..73c32c2b778 100644 --- a/service/efs/serializers.go +++ b/service/efs/serializers.go @@ -2056,6 +2056,11 @@ func awsRestjson1_serializeDocumentLifecyclePolicy(v *types.LifecyclePolicy, val ok.String(string(v.TransitionToIA)) } + if len(v.TransitionToPrimaryStorageClass) > 0 { + ok := object.Key("TransitionToPrimaryStorageClass") + ok.String(string(v.TransitionToPrimaryStorageClass)) + } + return nil } diff --git a/service/efs/types/enums.go b/service/efs/types/enums.go index fce64c1869d..51d3cb2a8d6 100644 --- a/service/efs/types/enums.go +++ b/service/efs/types/enums.go @@ -145,3 +145,20 @@ func (TransitionToIARules) Values() []TransitionToIARules { "AFTER_90_DAYS", } } + +type TransitionToPrimaryStorageClassRules string + +// Enum values for TransitionToPrimaryStorageClassRules +const ( + TransitionToPrimaryStorageClassRulesAfter1Access TransitionToPrimaryStorageClassRules = "AFTER_1_ACCESS" +) + +// Values returns all known values for TransitionToPrimaryStorageClassRules. Note +// that this can be expanded in the future, and so it is only as up to date as the +// client. The ordering of this slice is not guaranteed to be stable across +// updates. +func (TransitionToPrimaryStorageClassRules) Values() []TransitionToPrimaryStorageClassRules { + return []TransitionToPrimaryStorageClassRules{ + "AFTER_1_ACCESS", + } +} diff --git a/service/efs/types/errors.go b/service/efs/types/errors.go index b71fbf9b699..880bdbb6a3e 100644 --- a/service/efs/types/errors.go +++ b/service/efs/types/errors.go @@ -30,8 +30,8 @@ func (e *AccessPointAlreadyExists) ErrorMessage() string { func (e *AccessPointAlreadyExists) ErrorCode() string { return "AccessPointAlreadyExists" } func (e *AccessPointAlreadyExists) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// Returned if the AWS account has already created the maximum number of access -// points allowed per file system. +// Returned if the Amazon Web Services account has already created the maximum +// number of access points allowed per file system. type AccessPointLimitExceeded struct { Message *string @@ -53,7 +53,7 @@ func (e *AccessPointLimitExceeded) ErrorCode() string { return "Acce func (e *AccessPointLimitExceeded) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } // Returned if the specified AccessPointId value doesn't exist in the requester's -// AWS account. +// Amazon Web Services account. type AccessPointNotFound struct { Message *string @@ -186,8 +186,8 @@ func (e *FileSystemInUse) ErrorMessage() string { func (e *FileSystemInUse) ErrorCode() string { return "FileSystemInUse" } func (e *FileSystemInUse) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// Returned if the AWS account has already created the maximum number of file -// systems allowed per account. +// Returned if the Amazon Web Services account has already created the maximum +// number of file systems allowed per account. type FileSystemLimitExceeded struct { Message *string @@ -209,7 +209,7 @@ func (e *FileSystemLimitExceeded) ErrorCode() string { return "FileS func (e *FileSystemLimitExceeded) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } // Returned if the specified FileSystemId value doesn't exist in the requester's -// AWS account. +// Amazon Web Services account. type FileSystemNotFound struct { Message *string @@ -388,7 +388,7 @@ func (e *MountTargetConflict) ErrorCode() string { return "MountTarg func (e *MountTargetConflict) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } // Returned if there is no mount target with the specified ID found in the caller's -// account. +// Amazon Web Services account. type MountTargetNotFound struct { Message *string @@ -410,9 +410,9 @@ func (e *MountTargetNotFound) ErrorCode() string { return "MountTarg func (e *MountTargetNotFound) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } // The calling account has reached the limit for elastic network interfaces for the -// specific AWS Region. The client should try to delete some elastic network -// interfaces or get the account limit raised. For more information, see Amazon VPC -// Limits +// specific Amazon Web Services Region. The client should try to delete some +// elastic network interfaces or get the account limit raised. For more +// information, see Amazon VPC Limits // (https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Appendix_Limits.html) // in the Amazon VPC User Guide (see the Network interfaces per VPC entry in the // table). @@ -611,8 +611,8 @@ func (e *UnsupportedAvailabilityZone) ErrorMessage() string { func (e *UnsupportedAvailabilityZone) ErrorCode() string { return "UnsupportedAvailabilityZone" } func (e *UnsupportedAvailabilityZone) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// Returned if the AWS Backup service is not available in the Region in which the -// request was made. +// Returned if the Backup service is not available in the Amazon Web Services +// Region in which the request was made. type ValidationException struct { Message *string diff --git a/service/efs/types/types.go b/service/efs/types/types.go index 0294915148c..7897527479b 100644 --- a/service/efs/types/types.go +++ b/service/efs/types/types.go @@ -28,7 +28,7 @@ type AccessPointDescription struct { // The name of the access point. This is the value of the Name tag. Name *string - // Identified the AWS account that owns the access point resource. + // Identified the Amazon Web Services account that owns the access point resource. OwnerId *string // The full POSIX identity, including the user ID, group ID, and secondary group @@ -136,8 +136,9 @@ type FileSystemDescription struct { // This member is required. NumberOfMountTargets int32 - // The AWS account that created the file system. If the file system was created by - // an IAM user, the parent account to which the user belongs is the owner. + // The Amazon Web Services account that created the file system. If the file system + // was created by an IAM user, the parent account to which the user belongs is the + // owner. // // This member is required. OwnerId *string @@ -167,13 +168,13 @@ type FileSystemDescription struct { // The unique and consistent identifier of the Availability Zone in which the file // system's One Zone storage classes exist. For example, use1-az1 is an - // Availability Zone ID for the us-east-1 AWS Region, and it has the same location - // in every AWS account. + // Availability Zone ID for the us-east-1 Amazon Web Services Region, and it has + // the same location in every Amazon Web Services account. AvailabilityZoneId *string - // Describes the AWS Availability Zone in which the file system is located, and is - // valid only for file systems using One Zone storage classes. For more - // information, see Using EFS storage classes + // Describes the Amazon Web Services Availability Zone in which the file system is + // located, and is valid only for file systems using One Zone storage classes. For + // more information, see Using EFS storage classes // (https://docs.aws.amazon.com/efs/latest/ug/storage-classes.html) in the Amazon // EFS User Guide. AvailabilityZoneName *string @@ -187,8 +188,8 @@ type FileSystemDescription struct { // arn:aws:elasticfilesystem:us-west-2:1111333322228888:file-system/fs-01234567 FileSystemArn *string - // The ID of an AWS Key Management Service (AWS KMS) customer master key (CMK) that - // was used to protect the encrypted file system. + // The ID of an Key Management Service customer master key (CMK) that was used to + // protect the encrypted file system. KmsKeyId *string // You can add tags to a file system, including a Name tag. For more information, @@ -242,11 +243,15 @@ type FileSystemSize struct { // Infrequent Access (IA) storage class. type LifecyclePolicy struct { - // A value that describes the period of time that a file is not accessed, after - // which it transitions to the IA storage class. Metadata operations such as - // listing the contents of a directory don't count as file access events. + // Describes the period of time that a file is not accessed, after which it + // transitions to the IA storage class. Metadata operations such as listing the + // contents of a directory don't count as file access events. TransitionToIA TransitionToIARules + // Describes the policy used to transition a file from infequent access storage to + // primary storage. + TransitionToPrimaryStorageClass TransitionToPrimaryStorageClassRules + noSmithyDocumentSerde } @@ -275,13 +280,14 @@ type MountTargetDescription struct { // The unique and consistent identifier of the Availability Zone that the mount // target resides in. For example, use1-az1 is an AZ ID for the us-east-1 Region - // and it has the same location in every AWS account. + // and it has the same location in every Amazon Web Services account. AvailabilityZoneId *string // The name of the Availability Zone in which the mount target is located. - // Availability Zones are independently mapped to names for each AWS account. For - // example, the Availability Zone us-east-1a for your AWS account might not be the - // same location as us-east-1a for another AWS account. + // Availability Zones are independently mapped to names for each Amazon Web + // Services account. For example, the Availability Zone us-east-1a for your Amazon + // Web Services account might not be the same location as us-east-1a for another + // Amazon Web Services account. AvailabilityZoneName *string // Address at which the file system can be mounted by using the mount target. @@ -291,7 +297,7 @@ type MountTargetDescription struct { // mount target. NetworkInterfaceId *string - // AWS account ID that owns the resource. + // Amazon Web Services account ID that owns the resource. OwnerId *string // The virtual private cloud (VPC) ID that the mount target is configured in. @@ -322,13 +328,16 @@ type PosixUser struct { noSmithyDocumentSerde } +// Describes the resource type and its ID preference for the user's Amazon Web +// Services account, in the current Amazon Web Services Region. type ResourceIdPreference struct { - // A preference indicating a choice to use 63bit/32bit IDs for all applicable - // resources. + // Identifies the EFS resource ID preference, either LONG_ID (17 characters) or + // SHORT_ID (8 characters). ResourceIdType ResourceIdType - // EFS resources to which a preference applies to. + // Identifies the Amazon EFS resources to which the ID preference setting applies, + // FILE_SYSTEM and MOUNT_TARGET. Resources []Resource noSmithyDocumentSerde diff --git a/service/emr/api_op_GetAutoTerminationPolicy.go b/service/emr/api_op_GetAutoTerminationPolicy.go new file mode 100644 index 00000000000..7b5abade8a9 --- /dev/null +++ b/service/emr/api_op_GetAutoTerminationPolicy.go @@ -0,0 +1,122 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package emr + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/emr/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Returns the auto-termination policy for an Amazon EMR cluster. +func (c *Client) GetAutoTerminationPolicy(ctx context.Context, params *GetAutoTerminationPolicyInput, optFns ...func(*Options)) (*GetAutoTerminationPolicyOutput, error) { + if params == nil { + params = &GetAutoTerminationPolicyInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GetAutoTerminationPolicy", params, optFns, c.addOperationGetAutoTerminationPolicyMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GetAutoTerminationPolicyOutput) + out.ResultMetadata = metadata + return out, nil +} + +type GetAutoTerminationPolicyInput struct { + + // Specifies the ID of the Amazon EMR cluster for which the auto-termination policy + // will be fetched. + // + // This member is required. + ClusterId *string + + noSmithyDocumentSerde +} + +type GetAutoTerminationPolicyOutput struct { + + // Specifies the auto-termination policy that is attached to an Amazon EMR cluster. + AutoTerminationPolicy *types.AutoTerminationPolicy + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGetAutoTerminationPolicyMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpGetAutoTerminationPolicy{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpGetAutoTerminationPolicy{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpGetAutoTerminationPolicyValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetAutoTerminationPolicy(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opGetAutoTerminationPolicy(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "elasticmapreduce", + OperationName: "GetAutoTerminationPolicy", + } +} diff --git a/service/emr/api_op_GetBlockPublicAccessConfiguration.go b/service/emr/api_op_GetBlockPublicAccessConfiguration.go index ff35bba090d..ad68f9691b7 100644 --- a/service/emr/api_op_GetBlockPublicAccessConfiguration.go +++ b/service/emr/api_op_GetBlockPublicAccessConfiguration.go @@ -11,9 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns the Amazon EMR block public access configuration for your account in the -// current Region. For more information see Configure Block Public Access for -// Amazon EMR +// Returns the Amazon EMR block public access configuration for your Amazon Web +// Services account in the current Region. For more information see Configure Block +// Public Access for Amazon EMR // (https://docs.aws.amazon.com/emr/latest/ManagementGuide/configure-block-public-access.html) // in the Amazon EMR Management Guide. func (c *Client) GetBlockPublicAccessConfiguration(ctx context.Context, params *GetBlockPublicAccessConfigurationInput, optFns ...func(*Options)) (*GetBlockPublicAccessConfigurationOutput, error) { diff --git a/service/emr/api_op_ListClusters.go b/service/emr/api_op_ListClusters.go index 85e2fc61572..0c197ab5273 100644 --- a/service/emr/api_op_ListClusters.go +++ b/service/emr/api_op_ListClusters.go @@ -13,11 +13,12 @@ import ( "time" ) -// Provides the status of all clusters visible to this account. Allows you to -// filter the list of clusters based on certain criteria; for example, filtering by -// cluster creation date and time or by status. This call returns a maximum of 50 -// clusters in unsorted order per call, but returns a marker to track the paging of -// the cluster list across multiple ListClusters calls. +// Provides the status of all clusters visible to this Amazon Web Services account. +// Allows you to filter the list of clusters based on certain criteria; for +// example, filtering by cluster creation date and time or by status. This call +// returns a maximum of 50 clusters in unsorted order per call, but returns a +// marker to track the paging of the cluster list across multiple ListClusters +// calls. func (c *Client) ListClusters(ctx context.Context, params *ListClustersInput, optFns ...func(*Options)) (*ListClustersOutput, error) { if params == nil { params = &ListClustersInput{} diff --git a/service/emr/api_op_ListReleaseLabels.go b/service/emr/api_op_ListReleaseLabels.go index a9160dc0a41..2919fa0acee 100644 --- a/service/emr/api_op_ListReleaseLabels.go +++ b/service/emr/api_op_ListReleaseLabels.go @@ -42,9 +42,9 @@ type ListReleaseLabelsInput struct { // Specifies the next page of results. If NextToken is not specified, which is // usually the case for the first request of ListReleaseLabels, the first page of // results are determined by other filtering parameters or by the latest version. - // The ListReleaseLabels request fails if the identity (account ID) and all - // filtering parameters are different from the original request, or if the - // NextToken is expired or tampered with. + // The ListReleaseLabels request fails if the identity (Amazon Web Services account + // ID) and all filtering parameters are different from the original request, or if + // the NextToken is expired or tampered with. NextToken *string noSmithyDocumentSerde diff --git a/service/emr/api_op_ListStudios.go b/service/emr/api_op_ListStudios.go index 2e3f6ebe928..881fa60512c 100644 --- a/service/emr/api_op_ListStudios.go +++ b/service/emr/api_op_ListStudios.go @@ -12,9 +12,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns a list of all Amazon EMR Studios associated with the account. The list -// includes details such as ID, Studio Access URL, and creation time for each -// Studio. +// Returns a list of all Amazon EMR Studios associated with the Amazon Web Services +// account. The list includes details such as ID, Studio Access URL, and creation +// time for each Studio. func (c *Client) ListStudios(ctx context.Context, params *ListStudiosInput, optFns ...func(*Options)) (*ListStudiosOutput, error) { if params == nil { params = &ListStudiosInput{} diff --git a/service/emr/api_op_PutAutoTerminationPolicy.go b/service/emr/api_op_PutAutoTerminationPolicy.go new file mode 100644 index 00000000000..44fb655af0a --- /dev/null +++ b/service/emr/api_op_PutAutoTerminationPolicy.go @@ -0,0 +1,125 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package emr + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/emr/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Creates or updates an auto-termination policy for an Amazon EMR cluster. An +// auto-termination policy defines the amount of idle time in seconds after which a +// cluster automatically terminates. For alternative cluster termination options, +// see Control cluster termination +// (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html). +func (c *Client) PutAutoTerminationPolicy(ctx context.Context, params *PutAutoTerminationPolicyInput, optFns ...func(*Options)) (*PutAutoTerminationPolicyOutput, error) { + if params == nil { + params = &PutAutoTerminationPolicyInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "PutAutoTerminationPolicy", params, optFns, c.addOperationPutAutoTerminationPolicyMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*PutAutoTerminationPolicyOutput) + out.ResultMetadata = metadata + return out, nil +} + +type PutAutoTerminationPolicyInput struct { + + // Specifies the ID of the Amazon EMR cluster to which the auto-termination policy + // will be attached. + // + // This member is required. + ClusterId *string + + // Specifies the auto-termination policy to attach to the cluster. + AutoTerminationPolicy *types.AutoTerminationPolicy + + noSmithyDocumentSerde +} + +type PutAutoTerminationPolicyOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationPutAutoTerminationPolicyMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpPutAutoTerminationPolicy{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpPutAutoTerminationPolicy{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpPutAutoTerminationPolicyValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opPutAutoTerminationPolicy(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opPutAutoTerminationPolicy(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "elasticmapreduce", + OperationName: "PutAutoTerminationPolicy", + } +} diff --git a/service/emr/api_op_PutBlockPublicAccessConfiguration.go b/service/emr/api_op_PutBlockPublicAccessConfiguration.go index 89069cab83c..ea93c15941d 100644 --- a/service/emr/api_op_PutBlockPublicAccessConfiguration.go +++ b/service/emr/api_op_PutBlockPublicAccessConfiguration.go @@ -12,8 +12,8 @@ import ( ) // Creates or updates an Amazon EMR block public access configuration for your -// account in the current Region. For more information see Configure Block Public -// Access for Amazon EMR +// Amazon Web Services account in the current Region. For more information see +// Configure Block Public Access for Amazon EMR // (https://docs.aws.amazon.com/emr/latest/ManagementGuide/configure-block-public-access.html) // in the Amazon EMR Management Guide. func (c *Client) PutBlockPublicAccessConfiguration(ctx context.Context, params *PutBlockPublicAccessConfigurationInput, optFns ...func(*Options)) (*PutBlockPublicAccessConfigurationOutput, error) { diff --git a/service/emr/api_op_RemoveAutoTerminationPolicy.go b/service/emr/api_op_RemoveAutoTerminationPolicy.go new file mode 100644 index 00000000000..eb42767b871 --- /dev/null +++ b/service/emr/api_op_RemoveAutoTerminationPolicy.go @@ -0,0 +1,117 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package emr + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Removes an auto-termination policy from an Amazon EMR cluster. +func (c *Client) RemoveAutoTerminationPolicy(ctx context.Context, params *RemoveAutoTerminationPolicyInput, optFns ...func(*Options)) (*RemoveAutoTerminationPolicyOutput, error) { + if params == nil { + params = &RemoveAutoTerminationPolicyInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "RemoveAutoTerminationPolicy", params, optFns, c.addOperationRemoveAutoTerminationPolicyMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*RemoveAutoTerminationPolicyOutput) + out.ResultMetadata = metadata + return out, nil +} + +type RemoveAutoTerminationPolicyInput struct { + + // Specifies the ID of the Amazon EMR cluster from which the auto-termination + // policy will be removed. + // + // This member is required. + ClusterId *string + + noSmithyDocumentSerde +} + +type RemoveAutoTerminationPolicyOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationRemoveAutoTerminationPolicyMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpRemoveAutoTerminationPolicy{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpRemoveAutoTerminationPolicy{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpRemoveAutoTerminationPolicyValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opRemoveAutoTerminationPolicy(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opRemoveAutoTerminationPolicy(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "elasticmapreduce", + OperationName: "RemoveAutoTerminationPolicy", + } +} diff --git a/service/emr/api_op_RunJobFlow.go b/service/emr/api_op_RunJobFlow.go index f477f99b379..9feea4a3875 100644 --- a/service/emr/api_op_RunJobFlow.go +++ b/service/emr/api_op_RunJobFlow.go @@ -81,6 +81,13 @@ type RunJobFlowInput struct { // instance group. AutoScalingRole *string + // An auto-termination policy for an Amazon EMR cluster. An auto-termination policy + // defines the amount of idle time in seconds after which a cluster automatically + // terminates. For alternative cluster termination options, see Control cluster + // termination + // (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html). + AutoTerminationPolicy *types.AutoTerminationPolicy + // A list of bootstrap actions to run before Hadoop starts on the cluster nodes. BootstrapActions []types.BootstrapActionConfig @@ -230,15 +237,16 @@ type RunJobFlowInput struct { // instances. Tags []types.Tag - // Set this value to true so that IAM principals in the account associated with the - // cluster can perform EMR actions on the cluster that their IAM policies allow. - // This value defaults to true for clusters created using the EMR API or the CLI - // create-cluster + // Set this value to true so that IAM principals in the Amazon Web Services account + // associated with the cluster can perform EMR actions on the cluster that their + // IAM policies allow. This value defaults to true for clusters created using the + // EMR API or the CLI create-cluster // (https://docs.aws.amazon.com/cli/latest/reference/emr/create-cluster.html) // command. When set to false, only the IAM principal that created the cluster and - // the account root user can perform EMR actions for the cluster, regardless of the - // IAM permissions policies attached to other IAM principals. For more information, - // see Understanding the EMR Cluster VisibleToAllUsers Setting + // the Amazon Web Services account root user can perform EMR actions for the + // cluster, regardless of the IAM permissions policies attached to other IAM + // principals. For more information, see Understanding the EMR Cluster + // VisibleToAllUsers Setting // (https://docs.aws.amazon.com/emr/latest/ManagementGuide/security_iam_emr-with-iam.html#security_set_visible_to_all_users) // in the Amazon EMRManagement Guide. VisibleToAllUsers bool diff --git a/service/emr/api_op_SetVisibleToAllUsers.go b/service/emr/api_op_SetVisibleToAllUsers.go index e64d7f0752d..19f9c863e10 100644 --- a/service/emr/api_op_SetVisibleToAllUsers.go +++ b/service/emr/api_op_SetVisibleToAllUsers.go @@ -11,13 +11,13 @@ import ( ) // Sets the Cluster$VisibleToAllUsers value for an EMR cluster. When true, IAM -// principals in the account can perform EMR cluster actions that their IAM -// policies allow. When false, only the IAM principal that created the cluster and -// the account root user can perform EMR actions on the cluster, regardless of IAM -// permissions policies attached to other IAM principals. This action works on -// running clusters. When you create a cluster, use the -// RunJobFlowInput$VisibleToAllUsers parameter. For more information, see -// Understanding the EMR Cluster VisibleToAllUsers Setting +// principals in the Amazon Web Services account can perform EMR cluster actions +// that their IAM policies allow. When false, only the IAM principal that created +// the cluster and the Amazon Web Services account root user can perform EMR +// actions on the cluster, regardless of IAM permissions policies attached to other +// IAM principals. This action works on running clusters. When you create a +// cluster, use the RunJobFlowInput$VisibleToAllUsers parameter. For more +// information, see Understanding the EMR Cluster VisibleToAllUsers Setting // (https://docs.aws.amazon.com/emr/latest/ManagementGuide/security_iam_emr-with-iam.html#security_set_visible_to_all_users) // in the Amazon EMRManagement Guide. func (c *Client) SetVisibleToAllUsers(ctx context.Context, params *SetVisibleToAllUsersInput, optFns ...func(*Options)) (*SetVisibleToAllUsersOutput, error) { @@ -43,10 +43,11 @@ type SetVisibleToAllUsersInput struct { // This member is required. JobFlowIds []string - // A value of true indicates that an IAM principal in the account can perform EMR - // actions on the cluster that the IAM policies attached to the principal allow. A - // value of false indicates that only the IAM principal that created the cluster - // and the Amazon Web Services root user can perform EMR actions on the cluster. + // A value of true indicates that an IAM principal in the Amazon Web Services + // account can perform EMR actions on the cluster that the IAM policies attached to + // the principal allow. A value of false indicates that only the IAM principal that + // created the cluster and the Amazon Web Services root user can perform EMR + // actions on the cluster. // // This member is required. VisibleToAllUsers bool diff --git a/service/emr/deserializers.go b/service/emr/deserializers.go index ca774f62db9..e2a38c3fa03 100644 --- a/service/emr/deserializers.go +++ b/service/emr/deserializers.go @@ -1998,6 +1998,114 @@ func awsAwsjson11_deserializeOpErrorDescribeStudio(response *smithyhttp.Response } } +type awsAwsjson11_deserializeOpGetAutoTerminationPolicy struct { +} + +func (*awsAwsjson11_deserializeOpGetAutoTerminationPolicy) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpGetAutoTerminationPolicy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorGetAutoTerminationPolicy(response, &metadata) + } + output := &GetAutoTerminationPolicyOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsAwsjson11_deserializeOpDocumentGetAutoTerminationPolicyOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + return out, metadata, err +} + +func awsAwsjson11_deserializeOpErrorGetAutoTerminationPolicy(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsAwsjson11_deserializeOpGetBlockPublicAccessConfiguration struct { } @@ -3991,6 +4099,114 @@ func awsAwsjson11_deserializeOpErrorPutAutoScalingPolicy(response *smithyhttp.Re } } +type awsAwsjson11_deserializeOpPutAutoTerminationPolicy struct { +} + +func (*awsAwsjson11_deserializeOpPutAutoTerminationPolicy) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpPutAutoTerminationPolicy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorPutAutoTerminationPolicy(response, &metadata) + } + output := &PutAutoTerminationPolicyOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsAwsjson11_deserializeOpDocumentPutAutoTerminationPolicyOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + return out, metadata, err +} + +func awsAwsjson11_deserializeOpErrorPutAutoTerminationPolicy(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsAwsjson11_deserializeOpPutBlockPublicAccessConfiguration struct { } @@ -4321,6 +4537,114 @@ func awsAwsjson11_deserializeOpErrorRemoveAutoScalingPolicy(response *smithyhttp } } +type awsAwsjson11_deserializeOpRemoveAutoTerminationPolicy struct { +} + +func (*awsAwsjson11_deserializeOpRemoveAutoTerminationPolicy) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpRemoveAutoTerminationPolicy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorRemoveAutoTerminationPolicy(response, &metadata) + } + output := &RemoveAutoTerminationPolicyOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsAwsjson11_deserializeOpDocumentRemoveAutoTerminationPolicyOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + return out, metadata, err +} + +func awsAwsjson11_deserializeOpErrorRemoveAutoTerminationPolicy(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsAwsjson11_deserializeOpRemoveManagedScalingPolicy struct { } @@ -5649,6 +5973,50 @@ func awsAwsjson11_deserializeDocumentAutoScalingPolicyStatus(v **types.AutoScali return nil } +func awsAwsjson11_deserializeDocumentAutoTerminationPolicy(v **types.AutoTerminationPolicy, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AutoTerminationPolicy + if *v == nil { + sv = &types.AutoTerminationPolicy{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "IdleTimeout": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Long to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.IdleTimeout = i64 + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentBlockPublicAccessConfiguration(v **types.BlockPublicAccessConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -13353,6 +13721,42 @@ func awsAwsjson11_deserializeOpDocumentDescribeStudioOutput(v **DescribeStudioOu return nil } +func awsAwsjson11_deserializeOpDocumentGetAutoTerminationPolicyOutput(v **GetAutoTerminationPolicyOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *GetAutoTerminationPolicyOutput + if *v == nil { + sv = &GetAutoTerminationPolicyOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AutoTerminationPolicy": + if err := awsAwsjson11_deserializeDocumentAutoTerminationPolicy(&sv.AutoTerminationPolicy, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentGetBlockPublicAccessConfigurationOutput(v **GetBlockPublicAccessConfigurationOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -14068,6 +14472,37 @@ func awsAwsjson11_deserializeOpDocumentPutAutoScalingPolicyOutput(v **PutAutoSca return nil } +func awsAwsjson11_deserializeOpDocumentPutAutoTerminationPolicyOutput(v **PutAutoTerminationPolicyOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *PutAutoTerminationPolicyOutput + if *v == nil { + sv = &PutAutoTerminationPolicyOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentPutBlockPublicAccessConfigurationOutput(v **PutBlockPublicAccessConfigurationOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -14161,6 +14596,37 @@ func awsAwsjson11_deserializeOpDocumentRemoveAutoScalingPolicyOutput(v **RemoveA return nil } +func awsAwsjson11_deserializeOpDocumentRemoveAutoTerminationPolicyOutput(v **RemoveAutoTerminationPolicyOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *RemoveAutoTerminationPolicyOutput + if *v == nil { + sv = &RemoveAutoTerminationPolicyOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentRemoveManagedScalingPolicyOutput(v **RemoveManagedScalingPolicyOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/emr/generated.json b/service/emr/generated.json index eaf05776f35..fde16ed3f51 100644 --- a/service/emr/generated.json +++ b/service/emr/generated.json @@ -24,6 +24,7 @@ "api_op_DescribeSecurityConfiguration.go", "api_op_DescribeStep.go", "api_op_DescribeStudio.go", + "api_op_GetAutoTerminationPolicy.go", "api_op_GetBlockPublicAccessConfiguration.go", "api_op_GetManagedScalingPolicy.go", "api_op_GetStudioSessionMapping.go", @@ -42,9 +43,11 @@ "api_op_ModifyInstanceFleet.go", "api_op_ModifyInstanceGroups.go", "api_op_PutAutoScalingPolicy.go", + "api_op_PutAutoTerminationPolicy.go", "api_op_PutBlockPublicAccessConfiguration.go", "api_op_PutManagedScalingPolicy.go", "api_op_RemoveAutoScalingPolicy.go", + "api_op_RemoveAutoTerminationPolicy.go", "api_op_RemoveManagedScalingPolicy.go", "api_op_RemoveTags.go", "api_op_RunJobFlow.go", diff --git a/service/emr/serializers.go b/service/emr/serializers.go index 3f68afcfb96..e9db61624da 100644 --- a/service/emr/serializers.go +++ b/service/emr/serializers.go @@ -862,6 +862,53 @@ func (m *awsAwsjson11_serializeOpDescribeStudio) HandleSerialize(ctx context.Con return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpGetAutoTerminationPolicy struct { +} + +func (*awsAwsjson11_serializeOpGetAutoTerminationPolicy) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpGetAutoTerminationPolicy) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*GetAutoTerminationPolicyInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("ElasticMapReduce.GetAutoTerminationPolicy") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentGetAutoTerminationPolicyInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + type awsAwsjson11_serializeOpGetBlockPublicAccessConfiguration struct { } @@ -1708,6 +1755,53 @@ func (m *awsAwsjson11_serializeOpPutAutoScalingPolicy) HandleSerialize(ctx conte return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpPutAutoTerminationPolicy struct { +} + +func (*awsAwsjson11_serializeOpPutAutoTerminationPolicy) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpPutAutoTerminationPolicy) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*PutAutoTerminationPolicyInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("ElasticMapReduce.PutAutoTerminationPolicy") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentPutAutoTerminationPolicyInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + type awsAwsjson11_serializeOpPutBlockPublicAccessConfiguration struct { } @@ -1849,6 +1943,53 @@ func (m *awsAwsjson11_serializeOpRemoveAutoScalingPolicy) HandleSerialize(ctx co return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpRemoveAutoTerminationPolicy struct { +} + +func (*awsAwsjson11_serializeOpRemoveAutoTerminationPolicy) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpRemoveAutoTerminationPolicy) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*RemoveAutoTerminationPolicyInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("ElasticMapReduce.RemoveAutoTerminationPolicy") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentRemoveAutoTerminationPolicyInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + type awsAwsjson11_serializeOpRemoveManagedScalingPolicy struct { } @@ -2383,6 +2524,18 @@ func awsAwsjson11_serializeDocumentAutoScalingPolicy(v *types.AutoScalingPolicy, return nil } +func awsAwsjson11_serializeDocumentAutoTerminationPolicy(v *types.AutoTerminationPolicy, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.IdleTimeout != 0 { + ok := object.Key("IdleTimeout") + ok.Long(v.IdleTimeout) + } + + return nil +} + func awsAwsjson11_serializeDocumentBlockPublicAccessConfiguration(v *types.BlockPublicAccessConfiguration, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -4215,6 +4368,18 @@ func awsAwsjson11_serializeOpDocumentDescribeStudioInput(v *DescribeStudioInput, return nil } +func awsAwsjson11_serializeOpDocumentGetAutoTerminationPolicyInput(v *GetAutoTerminationPolicyInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ClusterId != nil { + ok := object.Key("ClusterId") + ok.String(*v.ClusterId) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentGetBlockPublicAccessConfigurationInput(v *GetBlockPublicAccessConfigurationInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -4599,6 +4764,25 @@ func awsAwsjson11_serializeOpDocumentPutAutoScalingPolicyInput(v *PutAutoScaling return nil } +func awsAwsjson11_serializeOpDocumentPutAutoTerminationPolicyInput(v *PutAutoTerminationPolicyInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AutoTerminationPolicy != nil { + ok := object.Key("AutoTerminationPolicy") + if err := awsAwsjson11_serializeDocumentAutoTerminationPolicy(v.AutoTerminationPolicy, ok); err != nil { + return err + } + } + + if v.ClusterId != nil { + ok := object.Key("ClusterId") + ok.String(*v.ClusterId) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentPutBlockPublicAccessConfigurationInput(v *PutBlockPublicAccessConfigurationInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -4649,6 +4833,18 @@ func awsAwsjson11_serializeOpDocumentRemoveAutoScalingPolicyInput(v *RemoveAutoS return nil } +func awsAwsjson11_serializeOpDocumentRemoveAutoTerminationPolicyInput(v *RemoveAutoTerminationPolicyInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ClusterId != nil { + ok := object.Key("ClusterId") + ok.String(*v.ClusterId) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentRemoveManagedScalingPolicyInput(v *RemoveManagedScalingPolicyInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -4706,6 +4902,13 @@ func awsAwsjson11_serializeOpDocumentRunJobFlowInput(v *RunJobFlowInput, value s ok.String(*v.AutoScalingRole) } + if v.AutoTerminationPolicy != nil { + ok := object.Key("AutoTerminationPolicy") + if err := awsAwsjson11_serializeDocumentAutoTerminationPolicy(v.AutoTerminationPolicy, ok); err != nil { + return err + } + } + if v.BootstrapActions != nil { ok := object.Key("BootstrapActions") if err := awsAwsjson11_serializeDocumentBootstrapActionConfigList(v.BootstrapActions, ok); err != nil { diff --git a/service/emr/types/types.go b/service/emr/types/types.go index a3ed826c3a5..8e395fa59e9 100644 --- a/service/emr/types/types.go +++ b/service/emr/types/types.go @@ -104,6 +104,21 @@ type AutoScalingPolicyStatus struct { noSmithyDocumentSerde } +// An auto-termination policy for an Amazon EMR cluster. An auto-termination policy +// defines the amount of idle time in seconds after which a cluster automatically +// terminates. For alternative cluster termination options, see Control cluster +// termination +// (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html). +type AutoTerminationPolicy struct { + + // Specifies the amount of idle time in seconds after which the cluster + // automatically terminates. You can specify a minimum of 60 seconds and a maximum + // of 604800 seconds (seven days). + IdleTimeout int64 + + noSmithyDocumentSerde +} + // A configuration for Amazon EMR block public access. When // BlockPublicSecurityGroupRules is set to true, Amazon EMR prevents cluster // creation if one of the cluster's security groups has a rule that allows inbound @@ -388,18 +403,19 @@ type Cluster struct { // cluster error. TerminationProtected bool - // Indicates whether the cluster is visible to IAM principals in the account - // associated with the cluster. When true, IAM principals in the account can - // perform EMR cluster actions on the cluster that their IAM policies allow. When - // false, only the IAM principal that created the cluster and the account root user - // can perform EMR actions, regardless of IAM permissions policies attached to - // other IAM principals. The default value is true if a value is not provided when - // creating a cluster using the EMR API RunJobFlow command, the CLI create-cluster + // Indicates whether the cluster is visible to IAM principals in the Amazon Web + // Services account associated with the cluster. When true, IAM principals in the + // Amazon Web Services account can perform EMR cluster actions on the cluster that + // their IAM policies allow. When false, only the IAM principal that created the + // cluster and the Amazon Web Services account root user can perform EMR actions, + // regardless of IAM permissions policies attached to other IAM principals. The + // default value is true if a value is not provided when creating a cluster using + // the EMR API RunJobFlow command, the CLI create-cluster // (https://docs.aws.amazon.com/cli/latest/reference/emr/create-cluster.html) - // command, or the Management Console. IAM principals that are allowed to perform - // actions on the cluster can use the SetVisibleToAllUsers action to change the - // value on a running cluster. For more information, see Understanding the EMR - // Cluster VisibleToAllUsers Setting + // command, or the Amazon Web Services Management Console. IAM principals that are + // allowed to perform actions on the cluster can use the SetVisibleToAllUsers + // action to change the value on a running cluster. For more information, see + // Understanding the EMR Cluster VisibleToAllUsers Setting // (https://docs.aws.amazon.com/emr/latest/ManagementGuide/security_iam_emr-with-iam.html#security_set_visible_to_all_users) // in the Amazon EMRManagement Guide. VisibleToAllUsers bool @@ -1541,18 +1557,19 @@ type JobFlowDetail struct { // empty. SupportedProducts []string - // Indicates whether the cluster is visible to IAM principals in the account - // associated with the cluster. When true, IAM principals in the account can - // perform EMR cluster actions that their IAM policies allow. When false, only the - // IAM principal that created the cluster and the account root user can perform EMR - // actions, regardless of IAM permissions policies attached to other IAM - // principals. The default value is true if a value is not provided when creating a - // cluster using the EMR API RunJobFlow command, the CLI create-cluster + // Indicates whether the cluster is visible to IAM principals in the Amazon Web + // Services account associated with the cluster. When true, IAM principals in the + // Amazon Web Services account can perform EMR cluster actions that their IAM + // policies allow. When false, only the IAM principal that created the cluster and + // the Amazon Web Services account root user can perform EMR actions, regardless of + // IAM permissions policies attached to other IAM principals. The default value is + // true if a value is not provided when creating a cluster using the EMR API + // RunJobFlow command, the CLI create-cluster // (https://docs.aws.amazon.com/cli/latest/reference/emr/create-cluster.html) - // command, or the Management Console. IAM principals that are authorized to - // perform actions on the cluster can use the SetVisibleToAllUsers action to change - // the value on a running cluster. For more information, see Understanding the EMR - // Cluster VisibleToAllUsers Setting + // command, or the Amazon Web Services Management Console. IAM principals that are + // authorized to perform actions on the cluster can use the SetVisibleToAllUsers + // action to change the value on a running cluster. For more information, see + // Understanding the EMR Cluster VisibleToAllUsers Setting // (https://docs.aws.amazon.com/emr/latest/ManagementGuide/security_iam_emr-with-iam.html#security_set_visible_to_all_users) // in the Amazon EMRManagement Guide. VisibleToAllUsers bool diff --git a/service/emr/validators.go b/service/emr/validators.go index 36881c4b3fb..69936a51f6e 100644 --- a/service/emr/validators.go +++ b/service/emr/validators.go @@ -330,6 +330,26 @@ func (m *validateOpDescribeStudio) HandleInitialize(ctx context.Context, in midd return next.HandleInitialize(ctx, in) } +type validateOpGetAutoTerminationPolicy struct { +} + +func (*validateOpGetAutoTerminationPolicy) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpGetAutoTerminationPolicy) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*GetAutoTerminationPolicyInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpGetAutoTerminationPolicyInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpGetManagedScalingPolicy struct { } @@ -550,6 +570,26 @@ func (m *validateOpPutAutoScalingPolicy) HandleInitialize(ctx context.Context, i return next.HandleInitialize(ctx, in) } +type validateOpPutAutoTerminationPolicy struct { +} + +func (*validateOpPutAutoTerminationPolicy) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpPutAutoTerminationPolicy) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*PutAutoTerminationPolicyInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpPutAutoTerminationPolicyInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpPutBlockPublicAccessConfiguration struct { } @@ -610,6 +650,26 @@ func (m *validateOpRemoveAutoScalingPolicy) HandleInitialize(ctx context.Context return next.HandleInitialize(ctx, in) } +type validateOpRemoveAutoTerminationPolicy struct { +} + +func (*validateOpRemoveAutoTerminationPolicy) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpRemoveAutoTerminationPolicy) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*RemoveAutoTerminationPolicyInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpRemoveAutoTerminationPolicyInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpRemoveManagedScalingPolicy struct { } @@ -874,6 +934,10 @@ func addOpDescribeStudioValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDescribeStudio{}, middleware.After) } +func addOpGetAutoTerminationPolicyValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpGetAutoTerminationPolicy{}, middleware.After) +} + func addOpGetManagedScalingPolicyValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpGetManagedScalingPolicy{}, middleware.After) } @@ -918,6 +982,10 @@ func addOpPutAutoScalingPolicyValidationMiddleware(stack *middleware.Stack) erro return stack.Initialize.Add(&validateOpPutAutoScalingPolicy{}, middleware.After) } +func addOpPutAutoTerminationPolicyValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpPutAutoTerminationPolicy{}, middleware.After) +} + func addOpPutBlockPublicAccessConfigurationValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpPutBlockPublicAccessConfiguration{}, middleware.After) } @@ -930,6 +998,10 @@ func addOpRemoveAutoScalingPolicyValidationMiddleware(stack *middleware.Stack) e return stack.Initialize.Add(&validateOpRemoveAutoScalingPolicy{}, middleware.After) } +func addOpRemoveAutoTerminationPolicyValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpRemoveAutoTerminationPolicy{}, middleware.After) +} + func addOpRemoveManagedScalingPolicyValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpRemoveManagedScalingPolicy{}, middleware.After) } @@ -2025,6 +2097,21 @@ func validateOpDescribeStudioInput(v *DescribeStudioInput) error { } } +func validateOpGetAutoTerminationPolicyInput(v *GetAutoTerminationPolicyInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GetAutoTerminationPolicyInput"} + if v.ClusterId == nil { + invalidParams.Add(smithy.NewErrParamRequired("ClusterId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpGetManagedScalingPolicyInput(v *GetManagedScalingPolicyInput) error { if v == nil { return nil @@ -2212,6 +2299,21 @@ func validateOpPutAutoScalingPolicyInput(v *PutAutoScalingPolicyInput) error { } } +func validateOpPutAutoTerminationPolicyInput(v *PutAutoTerminationPolicyInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "PutAutoTerminationPolicyInput"} + if v.ClusterId == nil { + invalidParams.Add(smithy.NewErrParamRequired("ClusterId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpPutBlockPublicAccessConfigurationInput(v *PutBlockPublicAccessConfigurationInput) error { if v == nil { return nil @@ -2271,6 +2373,21 @@ func validateOpRemoveAutoScalingPolicyInput(v *RemoveAutoScalingPolicyInput) err } } +func validateOpRemoveAutoTerminationPolicyInput(v *RemoveAutoTerminationPolicyInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "RemoveAutoTerminationPolicyInput"} + if v.ClusterId == nil { + invalidParams.Add(smithy.NewErrParamRequired("ClusterId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpRemoveManagedScalingPolicyInput(v *RemoveManagedScalingPolicyInput) error { if v == nil { return nil diff --git a/service/firehose/api_op_PutRecord.go b/service/firehose/api_op_PutRecord.go index a30a69b0d6a..07a019fde3f 100644 --- a/service/firehose/api_op_PutRecord.go +++ b/service/firehose/api_op_PutRecord.go @@ -21,7 +21,7 @@ import ( // increase, see Amazon Kinesis Data Firehose Limits // (https://docs.aws.amazon.com/firehose/latest/dev/limits.html). You must specify // the name of the delivery stream and the data record when using PutRecord. The -// data record consists of a data blob that can be up to 1,000 KB in size, and any +// data record consists of a data blob that can be up to 1,000 KiB in size, and any // kind of data. For example, it can be a segment from a log file, geographic // location data, website clickstream data, and so on. Kinesis Data Firehose // buffers records before delivering them to the destination. To disambiguate the diff --git a/service/firehose/api_op_PutRecordBatch.go b/service/firehose/api_op_PutRecordBatch.go index a68483df0b7..de7746e77f4 100644 --- a/service/firehose/api_op_PutRecordBatch.go +++ b/service/firehose/api_op_PutRecordBatch.go @@ -18,7 +18,7 @@ import ( // service quota, see Amazon Kinesis Data Firehose Quota // (https://docs.aws.amazon.com/firehose/latest/dev/limits.html). Each // PutRecordBatch request supports up to 500 records. Each record in the request -// can be as large as 1,000 KB (before 64-bit encoding), up to a limit of 4 MB for +// can be as large as 1,000 KB (before base64 encoding), up to a limit of 4 MB for // the entire request. These limits cannot be changed. You must specify the name of // the delivery stream and the data record when using PutRecord. The data record // consists of a data blob that can be up to 1,000 KB in size, and any kind of diff --git a/service/firehose/deserializers.go b/service/firehose/deserializers.go index 855f9ab4a96..6fa06fe827f 100644 --- a/service/firehose/deserializers.go +++ b/service/firehose/deserializers.go @@ -2363,6 +2363,51 @@ func awsAwsjson11_deserializeDocumentDestinationDescriptionList(v *[]types.Desti return nil } +func awsAwsjson11_deserializeDocumentDynamicPartitioningConfiguration(v **types.DynamicPartitioningConfiguration, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.DynamicPartitioningConfiguration + if *v == nil { + sv = &types.DynamicPartitioningConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Enabled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected BooleanObject to be of type *bool, got %T instead", value) + } + sv.Enabled = ptr.Bool(jtv) + } + + case "RetryOptions": + if err := awsAwsjson11_deserializeDocumentRetryOptions(&sv.RetryOptions, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentElasticsearchBufferingHints(v **types.ElasticsearchBufferingHints, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -2688,6 +2733,11 @@ func awsAwsjson11_deserializeDocumentExtendedS3DestinationDescription(v **types. return err } + case "DynamicPartitioningConfiguration": + if err := awsAwsjson11_deserializeDocumentDynamicPartitioningConfiguration(&sv.DynamicPartitioningConfiguration, value); err != nil { + return err + } + case "EncryptionConfiguration": if err := awsAwsjson11_deserializeDocumentEncryptionConfiguration(&sv.EncryptionConfiguration, value); err != nil { return err @@ -4482,6 +4532,50 @@ func awsAwsjson11_deserializeDocumentResourceNotFoundException(v **types.Resourc return nil } +func awsAwsjson11_deserializeDocumentRetryOptions(v **types.RetryOptions, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.RetryOptions + if *v == nil { + sv = &types.RetryOptions{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "DurationInSeconds": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected RetryDurationInSeconds to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.DurationInSeconds = ptr.Int32(int32(i64)) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentS3DestinationDescription(v **types.S3DestinationDescription, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/firehose/serializers.go b/service/firehose/serializers.go index 5ce147baddc..52e72cc156d 100644 --- a/service/firehose/serializers.go +++ b/service/firehose/serializers.go @@ -721,6 +721,25 @@ func awsAwsjson11_serializeDocumentDeserializer(v *types.Deserializer, value smi return nil } +func awsAwsjson11_serializeDocumentDynamicPartitioningConfiguration(v *types.DynamicPartitioningConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Enabled != nil { + ok := object.Key("Enabled") + ok.Boolean(*v.Enabled) + } + + if v.RetryOptions != nil { + ok := object.Key("RetryOptions") + if err := awsAwsjson11_serializeDocumentRetryOptions(v.RetryOptions, ok); err != nil { + return err + } + } + + return nil +} + func awsAwsjson11_serializeDocumentElasticsearchBufferingHints(v *types.ElasticsearchBufferingHints, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -960,6 +979,13 @@ func awsAwsjson11_serializeDocumentExtendedS3DestinationConfiguration(v *types.E } } + if v.DynamicPartitioningConfiguration != nil { + ok := object.Key("DynamicPartitioningConfiguration") + if err := awsAwsjson11_serializeDocumentDynamicPartitioningConfiguration(v.DynamicPartitioningConfiguration, ok); err != nil { + return err + } + } + if v.EncryptionConfiguration != nil { ok := object.Key("EncryptionConfiguration") if err := awsAwsjson11_serializeDocumentEncryptionConfiguration(v.EncryptionConfiguration, ok); err != nil { @@ -1039,6 +1065,13 @@ func awsAwsjson11_serializeDocumentExtendedS3DestinationUpdate(v *types.Extended } } + if v.DynamicPartitioningConfiguration != nil { + ok := object.Key("DynamicPartitioningConfiguration") + if err := awsAwsjson11_serializeDocumentDynamicPartitioningConfiguration(v.DynamicPartitioningConfiguration, ok); err != nil { + return err + } + } + if v.EncryptionConfiguration != nil { ok := object.Key("EncryptionConfiguration") if err := awsAwsjson11_serializeDocumentEncryptionConfiguration(v.EncryptionConfiguration, ok); err != nil { @@ -1833,6 +1866,18 @@ func awsAwsjson11_serializeDocumentRedshiftRetryOptions(v *types.RedshiftRetryOp return nil } +func awsAwsjson11_serializeDocumentRetryOptions(v *types.RetryOptions, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DurationInSeconds != nil { + ok := object.Key("DurationInSeconds") + ok.Integer(*v.DurationInSeconds) + } + + return nil +} + func awsAwsjson11_serializeDocumentS3DestinationConfiguration(v *types.S3DestinationConfiguration, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/firehose/types/enums.go b/service/firehose/types/enums.go index 8c746036a69..e7bcae5e6bb 100644 --- a/service/firehose/types/enums.go +++ b/service/firehose/types/enums.go @@ -352,9 +352,13 @@ type ProcessorParameterName string const ( ProcessorParameterNameLambdaArn ProcessorParameterName = "LambdaArn" ProcessorParameterNameLambdaNumberOfRetries ProcessorParameterName = "NumberOfRetries" + ProcessorParameterNameMetadataExtractionQuery ProcessorParameterName = "MetadataExtractionQuery" + ProcessorParameterNameJsonParsingEngine ProcessorParameterName = "JsonParsingEngine" ProcessorParameterNameRoleArn ProcessorParameterName = "RoleArn" ProcessorParameterNameBufferSizeInMb ProcessorParameterName = "BufferSizeInMBs" ProcessorParameterNameBufferIntervalInSeconds ProcessorParameterName = "BufferIntervalInSeconds" + ProcessorParameterNameSubRecordType ProcessorParameterName = "SubRecordType" + ProcessorParameterNameDelimiter ProcessorParameterName = "Delimiter" ) // Values returns all known values for ProcessorParameterName. Note that this can @@ -364,9 +368,13 @@ func (ProcessorParameterName) Values() []ProcessorParameterName { return []ProcessorParameterName{ "LambdaArn", "NumberOfRetries", + "MetadataExtractionQuery", + "JsonParsingEngine", "RoleArn", "BufferSizeInMBs", "BufferIntervalInSeconds", + "SubRecordType", + "Delimiter", } } @@ -374,7 +382,10 @@ type ProcessorType string // Enum values for ProcessorType const ( - ProcessorTypeLambda ProcessorType = "Lambda" + ProcessorTypeRecordDeAggregation ProcessorType = "RecordDeAggregation" + ProcessorTypeLambda ProcessorType = "Lambda" + ProcessorTypeMetadataExtraction ProcessorType = "MetadataExtraction" + ProcessorTypeAppendDelimiterToRecord ProcessorType = "AppendDelimiterToRecord" ) // Values returns all known values for ProcessorType. Note that this can be @@ -382,7 +393,10 @@ const ( // ordering of this slice is not guaranteed to be stable across updates. func (ProcessorType) Values() []ProcessorType { return []ProcessorType{ + "RecordDeAggregation", "Lambda", + "MetadataExtraction", + "AppendDelimiterToRecord", } } diff --git a/service/firehose/types/types.go b/service/firehose/types/types.go index e010eaf75c9..59eb5dd74ff 100644 --- a/service/firehose/types/types.go +++ b/service/firehose/types/types.go @@ -305,6 +305,25 @@ type DestinationDescription struct { noSmithyDocumentSerde } +// The configuration of the dynamic partitioning mechanism that creates smaller +// data sets from the streaming data by partitioning it based on partition keys. +// Currently, dynamic partitioning is only supported for Amazon S3 destinations. +// For more information, see +// https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html +// (https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html) +type DynamicPartitioningConfiguration struct { + + // Specifies that the dynamic partitioning is enabled for this Kinesis Data + // Firehose delivery stream. + Enabled *bool + + // The retry behavior in case Kinesis Data Firehose is unable to deliver data to an + // Amazon S3 prefix. + RetryOptions *RetryOptions + + noSmithyDocumentSerde +} + // Describes the buffering to perform before delivering data to the Amazon ES // destination. type ElasticsearchBufferingHints struct { @@ -580,6 +599,14 @@ type ExtendedS3DestinationConfiguration struct { // format to the Parquet or ORC format before writing it to Amazon S3. DataFormatConversionConfiguration *DataFormatConversionConfiguration + // The configuration of the dynamic partitioning mechanism that creates smaller + // data sets from the streaming data by partitioning it based on partition keys. + // Currently, dynamic partitioning is only supported for Amazon S3 destinations. + // For more information, see + // https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html + // (https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html) + DynamicPartitioningConfiguration *DynamicPartitioningConfiguration + // The encryption configuration. If no value is specified, the default is no // encryption. EncryptionConfiguration *EncryptionConfiguration @@ -650,6 +677,14 @@ type ExtendedS3DestinationDescription struct { // format to the Parquet or ORC format before writing it to Amazon S3. DataFormatConversionConfiguration *DataFormatConversionConfiguration + // The configuration of the dynamic partitioning mechanism that creates smaller + // data sets from the streaming data by partitioning it based on partition keys. + // Currently, dynamic partitioning is only supported for Amazon S3 destinations. + // For more information, see + // https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html + // (https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html) + DynamicPartitioningConfiguration *DynamicPartitioningConfiguration + // A prefix that Kinesis Data Firehose evaluates and adds to failed records before // writing them to S3. This prefix appears immediately following the bucket name. // For information about how to specify this prefix, see Custom Prefixes for Amazon @@ -695,6 +730,14 @@ type ExtendedS3DestinationUpdate struct { // format to the Parquet or ORC format before writing it to Amazon S3. DataFormatConversionConfiguration *DataFormatConversionConfiguration + // The configuration of the dynamic partitioning mechanism that creates smaller + // data sets from the streaming data by partitioning it based on partition keys. + // Currently, dynamic partitioning is only supported for Amazon S3 destinations. + // For more information, see + // https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html + // (https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html) + DynamicPartitioningConfiguration *DynamicPartitioningConfiguration + // The encryption configuration. If no value is specified, the default is no // encryption. EncryptionConfiguration *EncryptionConfiguration @@ -809,7 +852,10 @@ type HttpEndpointCommonAttribute struct { // delivers data. type HttpEndpointConfiguration struct { - // The URL of the HTTP endpoint selected as the destination. + // The URL of the HTTP endpoint selected as the destination. If you choose an HTTP + // endpoint as your destination, review and follow the instructions in the Appendix + // - HTTP Endpoint Delivery Request and Response Specifications + // (https://docs.aws.amazon.com/firehose/latest/dev/httpdeliveryrequestresponse.html). // // This member is required. Url *string @@ -1447,6 +1493,17 @@ type RedshiftRetryOptions struct { noSmithyDocumentSerde } +// The retry behavior in case Kinesis Data Firehose is unable to deliver data to an +// Amazon S3 prefix. +type RetryOptions struct { + + // The period of time during which Kinesis Data Firehose retries to deliver data to + // the specified Amazon S3 prefix. + DurationInSeconds *int32 + + noSmithyDocumentSerde +} + // Describes the configuration of a destination in Amazon S3. type S3DestinationConfiguration struct { @@ -1603,7 +1660,9 @@ type SchemaConfiguration struct { CatalogId *string // Specifies the name of the AWS Glue database that contains the schema for the - // output data. + // output data. If the SchemaConfiguration request parameter is used as part of + // invoking the CreateDeliveryStream API, then the DatabaseName property is + // required and its value must be specified. DatabaseName *string // If you don't specify an AWS Region, the default is the current Region. @@ -1611,11 +1670,15 @@ type SchemaConfiguration struct { // The role that Kinesis Data Firehose can use to access AWS Glue. This role must // be in the same account you use for Kinesis Data Firehose. Cross-account roles - // aren't allowed. + // aren't allowed. If the SchemaConfiguration request parameter is used as part of + // invoking the CreateDeliveryStream API, then the RoleARN property is required and + // its value must be specified. RoleARN *string // Specifies the AWS Glue table that contains the column information that - // constitutes your data schema. + // constitutes your data schema. If the SchemaConfiguration request parameter is + // used as part of invoking the CreateDeliveryStream API, then the TableName + // property is required and its value must be specified. TableName *string // Specifies the table version for the output data schema. If you don't specify diff --git a/service/frauddetector/internal/endpoints/endpoints.go b/service/frauddetector/internal/endpoints/endpoints.go index f8269aae0af..15064bd22f7 100644 --- a/service/frauddetector/internal/endpoints/endpoints.go +++ b/service/frauddetector/internal/endpoints/endpoints.go @@ -62,6 +62,14 @@ var defaultPartitions = endpoints.Partitions{ }, RegionRegex: partitionRegexp.Aws, IsRegionalized: true, + Endpoints: endpoints.Endpoints{ + "ap-southeast-1": endpoints.Endpoint{}, + "ap-southeast-2": endpoints.Endpoint{}, + "eu-west-1": endpoints.Endpoint{}, + "us-east-1": endpoints.Endpoint{}, + "us-east-2": endpoints.Endpoint{}, + "us-west-2": endpoints.Endpoint{}, + }, }, { ID: "aws-cn", diff --git a/service/fsx/api_op_AssociateFileSystemAliases.go b/service/fsx/api_op_AssociateFileSystemAliases.go index e0ae1d36224..ef3e002bada 100644 --- a/service/fsx/api_op_AssociateFileSystemAliases.go +++ b/service/fsx/api_op_AssociateFileSystemAliases.go @@ -13,7 +13,7 @@ import ( ) // Use this action to associate one or more Domain Name Server (DNS) aliases with -// an existing Amazon FSx for Windows File Server file system. A file systen can +// an existing Amazon FSx for Windows File Server file system. A file system can // have a maximum of 50 DNS aliases associated with it at any one time. If you try // to associate a DNS alias that is already associated with the file system, FSx // takes no action on that alias in the request. For more information, see Working @@ -74,7 +74,7 @@ type AssociateFileSystemAliasesInput struct { // (Optional) An idempotency token for resource creation, in a string of up to 64 // ASCII characters. This token is automatically filled on your behalf when you use - // the AWS Command Line Interface (AWS CLI) or an AWS SDK. + // the Command Line Interface (CLI) or an Amazon Web Services SDK. ClientRequestToken *string noSmithyDocumentSerde diff --git a/service/fsx/api_op_CopyBackup.go b/service/fsx/api_op_CopyBackup.go index 87b9d2ee62f..ea03790d169 100644 --- a/service/fsx/api_op_CopyBackup.go +++ b/service/fsx/api_op_CopyBackup.go @@ -12,18 +12,19 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Copies an existing backup within the same AWS account to another Region -// (cross-Region copy) or within the same Region (in-Region copy). You can have up -// to five backup copy requests in progress to a single destination Region per -// account. You can use cross-Region backup copies for cross-region disaster -// recovery. You periodically take backups and copy them to another Region so that -// in the event of a disaster in the primary Region, you can restore from backup -// and recover availability quickly in the other Region. You can make cross-Region -// copies only within your AWS partition. You can also use backup copies to clone -// your file data set to another Region or within the same Region. You can use the -// SourceRegion parameter to specify the AWS Region from which the backup will be -// copied. For example, if you make the call from the us-west-1 Region and want to -// copy a backup from the us-east-2 Region, you specify us-east-2 in the +// Copies an existing backup within the same Amazon Web Services account to another +// Amazon Web Services Region (cross-Region copy) or within the same Amazon Web +// Services Region (in-Region copy). You can have up to five backup copy requests +// in progress to a single destination Region per account. You can use cross-Region +// backup copies for cross-region disaster recovery. You periodically take backups +// and copy them to another Region so that in the event of a disaster in the +// primary Region, you can restore from backup and recover availability quickly in +// the other Region. You can make cross-Region copies only within your Amazon Web +// Services partition. You can also use backup copies to clone your file data set +// to another Region or within the same Region. You can use the SourceRegion +// parameter to specify the Amazon Web Services Region from which the backup will +// be copied. For example, if you make the call from the us-west-1 Region and want +// to copy a backup from the us-east-2 Region, you specify us-east-2 in the // SourceRegion parameter to make a cross-Region copy. If you don't specify a // Region, the backup copy is created in the same Region where the request is sent // from (in-Region copy). For more information on creating backup copies, see @@ -57,7 +58,7 @@ type CopyBackupInput struct { // (Optional) An idempotency token for resource creation, in a string of up to 64 // ASCII characters. This token is automatically filled on your behalf when you use - // the AWS Command Line Interface (AWS CLI) or an AWS SDK. + // the Command Line Interface (CLI) or an Amazon Web Services SDK. ClientRequestToken *string // A boolean flag indicating whether tags from the source backup should be copied @@ -69,20 +70,21 @@ type CopyBackupInput struct { // with the Tags parameter take precedence. CopyTags *bool - // The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the file - // system's data for Amazon FSx for Windows File Server file systems and Amazon FSx - // for Lustre PERSISTENT_1 file systems at rest. In either case, if not specified, - // the Amazon FSx managed key is used. The Amazon FSx for Lustre SCRATCH_1 and - // SCRATCH_2 file systems are always encrypted at rest using Amazon FSx managed - // keys. For more information, see Encrypt + // The ID of the Key Management Service (KMS) key used to encrypt the file system's + // data for Amazon FSx for Windows File Server file systems, Amazon FSx for NetApp + // ONTAP file systems, and Amazon FSx for Lustre PERSISTENT_1 file systems at rest. + // If not specified, the Amazon FSx managed key is used. The Amazon FSx for Lustre + // SCRATCH_1 and SCRATCH_2 file systems are always encrypted at rest using Amazon + // FSx managed keys. For more information, see Encrypt // (https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html) in the - // AWS Key Management Service API Reference. + // Key Management Service API Reference. KmsKeyId *string - // The source AWS Region of the backup. Specifies the AWS Region from which the - // backup is being copied. The source and destination Regions must be in the same - // AWS partition. If you don't specify a Region, it defaults to the Region where - // the request is sent from (in-Region copy). + // The source Amazon Web Services Region of the backup. Specifies the Amazon Web + // Services Region from which the backup is being copied. The source and + // destination Regions must be in the same Amazon Web Services partition. If you + // don't specify a Region, it defaults to the Region where the request is sent from + // (in-Region copy). SourceRegion *string // A list of Tag values, with a maximum of 50 elements. @@ -93,7 +95,8 @@ type CopyBackupInput struct { type CopyBackupOutput struct { - // A backup of an Amazon FSx file system. + // A backup of an Amazon FSx for Windows File Server or Amazon FSx for Lustre file + // system, or of an Amazon FSx for NetApp ONTAP volume. Backup *types.Backup // Metadata pertaining to the operation's result. diff --git a/service/fsx/api_op_CreateBackup.go b/service/fsx/api_op_CreateBackup.go index ae0ad16c28f..be3ca1d288a 100644 --- a/service/fsx/api_op_CreateBackup.go +++ b/service/fsx/api_op_CreateBackup.go @@ -12,23 +12,33 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a backup of an existing Amazon FSx file system. Creating regular backups -// for your file system is a best practice, enabling you to restore a file system -// from a backup if an issue arises with the original file system. For Amazon FSx -// for Lustre file systems, you can create a backup only for file systems with the -// following configuration: +// Creates a backup of an existing Amazon FSx for Windows File Server or Amazon FSx +// for Lustre file system, or of an Amazon FSx for NetApp ONTAP volume. Creating +// regular backups is a best practice, enabling you to restore a file system or +// volume from a backup if an issue arises with the original file system or volume. +// For Amazon FSx for Lustre file systems, you can create a backup only for file +// systems with the following configuration: // // * a Persistent deployment type // -// * is not linked to a -// data respository. +// * is +// not linked to a data repository. // -// For more information about backing up Amazon FSx for Lustre -// file systems, see Working with FSx for Lustre backups -// (https://docs.aws.amazon.com/fsx/latest/LustreGuide/using-backups-fsx.html). For -// more information about backing up Amazon FSx for Windows file systems, see -// Working with FSx for Windows backups -// (https://docs.aws.amazon.com/fsx/latest/WindowsGuide/using-backups.html). If a +// For more information about backups, see the +// following: +// +// * For Amazon FSx for Lustre, see Working with FSx for Lustre backups +// (https://docs.aws.amazon.com/fsx/latest/LustreGuide/using-backups-fsx.html). +// +// * +// For Amazon FSx for Windows, see Working with FSx for Windows backups +// (https://docs.aws.amazon.com/fsx/latest/WindowsGuide/using-backups.html). +// +// * For +// Amazon FSx for NetApp ONTAP, see Working with FSx for NetApp ONTAP backups +// (https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/using-backups.html). +// +// If a // backup with the specified client request token exists, and the parameters match, // this operation returns the description of the existing backup. If a backup // specified client request token exists, and the parameters don't match, this @@ -68,16 +78,14 @@ func (c *Client) CreateBackup(ctx context.Context, params *CreateBackupInput, op // The request object for the CreateBackup operation. type CreateBackupInput struct { - // The ID of the file system to back up. - // - // This member is required. - FileSystemId *string - // (Optional) A string of up to 64 ASCII characters that Amazon FSx uses to ensure // idempotent creation. This string is automatically filled on your behalf when you - // use the AWS Command Line Interface (AWS CLI) or an AWS SDK. + // use the Command Line Interface (CLI) or an Amazon Web Services SDK. ClientRequestToken *string + // The ID of the file system to back up. + FileSystemId *string + // (Optional) The tags to apply to the backup at backup creation. The key value of // the Name tag appears in the console as the backup name. If you have set // CopyTagsToBackups to true, and you specify one or more tags using the @@ -85,6 +93,9 @@ type CreateBackupInput struct { // system to the backup. Tags []types.Tag + // The ID of he FSx for NetApp ONTAP volume to back up. + VolumeId *string + noSmithyDocumentSerde } diff --git a/service/fsx/api_op_CreateDataRepositoryTask.go b/service/fsx/api_op_CreateDataRepositoryTask.go index b24c59120c4..419eb44e12e 100644 --- a/service/fsx/api_op_CreateDataRepositoryTask.go +++ b/service/fsx/api_op_CreateDataRepositoryTask.go @@ -62,7 +62,7 @@ type CreateDataRepositoryTaskInput struct { // (Optional) An idempotency token for resource creation, in a string of up to 64 // ASCII characters. This token is automatically filled on your behalf when you use - // the AWS Command Line Interface (AWS CLI) or an AWS SDK. + // the Command Line Interface (CLI) or an Amazon Web Services SDK. ClientRequestToken *string // (Optional) The path or paths on the Amazon FSx file system to use when the data diff --git a/service/fsx/api_op_CreateFileSystem.go b/service/fsx/api_op_CreateFileSystem.go index 043c7861b0c..518b7d32dae 100644 --- a/service/fsx/api_op_CreateFileSystem.go +++ b/service/fsx/api_op_CreateFileSystem.go @@ -56,7 +56,8 @@ func (c *Client) CreateFileSystem(ctx context.Context, params *CreateFileSystemI // The request object used to create a new Amazon FSx file system. type CreateFileSystemInput struct { - // The type of Amazon FSx file system to create, either WINDOWS or LUSTRE. + // The type of Amazon FSx file system to create. Valid values are WINDOWS, LUSTRE, + // and ONTAP. // // This member is required. FileSystemType types.FileSystemType @@ -83,41 +84,53 @@ type CreateFileSystemInput struct { // * If StorageType=HDD, valid values are 2000 GiB - // 65,536 GiB (64 TiB). // + // For ONTAP file systems: + // + // * Valid values are 1024 GiB - + // 196,608 GiB (192 TiB). + // // This member is required. StorageCapacity *int32 // Specifies the IDs of the subnets that the file system will be accessible from. - // For Windows MULTI_AZ_1 file system deployment types, provide exactly two subnet - // IDs, one for the preferred file server and one for the standby file server. You - // specify one of these subnets as the preferred subnet using the - // WindowsConfiguration > PreferredSubnetID property. For more information, see - // Availability and durability: Single-AZ and Multi-AZ file systems - // (https://docs.aws.amazon.com/fsx/latest/WindowsGuide/high-availability-multiAZ.html). - // For Windows SINGLE_AZ_1 and SINGLE_AZ_2 file system deployment types and Lustre - // file systems, provide exactly one subnet ID. The file server is launched in that - // subnet's Availability Zone. + // For Windows and ONTAP MULTI_AZ_1 file system deployment types, provide exactly + // two subnet IDs, one for the preferred file server and one for the standby file + // server. You specify one of these subnets as the preferred subnet using the + // WindowsConfiguration > PreferredSubnetID or OntapConfiguration > + // PreferredSubnetID properties. For more information, see Availability and + // durability: Single-AZ and Multi-AZ file systems + // (https://docs.aws.amazon.com/fsx/latest/WindowsGuide/high-availability-multiAZ.html) + // in the Amazon FSx for Windows User Guide and Availability and durability + // (https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/high-availability-multiAZ.html) + // in the Amazon FSx for ONTAP User Guide. For Windows SINGLE_AZ_1 and SINGLE_AZ_2 + // file system deployment types and Lustre file systems, provide exactly one subnet + // ID. The file server is launched in that subnet's Availability Zone. // // This member is required. SubnetIds []string // A string of up to 64 ASCII characters that Amazon FSx uses to ensure idempotent // creation. This string is automatically filled on your behalf when you use the - // AWS Command Line Interface (AWS CLI) or an AWS SDK. + // Command Line Interface (CLI) or an Amazon Web Services SDK. ClientRequestToken *string - // The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the file - // system's data for Amazon FSx for Windows File Server file systems and Amazon FSx - // for Lustre PERSISTENT_1 file systems at rest. In either case, if not specified, - // the Amazon FSx managed key is used. The Amazon FSx for Lustre SCRATCH_1 and - // SCRATCH_2 file systems are always encrypted at rest using Amazon FSx managed - // keys. For more information, see Encrypt + // The ID of the Key Management Service (KMS) key used to encrypt the file system's + // data for Amazon FSx for Windows File Server file systems, Amazon FSx for NetApp + // ONTAP file systems, and Amazon FSx for Lustre PERSISTENT_1 file systems at rest. + // If not specified, the Amazon FSx managed key is used. The Amazon FSx for Lustre + // SCRATCH_1 and SCRATCH_2 file systems are always encrypted at rest using Amazon + // FSx managed keys. For more information, see Encrypt // (https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html) in the - // AWS Key Management Service API Reference. + // Key Management Service API Reference. KmsKeyId *string // The Lustre configuration for the file system being created. LustreConfiguration *types.CreateFileSystemLustreConfiguration + // The ONTAP configuration properties of the FSx for NetApp ONTAP file system that + // you are creating. + OntapConfiguration *types.CreateFileSystemOntapConfiguration + // A list of IDs specifying the security groups to apply to all network interfaces // created for file system access. This list isn't returned in later requests to // describe the file system. @@ -127,11 +140,11 @@ type CreateFileSystemInput struct { // and HDD. // // * Set to SSD to use solid state drive storage. SSD is supported on all - // Windows and Lustre deployment types. + // Windows, Lustre, and ONTAP deployment types. // - // * Set to HDD to use hard disk drive - // storage. HDD is supported on SINGLE_AZ_2 and MULTI_AZ_1 Windows file system - // deployment types, and on PERSISTENT Lustre file system deployment + // * Set to HDD to use hard disk + // drive storage. HDD is supported on SINGLE_AZ_2 and MULTI_AZ_1 Windows file + // system deployment types, and on PERSISTENT Lustre file system deployment // types. // // Default value is SSD. For more information, see Storage Type Options diff --git a/service/fsx/api_op_CreateFileSystemFromBackup.go b/service/fsx/api_op_CreateFileSystemFromBackup.go index b6eb488c156..2fa6e82a553 100644 --- a/service/fsx/api_op_CreateFileSystemFromBackup.go +++ b/service/fsx/api_op_CreateFileSystemFromBackup.go @@ -12,33 +12,34 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a new Amazon FSx file system from an existing Amazon FSx backup. If a -// file system with the specified client request token exists and the parameters -// match, this operation returns the description of the file system. If a client -// request token specified by the file system exists and the parameters don't -// match, this call returns IncompatibleParameterError. If a file system with the -// specified client request token doesn't exist, this operation does the -// following: +// Creates a new Amazon FSx for Lustre or Amazon FSx for Windows File Server file +// system from an existing Amazon FSx backup. If a file system with the specified +// client request token exists and the parameters match, this operation returns the +// description of the file system. If a client request token specified by the file +// system exists and the parameters don't match, this call returns +// IncompatibleParameterError. If a file system with the specified client request +// token doesn't exist, this operation does the following: // -// * Creates a new Amazon FSx file system from backup with an assigned -// ID, and an initial lifecycle state of CREATING. +// * Creates a new Amazon +// FSx file system from backup with an assigned ID, and an initial lifecycle state +// of CREATING. // -// * Returns the description of -// the file system. +// * Returns the description of the file system. // -// Parameters like Active Directory, default share name, -// automatic backup, and backup settings default to the parameters of the file -// system that was backed up, unless overridden. You can explicitly supply other -// settings. By using the idempotent operation, you can retry a -// CreateFileSystemFromBackup call without the risk of creating an extra file -// system. This approach can be useful when an initial call fails in a way that -// makes it unclear whether a file system was created. Examples are if a transport -// level timeout occurred, or your connection was reset. If you use the same client -// request token and the initial call created a file system, the client receives -// success as long as the parameters are the same. The CreateFileSystemFromBackup -// call returns while the file system's lifecycle state is still CREATING. You can -// check the file-system creation status by calling the DescribeFileSystems -// operation, which returns the file system state along with other information. +// Parameters like +// Active Directory, default share name, automatic backup, and backup settings +// default to the parameters of the file system that was backed up, unless +// overridden. You can explicitly supply other settings. By using the idempotent +// operation, you can retry a CreateFileSystemFromBackup call without the risk of +// creating an extra file system. This approach can be useful when an initial call +// fails in a way that makes it unclear whether a file system was created. Examples +// are if a transport level timeout occurred, or your connection was reset. If you +// use the same client request token and the initial call created a file system, +// the client receives success as long as the parameters are the same. The +// CreateFileSystemFromBackup call returns while the file system's lifecycle state +// is still CREATING. You can check the file-system creation status by calling the +// DescribeFileSystems operation, which returns the file system state along with +// other information. func (c *Client) CreateFileSystemFromBackup(ctx context.Context, params *CreateFileSystemFromBackupInput, optFns ...func(*Options)) (*CreateFileSystemFromBackupOutput, error) { if params == nil { params = &CreateFileSystemFromBackupInput{} @@ -75,17 +76,17 @@ type CreateFileSystemFromBackupInput struct { // A string of up to 64 ASCII characters that Amazon FSx uses to ensure idempotent // creation. This string is automatically filled on your behalf when you use the - // AWS Command Line Interface (AWS CLI) or an AWS SDK. + // Command Line Interface (CLI) or an Amazon Web Services SDK. ClientRequestToken *string - // The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the file - // system's data for Amazon FSx for Windows File Server file systems and Amazon FSx - // for Lustre PERSISTENT_1 file systems at rest. In either case, if not specified, - // the Amazon FSx managed key is used. The Amazon FSx for Lustre SCRATCH_1 and - // SCRATCH_2 file systems are always encrypted at rest using Amazon FSx managed - // keys. For more information, see Encrypt + // The ID of the Key Management Service (KMS) key used to encrypt the file system's + // data for Amazon FSx for Windows File Server file systems, Amazon FSx for NetApp + // ONTAP file systems, and Amazon FSx for Lustre PERSISTENT_1 file systems at rest. + // If not specified, the Amazon FSx managed key is used. The Amazon FSx for Lustre + // SCRATCH_1 and SCRATCH_2 file systems are always encrypted at rest using Amazon + // FSx managed keys. For more information, see Encrypt // (https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html) in the - // AWS Key Management Service API Reference. + // Key Management Service API Reference. KmsKeyId *string // The Lustre configuration for the file system being created. diff --git a/service/fsx/api_op_CreateStorageVirtualMachine.go b/service/fsx/api_op_CreateStorageVirtualMachine.go new file mode 100644 index 00000000000..5be041405c2 --- /dev/null +++ b/service/fsx/api_op_CreateStorageVirtualMachine.go @@ -0,0 +1,199 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package fsx + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/fsx/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Creates a storage virtual machine (SVM) for an Amazon FSx for ONTAP file system. +func (c *Client) CreateStorageVirtualMachine(ctx context.Context, params *CreateStorageVirtualMachineInput, optFns ...func(*Options)) (*CreateStorageVirtualMachineOutput, error) { + if params == nil { + params = &CreateStorageVirtualMachineInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateStorageVirtualMachine", params, optFns, c.addOperationCreateStorageVirtualMachineMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateStorageVirtualMachineOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreateStorageVirtualMachineInput struct { + + // The globally unique ID of the file system, assigned by Amazon FSx. + // + // This member is required. + FileSystemId *string + + // The name of the SVM. + // + // This member is required. + Name *string + + // Describes the self-managed Microsoft Active Directory to which you want to join + // the SVM. Joining an Active Directory provides user authentication and access + // control for SMB clients, including Microsoft Windows and macOS client accessing + // the file system. + ActiveDirectoryConfiguration *types.CreateSvmActiveDirectoryConfiguration + + // (Optional) An idempotency token for resource creation, in a string of up to 64 + // ASCII characters. This token is automatically filled on your behalf when you use + // the Command Line Interface (CLI) or an Amazon Web Services SDK. + ClientRequestToken *string + + // The security style of the root volume of the SVM. Specify one of the following + // values: + // + // * UNIX if the file system is managed by a UNIX administrator, the + // majority of users are NFS clients, and an application accessing the data uses a + // UNIX user as the service account. + // + // * NTFS if the file system is managed by a + // Windows administrator, the majority of users are SMB clients, and an application + // accessing the data uses a Windows user as the service account. + // + // * MIXED if the + // file system is managed by both UNIX and Windows administrators and users consist + // of both NFS and SMB clients. + RootVolumeSecurityStyle types.StorageVirtualMachineRootVolumeSecurityStyle + + // The password to use when managing the SVM using the NetApp ONTAP CLI or REST + // API. If you do not specify a password, you can still use the file system's + // fsxadmin user to manage the SVM. + SvmAdminPassword *string + + // A list of Tag values, with a maximum of 50 elements. + Tags []types.Tag + + noSmithyDocumentSerde +} + +type CreateStorageVirtualMachineOutput struct { + + // Returned after a successful CreateStorageVirtualMachine operation; describes the + // SVM just created. + StorageVirtualMachine *types.StorageVirtualMachine + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateStorageVirtualMachineMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpCreateStorageVirtualMachine{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpCreateStorageVirtualMachine{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addIdempotencyToken_opCreateStorageVirtualMachineMiddleware(stack, options); err != nil { + return err + } + if err = addOpCreateStorageVirtualMachineValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateStorageVirtualMachine(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +type idempotencyToken_initializeOpCreateStorageVirtualMachine struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpCreateStorageVirtualMachine) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpCreateStorageVirtualMachine) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + if m.tokenProvider == nil { + return next.HandleInitialize(ctx, in) + } + + input, ok := in.Parameters.(*CreateStorageVirtualMachineInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *CreateStorageVirtualMachineInput ") + } + + if input.ClientRequestToken == nil { + t, err := m.tokenProvider.GetIdempotencyToken() + if err != nil { + return out, metadata, err + } + input.ClientRequestToken = &t + } + return next.HandleInitialize(ctx, in) +} +func addIdempotencyToken_opCreateStorageVirtualMachineMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpCreateStorageVirtualMachine{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opCreateStorageVirtualMachine(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "fsx", + OperationName: "CreateStorageVirtualMachine", + } +} diff --git a/service/fsx/api_op_CreateVolume.go b/service/fsx/api_op_CreateVolume.go new file mode 100644 index 00000000000..fa619461cdc --- /dev/null +++ b/service/fsx/api_op_CreateVolume.go @@ -0,0 +1,175 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package fsx + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/fsx/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Creates an Amazon FSx for NetApp ONTAP storage volume. +func (c *Client) CreateVolume(ctx context.Context, params *CreateVolumeInput, optFns ...func(*Options)) (*CreateVolumeOutput, error) { + if params == nil { + params = &CreateVolumeInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateVolume", params, optFns, c.addOperationCreateVolumeMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateVolumeOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreateVolumeInput struct { + + // Specifies the name of the volume you're creating. + // + // This member is required. + Name *string + + // Specifies the type of volume to create; ONTAP is the only valid volume type. + // + // This member is required. + VolumeType types.VolumeType + + // (Optional) An idempotency token for resource creation, in a string of up to 64 + // ASCII characters. This token is automatically filled on your behalf when you use + // the Command Line Interface (CLI) or an Amazon Web Services SDK. + ClientRequestToken *string + + // Specifies the ONTAP configuration to use in creating the volume. + OntapConfiguration *types.CreateOntapVolumeConfiguration + + // A list of Tag values, with a maximum of 50 elements. + Tags []types.Tag + + noSmithyDocumentSerde +} + +type CreateVolumeOutput struct { + + // Returned after a successful CreateVolume API operation, describing the volume + // just created. + Volume *types.Volume + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateVolumeMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpCreateVolume{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpCreateVolume{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addIdempotencyToken_opCreateVolumeMiddleware(stack, options); err != nil { + return err + } + if err = addOpCreateVolumeValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateVolume(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +type idempotencyToken_initializeOpCreateVolume struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpCreateVolume) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpCreateVolume) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + if m.tokenProvider == nil { + return next.HandleInitialize(ctx, in) + } + + input, ok := in.Parameters.(*CreateVolumeInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *CreateVolumeInput ") + } + + if input.ClientRequestToken == nil { + t, err := m.tokenProvider.GetIdempotencyToken() + if err != nil { + return out, metadata, err + } + input.ClientRequestToken = &t + } + return next.HandleInitialize(ctx, in) +} +func addIdempotencyToken_opCreateVolumeMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpCreateVolume{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opCreateVolume(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "fsx", + OperationName: "CreateVolume", + } +} diff --git a/service/fsx/api_op_CreateVolumeFromBackup.go b/service/fsx/api_op_CreateVolumeFromBackup.go new file mode 100644 index 00000000000..0e06cafff5d --- /dev/null +++ b/service/fsx/api_op_CreateVolumeFromBackup.go @@ -0,0 +1,176 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package fsx + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/fsx/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Creates a new Amazon FSx for NetApp ONTAP volume from an existing Amazon FSx +// volume backup. +func (c *Client) CreateVolumeFromBackup(ctx context.Context, params *CreateVolumeFromBackupInput, optFns ...func(*Options)) (*CreateVolumeFromBackupOutput, error) { + if params == nil { + params = &CreateVolumeFromBackupInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateVolumeFromBackup", params, optFns, c.addOperationCreateVolumeFromBackupMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateVolumeFromBackupOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreateVolumeFromBackupInput struct { + + // The ID of the source backup. Specifies the backup you are copying. + // + // This member is required. + BackupId *string + + // The name of the new volume you're creating. + // + // This member is required. + Name *string + + // (Optional) An idempotency token for resource creation, in a string of up to 64 + // ASCII characters. This token is automatically filled on your behalf when you use + // the Command Line Interface (CLI) or an Amazon Web Services SDK. + ClientRequestToken *string + + // Specifies the configuration of the ONTAP volume that you are creating. + OntapConfiguration *types.CreateOntapVolumeConfiguration + + // A list of Tag values, with a maximum of 50 elements. + Tags []types.Tag + + noSmithyDocumentSerde +} + +type CreateVolumeFromBackupOutput struct { + + // Returned after a successful CreateVolumeFromBackup API operation, describing the + // volume just created. + Volume *types.Volume + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateVolumeFromBackupMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpCreateVolumeFromBackup{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpCreateVolumeFromBackup{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addIdempotencyToken_opCreateVolumeFromBackupMiddleware(stack, options); err != nil { + return err + } + if err = addOpCreateVolumeFromBackupValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateVolumeFromBackup(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +type idempotencyToken_initializeOpCreateVolumeFromBackup struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpCreateVolumeFromBackup) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpCreateVolumeFromBackup) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + if m.tokenProvider == nil { + return next.HandleInitialize(ctx, in) + } + + input, ok := in.Parameters.(*CreateVolumeFromBackupInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *CreateVolumeFromBackupInput ") + } + + if input.ClientRequestToken == nil { + t, err := m.tokenProvider.GetIdempotencyToken() + if err != nil { + return out, metadata, err + } + input.ClientRequestToken = &t + } + return next.HandleInitialize(ctx, in) +} +func addIdempotencyToken_opCreateVolumeFromBackupMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpCreateVolumeFromBackup{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opCreateVolumeFromBackup(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "fsx", + OperationName: "CreateVolumeFromBackup", + } +} diff --git a/service/fsx/api_op_DeleteBackup.go b/service/fsx/api_op_DeleteBackup.go index 6771242b1a3..8e4f0b9b8c2 100644 --- a/service/fsx/api_op_DeleteBackup.go +++ b/service/fsx/api_op_DeleteBackup.go @@ -40,8 +40,7 @@ type DeleteBackupInput struct { BackupId *string // A string of up to 64 ASCII characters that Amazon FSx uses to ensure idempotent - // deletion. This is automatically filled on your behalf when using the AWS CLI or - // SDK. + // deletion. This is automatically filled on your behalf when using the CLI or SDK. ClientRequestToken *string noSmithyDocumentSerde diff --git a/service/fsx/api_op_DeleteFileSystem.go b/service/fsx/api_op_DeleteFileSystem.go index ef2d69c2d7f..28d8bc43bff 100644 --- a/service/fsx/api_op_DeleteFileSystem.go +++ b/service/fsx/api_op_DeleteFileSystem.go @@ -14,17 +14,19 @@ import ( // Deletes a file system, deleting its contents. After deletion, the file system no // longer exists, and its data is gone. Any existing automatic backups will also be -// deleted. By default, when you delete an Amazon FSx for Windows File Server file -// system, a final backup is created upon deletion. This final backup is not -// subject to the file system's retention policy, and must be manually deleted. The -// DeleteFileSystem action returns while the file system has the DELETING status. -// You can check the file system deletion status by calling the DescribeFileSystems -// action, which returns a list of file systems in your account. If you pass the -// file system ID for a deleted file system, the DescribeFileSystems returns a -// FileSystemNotFound error. Deleting an Amazon FSx for Lustre file system will -// fail with a 400 BadRequest if a data repository task is in a PENDING or -// EXECUTING state. The data in a deleted file system is also deleted and can't be -// recovered by any means. +// deleted. To delete an Amazon FSx for NetApp ONTAP file system, first delete all +// the volumes and SVMs on the file system. Then provide a FileSystemId value to +// the DeleFileSystem operation. By default, when you delete an Amazon FSx for +// Windows File Server file system, a final backup is created upon deletion. This +// final backup is not subject to the file system's retention policy, and must be +// manually deleted. The DeleteFileSystem action returns while the file system has +// the DELETING status. You can check the file system deletion status by calling +// the DescribeFileSystems action, which returns a list of file systems in your +// account. If you pass the file system ID for a deleted file system, the +// DescribeFileSystems returns a FileSystemNotFound error. Deleting an Amazon FSx +// for Lustre file system will fail with a 400 BadRequest if a data repository task +// is in a PENDING or EXECUTING state. The data in a deleted file system is also +// deleted and can't be recovered by any means. func (c *Client) DeleteFileSystem(ctx context.Context, params *DeleteFileSystemInput, optFns ...func(*Options)) (*DeleteFileSystemOutput, error) { if params == nil { params = &DeleteFileSystemInput{} @@ -49,8 +51,8 @@ type DeleteFileSystemInput struct { FileSystemId *string // A string of up to 64 ASCII characters that Amazon FSx uses to ensure idempotent - // deletion. This is automatically filled on your behalf when using the AWS CLI or - // SDK. + // deletion. This is automatically filled on your behalf when using the Command + // Line Interface (CLI) or an Amazon Web Services SDK. ClientRequestToken *string // The configuration object for the Amazon FSx for Lustre file system being deleted diff --git a/service/fsx/api_op_DeleteStorageVirtualMachine.go b/service/fsx/api_op_DeleteStorageVirtualMachine.go new file mode 100644 index 00000000000..cb273a7ee18 --- /dev/null +++ b/service/fsx/api_op_DeleteStorageVirtualMachine.go @@ -0,0 +1,168 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package fsx + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/fsx/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Deletes an existing Amazon FSx for ONTAP storage virtual machine (SVM). Prior to +// deleting an SVM, you must delete all non-root volumes in the SVM, otherwise the +// operation will fail. +func (c *Client) DeleteStorageVirtualMachine(ctx context.Context, params *DeleteStorageVirtualMachineInput, optFns ...func(*Options)) (*DeleteStorageVirtualMachineOutput, error) { + if params == nil { + params = &DeleteStorageVirtualMachineInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeleteStorageVirtualMachine", params, optFns, c.addOperationDeleteStorageVirtualMachineMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeleteStorageVirtualMachineOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeleteStorageVirtualMachineInput struct { + + // The ID of the SVM that you want to delete. + // + // This member is required. + StorageVirtualMachineId *string + + // (Optional) An idempotency token for resource creation, in a string of up to 64 + // ASCII characters. This token is automatically filled on your behalf when you use + // the Command Line Interface (CLI) or an Amazon Web Services SDK. + ClientRequestToken *string + + noSmithyDocumentSerde +} + +type DeleteStorageVirtualMachineOutput struct { + + // Describes the lifecycle state of the SVM being deleted. + Lifecycle types.StorageVirtualMachineLifecycle + + // The ID of the SVM Amazon FSx is deleting. + StorageVirtualMachineId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeleteStorageVirtualMachineMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpDeleteStorageVirtualMachine{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDeleteStorageVirtualMachine{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addIdempotencyToken_opDeleteStorageVirtualMachineMiddleware(stack, options); err != nil { + return err + } + if err = addOpDeleteStorageVirtualMachineValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteStorageVirtualMachine(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +type idempotencyToken_initializeOpDeleteStorageVirtualMachine struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpDeleteStorageVirtualMachine) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpDeleteStorageVirtualMachine) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + if m.tokenProvider == nil { + return next.HandleInitialize(ctx, in) + } + + input, ok := in.Parameters.(*DeleteStorageVirtualMachineInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *DeleteStorageVirtualMachineInput ") + } + + if input.ClientRequestToken == nil { + t, err := m.tokenProvider.GetIdempotencyToken() + if err != nil { + return out, metadata, err + } + input.ClientRequestToken = &t + } + return next.HandleInitialize(ctx, in) +} +func addIdempotencyToken_opDeleteStorageVirtualMachineMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpDeleteStorageVirtualMachine{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opDeleteStorageVirtualMachine(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "fsx", + OperationName: "DeleteStorageVirtualMachine", + } +} diff --git a/service/fsx/api_op_DeleteVolume.go b/service/fsx/api_op_DeleteVolume.go new file mode 100644 index 00000000000..cc8f3ca6c53 --- /dev/null +++ b/service/fsx/api_op_DeleteVolume.go @@ -0,0 +1,176 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package fsx + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/fsx/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Deletes an Amazon FSx for NetApp ONTAP volume. When deleting a volume, you have +// the option of creating a final backup. If you create a final backup, you have +// the option to apply Tags to the backup. You need to have fsx:TagResource +// permission in order to apply tags to the backup. +func (c *Client) DeleteVolume(ctx context.Context, params *DeleteVolumeInput, optFns ...func(*Options)) (*DeleteVolumeOutput, error) { + if params == nil { + params = &DeleteVolumeInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeleteVolume", params, optFns, c.addOperationDeleteVolumeMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeleteVolumeOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeleteVolumeInput struct { + + // The ID of the volume you are deleting. + // + // This member is required. + VolumeId *string + + // (Optional) An idempotency token for resource creation, in a string of up to 64 + // ASCII characters. This token is automatically filled on your behalf when you use + // the Command Line Interface (CLI) or an Amazon Web Services SDK. + ClientRequestToken *string + + // For Amazon FSx for ONTAP volumes, specify whether to take a final backup of the + // volume, and apply tags to the backup. + OntapConfiguration *types.DeleteVolumeOntapConfiguration + + noSmithyDocumentSerde +} + +type DeleteVolumeOutput struct { + + // Describes the lifecycle state of the volume being deleted. + Lifecycle types.VolumeLifecycle + + // Returned after a DeleteVolume request, showing the status of the delete request. + OntapResponse *types.DeleteVolumeOntapResponse + + // The ID of the volume being deleted. + VolumeId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeleteVolumeMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpDeleteVolume{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDeleteVolume{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addIdempotencyToken_opDeleteVolumeMiddleware(stack, options); err != nil { + return err + } + if err = addOpDeleteVolumeValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteVolume(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +type idempotencyToken_initializeOpDeleteVolume struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpDeleteVolume) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpDeleteVolume) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + if m.tokenProvider == nil { + return next.HandleInitialize(ctx, in) + } + + input, ok := in.Parameters.(*DeleteVolumeInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *DeleteVolumeInput ") + } + + if input.ClientRequestToken == nil { + t, err := m.tokenProvider.GetIdempotencyToken() + if err != nil { + return out, metadata, err + } + input.ClientRequestToken = &t + } + return next.HandleInitialize(ctx, in) +} +func addIdempotencyToken_opDeleteVolumeMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpDeleteVolume{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opDeleteVolume(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "fsx", + OperationName: "DeleteVolume", + } +} diff --git a/service/fsx/api_op_DescribeBackups.go b/service/fsx/api_op_DescribeBackups.go index c16a61eac28..a73c4a4c3f7 100644 --- a/service/fsx/api_op_DescribeBackups.go +++ b/service/fsx/api_op_DescribeBackups.go @@ -13,25 +13,25 @@ import ( ) // Returns the description of specific Amazon FSx backups, if a BackupIds value is -// provided for that backup. Otherwise, it returns all backups owned by your AWS -// account in the AWS Region of the endpoint that you're calling. When retrieving -// all backups, you can optionally specify the MaxResults parameter to limit the -// number of backups in a response. If more backups remain, Amazon FSx returns a -// NextToken value in the response. In this case, send a later request with the -// NextToken request parameter set to the value of NextToken from the last -// response. This action is used in an iterative process to retrieve a list of your -// backups. DescribeBackups is called first without a NextTokenvalue. Then the -// action continues to be called with the NextToken parameter set to the value of -// the last NextToken value until a response has no NextToken. When using this -// action, keep the following in mind: +// provided for that backup. Otherwise, it returns all backups owned by your Amazon +// Web Services account in the Amazon Web Services Region of the endpoint that +// you're calling. When retrieving all backups, you can optionally specify the +// MaxResults parameter to limit the number of backups in a response. If more +// backups remain, Amazon FSx returns a NextToken value in the response. In this +// case, send a later request with the NextToken request parameter set to the value +// of NextToken from the last response. This action is used in an iterative process +// to retrieve a list of your backups. DescribeBackups is called first without a +// NextTokenvalue. Then the action continues to be called with the NextToken +// parameter set to the value of the last NextToken value until a response has no +// NextToken. When using this action, keep the following in mind: // -// * The implementation might return fewer -// than MaxResults file system descriptions while still including a NextToken -// value. +// * The +// implementation might return fewer than MaxResults backup descriptions while +// still including a NextToken value. // -// * The order of backups returned in the response of one DescribeBackups -// call and the order of backups returned across the responses of a multi-call -// iteration is unspecified. +// * The order of backups returned in the +// response of one DescribeBackups call and the order of backups returned across +// the responses of a multi-call iteration is unspecified. func (c *Client) DescribeBackups(ctx context.Context, params *DescribeBackupsInput, optFns ...func(*Options)) (*DescribeBackupsOutput, error) { if params == nil { params = &DescribeBackupsInput{} @@ -54,7 +54,8 @@ type DescribeBackupsInput struct { // any IDs are not found, BackupNotFound will be thrown. BackupIds []string - // Filters structure. Supported names are file-system-id and backup-type. + // Filters structure. Supported names are file-system-id, backup-type, + // file-system-type, and volume-id. Filters []types.Filter // Maximum number of backups to return in the response (integer). This parameter diff --git a/service/fsx/api_op_DescribeDataRepositoryTasks.go b/service/fsx/api_op_DescribeDataRepositoryTasks.go index b8354cdc878..3c68bade54f 100644 --- a/service/fsx/api_op_DescribeDataRepositoryTasks.go +++ b/service/fsx/api_op_DescribeDataRepositoryTasks.go @@ -16,13 +16,13 @@ import ( // if one or more TaskIds values are provided in the request, or if filters are // used in the request. You can use filters to narrow the response to include just // tasks for specific file systems, or tasks in a specific lifecycle state. -// Otherwise, it returns all data repository tasks owned by your AWS account in the -// AWS Region of the endpoint that you're calling. When retrieving all tasks, you -// can paginate the response by using the optional MaxResults parameter to limit -// the number of tasks returned in a response. If more tasks remain, Amazon FSx -// returns a NextToken value in the response. In this case, send a later request -// with the NextToken request parameter set to the value of NextToken from the last -// response. +// Otherwise, it returns all data repository tasks owned by your Amazon Web +// Services account in the Amazon Web Services Region of the endpoint that you're +// calling. When retrieving all tasks, you can paginate the response by using the +// optional MaxResults parameter to limit the number of tasks returned in a +// response. If more tasks remain, Amazon FSx returns a NextToken value in the +// response. In this case, send a later request with the NextToken request +// parameter set to the value of NextToken from the last response. func (c *Client) DescribeDataRepositoryTasks(ctx context.Context, params *DescribeDataRepositoryTasksInput, optFns ...func(*Options)) (*DescribeDataRepositoryTasksOutput, error) { if params == nil { params = &DescribeDataRepositoryTasksInput{} diff --git a/service/fsx/api_op_DescribeFileSystemAliases.go b/service/fsx/api_op_DescribeFileSystemAliases.go index c191706755e..bfcdc32a617 100644 --- a/service/fsx/api_op_DescribeFileSystemAliases.go +++ b/service/fsx/api_op_DescribeFileSystemAliases.go @@ -41,7 +41,7 @@ type DescribeFileSystemAliasesInput struct { // (Optional) An idempotency token for resource creation, in a string of up to 64 // ASCII characters. This token is automatically filled on your behalf when you use - // the AWS Command Line Interface (AWS CLI) or an AWS SDK. + // the Command Line Interface (CLI) or an Amazon Web Services SDK. ClientRequestToken *string // Maximum number of DNS aliases to return in the response (integer). This diff --git a/service/fsx/api_op_DescribeFileSystems.go b/service/fsx/api_op_DescribeFileSystems.go index 6e36c4ebb11..97712ca263e 100644 --- a/service/fsx/api_op_DescribeFileSystems.go +++ b/service/fsx/api_op_DescribeFileSystems.go @@ -14,25 +14,26 @@ import ( // Returns the description of specific Amazon FSx file systems, if a FileSystemIds // value is provided for that file system. Otherwise, it returns descriptions of -// all file systems owned by your AWS account in the AWS Region of the endpoint -// that you're calling. When retrieving all file system descriptions, you can -// optionally specify the MaxResults parameter to limit the number of descriptions -// in a response. If more file system descriptions remain, Amazon FSx returns a -// NextToken value in the response. In this case, send a later request with the -// NextToken request parameter set to the value of NextToken from the last -// response. This action is used in an iterative process to retrieve a list of your -// file system descriptions. DescribeFileSystems is called first without a -// NextTokenvalue. Then the action continues to be called with the NextToken -// parameter set to the value of the last NextToken value until a response has no -// NextToken. When using this action, keep the following in mind: +// all file systems owned by your Amazon Web Services account in the Amazon Web +// Services Region of the endpoint that you're calling. When retrieving all file +// system descriptions, you can optionally specify the MaxResults parameter to +// limit the number of descriptions in a response. If more file system descriptions +// remain, Amazon FSx returns a NextToken value in the response. In this case, send +// a later request with the NextToken request parameter set to the value of +// NextToken from the last response. This action is used in an iterative process to +// retrieve a list of your file system descriptions. DescribeFileSystems is called +// first without a NextTokenvalue. Then the action continues to be called with the +// NextToken parameter set to the value of the last NextToken value until a +// response has no NextToken. When using this action, keep the following in +// mind: // -// * The -// implementation might return fewer than MaxResults file system descriptions while -// still including a NextToken value. +// * The implementation might return fewer than MaxResults file system +// descriptions while still including a NextToken value. // -// * The order of file systems returned in the -// response of one DescribeFileSystems call and the order of file systems returned -// across the responses of a multicall iteration is unspecified. +// * The order of file +// systems returned in the response of one DescribeFileSystems call and the order +// of file systems returned across the responses of a multicall iteration is +// unspecified. func (c *Client) DescribeFileSystems(ctx context.Context, params *DescribeFileSystemsInput, optFns ...func(*Options)) (*DescribeFileSystemsOutput, error) { if params == nil { params = &DescribeFileSystemsInput{} diff --git a/service/fsx/api_op_DescribeStorageVirtualMachines.go b/service/fsx/api_op_DescribeStorageVirtualMachines.go new file mode 100644 index 00000000000..c0b0b8c397e --- /dev/null +++ b/service/fsx/api_op_DescribeStorageVirtualMachines.go @@ -0,0 +1,226 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package fsx + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/fsx/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Describes one or more Amazon FSx for NetApp ONTAP storage virtual machines +// (SVMs). +func (c *Client) DescribeStorageVirtualMachines(ctx context.Context, params *DescribeStorageVirtualMachinesInput, optFns ...func(*Options)) (*DescribeStorageVirtualMachinesOutput, error) { + if params == nil { + params = &DescribeStorageVirtualMachinesInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DescribeStorageVirtualMachines", params, optFns, c.addOperationDescribeStorageVirtualMachinesMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DescribeStorageVirtualMachinesOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DescribeStorageVirtualMachinesInput struct { + + // Enter a filter name:value pair to view a select set of SVMs. + Filters []types.StorageVirtualMachineFilter + + // The maximum number of resources to return in the response. This value must be an + // integer greater than zero. + MaxResults *int32 + + // (Optional) Opaque pagination token returned from a previous operation (String). + // If present, this token indicates from what point you can continue processing the + // request, where the previous NextToken value left off. + NextToken *string + + // Enter the ID of one or more SVMs that you want to view. + StorageVirtualMachineIds []string + + noSmithyDocumentSerde +} + +type DescribeStorageVirtualMachinesOutput struct { + + // (Optional) Opaque pagination token returned from a previous operation (String). + // If present, this token indicates from what point you can continue processing the + // request, where the previous NextToken value left off. + NextToken *string + + // Returned after a successful DescribeStorageVirtualMachines operation, describing + // each SVM. + StorageVirtualMachines []types.StorageVirtualMachine + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDescribeStorageVirtualMachinesMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpDescribeStorageVirtualMachines{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDescribeStorageVirtualMachines{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeStorageVirtualMachines(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +// DescribeStorageVirtualMachinesAPIClient is a client that implements the +// DescribeStorageVirtualMachines operation. +type DescribeStorageVirtualMachinesAPIClient interface { + DescribeStorageVirtualMachines(context.Context, *DescribeStorageVirtualMachinesInput, ...func(*Options)) (*DescribeStorageVirtualMachinesOutput, error) +} + +var _ DescribeStorageVirtualMachinesAPIClient = (*Client)(nil) + +// DescribeStorageVirtualMachinesPaginatorOptions is the paginator options for +// DescribeStorageVirtualMachines +type DescribeStorageVirtualMachinesPaginatorOptions struct { + // The maximum number of resources to return in the response. This value must be an + // integer greater than zero. + Limit int32 + + // Set to true if pagination should stop if the service returns a pagination token + // that matches the most recent token provided to the service. + StopOnDuplicateToken bool +} + +// DescribeStorageVirtualMachinesPaginator is a paginator for +// DescribeStorageVirtualMachines +type DescribeStorageVirtualMachinesPaginator struct { + options DescribeStorageVirtualMachinesPaginatorOptions + client DescribeStorageVirtualMachinesAPIClient + params *DescribeStorageVirtualMachinesInput + nextToken *string + firstPage bool +} + +// NewDescribeStorageVirtualMachinesPaginator returns a new +// DescribeStorageVirtualMachinesPaginator +func NewDescribeStorageVirtualMachinesPaginator(client DescribeStorageVirtualMachinesAPIClient, params *DescribeStorageVirtualMachinesInput, optFns ...func(*DescribeStorageVirtualMachinesPaginatorOptions)) *DescribeStorageVirtualMachinesPaginator { + if params == nil { + params = &DescribeStorageVirtualMachinesInput{} + } + + options := DescribeStorageVirtualMachinesPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &DescribeStorageVirtualMachinesPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *DescribeStorageVirtualMachinesPaginator) HasMorePages() bool { + return p.firstPage || p.nextToken != nil +} + +// NextPage retrieves the next DescribeStorageVirtualMachines page. +func (p *DescribeStorageVirtualMachinesPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*DescribeStorageVirtualMachinesOutput, error) { + if !p.HasMorePages() { + return nil, fmt.Errorf("no more pages available") + } + + params := *p.params + params.NextToken = p.nextToken + + var limit *int32 + if p.options.Limit > 0 { + limit = &p.options.Limit + } + params.MaxResults = limit + + result, err := p.client.DescribeStorageVirtualMachines(ctx, ¶ms, optFns...) + if err != nil { + return nil, err + } + p.firstPage = false + + prevToken := p.nextToken + p.nextToken = result.NextToken + + if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken { + p.nextToken = nil + } + + return result, nil +} + +func newServiceMetadataMiddleware_opDescribeStorageVirtualMachines(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "fsx", + OperationName: "DescribeStorageVirtualMachines", + } +} diff --git a/service/fsx/api_op_DescribeVolumes.go b/service/fsx/api_op_DescribeVolumes.go new file mode 100644 index 00000000000..f6af63dc403 --- /dev/null +++ b/service/fsx/api_op_DescribeVolumes.go @@ -0,0 +1,221 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package fsx + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/fsx/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Describes one or more Amazon FSx for NetApp ONTAP volumes. +func (c *Client) DescribeVolumes(ctx context.Context, params *DescribeVolumesInput, optFns ...func(*Options)) (*DescribeVolumesOutput, error) { + if params == nil { + params = &DescribeVolumesInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DescribeVolumes", params, optFns, c.addOperationDescribeVolumesMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DescribeVolumesOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DescribeVolumesInput struct { + + // Enter a filter name:value pair to view a select set of volumes. + Filters []types.VolumeFilter + + // The maximum number of resources to return in the response. This value must be an + // integer greater than zero. + MaxResults *int32 + + // (Optional) Opaque pagination token returned from a previous operation (String). + // If present, this token indicates from what point you can continue processing the + // request, where the previous NextToken value left off. + NextToken *string + + // IDs of the volumes whose descriptions you want to retrieve. + VolumeIds []string + + noSmithyDocumentSerde +} + +type DescribeVolumesOutput struct { + + // (Optional) Opaque pagination token returned from a previous operation (String). + // If present, this token indicates from what point you can continue processing the + // request, where the previous NextToken value left off. + NextToken *string + + // Returned after a successful DescribeVolumes operation, describing each volume. + Volumes []types.Volume + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDescribeVolumesMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpDescribeVolumes{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDescribeVolumes{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeVolumes(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +// DescribeVolumesAPIClient is a client that implements the DescribeVolumes +// operation. +type DescribeVolumesAPIClient interface { + DescribeVolumes(context.Context, *DescribeVolumesInput, ...func(*Options)) (*DescribeVolumesOutput, error) +} + +var _ DescribeVolumesAPIClient = (*Client)(nil) + +// DescribeVolumesPaginatorOptions is the paginator options for DescribeVolumes +type DescribeVolumesPaginatorOptions struct { + // The maximum number of resources to return in the response. This value must be an + // integer greater than zero. + Limit int32 + + // Set to true if pagination should stop if the service returns a pagination token + // that matches the most recent token provided to the service. + StopOnDuplicateToken bool +} + +// DescribeVolumesPaginator is a paginator for DescribeVolumes +type DescribeVolumesPaginator struct { + options DescribeVolumesPaginatorOptions + client DescribeVolumesAPIClient + params *DescribeVolumesInput + nextToken *string + firstPage bool +} + +// NewDescribeVolumesPaginator returns a new DescribeVolumesPaginator +func NewDescribeVolumesPaginator(client DescribeVolumesAPIClient, params *DescribeVolumesInput, optFns ...func(*DescribeVolumesPaginatorOptions)) *DescribeVolumesPaginator { + if params == nil { + params = &DescribeVolumesInput{} + } + + options := DescribeVolumesPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &DescribeVolumesPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *DescribeVolumesPaginator) HasMorePages() bool { + return p.firstPage || p.nextToken != nil +} + +// NextPage retrieves the next DescribeVolumes page. +func (p *DescribeVolumesPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*DescribeVolumesOutput, error) { + if !p.HasMorePages() { + return nil, fmt.Errorf("no more pages available") + } + + params := *p.params + params.NextToken = p.nextToken + + var limit *int32 + if p.options.Limit > 0 { + limit = &p.options.Limit + } + params.MaxResults = limit + + result, err := p.client.DescribeVolumes(ctx, ¶ms, optFns...) + if err != nil { + return nil, err + } + p.firstPage = false + + prevToken := p.nextToken + p.nextToken = result.NextToken + + if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken { + p.nextToken = nil + } + + return result, nil +} + +func newServiceMetadataMiddleware_opDescribeVolumes(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "fsx", + OperationName: "DescribeVolumes", + } +} diff --git a/service/fsx/api_op_DisassociateFileSystemAliases.go b/service/fsx/api_op_DisassociateFileSystemAliases.go index bffbaeb0c88..7dc6de8839e 100644 --- a/service/fsx/api_op_DisassociateFileSystemAliases.go +++ b/service/fsx/api_op_DisassociateFileSystemAliases.go @@ -54,7 +54,7 @@ type DisassociateFileSystemAliasesInput struct { // (Optional) An idempotency token for resource creation, in a string of up to 64 // ASCII characters. This token is automatically filled on your behalf when you use - // the AWS Command Line Interface (AWS CLI) or an AWS SDK. + // the Command Line Interface (CLI) or an Amazon Web Services SDK. ClientRequestToken *string noSmithyDocumentSerde diff --git a/service/fsx/api_op_ListTagsForResource.go b/service/fsx/api_op_ListTagsForResource.go index edb3eac99d6..073dc857e18 100644 --- a/service/fsx/api_op_ListTagsForResource.go +++ b/service/fsx/api_op_ListTagsForResource.go @@ -4,6 +4,7 @@ package fsx import ( "context" + "fmt" awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" "github.com/aws/aws-sdk-go-v2/aws/signer/v4" "github.com/aws/aws-sdk-go-v2/service/fsx/types" @@ -145,6 +146,96 @@ func (c *Client) addOperationListTagsForResourceMiddlewares(stack *middleware.St return nil } +// ListTagsForResourceAPIClient is a client that implements the ListTagsForResource +// operation. +type ListTagsForResourceAPIClient interface { + ListTagsForResource(context.Context, *ListTagsForResourceInput, ...func(*Options)) (*ListTagsForResourceOutput, error) +} + +var _ ListTagsForResourceAPIClient = (*Client)(nil) + +// ListTagsForResourcePaginatorOptions is the paginator options for +// ListTagsForResource +type ListTagsForResourcePaginatorOptions struct { + // Maximum number of tags to return in the response (integer). This parameter value + // must be greater than 0. The number of items that Amazon FSx returns is the + // minimum of the MaxResults parameter specified in the request and the service's + // internal maximum number of items per page. + Limit int32 + + // Set to true if pagination should stop if the service returns a pagination token + // that matches the most recent token provided to the service. + StopOnDuplicateToken bool +} + +// ListTagsForResourcePaginator is a paginator for ListTagsForResource +type ListTagsForResourcePaginator struct { + options ListTagsForResourcePaginatorOptions + client ListTagsForResourceAPIClient + params *ListTagsForResourceInput + nextToken *string + firstPage bool +} + +// NewListTagsForResourcePaginator returns a new ListTagsForResourcePaginator +func NewListTagsForResourcePaginator(client ListTagsForResourceAPIClient, params *ListTagsForResourceInput, optFns ...func(*ListTagsForResourcePaginatorOptions)) *ListTagsForResourcePaginator { + if params == nil { + params = &ListTagsForResourceInput{} + } + + options := ListTagsForResourcePaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListTagsForResourcePaginator{ + options: options, + client: client, + params: params, + firstPage: true, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListTagsForResourcePaginator) HasMorePages() bool { + return p.firstPage || p.nextToken != nil +} + +// NextPage retrieves the next ListTagsForResource page. +func (p *ListTagsForResourcePaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListTagsForResourceOutput, error) { + if !p.HasMorePages() { + return nil, fmt.Errorf("no more pages available") + } + + params := *p.params + params.NextToken = p.nextToken + + var limit *int32 + if p.options.Limit > 0 { + limit = &p.options.Limit + } + params.MaxResults = limit + + result, err := p.client.ListTagsForResource(ctx, ¶ms, optFns...) + if err != nil { + return nil, err + } + p.firstPage = false + + prevToken := p.nextToken + p.nextToken = result.NextToken + + if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken { + p.nextToken = nil + } + + return result, nil +} + func newServiceMetadataMiddleware_opListTagsForResource(region string) *awsmiddleware.RegisterServiceMetadata { return &awsmiddleware.RegisterServiceMetadata{ Region: region, diff --git a/service/fsx/api_op_UpdateFileSystem.go b/service/fsx/api_op_UpdateFileSystem.go index 0912a239a85..a840dbcf930 100644 --- a/service/fsx/api_op_UpdateFileSystem.go +++ b/service/fsx/api_op_UpdateFileSystem.go @@ -50,6 +50,18 @@ import ( // // * // WeeklyMaintenanceStartTime +// +// For Amazon FSx for NetApp ONTAP file systems, you +// can update the following properties: +// +// * AutomaticBackupRetentionDays +// +// * +// DailyAutomaticBackupStartTime +// +// * FsxAdminPassword +// +// * WeeklyMaintenanceStartTime func (c *Client) UpdateFileSystem(ctx context.Context, params *UpdateFileSystemInput, optFns ...func(*Options)) (*UpdateFileSystemOutput, error) { if params == nil { params = &UpdateFileSystemInput{} @@ -74,38 +86,41 @@ type UpdateFileSystemInput struct { FileSystemId *string // A string of up to 64 ASCII characters that Amazon FSx uses to ensure idempotent - // updates. This string is automatically filled on your behalf when you use the AWS - // Command Line Interface (AWS CLI) or an AWS SDK. + // updates. This string is automatically filled on your behalf when you use the + // Command Line Interface (CLI) or an Amazon Web Services SDK. ClientRequestToken *string // The configuration object for Amazon FSx for Lustre file systems used in the // UpdateFileSystem operation. LustreConfiguration *types.UpdateFileSystemLustreConfiguration - // Use this parameter to increase the storage capacity of an Amazon FSx file - // system. Specifies the storage capacity target value, GiB, to increase the - // storage capacity for the file system that you're updating. You cannot make a - // storage capacity increase request if there is an existing storage capacity - // increase request in progress. For Windows file systems, the storage capacity - // target value must be at least 10 percent (%) greater than the current storage - // capacity value. In order to increase storage capacity, the file system must have - // at least 16 MB/s of throughput capacity. For Lustre file systems, the storage - // capacity target value can be the following: + // The configuration updates for an Amazon FSx for NetApp ONTAP file system. + OntapConfiguration *types.UpdateFileSystemOntapConfiguration + + // Use this parameter to increase the storage capacity of an Amazon FSx for Windows + // File Server or Amazon FSx for Lustre file system. Specifies the storage capacity + // target value, GiB, to increase the storage capacity for the file system that + // you're updating. You cannot make a storage capacity increase request if there is + // an existing storage capacity increase request in progress. For Windows file + // systems, the storage capacity target value must be at least 10 percent (%) + // greater than the current storage capacity value. In order to increase storage + // capacity, the file system must have at least 16 MB/s of throughput capacity. For + // Lustre file systems, the storage capacity target value can be the following: // - // * For SCRATCH_2 and PERSISTENT_1 - // SSD deployment types, valid values are in multiples of 2400 GiB. The value must - // be greater than the current storage capacity. + // * + // For SCRATCH_2 and PERSISTENT_1 SSD deployment types, valid values are in + // multiples of 2400 GiB. The value must be greater than the current storage + // capacity. // - // * For PERSISTENT HDD file - // systems, valid values are multiples of 6000 GiB for 12 MB/s/TiB file systems and - // multiples of 1800 GiB for 40 MB/s/TiB file systems. The values must be greater - // than the current storage capacity. + // * For PERSISTENT HDD file systems, valid values are multiples of 6000 + // GiB for 12 MB/s/TiB file systems and multiples of 1800 GiB for 40 MB/s/TiB file + // systems. The values must be greater than the current storage capacity. // - // * For SCRATCH_1 file systems, you cannot - // increase the storage capacity. + // * For + // SCRATCH_1 file systems, you cannot increase the storage capacity. // - // For more information, see Managing storage - // capacity + // For more + // information, see Managing storage capacity // (https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-storage-capacity.html) // in the Amazon FSx for Windows File Server User Guide and Managing storage and // throughput capacity diff --git a/service/fsx/api_op_UpdateStorageVirtualMachine.go b/service/fsx/api_op_UpdateStorageVirtualMachine.go new file mode 100644 index 00000000000..b551797ad81 --- /dev/null +++ b/service/fsx/api_op_UpdateStorageVirtualMachine.go @@ -0,0 +1,171 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package fsx + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/fsx/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Updates an Amazon FSx for ONTAP storage virtual machine (SVM). +func (c *Client) UpdateStorageVirtualMachine(ctx context.Context, params *UpdateStorageVirtualMachineInput, optFns ...func(*Options)) (*UpdateStorageVirtualMachineOutput, error) { + if params == nil { + params = &UpdateStorageVirtualMachineInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UpdateStorageVirtualMachine", params, optFns, c.addOperationUpdateStorageVirtualMachineMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UpdateStorageVirtualMachineOutput) + out.ResultMetadata = metadata + return out, nil +} + +type UpdateStorageVirtualMachineInput struct { + + // The ID of the SVM that you want to update, in the format svm-0123456789abcdef0. + // + // This member is required. + StorageVirtualMachineId *string + + // Updates the Microsoft Active Directory (AD) configuration for an SVM that is + // joined to an AD. + ActiveDirectoryConfiguration *types.UpdateSvmActiveDirectoryConfiguration + + // (Optional) An idempotency token for resource creation, in a string of up to 64 + // ASCII characters. This token is automatically filled on your behalf when you use + // the Command Line Interface (CLI) or an Amazon Web Services SDK. + ClientRequestToken *string + + // Enter a new SvmAdminPassword if you are updating it. + SvmAdminPassword *string + + noSmithyDocumentSerde +} + +type UpdateStorageVirtualMachineOutput struct { + + // Describes the Amazon FSx for NetApp ONTAP storage virtual machine (SVM) + // configuraton. + StorageVirtualMachine *types.StorageVirtualMachine + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUpdateStorageVirtualMachineMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpUpdateStorageVirtualMachine{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpUpdateStorageVirtualMachine{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addIdempotencyToken_opUpdateStorageVirtualMachineMiddleware(stack, options); err != nil { + return err + } + if err = addOpUpdateStorageVirtualMachineValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdateStorageVirtualMachine(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +type idempotencyToken_initializeOpUpdateStorageVirtualMachine struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpUpdateStorageVirtualMachine) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpUpdateStorageVirtualMachine) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + if m.tokenProvider == nil { + return next.HandleInitialize(ctx, in) + } + + input, ok := in.Parameters.(*UpdateStorageVirtualMachineInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *UpdateStorageVirtualMachineInput ") + } + + if input.ClientRequestToken == nil { + t, err := m.tokenProvider.GetIdempotencyToken() + if err != nil { + return out, metadata, err + } + input.ClientRequestToken = &t + } + return next.HandleInitialize(ctx, in) +} +func addIdempotencyToken_opUpdateStorageVirtualMachineMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpUpdateStorageVirtualMachine{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opUpdateStorageVirtualMachine(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "fsx", + OperationName: "UpdateStorageVirtualMachine", + } +} diff --git a/service/fsx/api_op_UpdateVolume.go b/service/fsx/api_op_UpdateVolume.go new file mode 100644 index 00000000000..2f82895e8da --- /dev/null +++ b/service/fsx/api_op_UpdateVolume.go @@ -0,0 +1,167 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package fsx + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/fsx/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Updates an Amazon FSx for NetApp ONTAP volume's configuration. +func (c *Client) UpdateVolume(ctx context.Context, params *UpdateVolumeInput, optFns ...func(*Options)) (*UpdateVolumeOutput, error) { + if params == nil { + params = &UpdateVolumeInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UpdateVolume", params, optFns, c.addOperationUpdateVolumeMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UpdateVolumeOutput) + out.ResultMetadata = metadata + return out, nil +} + +type UpdateVolumeInput struct { + + // Specifies the volume that you want to update, formatted fsvol-0123456789abcdef0. + // + // This member is required. + VolumeId *string + + // (Optional) An idempotency token for resource creation, in a string of up to 64 + // ASCII characters. This token is automatically filled on your behalf when you use + // the Command Line Interface (CLI) or an Amazon Web Services SDK. + ClientRequestToken *string + + // The ONTAP configuration of the volume you are updating. + OntapConfiguration *types.UpdateOntapVolumeConfiguration + + noSmithyDocumentSerde +} + +type UpdateVolumeOutput struct { + + // Returned after a successful UpdateVolume API operation, describing the volume + // just updated. + Volume *types.Volume + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUpdateVolumeMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpUpdateVolume{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpUpdateVolume{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addIdempotencyToken_opUpdateVolumeMiddleware(stack, options); err != nil { + return err + } + if err = addOpUpdateVolumeValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdateVolume(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +type idempotencyToken_initializeOpUpdateVolume struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpUpdateVolume) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpUpdateVolume) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + if m.tokenProvider == nil { + return next.HandleInitialize(ctx, in) + } + + input, ok := in.Parameters.(*UpdateVolumeInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *UpdateVolumeInput ") + } + + if input.ClientRequestToken == nil { + t, err := m.tokenProvider.GetIdempotencyToken() + if err != nil { + return out, metadata, err + } + input.ClientRequestToken = &t + } + return next.HandleInitialize(ctx, in) +} +func addIdempotencyToken_opUpdateVolumeMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpUpdateVolume{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opUpdateVolume(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "fsx", + OperationName: "UpdateVolume", + } +} diff --git a/service/fsx/deserializers.go b/service/fsx/deserializers.go index 19b36de3d85..5bdc4fa8bb9 100644 --- a/service/fsx/deserializers.go +++ b/service/fsx/deserializers.go @@ -519,6 +519,9 @@ func awsAwsjson11_deserializeOpErrorCreateBackup(response *smithyhttp.Response, case strings.EqualFold("UnsupportedOperation", errorCode): return awsAwsjson11_deserializeErrorUnsupportedOperation(response, errorBody) + case strings.EqualFold("VolumeNotFound", errorCode): + return awsAwsjson11_deserializeErrorVolumeNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -931,14 +934,14 @@ func awsAwsjson11_deserializeOpErrorCreateFileSystemFromBackup(response *smithyh } } -type awsAwsjson11_deserializeOpDeleteBackup struct { +type awsAwsjson11_deserializeOpCreateStorageVirtualMachine struct { } -func (*awsAwsjson11_deserializeOpDeleteBackup) ID() string { +func (*awsAwsjson11_deserializeOpCreateStorageVirtualMachine) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteBackup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateStorageVirtualMachine) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -952,9 +955,9 @@ func (m *awsAwsjson11_deserializeOpDeleteBackup) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteBackup(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateStorageVirtualMachine(response, &metadata) } - output := &DeleteBackupOutput{} + output := &CreateStorageVirtualMachineOutput{} out.Result = output var buff [1024]byte @@ -974,7 +977,7 @@ func (m *awsAwsjson11_deserializeOpDeleteBackup) HandleDeserialize(ctx context.C return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDeleteBackupOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateStorageVirtualMachineOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -988,7 +991,7 @@ func (m *awsAwsjson11_deserializeOpDeleteBackup) HandleDeserialize(ctx context.C return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteBackup(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateStorageVirtualMachine(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1029,27 +1032,27 @@ func awsAwsjson11_deserializeOpErrorDeleteBackup(response *smithyhttp.Response, } switch { - case strings.EqualFold("BackupBeingCopied", errorCode): - return awsAwsjson11_deserializeErrorBackupBeingCopied(response, errorBody) - - case strings.EqualFold("BackupInProgress", errorCode): - return awsAwsjson11_deserializeErrorBackupInProgress(response, errorBody) - - case strings.EqualFold("BackupNotFound", errorCode): - return awsAwsjson11_deserializeErrorBackupNotFound(response, errorBody) - - case strings.EqualFold("BackupRestoring", errorCode): - return awsAwsjson11_deserializeErrorBackupRestoring(response, errorBody) + case strings.EqualFold("ActiveDirectoryError", errorCode): + return awsAwsjson11_deserializeErrorActiveDirectoryError(response, errorBody) case strings.EqualFold("BadRequest", errorCode): return awsAwsjson11_deserializeErrorBadRequest(response, errorBody) + case strings.EqualFold("FileSystemNotFound", errorCode): + return awsAwsjson11_deserializeErrorFileSystemNotFound(response, errorBody) + case strings.EqualFold("IncompatibleParameterError", errorCode): return awsAwsjson11_deserializeErrorIncompatibleParameterError(response, errorBody) case strings.EqualFold("InternalServerError", errorCode): return awsAwsjson11_deserializeErrorInternalServerError(response, errorBody) + case strings.EqualFold("ServiceLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorServiceLimitExceeded(response, errorBody) + + case strings.EqualFold("UnsupportedOperation", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedOperation(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -1060,14 +1063,14 @@ func awsAwsjson11_deserializeOpErrorDeleteBackup(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpDeleteFileSystem struct { +type awsAwsjson11_deserializeOpCreateVolume struct { } -func (*awsAwsjson11_deserializeOpDeleteFileSystem) ID() string { +func (*awsAwsjson11_deserializeOpCreateVolume) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteFileSystem) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateVolume) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1081,9 +1084,9 @@ func (m *awsAwsjson11_deserializeOpDeleteFileSystem) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteFileSystem(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateVolume(response, &metadata) } - output := &DeleteFileSystemOutput{} + output := &CreateVolumeOutput{} out.Result = output var buff [1024]byte @@ -1103,7 +1106,7 @@ func (m *awsAwsjson11_deserializeOpDeleteFileSystem) HandleDeserialize(ctx conte return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDeleteFileSystemOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateVolumeOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1117,7 +1120,7 @@ func (m *awsAwsjson11_deserializeOpDeleteFileSystem) HandleDeserialize(ctx conte return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteFileSystem(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateVolume(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1170,9 +1173,18 @@ func awsAwsjson11_deserializeOpErrorDeleteFileSystem(response *smithyhttp.Respon case strings.EqualFold("InternalServerError", errorCode): return awsAwsjson11_deserializeErrorInternalServerError(response, errorBody) + case strings.EqualFold("MissingVolumeConfiguration", errorCode): + return awsAwsjson11_deserializeErrorMissingVolumeConfiguration(response, errorBody) + case strings.EqualFold("ServiceLimitExceeded", errorCode): return awsAwsjson11_deserializeErrorServiceLimitExceeded(response, errorBody) + case strings.EqualFold("StorageVirtualMachineNotFound", errorCode): + return awsAwsjson11_deserializeErrorStorageVirtualMachineNotFound(response, errorBody) + + case strings.EqualFold("UnsupportedOperation", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedOperation(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -1183,14 +1195,14 @@ func awsAwsjson11_deserializeOpErrorDeleteFileSystem(response *smithyhttp.Respon } } -type awsAwsjson11_deserializeOpDescribeBackups struct { +type awsAwsjson11_deserializeOpCreateVolumeFromBackup struct { } -func (*awsAwsjson11_deserializeOpDescribeBackups) ID() string { +func (*awsAwsjson11_deserializeOpCreateVolumeFromBackup) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeBackups) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateVolumeFromBackup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1204,9 +1216,9 @@ func (m *awsAwsjson11_deserializeOpDescribeBackups) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeBackups(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateVolumeFromBackup(response, &metadata) } - output := &DescribeBackupsOutput{} + output := &CreateVolumeFromBackupOutput{} out.Result = output var buff [1024]byte @@ -1226,7 +1238,7 @@ func (m *awsAwsjson11_deserializeOpDescribeBackups) HandleDeserialize(ctx contex return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeBackupsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateVolumeFromBackupOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1240,7 +1252,7 @@ func (m *awsAwsjson11_deserializeOpDescribeBackups) HandleDeserialize(ctx contex return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeBackups(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateVolumeFromBackup(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1290,9 +1302,21 @@ func awsAwsjson11_deserializeOpErrorDescribeBackups(response *smithyhttp.Respons case strings.EqualFold("FileSystemNotFound", errorCode): return awsAwsjson11_deserializeErrorFileSystemNotFound(response, errorBody) + case strings.EqualFold("IncompatibleParameterError", errorCode): + return awsAwsjson11_deserializeErrorIncompatibleParameterError(response, errorBody) + case strings.EqualFold("InternalServerError", errorCode): return awsAwsjson11_deserializeErrorInternalServerError(response, errorBody) + case strings.EqualFold("MissingVolumeConfiguration", errorCode): + return awsAwsjson11_deserializeErrorMissingVolumeConfiguration(response, errorBody) + + case strings.EqualFold("ServiceLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorServiceLimitExceeded(response, errorBody) + + case strings.EqualFold("StorageVirtualMachineNotFound", errorCode): + return awsAwsjson11_deserializeErrorStorageVirtualMachineNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -1303,14 +1327,14 @@ func awsAwsjson11_deserializeOpErrorDescribeBackups(response *smithyhttp.Respons } } -type awsAwsjson11_deserializeOpDescribeDataRepositoryTasks struct { +type awsAwsjson11_deserializeOpDeleteBackup struct { } -func (*awsAwsjson11_deserializeOpDescribeDataRepositoryTasks) ID() string { +func (*awsAwsjson11_deserializeOpDeleteBackup) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeDataRepositoryTasks) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteBackup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1324,9 +1348,9 @@ func (m *awsAwsjson11_deserializeOpDescribeDataRepositoryTasks) HandleDeserializ } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeDataRepositoryTasks(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteBackup(response, &metadata) } - output := &DescribeDataRepositoryTasksOutput{} + output := &DeleteBackupOutput{} out.Result = output var buff [1024]byte @@ -1346,7 +1370,7 @@ func (m *awsAwsjson11_deserializeOpDescribeDataRepositoryTasks) HandleDeserializ return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeDataRepositoryTasksOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDeleteBackupOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1360,7 +1384,7 @@ func (m *awsAwsjson11_deserializeOpDescribeDataRepositoryTasks) HandleDeserializ return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeDataRepositoryTasks(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteBackup(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1401,14 +1425,23 @@ func awsAwsjson11_deserializeOpErrorDescribeDataRepositoryTasks(response *smithy } switch { + case strings.EqualFold("BackupBeingCopied", errorCode): + return awsAwsjson11_deserializeErrorBackupBeingCopied(response, errorBody) + + case strings.EqualFold("BackupInProgress", errorCode): + return awsAwsjson11_deserializeErrorBackupInProgress(response, errorBody) + + case strings.EqualFold("BackupNotFound", errorCode): + return awsAwsjson11_deserializeErrorBackupNotFound(response, errorBody) + + case strings.EqualFold("BackupRestoring", errorCode): + return awsAwsjson11_deserializeErrorBackupRestoring(response, errorBody) + case strings.EqualFold("BadRequest", errorCode): return awsAwsjson11_deserializeErrorBadRequest(response, errorBody) - case strings.EqualFold("DataRepositoryTaskNotFound", errorCode): - return awsAwsjson11_deserializeErrorDataRepositoryTaskNotFound(response, errorBody) - - case strings.EqualFold("FileSystemNotFound", errorCode): - return awsAwsjson11_deserializeErrorFileSystemNotFound(response, errorBody) + case strings.EqualFold("IncompatibleParameterError", errorCode): + return awsAwsjson11_deserializeErrorIncompatibleParameterError(response, errorBody) case strings.EqualFold("InternalServerError", errorCode): return awsAwsjson11_deserializeErrorInternalServerError(response, errorBody) @@ -1423,14 +1456,14 @@ func awsAwsjson11_deserializeOpErrorDescribeDataRepositoryTasks(response *smithy } } -type awsAwsjson11_deserializeOpDescribeFileSystemAliases struct { +type awsAwsjson11_deserializeOpDeleteFileSystem struct { } -func (*awsAwsjson11_deserializeOpDescribeFileSystemAliases) ID() string { +func (*awsAwsjson11_deserializeOpDeleteFileSystem) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeFileSystemAliases) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteFileSystem) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1444,9 +1477,9 @@ func (m *awsAwsjson11_deserializeOpDescribeFileSystemAliases) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeFileSystemAliases(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteFileSystem(response, &metadata) } - output := &DescribeFileSystemAliasesOutput{} + output := &DeleteFileSystemOutput{} out.Result = output var buff [1024]byte @@ -1466,7 +1499,7 @@ func (m *awsAwsjson11_deserializeOpDescribeFileSystemAliases) HandleDeserialize( return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeFileSystemAliasesOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDeleteFileSystemOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1480,7 +1513,7 @@ func (m *awsAwsjson11_deserializeOpDescribeFileSystemAliases) HandleDeserialize( return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeFileSystemAliases(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteFileSystem(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1527,9 +1560,15 @@ func awsAwsjson11_deserializeOpErrorDescribeFileSystemAliases(response *smithyht case strings.EqualFold("FileSystemNotFound", errorCode): return awsAwsjson11_deserializeErrorFileSystemNotFound(response, errorBody) + case strings.EqualFold("IncompatibleParameterError", errorCode): + return awsAwsjson11_deserializeErrorIncompatibleParameterError(response, errorBody) + case strings.EqualFold("InternalServerError", errorCode): return awsAwsjson11_deserializeErrorInternalServerError(response, errorBody) + case strings.EqualFold("ServiceLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorServiceLimitExceeded(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -1540,14 +1579,14 @@ func awsAwsjson11_deserializeOpErrorDescribeFileSystemAliases(response *smithyht } } -type awsAwsjson11_deserializeOpDescribeFileSystems struct { +type awsAwsjson11_deserializeOpDeleteStorageVirtualMachine struct { } -func (*awsAwsjson11_deserializeOpDescribeFileSystems) ID() string { +func (*awsAwsjson11_deserializeOpDeleteStorageVirtualMachine) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeFileSystems) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteStorageVirtualMachine) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1561,9 +1600,9 @@ func (m *awsAwsjson11_deserializeOpDescribeFileSystems) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeFileSystems(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteStorageVirtualMachine(response, &metadata) } - output := &DescribeFileSystemsOutput{} + output := &DeleteStorageVirtualMachineOutput{} out.Result = output var buff [1024]byte @@ -1583,7 +1622,7 @@ func (m *awsAwsjson11_deserializeOpDescribeFileSystems) HandleDeserialize(ctx co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeFileSystemsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDeleteStorageVirtualMachineOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1597,7 +1636,7 @@ func (m *awsAwsjson11_deserializeOpDescribeFileSystems) HandleDeserialize(ctx co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeFileSystems(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteStorageVirtualMachine(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1641,12 +1680,15 @@ func awsAwsjson11_deserializeOpErrorDescribeFileSystems(response *smithyhttp.Res case strings.EqualFold("BadRequest", errorCode): return awsAwsjson11_deserializeErrorBadRequest(response, errorBody) - case strings.EqualFold("FileSystemNotFound", errorCode): - return awsAwsjson11_deserializeErrorFileSystemNotFound(response, errorBody) + case strings.EqualFold("IncompatibleParameterError", errorCode): + return awsAwsjson11_deserializeErrorIncompatibleParameterError(response, errorBody) case strings.EqualFold("InternalServerError", errorCode): return awsAwsjson11_deserializeErrorInternalServerError(response, errorBody) + case strings.EqualFold("StorageVirtualMachineNotFound", errorCode): + return awsAwsjson11_deserializeErrorStorageVirtualMachineNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -1657,14 +1699,14 @@ func awsAwsjson11_deserializeOpErrorDescribeFileSystems(response *smithyhttp.Res } } -type awsAwsjson11_deserializeOpDisassociateFileSystemAliases struct { +type awsAwsjson11_deserializeOpDeleteVolume struct { } -func (*awsAwsjson11_deserializeOpDisassociateFileSystemAliases) ID() string { +func (*awsAwsjson11_deserializeOpDeleteVolume) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDisassociateFileSystemAliases) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteVolume) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1678,9 +1720,9 @@ func (m *awsAwsjson11_deserializeOpDisassociateFileSystemAliases) HandleDeserial } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDisassociateFileSystemAliases(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteVolume(response, &metadata) } - output := &DisassociateFileSystemAliasesOutput{} + output := &DeleteVolumeOutput{} out.Result = output var buff [1024]byte @@ -1700,7 +1742,7 @@ func (m *awsAwsjson11_deserializeOpDisassociateFileSystemAliases) HandleDeserial return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDisassociateFileSystemAliasesOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDeleteVolumeOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1714,7 +1756,7 @@ func (m *awsAwsjson11_deserializeOpDisassociateFileSystemAliases) HandleDeserial return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDisassociateFileSystemAliases(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteVolume(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1758,12 +1800,15 @@ func awsAwsjson11_deserializeOpErrorDisassociateFileSystemAliases(response *smit case strings.EqualFold("BadRequest", errorCode): return awsAwsjson11_deserializeErrorBadRequest(response, errorBody) - case strings.EqualFold("FileSystemNotFound", errorCode): - return awsAwsjson11_deserializeErrorFileSystemNotFound(response, errorBody) + case strings.EqualFold("IncompatibleParameterError", errorCode): + return awsAwsjson11_deserializeErrorIncompatibleParameterError(response, errorBody) case strings.EqualFold("InternalServerError", errorCode): return awsAwsjson11_deserializeErrorInternalServerError(response, errorBody) + case strings.EqualFold("VolumeNotFound", errorCode): + return awsAwsjson11_deserializeErrorVolumeNotFound(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -1774,14 +1819,14 @@ func awsAwsjson11_deserializeOpErrorDisassociateFileSystemAliases(response *smit } } -type awsAwsjson11_deserializeOpListTagsForResource struct { +type awsAwsjson11_deserializeOpDescribeBackups struct { } -func (*awsAwsjson11_deserializeOpListTagsForResource) ID() string { +func (*awsAwsjson11_deserializeOpDescribeBackups) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListTagsForResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeBackups) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1795,9 +1840,9 @@ func (m *awsAwsjson11_deserializeOpListTagsForResource) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListTagsForResource(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeBackups(response, &metadata) } - output := &ListTagsForResourceOutput{} + output := &DescribeBackupsOutput{} out.Result = output var buff [1024]byte @@ -1817,7 +1862,7 @@ func (m *awsAwsjson11_deserializeOpListTagsForResource) HandleDeserialize(ctx co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListTagsForResourceOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeBackupsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1831,7 +1876,7 @@ func (m *awsAwsjson11_deserializeOpListTagsForResource) HandleDeserialize(ctx co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListTagsForResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeBackups(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1872,20 +1917,20 @@ func awsAwsjson11_deserializeOpErrorListTagsForResource(response *smithyhttp.Res } switch { + case strings.EqualFold("BackupNotFound", errorCode): + return awsAwsjson11_deserializeErrorBackupNotFound(response, errorBody) + case strings.EqualFold("BadRequest", errorCode): return awsAwsjson11_deserializeErrorBadRequest(response, errorBody) + case strings.EqualFold("FileSystemNotFound", errorCode): + return awsAwsjson11_deserializeErrorFileSystemNotFound(response, errorBody) + case strings.EqualFold("InternalServerError", errorCode): return awsAwsjson11_deserializeErrorInternalServerError(response, errorBody) - case strings.EqualFold("NotServiceResourceError", errorCode): - return awsAwsjson11_deserializeErrorNotServiceResourceError(response, errorBody) - - case strings.EqualFold("ResourceDoesNotSupportTagging", errorCode): - return awsAwsjson11_deserializeErrorResourceDoesNotSupportTagging(response, errorBody) - - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + case strings.EqualFold("VolumeNotFound", errorCode): + return awsAwsjson11_deserializeErrorVolumeNotFound(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -1897,14 +1942,14 @@ func awsAwsjson11_deserializeOpErrorListTagsForResource(response *smithyhttp.Res } } -type awsAwsjson11_deserializeOpTagResource struct { +type awsAwsjson11_deserializeOpDescribeDataRepositoryTasks struct { } -func (*awsAwsjson11_deserializeOpTagResource) ID() string { +func (*awsAwsjson11_deserializeOpDescribeDataRepositoryTasks) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpTagResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeDataRepositoryTasks) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1918,9 +1963,9 @@ func (m *awsAwsjson11_deserializeOpTagResource) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorTagResource(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeDataRepositoryTasks(response, &metadata) } - output := &TagResourceOutput{} + output := &DescribeDataRepositoryTasksOutput{} out.Result = output var buff [1024]byte @@ -1940,7 +1985,7 @@ func (m *awsAwsjson11_deserializeOpTagResource) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentTagResourceOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeDataRepositoryTasksOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1954,7 +1999,7 @@ func (m *awsAwsjson11_deserializeOpTagResource) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorTagResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeDataRepositoryTasks(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1998,17 +2043,14 @@ func awsAwsjson11_deserializeOpErrorTagResource(response *smithyhttp.Response, m case strings.EqualFold("BadRequest", errorCode): return awsAwsjson11_deserializeErrorBadRequest(response, errorBody) - case strings.EqualFold("InternalServerError", errorCode): - return awsAwsjson11_deserializeErrorInternalServerError(response, errorBody) - - case strings.EqualFold("NotServiceResourceError", errorCode): - return awsAwsjson11_deserializeErrorNotServiceResourceError(response, errorBody) + case strings.EqualFold("DataRepositoryTaskNotFound", errorCode): + return awsAwsjson11_deserializeErrorDataRepositoryTaskNotFound(response, errorBody) - case strings.EqualFold("ResourceDoesNotSupportTagging", errorCode): - return awsAwsjson11_deserializeErrorResourceDoesNotSupportTagging(response, errorBody) + case strings.EqualFold("FileSystemNotFound", errorCode): + return awsAwsjson11_deserializeErrorFileSystemNotFound(response, errorBody) - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + case strings.EqualFold("InternalServerError", errorCode): + return awsAwsjson11_deserializeErrorInternalServerError(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -2020,14 +2062,14 @@ func awsAwsjson11_deserializeOpErrorTagResource(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpUntagResource struct { +type awsAwsjson11_deserializeOpDescribeFileSystemAliases struct { } -func (*awsAwsjson11_deserializeOpUntagResource) ID() string { +func (*awsAwsjson11_deserializeOpDescribeFileSystemAliases) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUntagResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeFileSystemAliases) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2041,9 +2083,9 @@ func (m *awsAwsjson11_deserializeOpUntagResource) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUntagResource(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeFileSystemAliases(response, &metadata) } - output := &UntagResourceOutput{} + output := &DescribeFileSystemAliasesOutput{} out.Result = output var buff [1024]byte @@ -2063,7 +2105,7 @@ func (m *awsAwsjson11_deserializeOpUntagResource) HandleDeserialize(ctx context. return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUntagResourceOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeFileSystemAliasesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2077,7 +2119,7 @@ func (m *awsAwsjson11_deserializeOpUntagResource) HandleDeserialize(ctx context. return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUntagResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeFileSystemAliases(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2121,18 +2163,12 @@ func awsAwsjson11_deserializeOpErrorUntagResource(response *smithyhttp.Response, case strings.EqualFold("BadRequest", errorCode): return awsAwsjson11_deserializeErrorBadRequest(response, errorBody) + case strings.EqualFold("FileSystemNotFound", errorCode): + return awsAwsjson11_deserializeErrorFileSystemNotFound(response, errorBody) + case strings.EqualFold("InternalServerError", errorCode): return awsAwsjson11_deserializeErrorInternalServerError(response, errorBody) - case strings.EqualFold("NotServiceResourceError", errorCode): - return awsAwsjson11_deserializeErrorNotServiceResourceError(response, errorBody) - - case strings.EqualFold("ResourceDoesNotSupportTagging", errorCode): - return awsAwsjson11_deserializeErrorResourceDoesNotSupportTagging(response, errorBody) - - case strings.EqualFold("ResourceNotFound", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -2143,14 +2179,14 @@ func awsAwsjson11_deserializeOpErrorUntagResource(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpUpdateFileSystem struct { +type awsAwsjson11_deserializeOpDescribeFileSystems struct { } -func (*awsAwsjson11_deserializeOpUpdateFileSystem) ID() string { +func (*awsAwsjson11_deserializeOpDescribeFileSystems) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateFileSystem) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeFileSystems) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2164,9 +2200,9 @@ func (m *awsAwsjson11_deserializeOpUpdateFileSystem) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateFileSystem(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeFileSystems(response, &metadata) } - output := &UpdateFileSystemOutput{} + output := &DescribeFileSystemsOutput{} out.Result = output var buff [1024]byte @@ -2186,7 +2222,7 @@ func (m *awsAwsjson11_deserializeOpUpdateFileSystem) HandleDeserialize(ctx conte return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateFileSystemOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeFileSystemsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2200,7 +2236,7 @@ func (m *awsAwsjson11_deserializeOpUpdateFileSystem) HandleDeserialize(ctx conte return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateFileSystem(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeFileSystems(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2247,21 +2283,9 @@ func awsAwsjson11_deserializeOpErrorUpdateFileSystem(response *smithyhttp.Respon case strings.EqualFold("FileSystemNotFound", errorCode): return awsAwsjson11_deserializeErrorFileSystemNotFound(response, errorBody) - case strings.EqualFold("IncompatibleParameterError", errorCode): - return awsAwsjson11_deserializeErrorIncompatibleParameterError(response, errorBody) - case strings.EqualFold("InternalServerError", errorCode): return awsAwsjson11_deserializeErrorInternalServerError(response, errorBody) - case strings.EqualFold("MissingFileSystemConfiguration", errorCode): - return awsAwsjson11_deserializeErrorMissingFileSystemConfiguration(response, errorBody) - - case strings.EqualFold("ServiceLimitExceeded", errorCode): - return awsAwsjson11_deserializeErrorServiceLimitExceeded(response, errorBody) - - case strings.EqualFold("UnsupportedOperation", errorCode): - return awsAwsjson11_deserializeErrorUnsupportedOperation(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -2272,46 +2296,36 @@ func awsAwsjson11_deserializeOpErrorUpdateFileSystem(response *smithyhttp.Respon } } -func awsAwsjson11_deserializeErrorActiveDirectoryError(response *smithyhttp.Response, errorBody *bytes.Reader) error { - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) +type awsAwsjson11_deserializeOpDescribeStorageVirtualMachines struct { +} - body := io.TeeReader(errorBody, ringBuffer) - decoder := json.NewDecoder(body) - decoder.UseNumber() - var shape interface{} - if err := decoder.Decode(&shape); err != nil && err != io.EOF { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - return err - } - - output := &types.ActiveDirectoryError{} - err := awsAwsjson11_deserializeDocumentActiveDirectoryError(&output, shape) +func (*awsAwsjson11_deserializeOpDescribeStorageVirtualMachines) ID() string { + return "OperationDeserializer" +} +func (m *awsAwsjson11_deserializeOpDescribeStorageVirtualMachines) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - return err + return out, metadata, err } - errorBody.Seek(0, io.SeekStart) - return output -} + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeStorageVirtualMachines(response, &metadata) + } + output := &DescribeStorageVirtualMachinesOutput{} + out.Result = output -func awsAwsjson11_deserializeErrorBackupBeingCopied(response *smithyhttp.Response, errorBody *bytes.Reader) error { var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(errorBody, ringBuffer) + body := io.TeeReader(response.Body, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() var shape interface{} @@ -2322,12 +2336,10 @@ func awsAwsjson11_deserializeErrorBackupBeingCopied(response *smithyhttp.Respons Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - output := &types.BackupBeingCopied{} - err := awsAwsjson11_deserializeDocumentBackupBeingCopied(&output, shape) - + err = awsAwsjson11_deserializeOpDocumentDescribeStorageVirtualMachinesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2335,22 +2347,35 @@ func awsAwsjson11_deserializeErrorBackupBeingCopied(response *smithyhttp.Respons Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - errorBody.Seek(0, io.SeekStart) - return output + return out, metadata, err } -func awsAwsjson11_deserializeErrorBackupInProgress(response *smithyhttp.Response, errorBody *bytes.Reader) error { +func awsAwsjson11_deserializeOpErrorDescribeStorageVirtualMachines(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) body := io.TeeReader(errorBody, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() - var shape interface{} - if err := decoder.Decode(&shape); err != nil && err != io.EOF { + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) err = &smithy.DeserializationError{ @@ -2360,28 +2385,64 @@ func awsAwsjson11_deserializeErrorBackupInProgress(response *smithyhttp.Response return err } - output := &types.BackupInProgress{} - err := awsAwsjson11_deserializeDocumentBackupInProgress(&output, shape) + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + switch { + case strings.EqualFold("BadRequest", errorCode): + return awsAwsjson11_deserializeErrorBadRequest(response, errorBody) + + case strings.EqualFold("InternalServerError", errorCode): + return awsAwsjson11_deserializeErrorInternalServerError(response, errorBody) + + case strings.EqualFold("StorageVirtualMachineNotFound", errorCode): + return awsAwsjson11_deserializeErrorStorageVirtualMachineNotFound(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, } - return err + return genericError + } +} - errorBody.Seek(0, io.SeekStart) - return output +type awsAwsjson11_deserializeOpDescribeVolumes struct { } -func awsAwsjson11_deserializeErrorBackupNotFound(response *smithyhttp.Response, errorBody *bytes.Reader) error { +func (*awsAwsjson11_deserializeOpDescribeVolumes) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpDescribeVolumes) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeVolumes(response, &metadata) + } + output := &DescribeVolumesOutput{} + out.Result = output + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(errorBody, ringBuffer) + body := io.TeeReader(response.Body, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() var shape interface{} @@ -2392,12 +2453,10 @@ func awsAwsjson11_deserializeErrorBackupNotFound(response *smithyhttp.Response, Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - output := &types.BackupNotFound{} - err := awsAwsjson11_deserializeDocumentBackupNotFound(&output, shape) - + err = awsAwsjson11_deserializeOpDocumentDescribeVolumesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2405,22 +2464,35 @@ func awsAwsjson11_deserializeErrorBackupNotFound(response *smithyhttp.Response, Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - errorBody.Seek(0, io.SeekStart) - return output + return out, metadata, err } -func awsAwsjson11_deserializeErrorBackupRestoring(response *smithyhttp.Response, errorBody *bytes.Reader) error { +func awsAwsjson11_deserializeOpErrorDescribeVolumes(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) body := io.TeeReader(errorBody, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() - var shape interface{} - if err := decoder.Decode(&shape); err != nil && err != io.EOF { + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) err = &smithy.DeserializationError{ @@ -2430,28 +2502,64 @@ func awsAwsjson11_deserializeErrorBackupRestoring(response *smithyhttp.Response, return err } - output := &types.BackupRestoring{} - err := awsAwsjson11_deserializeDocumentBackupRestoring(&output, shape) + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + switch { + case strings.EqualFold("BadRequest", errorCode): + return awsAwsjson11_deserializeErrorBadRequest(response, errorBody) + + case strings.EqualFold("InternalServerError", errorCode): + return awsAwsjson11_deserializeErrorInternalServerError(response, errorBody) + + case strings.EqualFold("VolumeNotFound", errorCode): + return awsAwsjson11_deserializeErrorVolumeNotFound(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, } - return err + return genericError + } +} - errorBody.Seek(0, io.SeekStart) - return output +type awsAwsjson11_deserializeOpDisassociateFileSystemAliases struct { } -func awsAwsjson11_deserializeErrorBadRequest(response *smithyhttp.Response, errorBody *bytes.Reader) error { +func (*awsAwsjson11_deserializeOpDisassociateFileSystemAliases) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpDisassociateFileSystemAliases) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorDisassociateFileSystemAliases(response, &metadata) + } + output := &DisassociateFileSystemAliasesOutput{} + out.Result = output + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(errorBody, ringBuffer) + body := io.TeeReader(response.Body, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() var shape interface{} @@ -2462,12 +2570,10 @@ func awsAwsjson11_deserializeErrorBadRequest(response *smithyhttp.Response, erro Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - output := &types.BadRequest{} - err := awsAwsjson11_deserializeDocumentBadRequest(&output, shape) - + err = awsAwsjson11_deserializeOpDocumentDisassociateFileSystemAliasesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2475,34 +2581,34 @@ func awsAwsjson11_deserializeErrorBadRequest(response *smithyhttp.Response, erro Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - errorBody.Seek(0, io.SeekStart) - return output + return out, metadata, err } -func awsAwsjson11_deserializeErrorDataRepositoryTaskEnded(response *smithyhttp.Response, errorBody *bytes.Reader) error { +func awsAwsjson11_deserializeOpErrorDisassociateFileSystemAliases(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) body := io.TeeReader(errorBody, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() - var shape interface{} - if err := decoder.Decode(&shape); err != nil && err != io.EOF { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - return err - } - - output := &types.DataRepositoryTaskEnded{} - err := awsAwsjson11_deserializeDocumentDataRepositoryTaskEnded(&output, shape) - + code, message, err := restjson.GetErrorInfo(decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2514,84 +2620,63 @@ func awsAwsjson11_deserializeErrorDataRepositoryTaskEnded(response *smithyhttp.R } errorBody.Seek(0, io.SeekStart) - return output -} - -func awsAwsjson11_deserializeErrorDataRepositoryTaskExecuting(response *smithyhttp.Response, errorBody *bytes.Reader) error { - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) - - body := io.TeeReader(errorBody, ringBuffer) - decoder := json.NewDecoder(body) - decoder.UseNumber() - var shape interface{} - if err := decoder.Decode(&shape); err != nil && err != io.EOF { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - return err + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message } - output := &types.DataRepositoryTaskExecuting{} - err := awsAwsjson11_deserializeDocumentDataRepositoryTaskExecuting(&output, shape) + switch { + case strings.EqualFold("BadRequest", errorCode): + return awsAwsjson11_deserializeErrorBadRequest(response, errorBody) - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + case strings.EqualFold("FileSystemNotFound", errorCode): + return awsAwsjson11_deserializeErrorFileSystemNotFound(response, errorBody) + + case strings.EqualFold("InternalServerError", errorCode): + return awsAwsjson11_deserializeErrorInternalServerError(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, } - return err + return genericError + } +} - errorBody.Seek(0, io.SeekStart) - return output +type awsAwsjson11_deserializeOpListTagsForResource struct { } -func awsAwsjson11_deserializeErrorDataRepositoryTaskNotFound(response *smithyhttp.Response, errorBody *bytes.Reader) error { - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) +func (*awsAwsjson11_deserializeOpListTagsForResource) ID() string { + return "OperationDeserializer" +} - body := io.TeeReader(errorBody, ringBuffer) - decoder := json.NewDecoder(body) - decoder.UseNumber() - var shape interface{} - if err := decoder.Decode(&shape); err != nil && err != io.EOF { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - return err +func (m *awsAwsjson11_deserializeOpListTagsForResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err } - output := &types.DataRepositoryTaskNotFound{} - err := awsAwsjson11_deserializeDocumentDataRepositoryTaskNotFound(&output, shape) - - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - return err + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} } - errorBody.Seek(0, io.SeekStart) - return output -} + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorListTagsForResource(response, &metadata) + } + output := &ListTagsForResourceOutput{} + out.Result = output -func awsAwsjson11_deserializeErrorFileSystemNotFound(response *smithyhttp.Response, errorBody *bytes.Reader) error { var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(errorBody, ringBuffer) + body := io.TeeReader(response.Body, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() var shape interface{} @@ -2602,12 +2687,10 @@ func awsAwsjson11_deserializeErrorFileSystemNotFound(response *smithyhttp.Respon Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - output := &types.FileSystemNotFound{} - err := awsAwsjson11_deserializeDocumentFileSystemNotFound(&output, shape) - + err = awsAwsjson11_deserializeOpDocumentListTagsForResourceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2615,34 +2698,34 @@ func awsAwsjson11_deserializeErrorFileSystemNotFound(response *smithyhttp.Respon Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - errorBody.Seek(0, io.SeekStart) - return output + return out, metadata, err } -func awsAwsjson11_deserializeErrorIncompatibleParameterError(response *smithyhttp.Response, errorBody *bytes.Reader) error { +func awsAwsjson11_deserializeOpErrorListTagsForResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) body := io.TeeReader(errorBody, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() - var shape interface{} - if err := decoder.Decode(&shape); err != nil && err != io.EOF { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - return err - } - - output := &types.IncompatibleParameterError{} - err := awsAwsjson11_deserializeDocumentIncompatibleParameterError(&output, shape) - + code, message, err := restjson.GetErrorInfo(decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2654,49 +2737,69 @@ func awsAwsjson11_deserializeErrorIncompatibleParameterError(response *smithyhtt } errorBody.Seek(0, io.SeekStart) - return output -} + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } -func awsAwsjson11_deserializeErrorIncompatibleRegionForMultiAZ(response *smithyhttp.Response, errorBody *bytes.Reader) error { - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) + switch { + case strings.EqualFold("BadRequest", errorCode): + return awsAwsjson11_deserializeErrorBadRequest(response, errorBody) - body := io.TeeReader(errorBody, ringBuffer) - decoder := json.NewDecoder(body) - decoder.UseNumber() - var shape interface{} - if err := decoder.Decode(&shape); err != nil && err != io.EOF { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + case strings.EqualFold("InternalServerError", errorCode): + return awsAwsjson11_deserializeErrorInternalServerError(response, errorBody) + + case strings.EqualFold("NotServiceResourceError", errorCode): + return awsAwsjson11_deserializeErrorNotServiceResourceError(response, errorBody) + + case strings.EqualFold("ResourceDoesNotSupportTagging", errorCode): + return awsAwsjson11_deserializeErrorResourceDoesNotSupportTagging(response, errorBody) + + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, } - return err + return genericError + } +} - output := &types.IncompatibleRegionForMultiAZ{} - err := awsAwsjson11_deserializeDocumentIncompatibleRegionForMultiAZ(&output, shape) +type awsAwsjson11_deserializeOpTagResource struct { +} +func (*awsAwsjson11_deserializeOpTagResource) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpTagResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - return err + return out, metadata, err } - errorBody.Seek(0, io.SeekStart) - return output -} + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorTagResource(response, &metadata) + } + output := &TagResourceOutput{} + out.Result = output -func awsAwsjson11_deserializeErrorInternalServerError(response *smithyhttp.Response, errorBody *bytes.Reader) error { var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(errorBody, ringBuffer) + body := io.TeeReader(response.Body, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() var shape interface{} @@ -2707,12 +2810,10 @@ func awsAwsjson11_deserializeErrorInternalServerError(response *smithyhttp.Respo Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - output := &types.InternalServerError{} - err := awsAwsjson11_deserializeDocumentInternalServerError(&output, shape) - + err = awsAwsjson11_deserializeOpDocumentTagResourceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2720,22 +2821,35 @@ func awsAwsjson11_deserializeErrorInternalServerError(response *smithyhttp.Respo Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - errorBody.Seek(0, io.SeekStart) - return output + return out, metadata, err } -func awsAwsjson11_deserializeErrorInvalidDestinationKmsKey(response *smithyhttp.Response, errorBody *bytes.Reader) error { +func awsAwsjson11_deserializeOpErrorTagResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) body := io.TeeReader(errorBody, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() - var shape interface{} - if err := decoder.Decode(&shape); err != nil && err != io.EOF { + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) err = &smithy.DeserializationError{ @@ -2745,63 +2859,70 @@ func awsAwsjson11_deserializeErrorInvalidDestinationKmsKey(response *smithyhttp. return err } - output := &types.InvalidDestinationKmsKey{} - err := awsAwsjson11_deserializeDocumentInvalidDestinationKmsKey(&output, shape) + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - return err - } + switch { + case strings.EqualFold("BadRequest", errorCode): + return awsAwsjson11_deserializeErrorBadRequest(response, errorBody) - errorBody.Seek(0, io.SeekStart) - return output -} + case strings.EqualFold("InternalServerError", errorCode): + return awsAwsjson11_deserializeErrorInternalServerError(response, errorBody) -func awsAwsjson11_deserializeErrorInvalidExportPath(response *smithyhttp.Response, errorBody *bytes.Reader) error { - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) + case strings.EqualFold("NotServiceResourceError", errorCode): + return awsAwsjson11_deserializeErrorNotServiceResourceError(response, errorBody) - body := io.TeeReader(errorBody, ringBuffer) - decoder := json.NewDecoder(body) - decoder.UseNumber() - var shape interface{} - if err := decoder.Decode(&shape); err != nil && err != io.EOF { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + case strings.EqualFold("ResourceDoesNotSupportTagging", errorCode): + return awsAwsjson11_deserializeErrorResourceDoesNotSupportTagging(response, errorBody) + + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, } - return err + return genericError + } +} - output := &types.InvalidExportPath{} - err := awsAwsjson11_deserializeDocumentInvalidExportPath(&output, shape) +type awsAwsjson11_deserializeOpUntagResource struct { +} + +func (*awsAwsjson11_deserializeOpUntagResource) ID() string { + return "OperationDeserializer" +} +func (m *awsAwsjson11_deserializeOpUntagResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - return err + return out, metadata, err } - errorBody.Seek(0, io.SeekStart) - return output -} + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorUntagResource(response, &metadata) + } + output := &UntagResourceOutput{} + out.Result = output -func awsAwsjson11_deserializeErrorInvalidImportPath(response *smithyhttp.Response, errorBody *bytes.Reader) error { var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(errorBody, ringBuffer) + body := io.TeeReader(response.Body, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() var shape interface{} @@ -2812,12 +2933,10 @@ func awsAwsjson11_deserializeErrorInvalidImportPath(response *smithyhttp.Respons Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - output := &types.InvalidImportPath{} - err := awsAwsjson11_deserializeDocumentInvalidImportPath(&output, shape) - + err = awsAwsjson11_deserializeOpDocumentUntagResourceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2825,34 +2944,34 @@ func awsAwsjson11_deserializeErrorInvalidImportPath(response *smithyhttp.Respons Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - errorBody.Seek(0, io.SeekStart) - return output + return out, metadata, err } -func awsAwsjson11_deserializeErrorInvalidNetworkSettings(response *smithyhttp.Response, errorBody *bytes.Reader) error { +func awsAwsjson11_deserializeOpErrorUntagResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) body := io.TeeReader(errorBody, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() - var shape interface{} - if err := decoder.Decode(&shape); err != nil && err != io.EOF { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - return err - } - - output := &types.InvalidNetworkSettings{} - err := awsAwsjson11_deserializeDocumentInvalidNetworkSettings(&output, shape) - + code, message, err := restjson.GetErrorInfo(decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2864,49 +2983,69 @@ func awsAwsjson11_deserializeErrorInvalidNetworkSettings(response *smithyhttp.Re } errorBody.Seek(0, io.SeekStart) - return output -} + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } -func awsAwsjson11_deserializeErrorInvalidPerUnitStorageThroughput(response *smithyhttp.Response, errorBody *bytes.Reader) error { - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) + switch { + case strings.EqualFold("BadRequest", errorCode): + return awsAwsjson11_deserializeErrorBadRequest(response, errorBody) - body := io.TeeReader(errorBody, ringBuffer) - decoder := json.NewDecoder(body) - decoder.UseNumber() - var shape interface{} - if err := decoder.Decode(&shape); err != nil && err != io.EOF { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + case strings.EqualFold("InternalServerError", errorCode): + return awsAwsjson11_deserializeErrorInternalServerError(response, errorBody) + + case strings.EqualFold("NotServiceResourceError", errorCode): + return awsAwsjson11_deserializeErrorNotServiceResourceError(response, errorBody) + + case strings.EqualFold("ResourceDoesNotSupportTagging", errorCode): + return awsAwsjson11_deserializeErrorResourceDoesNotSupportTagging(response, errorBody) + + case strings.EqualFold("ResourceNotFound", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFound(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, } - return err + return genericError + } +} - output := &types.InvalidPerUnitStorageThroughput{} - err := awsAwsjson11_deserializeDocumentInvalidPerUnitStorageThroughput(&output, shape) +type awsAwsjson11_deserializeOpUpdateFileSystem struct { +} + +func (*awsAwsjson11_deserializeOpUpdateFileSystem) ID() string { + return "OperationDeserializer" +} +func (m *awsAwsjson11_deserializeOpUpdateFileSystem) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - return err + return out, metadata, err } - errorBody.Seek(0, io.SeekStart) - return output -} + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateFileSystem(response, &metadata) + } + output := &UpdateFileSystemOutput{} + out.Result = output -func awsAwsjson11_deserializeErrorInvalidRegion(response *smithyhttp.Response, errorBody *bytes.Reader) error { var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(errorBody, ringBuffer) + body := io.TeeReader(response.Body, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() var shape interface{} @@ -2917,12 +3056,10 @@ func awsAwsjson11_deserializeErrorInvalidRegion(response *smithyhttp.Response, e Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - output := &types.InvalidRegion{} - err := awsAwsjson11_deserializeDocumentInvalidRegion(&output, shape) - + err = awsAwsjson11_deserializeOpDocumentUpdateFileSystemOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2930,34 +3067,34 @@ func awsAwsjson11_deserializeErrorInvalidRegion(response *smithyhttp.Response, e Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - errorBody.Seek(0, io.SeekStart) - return output + return out, metadata, err } -func awsAwsjson11_deserializeErrorInvalidSourceKmsKey(response *smithyhttp.Response, errorBody *bytes.Reader) error { +func awsAwsjson11_deserializeOpErrorUpdateFileSystem(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) body := io.TeeReader(errorBody, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() - var shape interface{} - if err := decoder.Decode(&shape); err != nil && err != io.EOF { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - return err - } - - output := &types.InvalidSourceKmsKey{} - err := awsAwsjson11_deserializeDocumentInvalidSourceKmsKey(&output, shape) - + code, message, err := restjson.GetErrorInfo(decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2969,14 +3106,75 @@ func awsAwsjson11_deserializeErrorInvalidSourceKmsKey(response *smithyhttp.Respo } errorBody.Seek(0, io.SeekStart) - return output -} + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } -func awsAwsjson11_deserializeErrorMissingFileSystemConfiguration(response *smithyhttp.Response, errorBody *bytes.Reader) error { - var buff [1024]byte + switch { + case strings.EqualFold("BadRequest", errorCode): + return awsAwsjson11_deserializeErrorBadRequest(response, errorBody) + + case strings.EqualFold("FileSystemNotFound", errorCode): + return awsAwsjson11_deserializeErrorFileSystemNotFound(response, errorBody) + + case strings.EqualFold("IncompatibleParameterError", errorCode): + return awsAwsjson11_deserializeErrorIncompatibleParameterError(response, errorBody) + + case strings.EqualFold("InternalServerError", errorCode): + return awsAwsjson11_deserializeErrorInternalServerError(response, errorBody) + + case strings.EqualFold("MissingFileSystemConfiguration", errorCode): + return awsAwsjson11_deserializeErrorMissingFileSystemConfiguration(response, errorBody) + + case strings.EqualFold("ServiceLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorServiceLimitExceeded(response, errorBody) + + case strings.EqualFold("UnsupportedOperation", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedOperation(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpUpdateStorageVirtualMachine struct { +} + +func (*awsAwsjson11_deserializeOpUpdateStorageVirtualMachine) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdateStorageVirtualMachine) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateStorageVirtualMachine(response, &metadata) + } + output := &UpdateStorageVirtualMachineOutput{} + out.Result = output + + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(errorBody, ringBuffer) + body := io.TeeReader(response.Body, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() var shape interface{} @@ -2987,12 +3185,45 @@ func awsAwsjson11_deserializeErrorMissingFileSystemConfiguration(response *smith Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - output := &types.MissingFileSystemConfiguration{} - err := awsAwsjson11_deserializeDocumentMissingFileSystemConfiguration(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateStorageVirtualMachineOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + return out, metadata, err +} + +func awsAwsjson11_deserializeOpErrorUpdateStorageVirtualMachine(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3004,14 +3235,69 @@ func awsAwsjson11_deserializeErrorMissingFileSystemConfiguration(response *smith } errorBody.Seek(0, io.SeekStart) - return output + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("BadRequest", errorCode): + return awsAwsjson11_deserializeErrorBadRequest(response, errorBody) + + case strings.EqualFold("IncompatibleParameterError", errorCode): + return awsAwsjson11_deserializeErrorIncompatibleParameterError(response, errorBody) + + case strings.EqualFold("InternalServerError", errorCode): + return awsAwsjson11_deserializeErrorInternalServerError(response, errorBody) + + case strings.EqualFold("StorageVirtualMachineNotFound", errorCode): + return awsAwsjson11_deserializeErrorStorageVirtualMachineNotFound(response, errorBody) + + case strings.EqualFold("UnsupportedOperation", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedOperation(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } } -func awsAwsjson11_deserializeErrorNotServiceResourceError(response *smithyhttp.Response, errorBody *bytes.Reader) error { +type awsAwsjson11_deserializeOpUpdateVolume struct { +} + +func (*awsAwsjson11_deserializeOpUpdateVolume) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdateVolume) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateVolume(response, &metadata) + } + output := &UpdateVolumeOutput{} + out.Result = output + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(errorBody, ringBuffer) + body := io.TeeReader(response.Body, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() var shape interface{} @@ -3022,12 +3308,45 @@ func awsAwsjson11_deserializeErrorNotServiceResourceError(response *smithyhttp.R Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - output := &types.NotServiceResourceError{} - err := awsAwsjson11_deserializeDocumentNotServiceResourceError(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateVolumeOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + return out, metadata, err +} + +func awsAwsjson11_deserializeOpErrorUpdateVolume(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3039,10 +3358,40 @@ func awsAwsjson11_deserializeErrorNotServiceResourceError(response *smithyhttp.R } errorBody.Seek(0, io.SeekStart) - return output + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("BadRequest", errorCode): + return awsAwsjson11_deserializeErrorBadRequest(response, errorBody) + + case strings.EqualFold("IncompatibleParameterError", errorCode): + return awsAwsjson11_deserializeErrorIncompatibleParameterError(response, errorBody) + + case strings.EqualFold("InternalServerError", errorCode): + return awsAwsjson11_deserializeErrorInternalServerError(response, errorBody) + + case strings.EqualFold("MissingVolumeConfiguration", errorCode): + return awsAwsjson11_deserializeErrorMissingVolumeConfiguration(response, errorBody) + + case strings.EqualFold("VolumeNotFound", errorCode): + return awsAwsjson11_deserializeErrorVolumeNotFound(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } } -func awsAwsjson11_deserializeErrorResourceDoesNotSupportTagging(response *smithyhttp.Response, errorBody *bytes.Reader) error { +func awsAwsjson11_deserializeErrorActiveDirectoryError(response *smithyhttp.Response, errorBody *bytes.Reader) error { var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -3060,8 +3409,8 @@ func awsAwsjson11_deserializeErrorResourceDoesNotSupportTagging(response *smithy return err } - output := &types.ResourceDoesNotSupportTagging{} - err := awsAwsjson11_deserializeDocumentResourceDoesNotSupportTagging(&output, shape) + output := &types.ActiveDirectoryError{} + err := awsAwsjson11_deserializeDocumentActiveDirectoryError(&output, shape) if err != nil { var snapshot bytes.Buffer @@ -3077,7 +3426,7 @@ func awsAwsjson11_deserializeErrorResourceDoesNotSupportTagging(response *smithy return output } -func awsAwsjson11_deserializeErrorResourceNotFound(response *smithyhttp.Response, errorBody *bytes.Reader) error { +func awsAwsjson11_deserializeErrorBackupBeingCopied(response *smithyhttp.Response, errorBody *bytes.Reader) error { var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -3095,8 +3444,8 @@ func awsAwsjson11_deserializeErrorResourceNotFound(response *smithyhttp.Response return err } - output := &types.ResourceNotFound{} - err := awsAwsjson11_deserializeDocumentResourceNotFound(&output, shape) + output := &types.BackupBeingCopied{} + err := awsAwsjson11_deserializeDocumentBackupBeingCopied(&output, shape) if err != nil { var snapshot bytes.Buffer @@ -3112,7 +3461,7 @@ func awsAwsjson11_deserializeErrorResourceNotFound(response *smithyhttp.Response return output } -func awsAwsjson11_deserializeErrorServiceLimitExceeded(response *smithyhttp.Response, errorBody *bytes.Reader) error { +func awsAwsjson11_deserializeErrorBackupInProgress(response *smithyhttp.Response, errorBody *bytes.Reader) error { var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -3130,8 +3479,8 @@ func awsAwsjson11_deserializeErrorServiceLimitExceeded(response *smithyhttp.Resp return err } - output := &types.ServiceLimitExceeded{} - err := awsAwsjson11_deserializeDocumentServiceLimitExceeded(&output, shape) + output := &types.BackupInProgress{} + err := awsAwsjson11_deserializeDocumentBackupInProgress(&output, shape) if err != nil { var snapshot bytes.Buffer @@ -3147,7 +3496,7 @@ func awsAwsjson11_deserializeErrorServiceLimitExceeded(response *smithyhttp.Resp return output } -func awsAwsjson11_deserializeErrorSourceBackupUnavailable(response *smithyhttp.Response, errorBody *bytes.Reader) error { +func awsAwsjson11_deserializeErrorBackupNotFound(response *smithyhttp.Response, errorBody *bytes.Reader) error { var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -3165,8 +3514,8 @@ func awsAwsjson11_deserializeErrorSourceBackupUnavailable(response *smithyhttp.R return err } - output := &types.SourceBackupUnavailable{} - err := awsAwsjson11_deserializeDocumentSourceBackupUnavailable(&output, shape) + output := &types.BackupNotFound{} + err := awsAwsjson11_deserializeDocumentBackupNotFound(&output, shape) if err != nil { var snapshot bytes.Buffer @@ -3182,7 +3531,7 @@ func awsAwsjson11_deserializeErrorSourceBackupUnavailable(response *smithyhttp.R return output } -func awsAwsjson11_deserializeErrorUnsupportedOperation(response *smithyhttp.Response, errorBody *bytes.Reader) error { +func awsAwsjson11_deserializeErrorBackupRestoring(response *smithyhttp.Response, errorBody *bytes.Reader) error { var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -3200,8 +3549,8 @@ func awsAwsjson11_deserializeErrorUnsupportedOperation(response *smithyhttp.Resp return err } - output := &types.UnsupportedOperation{} - err := awsAwsjson11_deserializeDocumentUnsupportedOperation(&output, shape) + output := &types.BackupRestoring{} + err := awsAwsjson11_deserializeDocumentBackupRestoring(&output, shape) if err != nil { var snapshot bytes.Buffer @@ -3217,53 +3566,2035 @@ func awsAwsjson11_deserializeErrorUnsupportedOperation(response *smithyhttp.Resp return output } -func awsAwsjson11_deserializeDocumentActiveDirectoryBackupAttributes(v **types.ActiveDirectoryBackupAttributes, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } +func awsAwsjson11_deserializeErrorBadRequest(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.BadRequest{} + err := awsAwsjson11_deserializeDocumentBadRequest(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorDataRepositoryTaskEnded(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.DataRepositoryTaskEnded{} + err := awsAwsjson11_deserializeDocumentDataRepositoryTaskEnded(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorDataRepositoryTaskExecuting(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.DataRepositoryTaskExecuting{} + err := awsAwsjson11_deserializeDocumentDataRepositoryTaskExecuting(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorDataRepositoryTaskNotFound(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.DataRepositoryTaskNotFound{} + err := awsAwsjson11_deserializeDocumentDataRepositoryTaskNotFound(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorFileSystemNotFound(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.FileSystemNotFound{} + err := awsAwsjson11_deserializeDocumentFileSystemNotFound(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorIncompatibleParameterError(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.IncompatibleParameterError{} + err := awsAwsjson11_deserializeDocumentIncompatibleParameterError(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorIncompatibleRegionForMultiAZ(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.IncompatibleRegionForMultiAZ{} + err := awsAwsjson11_deserializeDocumentIncompatibleRegionForMultiAZ(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorInternalServerError(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.InternalServerError{} + err := awsAwsjson11_deserializeDocumentInternalServerError(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorInvalidDestinationKmsKey(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.InvalidDestinationKmsKey{} + err := awsAwsjson11_deserializeDocumentInvalidDestinationKmsKey(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorInvalidExportPath(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.InvalidExportPath{} + err := awsAwsjson11_deserializeDocumentInvalidExportPath(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorInvalidImportPath(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.InvalidImportPath{} + err := awsAwsjson11_deserializeDocumentInvalidImportPath(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorInvalidNetworkSettings(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.InvalidNetworkSettings{} + err := awsAwsjson11_deserializeDocumentInvalidNetworkSettings(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorInvalidPerUnitStorageThroughput(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.InvalidPerUnitStorageThroughput{} + err := awsAwsjson11_deserializeDocumentInvalidPerUnitStorageThroughput(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorInvalidRegion(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.InvalidRegion{} + err := awsAwsjson11_deserializeDocumentInvalidRegion(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorInvalidSourceKmsKey(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.InvalidSourceKmsKey{} + err := awsAwsjson11_deserializeDocumentInvalidSourceKmsKey(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorMissingFileSystemConfiguration(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.MissingFileSystemConfiguration{} + err := awsAwsjson11_deserializeDocumentMissingFileSystemConfiguration(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorMissingVolumeConfiguration(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.MissingVolumeConfiguration{} + err := awsAwsjson11_deserializeDocumentMissingVolumeConfiguration(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorNotServiceResourceError(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.NotServiceResourceError{} + err := awsAwsjson11_deserializeDocumentNotServiceResourceError(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorResourceDoesNotSupportTagging(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.ResourceDoesNotSupportTagging{} + err := awsAwsjson11_deserializeDocumentResourceDoesNotSupportTagging(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorResourceNotFound(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.ResourceNotFound{} + err := awsAwsjson11_deserializeDocumentResourceNotFound(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorServiceLimitExceeded(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.ServiceLimitExceeded{} + err := awsAwsjson11_deserializeDocumentServiceLimitExceeded(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorSourceBackupUnavailable(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.SourceBackupUnavailable{} + err := awsAwsjson11_deserializeDocumentSourceBackupUnavailable(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorStorageVirtualMachineNotFound(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.StorageVirtualMachineNotFound{} + err := awsAwsjson11_deserializeDocumentStorageVirtualMachineNotFound(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorUnsupportedOperation(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.UnsupportedOperation{} + err := awsAwsjson11_deserializeDocumentUnsupportedOperation(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorVolumeNotFound(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.VolumeNotFound{} + err := awsAwsjson11_deserializeDocumentVolumeNotFound(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeDocumentActiveDirectoryBackupAttributes(v **types.ActiveDirectoryBackupAttributes, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ActiveDirectoryBackupAttributes + if *v == nil { + sv = &types.ActiveDirectoryBackupAttributes{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ActiveDirectoryId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DirectoryId to be of type string, got %T instead", value) + } + sv.ActiveDirectoryId = ptr.String(jtv) + } + + case "DomainName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ActiveDirectoryFullyQualifiedName to be of type string, got %T instead", value) + } + sv.DomainName = ptr.String(jtv) + } + + case "ResourceARN": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceARN to be of type string, got %T instead", value) + } + sv.ResourceARN = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentActiveDirectoryError(v **types.ActiveDirectoryError, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ActiveDirectoryError + if *v == nil { + sv = &types.ActiveDirectoryError{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ActiveDirectoryId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DirectoryId to be of type string, got %T instead", value) + } + sv.ActiveDirectoryId = ptr.String(jtv) + } + + case "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + case "Type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ActiveDirectoryErrorType to be of type string, got %T instead", value) + } + sv.Type = types.ActiveDirectoryErrorType(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentAdministrativeAction(v **types.AdministrativeAction, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AdministrativeAction + if *v == nil { + sv = &types.AdministrativeAction{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AdministrativeActionType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AdministrativeActionType to be of type string, got %T instead", value) + } + sv.AdministrativeActionType = types.AdministrativeActionType(jtv) + } + + case "FailureDetails": + if err := awsAwsjson11_deserializeDocumentAdministrativeActionFailureDetails(&sv.FailureDetails, value); err != nil { + return err + } + + case "ProgressPercent": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected ProgressPercent to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ProgressPercent = ptr.Int32(int32(i64)) + } + + case "RequestTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.RequestTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected RequestTime to be a JSON Number, got %T instead", value) + + } + } + + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Status to be of type string, got %T instead", value) + } + sv.Status = types.Status(jtv) + } + + case "TargetFileSystemValues": + if err := awsAwsjson11_deserializeDocumentFileSystem(&sv.TargetFileSystemValues, value); err != nil { + return err + } + + case "TargetVolumeValues": + if err := awsAwsjson11_deserializeDocumentVolume(&sv.TargetVolumeValues, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentAdministrativeActionFailureDetails(v **types.AdministrativeActionFailureDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AdministrativeActionFailureDetails + if *v == nil { + sv = &types.AdministrativeActionFailureDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentAdministrativeActions(v *[]types.AdministrativeAction, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AdministrativeAction + if *v == nil { + cv = []types.AdministrativeAction{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AdministrativeAction + destAddr := &col + if err := awsAwsjson11_deserializeDocumentAdministrativeAction(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentAlias(v **types.Alias, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.Alias + if *v == nil { + sv = &types.Alias{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Lifecycle": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AliasLifecycle to be of type string, got %T instead", value) + } + sv.Lifecycle = types.AliasLifecycle(jtv) + } + + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AlternateDNSName to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentAliases(v *[]types.Alias, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.Alias + if *v == nil { + cv = []types.Alias{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.Alias + destAddr := &col + if err := awsAwsjson11_deserializeDocumentAlias(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentBackup(v **types.Backup, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.Backup + if *v == nil { + sv = &types.Backup{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "BackupId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected BackupId to be of type string, got %T instead", value) + } + sv.BackupId = ptr.String(jtv) + } + + case "CreationTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.CreationTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected CreationTime to be a JSON Number, got %T instead", value) + + } + } + + case "DirectoryInformation": + if err := awsAwsjson11_deserializeDocumentActiveDirectoryBackupAttributes(&sv.DirectoryInformation, value); err != nil { + return err + } + + case "FailureDetails": + if err := awsAwsjson11_deserializeDocumentBackupFailureDetails(&sv.FailureDetails, value); err != nil { + return err + } + + case "FileSystem": + if err := awsAwsjson11_deserializeDocumentFileSystem(&sv.FileSystem, value); err != nil { + return err + } + + case "KmsKeyId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected KmsKeyId to be of type string, got %T instead", value) + } + sv.KmsKeyId = ptr.String(jtv) + } + + case "Lifecycle": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected BackupLifecycle to be of type string, got %T instead", value) + } + sv.Lifecycle = types.BackupLifecycle(jtv) + } + + case "OwnerId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AWSAccountId to be of type string, got %T instead", value) + } + sv.OwnerId = ptr.String(jtv) + } + + case "ProgressPercent": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected ProgressPercent to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ProgressPercent = ptr.Int32(int32(i64)) + } + + case "ResourceARN": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceARN to be of type string, got %T instead", value) + } + sv.ResourceARN = ptr.String(jtv) + } + + case "ResourceType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceType to be of type string, got %T instead", value) + } + sv.ResourceType = types.ResourceType(jtv) + } + + case "SourceBackupId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected BackupId to be of type string, got %T instead", value) + } + sv.SourceBackupId = ptr.String(jtv) + } + + case "SourceBackupRegion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Region to be of type string, got %T instead", value) + } + sv.SourceBackupRegion = ptr.String(jtv) + } + + case "Tags": + if err := awsAwsjson11_deserializeDocumentTags(&sv.Tags, value); err != nil { + return err + } + + case "Type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected BackupType to be of type string, got %T instead", value) + } + sv.Type = types.BackupType(jtv) + } + + case "Volume": + if err := awsAwsjson11_deserializeDocumentVolume(&sv.Volume, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentBackupBeingCopied(v **types.BackupBeingCopied, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.BackupBeingCopied + if *v == nil { + sv = &types.BackupBeingCopied{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "BackupId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected BackupId to be of type string, got %T instead", value) + } + sv.BackupId = ptr.String(jtv) + } + + case "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentBackupFailureDetails(v **types.BackupFailureDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.BackupFailureDetails + if *v == nil { + sv = &types.BackupFailureDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentBackupInProgress(v **types.BackupInProgress, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.BackupInProgress + if *v == nil { + sv = &types.BackupInProgress{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentBackupNotFound(v **types.BackupNotFound, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.BackupNotFound + if *v == nil { + sv = &types.BackupNotFound{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentBackupRestoring(v **types.BackupRestoring, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.BackupRestoring + if *v == nil { + sv = &types.BackupRestoring{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "FileSystemId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FileSystemId to be of type string, got %T instead", value) + } + sv.FileSystemId = ptr.String(jtv) + } + + case "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentBackups(v *[]types.Backup, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.Backup + if *v == nil { + cv = []types.Backup{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.Backup + destAddr := &col + if err := awsAwsjson11_deserializeDocumentBackup(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentBadRequest(v **types.BadRequest, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.BadRequest + if *v == nil { + sv = &types.BadRequest{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentCompletionReport(v **types.CompletionReport, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.CompletionReport + if *v == nil { + sv = &types.CompletionReport{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Enabled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Flag to be of type *bool, got %T instead", value) + } + sv.Enabled = ptr.Bool(jtv) + } + + case "Format": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ReportFormat to be of type string, got %T instead", value) + } + sv.Format = types.ReportFormat(jtv) + } + + case "Path": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ArchivePath to be of type string, got %T instead", value) + } + sv.Path = ptr.String(jtv) + } - var sv *types.ActiveDirectoryBackupAttributes + case "Scope": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ReportScope to be of type string, got %T instead", value) + } + sv.Scope = types.ReportScope(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentDataRepositoryConfiguration(v **types.DataRepositoryConfiguration, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.DataRepositoryConfiguration if *v == nil { - sv = &types.ActiveDirectoryBackupAttributes{} + sv = &types.DataRepositoryConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AutoImportPolicy": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AutoImportPolicyType to be of type string, got %T instead", value) + } + sv.AutoImportPolicy = types.AutoImportPolicyType(jtv) + } + + case "ExportPath": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ArchivePath to be of type string, got %T instead", value) + } + sv.ExportPath = ptr.String(jtv) + } + + case "FailureDetails": + if err := awsAwsjson11_deserializeDocumentDataRepositoryFailureDetails(&sv.FailureDetails, value); err != nil { + return err + } + + case "ImportedFileChunkSize": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Megabytes to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ImportedFileChunkSize = ptr.Int32(int32(i64)) + } + + case "ImportPath": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ArchivePath to be of type string, got %T instead", value) + } + sv.ImportPath = ptr.String(jtv) + } + + case "Lifecycle": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DataRepositoryLifecycle to be of type string, got %T instead", value) + } + sv.Lifecycle = types.DataRepositoryLifecycle(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentDataRepositoryFailureDetails(v **types.DataRepositoryFailureDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.DataRepositoryFailureDetails + if *v == nil { + sv = &types.DataRepositoryFailureDetails{} } else { sv = *v } - for key, value := range shape { - switch key { - case "ActiveDirectoryId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected DirectoryId to be of type string, got %T instead", value) + for key, value := range shape { + switch key { + case "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentDataRepositoryTask(v **types.DataRepositoryTask, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.DataRepositoryTask + if *v == nil { + sv = &types.DataRepositoryTask{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "CreationTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.CreationTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected CreationTime to be a JSON Number, got %T instead", value) + + } + } + + case "EndTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.EndTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected EndTime to be a JSON Number, got %T instead", value) + + } + } + + case "FailureDetails": + if err := awsAwsjson11_deserializeDocumentDataRepositoryTaskFailureDetails(&sv.FailureDetails, value); err != nil { + return err + } + + case "FileSystemId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FileSystemId to be of type string, got %T instead", value) + } + sv.FileSystemId = ptr.String(jtv) + } + + case "Lifecycle": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DataRepositoryTaskLifecycle to be of type string, got %T instead", value) + } + sv.Lifecycle = types.DataRepositoryTaskLifecycle(jtv) + } + + case "Paths": + if err := awsAwsjson11_deserializeDocumentDataRepositoryTaskPaths(&sv.Paths, value); err != nil { + return err + } + + case "Report": + if err := awsAwsjson11_deserializeDocumentCompletionReport(&sv.Report, value); err != nil { + return err + } + + case "ResourceARN": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceARN to be of type string, got %T instead", value) + } + sv.ResourceARN = ptr.String(jtv) + } + + case "StartTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.StartTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected StartTime to be a JSON Number, got %T instead", value) + } - sv.ActiveDirectoryId = ptr.String(jtv) } - case "DomainName": + case "Status": + if err := awsAwsjson11_deserializeDocumentDataRepositoryTaskStatus(&sv.Status, value); err != nil { + return err + } + + case "Tags": + if err := awsAwsjson11_deserializeDocumentTags(&sv.Tags, value); err != nil { + return err + } + + case "TaskId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ActiveDirectoryFullyQualifiedName to be of type string, got %T instead", value) + return fmt.Errorf("expected TaskId to be of type string, got %T instead", value) } - sv.DomainName = ptr.String(jtv) + sv.TaskId = ptr.String(jtv) } - case "ResourceARN": + case "Type": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ResourceARN to be of type string, got %T instead", value) + return fmt.Errorf("expected DataRepositoryTaskType to be of type string, got %T instead", value) } - sv.ResourceARN = ptr.String(jtv) + sv.Type = types.DataRepositoryTaskType(jtv) } default: @@ -3275,7 +5606,7 @@ func awsAwsjson11_deserializeDocumentActiveDirectoryBackupAttributes(v **types.A return nil } -func awsAwsjson11_deserializeDocumentActiveDirectoryError(v **types.ActiveDirectoryError, value interface{}) error { +func awsAwsjson11_deserializeDocumentDataRepositoryTaskEnded(v **types.DataRepositoryTaskEnded, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3288,24 +5619,15 @@ func awsAwsjson11_deserializeDocumentActiveDirectoryError(v **types.ActiveDirect return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ActiveDirectoryError + var sv *types.DataRepositoryTaskEnded if *v == nil { - sv = &types.ActiveDirectoryError{} + sv = &types.DataRepositoryTaskEnded{} } else { sv = *v } for key, value := range shape { switch key { - case "ActiveDirectoryId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected DirectoryId to be of type string, got %T instead", value) - } - sv.ActiveDirectoryId = ptr.String(jtv) - } - case "Message": if value != nil { jtv, ok := value.(string) @@ -3315,15 +5637,6 @@ func awsAwsjson11_deserializeDocumentActiveDirectoryError(v **types.ActiveDirect sv.Message = ptr.String(jtv) } - case "Type": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ActiveDirectoryErrorType to be of type string, got %T instead", value) - } - sv.Type = types.ActiveDirectoryErrorType(jtv) - } - default: _, _ = key, value @@ -3333,7 +5646,7 @@ func awsAwsjson11_deserializeDocumentActiveDirectoryError(v **types.ActiveDirect return nil } -func awsAwsjson11_deserializeDocumentAdministrativeAction(v **types.AdministrativeAction, value interface{}) error { +func awsAwsjson11_deserializeDocumentDataRepositoryTaskExecuting(v **types.DataRepositoryTaskExecuting, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3346,70 +5659,22 @@ func awsAwsjson11_deserializeDocumentAdministrativeAction(v **types.Administrati return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AdministrativeAction + var sv *types.DataRepositoryTaskExecuting if *v == nil { - sv = &types.AdministrativeAction{} + sv = &types.DataRepositoryTaskExecuting{} } else { sv = *v } for key, value := range shape { switch key { - case "AdministrativeActionType": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected AdministrativeActionType to be of type string, got %T instead", value) - } - sv.AdministrativeActionType = types.AdministrativeActionType(jtv) - } - - case "FailureDetails": - if err := awsAwsjson11_deserializeDocumentAdministrativeActionFailureDetails(&sv.FailureDetails, value); err != nil { - return err - } - - case "ProgressPercent": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected ProgressPercent to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.ProgressPercent = ptr.Int32(int32(i64)) - } - - case "RequestTime": - if value != nil { - switch jtv := value.(type) { - case json.Number: - f64, err := jtv.Float64() - if err != nil { - return err - } - sv.RequestTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) - - default: - return fmt.Errorf("expected RequestTime to be a JSON Number, got %T instead", value) - - } - } - - case "Status": + case "Message": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Status to be of type string, got %T instead", value) + return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) } - sv.Status = types.Status(jtv) - } - - case "TargetFileSystemValues": - if err := awsAwsjson11_deserializeDocumentFileSystem(&sv.TargetFileSystemValues, value); err != nil { - return err + sv.Message = ptr.String(jtv) } default: @@ -3421,7 +5686,7 @@ func awsAwsjson11_deserializeDocumentAdministrativeAction(v **types.Administrati return nil } -func awsAwsjson11_deserializeDocumentAdministrativeActionFailureDetails(v **types.AdministrativeActionFailureDetails, value interface{}) error { +func awsAwsjson11_deserializeDocumentDataRepositoryTaskFailureDetails(v **types.DataRepositoryTaskFailureDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3434,9 +5699,9 @@ func awsAwsjson11_deserializeDocumentAdministrativeActionFailureDetails(v **type return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AdministrativeActionFailureDetails + var sv *types.DataRepositoryTaskFailureDetails if *v == nil { - sv = &types.AdministrativeActionFailureDetails{} + sv = &types.DataRepositoryTaskFailureDetails{} } else { sv = *v } @@ -3461,7 +5726,7 @@ func awsAwsjson11_deserializeDocumentAdministrativeActionFailureDetails(v **type return nil } -func awsAwsjson11_deserializeDocumentAdministrativeActions(v *[]types.AdministrativeAction, value interface{}) error { +func awsAwsjson11_deserializeDocumentDataRepositoryTaskNotFound(v **types.DataRepositoryTaskNotFound, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3469,33 +5734,39 @@ func awsAwsjson11_deserializeDocumentAdministrativeActions(v *[]types.Administra return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AdministrativeAction + var sv *types.DataRepositoryTaskNotFound if *v == nil { - cv = []types.AdministrativeAction{} + sv = &types.DataRepositoryTaskNotFound{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col types.AdministrativeAction - destAddr := &col - if err := awsAwsjson11_deserializeDocumentAdministrativeAction(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + for key, value := range shape { + switch key { + case "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + } } - *v = cv + *v = sv return nil } -func awsAwsjson11_deserializeDocumentAlias(v **types.Alias, value interface{}) error { +func awsAwsjson11_deserializeDocumentDataRepositoryTaskPaths(v *[]string, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3503,48 +5774,35 @@ func awsAwsjson11_deserializeDocumentAlias(v **types.Alias, value interface{}) e return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.Alias + var cv []string if *v == nil { - sv = &types.Alias{} + cv = []string{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "Lifecycle": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected AliasLifecycle to be of type string, got %T instead", value) - } - sv.Lifecycle = types.AliasLifecycle(jtv) - } - - case "Name": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected AlternateDNSName to be of type string, got %T instead", value) - } - sv.Name = ptr.String(jtv) + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DataRepositoryTaskPath to be of type string, got %T instead", value) } - - default: - _, _ = key, value - + col = jtv } + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsAwsjson11_deserializeDocumentAliases(v *[]types.Alias, value interface{}) error { +func awsAwsjson11_deserializeDocumentDataRepositoryTasks(v *[]types.DataRepositoryTask, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3557,17 +5815,17 @@ func awsAwsjson11_deserializeDocumentAliases(v *[]types.Alias, value interface{} return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.Alias + var cv []types.DataRepositoryTask if *v == nil { - cv = []types.Alias{} + cv = []types.DataRepositoryTask{} } else { cv = *v } for _, value := range shape { - var col types.Alias + var col types.DataRepositoryTask destAddr := &col - if err := awsAwsjson11_deserializeDocumentAlias(&destAddr, value); err != nil { + if err := awsAwsjson11_deserializeDocumentDataRepositoryTask(&destAddr, value); err != nil { return err } col = *destAddr @@ -3578,7 +5836,7 @@ func awsAwsjson11_deserializeDocumentAliases(v *[]types.Alias, value interface{} return nil } -func awsAwsjson11_deserializeDocumentBackup(v **types.Backup, value interface{}) error { +func awsAwsjson11_deserializeDocumentDataRepositoryTaskStatus(v **types.DataRepositoryTaskStatus, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3591,136 +5849,115 @@ func awsAwsjson11_deserializeDocumentBackup(v **types.Backup, value interface{}) return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.Backup + var sv *types.DataRepositoryTaskStatus if *v == nil { - sv = &types.Backup{} + sv = &types.DataRepositoryTaskStatus{} } else { sv = *v } - for key, value := range shape { - switch key { - case "BackupId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected BackupId to be of type string, got %T instead", value) - } - sv.BackupId = ptr.String(jtv) - } - - case "CreationTime": - if value != nil { - switch jtv := value.(type) { - case json.Number: - f64, err := jtv.Float64() - if err != nil { - return err - } - sv.CreationTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) - - default: - return fmt.Errorf("expected CreationTime to be a JSON Number, got %T instead", value) - - } - } - - case "DirectoryInformation": - if err := awsAwsjson11_deserializeDocumentActiveDirectoryBackupAttributes(&sv.DirectoryInformation, value); err != nil { - return err - } - - case "FailureDetails": - if err := awsAwsjson11_deserializeDocumentBackupFailureDetails(&sv.FailureDetails, value); err != nil { - return err - } - - case "FileSystem": - if err := awsAwsjson11_deserializeDocumentFileSystem(&sv.FileSystem, value); err != nil { - return err - } - - case "KmsKeyId": + for key, value := range shape { + switch key { + case "FailedCount": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected KmsKeyId to be of type string, got %T instead", value) + return fmt.Errorf("expected FailedCount to be json.Number, got %T instead", value) } - sv.KmsKeyId = ptr.String(jtv) - } - - case "Lifecycle": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected BackupLifecycle to be of type string, got %T instead", value) + i64, err := jtv.Int64() + if err != nil { + return err } - sv.Lifecycle = types.BackupLifecycle(jtv) + sv.FailedCount = ptr.Int64(i64) } - case "OwnerId": + case "LastUpdatedTime": if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected AWSAccountId to be of type string, got %T instead", value) + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.LastUpdatedTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected LastUpdatedTime to be a JSON Number, got %T instead", value) + } - sv.OwnerId = ptr.String(jtv) } - case "ProgressPercent": + case "SucceededCount": if value != nil { jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected ProgressPercent to be json.Number, got %T instead", value) + return fmt.Errorf("expected SucceededCount to be json.Number, got %T instead", value) } i64, err := jtv.Int64() if err != nil { return err } - sv.ProgressPercent = ptr.Int32(int32(i64)) + sv.SucceededCount = ptr.Int64(i64) } - case "ResourceARN": + case "TotalCount": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected ResourceARN to be of type string, got %T instead", value) + return fmt.Errorf("expected TotalCount to be json.Number, got %T instead", value) } - sv.ResourceARN = ptr.String(jtv) - } - - case "SourceBackupId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected BackupId to be of type string, got %T instead", value) + i64, err := jtv.Int64() + if err != nil { + return err } - sv.SourceBackupId = ptr.String(jtv) + sv.TotalCount = ptr.Int64(i64) } - case "SourceBackupRegion": + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentDeleteFileSystemLustreResponse(v **types.DeleteFileSystemLustreResponse, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.DeleteFileSystemLustreResponse + if *v == nil { + sv = &types.DeleteFileSystemLustreResponse{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "FinalBackupId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Region to be of type string, got %T instead", value) + return fmt.Errorf("expected BackupId to be of type string, got %T instead", value) } - sv.SourceBackupRegion = ptr.String(jtv) + sv.FinalBackupId = ptr.String(jtv) } - case "Tags": - if err := awsAwsjson11_deserializeDocumentTags(&sv.Tags, value); err != nil { + case "FinalBackupTags": + if err := awsAwsjson11_deserializeDocumentTags(&sv.FinalBackupTags, value); err != nil { return err } - case "Type": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected BackupType to be of type string, got %T instead", value) - } - sv.Type = types.BackupType(jtv) - } - default: _, _ = key, value @@ -3730,7 +5967,7 @@ func awsAwsjson11_deserializeDocumentBackup(v **types.Backup, value interface{}) return nil } -func awsAwsjson11_deserializeDocumentBackupBeingCopied(v **types.BackupBeingCopied, value interface{}) error { +func awsAwsjson11_deserializeDocumentDeleteFileSystemWindowsResponse(v **types.DeleteFileSystemWindowsResponse, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3743,31 +5980,27 @@ func awsAwsjson11_deserializeDocumentBackupBeingCopied(v **types.BackupBeingCopi return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.BackupBeingCopied + var sv *types.DeleteFileSystemWindowsResponse if *v == nil { - sv = &types.BackupBeingCopied{} + sv = &types.DeleteFileSystemWindowsResponse{} } else { sv = *v } for key, value := range shape { switch key { - case "BackupId": + case "FinalBackupId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected BackupId to be of type string, got %T instead", value) } - sv.BackupId = ptr.String(jtv) + sv.FinalBackupId = ptr.String(jtv) } - case "Message": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) - } - sv.Message = ptr.String(jtv) + case "FinalBackupTags": + if err := awsAwsjson11_deserializeDocumentTags(&sv.FinalBackupTags, value); err != nil { + return err } default: @@ -3779,7 +6012,7 @@ func awsAwsjson11_deserializeDocumentBackupBeingCopied(v **types.BackupBeingCopi return nil } -func awsAwsjson11_deserializeDocumentBackupFailureDetails(v **types.BackupFailureDetails, value interface{}) error { +func awsAwsjson11_deserializeDocumentDeleteVolumeOntapResponse(v **types.DeleteVolumeOntapResponse, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3792,22 +6025,27 @@ func awsAwsjson11_deserializeDocumentBackupFailureDetails(v **types.BackupFailur return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.BackupFailureDetails + var sv *types.DeleteVolumeOntapResponse if *v == nil { - sv = &types.BackupFailureDetails{} + sv = &types.DeleteVolumeOntapResponse{} } else { sv = *v } for key, value := range shape { switch key { - case "Message": + case "FinalBackupId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + return fmt.Errorf("expected BackupId to be of type string, got %T instead", value) } - sv.Message = ptr.String(jtv) + sv.FinalBackupId = ptr.String(jtv) + } + + case "FinalBackupTags": + if err := awsAwsjson11_deserializeDocumentTags(&sv.FinalBackupTags, value); err != nil { + return err } default: @@ -3819,7 +6057,7 @@ func awsAwsjson11_deserializeDocumentBackupFailureDetails(v **types.BackupFailur return nil } -func awsAwsjson11_deserializeDocumentBackupInProgress(v **types.BackupInProgress, value interface{}) error { +func awsAwsjson11_deserializeDocumentDiskIopsConfiguration(v **types.DiskIopsConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3832,22 +6070,35 @@ func awsAwsjson11_deserializeDocumentBackupInProgress(v **types.BackupInProgress return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.BackupInProgress + var sv *types.DiskIopsConfiguration if *v == nil { - sv = &types.BackupInProgress{} + sv = &types.DiskIopsConfiguration{} } else { sv = *v } for key, value := range shape { switch key { - case "Message": + case "Iops": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Iops to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Iops = ptr.Int64(i64) + } + + case "Mode": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + return fmt.Errorf("expected DiskIopsConfigurationMode to be of type string, got %T instead", value) } - sv.Message = ptr.String(jtv) + sv.Mode = types.DiskIopsConfigurationMode(jtv) } default: @@ -3859,7 +6110,43 @@ func awsAwsjson11_deserializeDocumentBackupInProgress(v **types.BackupInProgress return nil } -func awsAwsjson11_deserializeDocumentBackupNotFound(v **types.BackupNotFound, value interface{}) error { +func awsAwsjson11_deserializeDocumentDnsIps(v *[]string, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []string + if *v == nil { + cv = []string{} + } else { + cv = *v + } + + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected IpAddress to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentFileSystem(v **types.FileSystem, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3872,117 +6159,175 @@ func awsAwsjson11_deserializeDocumentBackupNotFound(v **types.BackupNotFound, va return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.BackupNotFound + var sv *types.FileSystem if *v == nil { - sv = &types.BackupNotFound{} + sv = &types.FileSystem{} } else { sv = *v } - for key, value := range shape { - switch key { - case "Message": + for key, value := range shape { + switch key { + case "AdministrativeActions": + if err := awsAwsjson11_deserializeDocumentAdministrativeActions(&sv.AdministrativeActions, value); err != nil { + return err + } + + case "CreationTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.CreationTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected CreationTime to be a JSON Number, got %T instead", value) + + } + } + + case "DNSName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DNSName to be of type string, got %T instead", value) + } + sv.DNSName = ptr.String(jtv) + } + + case "FailureDetails": + if err := awsAwsjson11_deserializeDocumentFileSystemFailureDetails(&sv.FailureDetails, value); err != nil { + return err + } + + case "FileSystemId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FileSystemId to be of type string, got %T instead", value) + } + sv.FileSystemId = ptr.String(jtv) + } + + case "FileSystemType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FileSystemType to be of type string, got %T instead", value) + } + sv.FileSystemType = types.FileSystemType(jtv) + } + + case "KmsKeyId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + return fmt.Errorf("expected KmsKeyId to be of type string, got %T instead", value) } - sv.Message = ptr.String(jtv) + sv.KmsKeyId = ptr.String(jtv) } - default: - _, _ = key, value + case "Lifecycle": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FileSystemLifecycle to be of type string, got %T instead", value) + } + sv.Lifecycle = types.FileSystemLifecycle(jtv) + } - } - } - *v = sv - return nil -} + case "LustreConfiguration": + if err := awsAwsjson11_deserializeDocumentLustreFileSystemConfiguration(&sv.LustreConfiguration, value); err != nil { + return err + } -func awsAwsjson11_deserializeDocumentBackupRestoring(v **types.BackupRestoring, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } + case "NetworkInterfaceIds": + if err := awsAwsjson11_deserializeDocumentNetworkInterfaceIds(&sv.NetworkInterfaceIds, value); err != nil { + return err + } - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + case "OntapConfiguration": + if err := awsAwsjson11_deserializeDocumentOntapFileSystemConfiguration(&sv.OntapConfiguration, value); err != nil { + return err + } - var sv *types.BackupRestoring - if *v == nil { - sv = &types.BackupRestoring{} - } else { - sv = *v - } + case "OwnerId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AWSAccountId to be of type string, got %T instead", value) + } + sv.OwnerId = ptr.String(jtv) + } - for key, value := range shape { - switch key { - case "FileSystemId": + case "ResourceARN": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected FileSystemId to be of type string, got %T instead", value) + return fmt.Errorf("expected ResourceARN to be of type string, got %T instead", value) } - sv.FileSystemId = ptr.String(jtv) + sv.ResourceARN = ptr.String(jtv) } - case "Message": + case "StorageCapacity": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected StorageCapacity to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.StorageCapacity = ptr.Int32(int32(i64)) + } + + case "StorageType": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + return fmt.Errorf("expected StorageType to be of type string, got %T instead", value) } - sv.Message = ptr.String(jtv) + sv.StorageType = types.StorageType(jtv) } - default: - _, _ = key, value + case "SubnetIds": + if err := awsAwsjson11_deserializeDocumentSubnetIds(&sv.SubnetIds, value); err != nil { + return err + } - } - } - *v = sv - return nil -} + case "Tags": + if err := awsAwsjson11_deserializeDocumentTags(&sv.Tags, value); err != nil { + return err + } -func awsAwsjson11_deserializeDocumentBackups(v *[]types.Backup, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } + case "VpcId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VpcId to be of type string, got %T instead", value) + } + sv.VpcId = ptr.String(jtv) + } - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + case "WindowsConfiguration": + if err := awsAwsjson11_deserializeDocumentWindowsFileSystemConfiguration(&sv.WindowsConfiguration, value); err != nil { + return err + } - var cv []types.Backup - if *v == nil { - cv = []types.Backup{} - } else { - cv = *v - } + default: + _, _ = key, value - for _, value := range shape { - var col types.Backup - destAddr := &col - if err := awsAwsjson11_deserializeDocumentBackup(&destAddr, value); err != nil { - return err } - col = *destAddr - cv = append(cv, col) - } - *v = cv + *v = sv return nil } -func awsAwsjson11_deserializeDocumentBadRequest(v **types.BadRequest, value interface{}) error { +func awsAwsjson11_deserializeDocumentFileSystemEndpoint(v **types.FileSystemEndpoint, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3995,22 +6340,27 @@ func awsAwsjson11_deserializeDocumentBadRequest(v **types.BadRequest, value inte return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.BadRequest + var sv *types.FileSystemEndpoint if *v == nil { - sv = &types.BadRequest{} + sv = &types.FileSystemEndpoint{} } else { sv = *v } for key, value := range shape { switch key { - case "Message": + case "DNSName": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + return fmt.Errorf("expected DNSName to be of type string, got %T instead", value) } - sv.Message = ptr.String(jtv) + sv.DNSName = ptr.String(jtv) + } + + case "IpAddresses": + if err := awsAwsjson11_deserializeDocumentOntapEndpointIpAddresses(&sv.IpAddresses, value); err != nil { + return err } default: @@ -4022,7 +6372,7 @@ func awsAwsjson11_deserializeDocumentBadRequest(v **types.BadRequest, value inte return nil } -func awsAwsjson11_deserializeDocumentCompletionReport(v **types.CompletionReport, value interface{}) error { +func awsAwsjson11_deserializeDocumentFileSystemEndpoints(v **types.FileSystemEndpoints, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4035,49 +6385,23 @@ func awsAwsjson11_deserializeDocumentCompletionReport(v **types.CompletionReport return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.CompletionReport + var sv *types.FileSystemEndpoints if *v == nil { - sv = &types.CompletionReport{} + sv = &types.FileSystemEndpoints{} } else { sv = *v } for key, value := range shape { switch key { - case "Enabled": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Flag to be of type *bool, got %T instead", value) - } - sv.Enabled = ptr.Bool(jtv) - } - - case "Format": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ReportFormat to be of type string, got %T instead", value) - } - sv.Format = types.ReportFormat(jtv) - } - - case "Path": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ArchivePath to be of type string, got %T instead", value) - } - sv.Path = ptr.String(jtv) + case "Intercluster": + if err := awsAwsjson11_deserializeDocumentFileSystemEndpoint(&sv.Intercluster, value); err != nil { + return err } - case "Scope": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ReportScope to be of type string, got %T instead", value) - } - sv.Scope = types.ReportScope(jtv) + case "Management": + if err := awsAwsjson11_deserializeDocumentFileSystemEndpoint(&sv.Management, value); err != nil { + return err } default: @@ -4089,7 +6413,7 @@ func awsAwsjson11_deserializeDocumentCompletionReport(v **types.CompletionReport return nil } -func awsAwsjson11_deserializeDocumentDataRepositoryConfiguration(v **types.DataRepositoryConfiguration, value interface{}) error { +func awsAwsjson11_deserializeDocumentFileSystemFailureDetails(v **types.FileSystemFailureDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4102,79 +6426,70 @@ func awsAwsjson11_deserializeDocumentDataRepositoryConfiguration(v **types.DataR return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.DataRepositoryConfiguration + var sv *types.FileSystemFailureDetails if *v == nil { - sv = &types.DataRepositoryConfiguration{} + sv = &types.FileSystemFailureDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "AutoImportPolicy": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected AutoImportPolicyType to be of type string, got %T instead", value) - } - sv.AutoImportPolicy = types.AutoImportPolicyType(jtv) - } - - case "ExportPath": + case "Message": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ArchivePath to be of type string, got %T instead", value) + return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) } - sv.ExportPath = ptr.String(jtv) - } - - case "FailureDetails": - if err := awsAwsjson11_deserializeDocumentDataRepositoryFailureDetails(&sv.FailureDetails, value); err != nil { - return err + sv.Message = ptr.String(jtv) } - case "ImportedFileChunkSize": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Megabytes to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.ImportedFileChunkSize = ptr.Int32(int32(i64)) - } + default: + _, _ = key, value - case "ImportPath": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ArchivePath to be of type string, got %T instead", value) - } - sv.ImportPath = ptr.String(jtv) - } + } + } + *v = sv + return nil +} - case "Lifecycle": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected DataRepositoryLifecycle to be of type string, got %T instead", value) - } - sv.Lifecycle = types.DataRepositoryLifecycle(jtv) - } +func awsAwsjson11_deserializeDocumentFileSystemMaintenanceOperations(v *[]types.FileSystemMaintenanceOperation, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } - default: - _, _ = key, value + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.FileSystemMaintenanceOperation + if *v == nil { + cv = []types.FileSystemMaintenanceOperation{} + } else { + cv = *v + } + for _, value := range shape { + var col types.FileSystemMaintenanceOperation + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FileSystemMaintenanceOperation to be of type string, got %T instead", value) + } + col = types.FileSystemMaintenanceOperation(jtv) } + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsAwsjson11_deserializeDocumentDataRepositoryFailureDetails(v **types.DataRepositoryFailureDetails, value interface{}) error { +func awsAwsjson11_deserializeDocumentFileSystemNotFound(v **types.FileSystemNotFound, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4187,9 +6502,9 @@ func awsAwsjson11_deserializeDocumentDataRepositoryFailureDetails(v **types.Data return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.DataRepositoryFailureDetails + var sv *types.FileSystemNotFound if *v == nil { - sv = &types.DataRepositoryFailureDetails{} + sv = &types.FileSystemNotFound{} } else { sv = *v } @@ -4214,7 +6529,7 @@ func awsAwsjson11_deserializeDocumentDataRepositoryFailureDetails(v **types.Data return nil } -func awsAwsjson11_deserializeDocumentDataRepositoryTask(v **types.DataRepositoryTask, value interface{}) error { +func awsAwsjson11_deserializeDocumentFileSystems(v *[]types.FileSystem, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4222,148 +6537,33 @@ func awsAwsjson11_deserializeDocumentDataRepositoryTask(v **types.DataRepository return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.DataRepositoryTask + var cv []types.FileSystem if *v == nil { - sv = &types.DataRepositoryTask{} + cv = []types.FileSystem{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "CreationTime": - if value != nil { - switch jtv := value.(type) { - case json.Number: - f64, err := jtv.Float64() - if err != nil { - return err - } - sv.CreationTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) - - default: - return fmt.Errorf("expected CreationTime to be a JSON Number, got %T instead", value) - - } - } - - case "EndTime": - if value != nil { - switch jtv := value.(type) { - case json.Number: - f64, err := jtv.Float64() - if err != nil { - return err - } - sv.EndTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) - - default: - return fmt.Errorf("expected EndTime to be a JSON Number, got %T instead", value) - - } - } - - case "FailureDetails": - if err := awsAwsjson11_deserializeDocumentDataRepositoryTaskFailureDetails(&sv.FailureDetails, value); err != nil { - return err - } - - case "FileSystemId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected FileSystemId to be of type string, got %T instead", value) - } - sv.FileSystemId = ptr.String(jtv) - } - - case "Lifecycle": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected DataRepositoryTaskLifecycle to be of type string, got %T instead", value) - } - sv.Lifecycle = types.DataRepositoryTaskLifecycle(jtv) - } - - case "Paths": - if err := awsAwsjson11_deserializeDocumentDataRepositoryTaskPaths(&sv.Paths, value); err != nil { - return err - } - - case "Report": - if err := awsAwsjson11_deserializeDocumentCompletionReport(&sv.Report, value); err != nil { - return err - } - - case "ResourceARN": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ResourceARN to be of type string, got %T instead", value) - } - sv.ResourceARN = ptr.String(jtv) - } - - case "StartTime": - if value != nil { - switch jtv := value.(type) { - case json.Number: - f64, err := jtv.Float64() - if err != nil { - return err - } - sv.StartTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) - - default: - return fmt.Errorf("expected StartTime to be a JSON Number, got %T instead", value) - - } - } - - case "Status": - if err := awsAwsjson11_deserializeDocumentDataRepositoryTaskStatus(&sv.Status, value); err != nil { - return err - } - - case "Tags": - if err := awsAwsjson11_deserializeDocumentTags(&sv.Tags, value); err != nil { - return err - } - - case "TaskId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected TaskId to be of type string, got %T instead", value) - } - sv.TaskId = ptr.String(jtv) - } - - case "Type": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected DataRepositoryTaskType to be of type string, got %T instead", value) - } - sv.Type = types.DataRepositoryTaskType(jtv) - } - - default: - _, _ = key, value - + for _, value := range shape { + var col types.FileSystem + destAddr := &col + if err := awsAwsjson11_deserializeDocumentFileSystem(&destAddr, value); err != nil { + return err } + col = *destAddr + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsAwsjson11_deserializeDocumentDataRepositoryTaskEnded(v **types.DataRepositoryTaskEnded, value interface{}) error { +func awsAwsjson11_deserializeDocumentIncompatibleParameterError(v **types.IncompatibleParameterError, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4376,9 +6576,9 @@ func awsAwsjson11_deserializeDocumentDataRepositoryTaskEnded(v **types.DataRepos return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.DataRepositoryTaskEnded + var sv *types.IncompatibleParameterError if *v == nil { - sv = &types.DataRepositoryTaskEnded{} + sv = &types.IncompatibleParameterError{} } else { sv = *v } @@ -4394,6 +6594,15 @@ func awsAwsjson11_deserializeDocumentDataRepositoryTaskEnded(v **types.DataRepos sv.Message = ptr.String(jtv) } + case "Parameter": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Parameter to be of type string, got %T instead", value) + } + sv.Parameter = ptr.String(jtv) + } + default: _, _ = key, value @@ -4403,7 +6612,7 @@ func awsAwsjson11_deserializeDocumentDataRepositoryTaskEnded(v **types.DataRepos return nil } -func awsAwsjson11_deserializeDocumentDataRepositoryTaskExecuting(v **types.DataRepositoryTaskExecuting, value interface{}) error { +func awsAwsjson11_deserializeDocumentIncompatibleRegionForMultiAZ(v **types.IncompatibleRegionForMultiAZ, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4416,9 +6625,9 @@ func awsAwsjson11_deserializeDocumentDataRepositoryTaskExecuting(v **types.DataR return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.DataRepositoryTaskExecuting + var sv *types.IncompatibleRegionForMultiAZ if *v == nil { - sv = &types.DataRepositoryTaskExecuting{} + sv = &types.IncompatibleRegionForMultiAZ{} } else { sv = *v } @@ -4443,7 +6652,7 @@ func awsAwsjson11_deserializeDocumentDataRepositoryTaskExecuting(v **types.DataR return nil } -func awsAwsjson11_deserializeDocumentDataRepositoryTaskFailureDetails(v **types.DataRepositoryTaskFailureDetails, value interface{}) error { +func awsAwsjson11_deserializeDocumentInternalServerError(v **types.InternalServerError, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4456,9 +6665,9 @@ func awsAwsjson11_deserializeDocumentDataRepositoryTaskFailureDetails(v **types. return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.DataRepositoryTaskFailureDetails + var sv *types.InternalServerError if *v == nil { - sv = &types.DataRepositoryTaskFailureDetails{} + sv = &types.InternalServerError{} } else { sv = *v } @@ -4483,7 +6692,7 @@ func awsAwsjson11_deserializeDocumentDataRepositoryTaskFailureDetails(v **types. return nil } -func awsAwsjson11_deserializeDocumentDataRepositoryTaskNotFound(v **types.DataRepositoryTaskNotFound, value interface{}) error { +func awsAwsjson11_deserializeDocumentInvalidDestinationKmsKey(v **types.InvalidDestinationKmsKey, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4496,9 +6705,9 @@ func awsAwsjson11_deserializeDocumentDataRepositoryTaskNotFound(v **types.DataRe return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.DataRepositoryTaskNotFound + var sv *types.InvalidDestinationKmsKey if *v == nil { - sv = &types.DataRepositoryTaskNotFound{} + sv = &types.InvalidDestinationKmsKey{} } else { sv = *v } @@ -4523,7 +6732,7 @@ func awsAwsjson11_deserializeDocumentDataRepositoryTaskNotFound(v **types.DataRe return nil } -func awsAwsjson11_deserializeDocumentDataRepositoryTaskPaths(v *[]string, value interface{}) error { +func awsAwsjson11_deserializeDocumentInvalidExportPath(v **types.InvalidExportPath, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4531,35 +6740,39 @@ func awsAwsjson11_deserializeDocumentDataRepositoryTaskPaths(v *[]string, value return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []string + var sv *types.InvalidExportPath if *v == nil { - cv = []string{} + sv = &types.InvalidExportPath{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col string - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected DataRepositoryTaskPath to be of type string, got %T instead", value) + for key, value := range shape { + switch key { + case "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) } - col = jtv - } - cv = append(cv, col) + default: + _, _ = key, value + + } } - *v = cv + *v = sv return nil } -func awsAwsjson11_deserializeDocumentDataRepositoryTasks(v *[]types.DataRepositoryTask, value interface{}) error { +func awsAwsjson11_deserializeDocumentInvalidImportPath(v **types.InvalidImportPath, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4567,33 +6780,39 @@ func awsAwsjson11_deserializeDocumentDataRepositoryTasks(v *[]types.DataReposito return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.DataRepositoryTask + var sv *types.InvalidImportPath if *v == nil { - cv = []types.DataRepositoryTask{} + sv = &types.InvalidImportPath{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col types.DataRepositoryTask - destAddr := &col - if err := awsAwsjson11_deserializeDocumentDataRepositoryTask(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + for key, value := range shape { + switch key { + case "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + } } - *v = cv + *v = sv return nil } -func awsAwsjson11_deserializeDocumentDataRepositoryTaskStatus(v **types.DataRepositoryTaskStatus, value interface{}) error { +func awsAwsjson11_deserializeDocumentInvalidNetworkSettings(v **types.InvalidNetworkSettings, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4606,68 +6825,49 @@ func awsAwsjson11_deserializeDocumentDataRepositoryTaskStatus(v **types.DataRepo return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.DataRepositoryTaskStatus + var sv *types.InvalidNetworkSettings if *v == nil { - sv = &types.DataRepositoryTaskStatus{} + sv = &types.InvalidNetworkSettings{} } else { sv = *v } for key, value := range shape { switch key { - case "FailedCount": + case "InvalidRouteTableId": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected FailedCount to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected RouteTableId to be of type string, got %T instead", value) } - sv.FailedCount = ptr.Int64(i64) + sv.InvalidRouteTableId = ptr.String(jtv) } - case "LastUpdatedTime": + case "InvalidSecurityGroupId": if value != nil { - switch jtv := value.(type) { - case json.Number: - f64, err := jtv.Float64() - if err != nil { - return err - } - sv.LastUpdatedTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) - - default: - return fmt.Errorf("expected LastUpdatedTime to be a JSON Number, got %T instead", value) - + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SecurityGroupId to be of type string, got %T instead", value) } + sv.InvalidSecurityGroupId = ptr.String(jtv) } - case "SucceededCount": + case "InvalidSubnetId": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected SucceededCount to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected SubnetId to be of type string, got %T instead", value) } - sv.SucceededCount = ptr.Int64(i64) + sv.InvalidSubnetId = ptr.String(jtv) } - case "TotalCount": + case "Message": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected TotalCount to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) } - sv.TotalCount = ptr.Int64(i64) + sv.Message = ptr.String(jtv) } default: @@ -4679,7 +6879,7 @@ func awsAwsjson11_deserializeDocumentDataRepositoryTaskStatus(v **types.DataRepo return nil } -func awsAwsjson11_deserializeDocumentDeleteFileSystemLustreResponse(v **types.DeleteFileSystemLustreResponse, value interface{}) error { +func awsAwsjson11_deserializeDocumentInvalidPerUnitStorageThroughput(v **types.InvalidPerUnitStorageThroughput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4692,27 +6892,22 @@ func awsAwsjson11_deserializeDocumentDeleteFileSystemLustreResponse(v **types.De return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.DeleteFileSystemLustreResponse + var sv *types.InvalidPerUnitStorageThroughput if *v == nil { - sv = &types.DeleteFileSystemLustreResponse{} + sv = &types.InvalidPerUnitStorageThroughput{} } else { sv = *v } for key, value := range shape { switch key { - case "FinalBackupId": + case "Message": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected BackupId to be of type string, got %T instead", value) + return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) } - sv.FinalBackupId = ptr.String(jtv) - } - - case "FinalBackupTags": - if err := awsAwsjson11_deserializeDocumentTags(&sv.FinalBackupTags, value); err != nil { - return err + sv.Message = ptr.String(jtv) } default: @@ -4724,7 +6919,7 @@ func awsAwsjson11_deserializeDocumentDeleteFileSystemLustreResponse(v **types.De return nil } -func awsAwsjson11_deserializeDocumentDeleteFileSystemWindowsResponse(v **types.DeleteFileSystemWindowsResponse, value interface{}) error { +func awsAwsjson11_deserializeDocumentInvalidRegion(v **types.InvalidRegion, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4737,27 +6932,22 @@ func awsAwsjson11_deserializeDocumentDeleteFileSystemWindowsResponse(v **types.D return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.DeleteFileSystemWindowsResponse + var sv *types.InvalidRegion if *v == nil { - sv = &types.DeleteFileSystemWindowsResponse{} + sv = &types.InvalidRegion{} } else { sv = *v } for key, value := range shape { switch key { - case "FinalBackupId": + case "Message": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected BackupId to be of type string, got %T instead", value) + return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) } - sv.FinalBackupId = ptr.String(jtv) - } - - case "FinalBackupTags": - if err := awsAwsjson11_deserializeDocumentTags(&sv.FinalBackupTags, value); err != nil { - return err + sv.Message = ptr.String(jtv) } default: @@ -4769,7 +6959,7 @@ func awsAwsjson11_deserializeDocumentDeleteFileSystemWindowsResponse(v **types.D return nil } -func awsAwsjson11_deserializeDocumentDnsIps(v *[]string, value interface{}) error { +func awsAwsjson11_deserializeDocumentInvalidSourceKmsKey(v **types.InvalidSourceKmsKey, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4777,35 +6967,39 @@ func awsAwsjson11_deserializeDocumentDnsIps(v *[]string, value interface{}) erro return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []string + var sv *types.InvalidSourceKmsKey if *v == nil { - cv = []string{} + sv = &types.InvalidSourceKmsKey{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col string - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected IpAddress to be of type string, got %T instead", value) + for key, value := range shape { + switch key { + case "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) } - col = jtv - } - cv = append(cv, col) + default: + _, _ = key, value + + } } - *v = cv + *v = sv return nil } -func awsAwsjson11_deserializeDocumentFileSystem(v **types.FileSystem, value interface{}) error { +func awsAwsjson11_deserializeDocumentLifecycleTransitionReason(v **types.LifecycleTransitionReason, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4818,158 +7012,187 @@ func awsAwsjson11_deserializeDocumentFileSystem(v **types.FileSystem, value inte return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.FileSystem + var sv *types.LifecycleTransitionReason if *v == nil { - sv = &types.FileSystem{} + sv = &types.LifecycleTransitionReason{} } else { sv = *v } for key, value := range shape { switch key { - case "AdministrativeActions": - if err := awsAwsjson11_deserializeDocumentAdministrativeActions(&sv.AdministrativeActions, value); err != nil { - return err - } - - case "CreationTime": - if value != nil { - switch jtv := value.(type) { - case json.Number: - f64, err := jtv.Float64() - if err != nil { - return err - } - sv.CreationTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) - - default: - return fmt.Errorf("expected CreationTime to be a JSON Number, got %T instead", value) - - } - } - - case "DNSName": + case "Message": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected DNSName to be of type string, got %T instead", value) + return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) } - sv.DNSName = ptr.String(jtv) + sv.Message = ptr.String(jtv) } - case "FailureDetails": - if err := awsAwsjson11_deserializeDocumentFileSystemFailureDetails(&sv.FailureDetails, value); err != nil { - return err - } + default: + _, _ = key, value - case "FileSystemId": + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentLustreFileSystemConfiguration(v **types.LustreFileSystemConfiguration, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.LustreFileSystemConfiguration + if *v == nil { + sv = &types.LustreFileSystemConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AutomaticBackupRetentionDays": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected FileSystemId to be of type string, got %T instead", value) + return fmt.Errorf("expected AutomaticBackupRetentionDays to be json.Number, got %T instead", value) } - sv.FileSystemId = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.AutomaticBackupRetentionDays = ptr.Int32(int32(i64)) } - case "FileSystemType": + case "CopyTagsToBackups": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected FileSystemType to be of type string, got %T instead", value) + return fmt.Errorf("expected Flag to be of type *bool, got %T instead", value) } - sv.FileSystemType = types.FileSystemType(jtv) + sv.CopyTagsToBackups = ptr.Bool(jtv) } - case "KmsKeyId": + case "DailyAutomaticBackupStartTime": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected KmsKeyId to be of type string, got %T instead", value) + return fmt.Errorf("expected DailyTime to be of type string, got %T instead", value) } - sv.KmsKeyId = ptr.String(jtv) + sv.DailyAutomaticBackupStartTime = ptr.String(jtv) } - case "Lifecycle": + case "DataCompressionType": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected FileSystemLifecycle to be of type string, got %T instead", value) + return fmt.Errorf("expected DataCompressionType to be of type string, got %T instead", value) } - sv.Lifecycle = types.FileSystemLifecycle(jtv) + sv.DataCompressionType = types.DataCompressionType(jtv) } - case "LustreConfiguration": - if err := awsAwsjson11_deserializeDocumentLustreFileSystemConfiguration(&sv.LustreConfiguration, value); err != nil { + case "DataRepositoryConfiguration": + if err := awsAwsjson11_deserializeDocumentDataRepositoryConfiguration(&sv.DataRepositoryConfiguration, value); err != nil { return err } - case "NetworkInterfaceIds": - if err := awsAwsjson11_deserializeDocumentNetworkInterfaceIds(&sv.NetworkInterfaceIds, value); err != nil { - return err + case "DeploymentType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected LustreDeploymentType to be of type string, got %T instead", value) + } + sv.DeploymentType = types.LustreDeploymentType(jtv) } - case "OwnerId": + case "DriveCacheType": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected AWSAccountId to be of type string, got %T instead", value) + return fmt.Errorf("expected DriveCacheType to be of type string, got %T instead", value) } - sv.OwnerId = ptr.String(jtv) + sv.DriveCacheType = types.DriveCacheType(jtv) } - case "ResourceARN": + case "MountName": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ResourceARN to be of type string, got %T instead", value) + return fmt.Errorf("expected LustreFileSystemMountName to be of type string, got %T instead", value) } - sv.ResourceARN = ptr.String(jtv) + sv.MountName = ptr.String(jtv) } - case "StorageCapacity": + case "PerUnitStorageThroughput": if value != nil { jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected StorageCapacity to be json.Number, got %T instead", value) + return fmt.Errorf("expected PerUnitStorageThroughput to be json.Number, got %T instead", value) } i64, err := jtv.Int64() if err != nil { return err } - sv.StorageCapacity = ptr.Int32(int32(i64)) + sv.PerUnitStorageThroughput = ptr.Int32(int32(i64)) } - case "StorageType": + case "WeeklyMaintenanceStartTime": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected StorageType to be of type string, got %T instead", value) + return fmt.Errorf("expected WeeklyTime to be of type string, got %T instead", value) } - sv.StorageType = types.StorageType(jtv) + sv.WeeklyMaintenanceStartTime = ptr.String(jtv) } - case "SubnetIds": - if err := awsAwsjson11_deserializeDocumentSubnetIds(&sv.SubnetIds, value); err != nil { - return err - } + default: + _, _ = key, value - case "Tags": - if err := awsAwsjson11_deserializeDocumentTags(&sv.Tags, value); err != nil { - return err - } + } + } + *v = sv + return nil +} - case "VpcId": +func awsAwsjson11_deserializeDocumentMissingFileSystemConfiguration(v **types.MissingFileSystemConfiguration, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.MissingFileSystemConfiguration + if *v == nil { + sv = &types.MissingFileSystemConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Message": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected VpcId to be of type string, got %T instead", value) + return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) } - sv.VpcId = ptr.String(jtv) - } - - case "WindowsConfiguration": - if err := awsAwsjson11_deserializeDocumentWindowsFileSystemConfiguration(&sv.WindowsConfiguration, value); err != nil { - return err + sv.Message = ptr.String(jtv) } default: @@ -4981,7 +7204,7 @@ func awsAwsjson11_deserializeDocumentFileSystem(v **types.FileSystem, value inte return nil } -func awsAwsjson11_deserializeDocumentFileSystemFailureDetails(v **types.FileSystemFailureDetails, value interface{}) error { +func awsAwsjson11_deserializeDocumentMissingVolumeConfiguration(v **types.MissingVolumeConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4994,9 +7217,9 @@ func awsAwsjson11_deserializeDocumentFileSystemFailureDetails(v **types.FileSyst return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.FileSystemFailureDetails + var sv *types.MissingVolumeConfiguration if *v == nil { - sv = &types.FileSystemFailureDetails{} + sv = &types.MissingVolumeConfiguration{} } else { sv = *v } @@ -5021,7 +7244,7 @@ func awsAwsjson11_deserializeDocumentFileSystemFailureDetails(v **types.FileSyst return nil } -func awsAwsjson11_deserializeDocumentFileSystemMaintenanceOperations(v *[]types.FileSystemMaintenanceOperation, value interface{}) error { +func awsAwsjson11_deserializeDocumentNetworkInterfaceIds(v *[]string, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5034,21 +7257,21 @@ func awsAwsjson11_deserializeDocumentFileSystemMaintenanceOperations(v *[]types. return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.FileSystemMaintenanceOperation + var cv []string if *v == nil { - cv = []types.FileSystemMaintenanceOperation{} + cv = []string{} } else { cv = *v } for _, value := range shape { - var col types.FileSystemMaintenanceOperation + var col string if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected FileSystemMaintenanceOperation to be of type string, got %T instead", value) + return fmt.Errorf("expected NetworkInterfaceId to be of type string, got %T instead", value) } - col = types.FileSystemMaintenanceOperation(jtv) + col = jtv } cv = append(cv, col) @@ -5057,7 +7280,7 @@ func awsAwsjson11_deserializeDocumentFileSystemMaintenanceOperations(v *[]types. return nil } -func awsAwsjson11_deserializeDocumentFileSystemNotFound(v **types.FileSystemNotFound, value interface{}) error { +func awsAwsjson11_deserializeDocumentNotServiceResourceError(v **types.NotServiceResourceError, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5070,9 +7293,9 @@ func awsAwsjson11_deserializeDocumentFileSystemNotFound(v **types.FileSystemNotF return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.FileSystemNotFound + var sv *types.NotServiceResourceError if *v == nil { - sv = &types.FileSystemNotFound{} + sv = &types.NotServiceResourceError{} } else { sv = *v } @@ -5088,6 +7311,15 @@ func awsAwsjson11_deserializeDocumentFileSystemNotFound(v **types.FileSystemNotF sv.Message = ptr.String(jtv) } + case "ResourceARN": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceARN to be of type string, got %T instead", value) + } + sv.ResourceARN = ptr.String(jtv) + } + default: _, _ = key, value @@ -5097,7 +7329,7 @@ func awsAwsjson11_deserializeDocumentFileSystemNotFound(v **types.FileSystemNotF return nil } -func awsAwsjson11_deserializeDocumentFileSystems(v *[]types.FileSystem, value interface{}) error { +func awsAwsjson11_deserializeDocumentOntapEndpointIpAddresses(v *[]string, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5110,20 +7342,22 @@ func awsAwsjson11_deserializeDocumentFileSystems(v *[]types.FileSystem, value in return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.FileSystem + var cv []string if *v == nil { - cv = []types.FileSystem{} + cv = []string{} } else { cv = *v } for _, value := range shape { - var col types.FileSystem - destAddr := &col - if err := awsAwsjson11_deserializeDocumentFileSystem(&destAddr, value); err != nil { - return err + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected IpAddress to be of type string, got %T instead", value) + } + col = jtv } - col = *destAddr cv = append(cv, col) } @@ -5131,7 +7365,7 @@ func awsAwsjson11_deserializeDocumentFileSystems(v *[]types.FileSystem, value in return nil } -func awsAwsjson11_deserializeDocumentIncompatibleParameterError(v **types.IncompatibleParameterError, value interface{}) error { +func awsAwsjson11_deserializeDocumentOntapFileSystemConfiguration(v **types.OntapFileSystemConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5144,31 +7378,99 @@ func awsAwsjson11_deserializeDocumentIncompatibleParameterError(v **types.Incomp return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.IncompatibleParameterError + var sv *types.OntapFileSystemConfiguration if *v == nil { - sv = &types.IncompatibleParameterError{} + sv = &types.OntapFileSystemConfiguration{} } else { sv = *v } for key, value := range shape { switch key { - case "Message": + case "AutomaticBackupRetentionDays": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected AutomaticBackupRetentionDays to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.AutomaticBackupRetentionDays = ptr.Int32(int32(i64)) + } + + case "DailyAutomaticBackupStartTime": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + return fmt.Errorf("expected DailyTime to be of type string, got %T instead", value) } - sv.Message = ptr.String(jtv) + sv.DailyAutomaticBackupStartTime = ptr.String(jtv) } - case "Parameter": + case "DeploymentType": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Parameter to be of type string, got %T instead", value) + return fmt.Errorf("expected OntapDeploymentType to be of type string, got %T instead", value) } - sv.Parameter = ptr.String(jtv) + sv.DeploymentType = types.OntapDeploymentType(jtv) + } + + case "DiskIopsConfiguration": + if err := awsAwsjson11_deserializeDocumentDiskIopsConfiguration(&sv.DiskIopsConfiguration, value); err != nil { + return err + } + + case "EndpointIpAddressRange": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected IpAddressRange to be of type string, got %T instead", value) + } + sv.EndpointIpAddressRange = ptr.String(jtv) + } + + case "Endpoints": + if err := awsAwsjson11_deserializeDocumentFileSystemEndpoints(&sv.Endpoints, value); err != nil { + return err + } + + case "PreferredSubnetId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SubnetId to be of type string, got %T instead", value) + } + sv.PreferredSubnetId = ptr.String(jtv) + } + + case "RouteTableIds": + if err := awsAwsjson11_deserializeDocumentRouteTableIds(&sv.RouteTableIds, value); err != nil { + return err + } + + case "ThroughputCapacity": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected MegabytesPerSecond to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ThroughputCapacity = ptr.Int32(int32(i64)) + } + + case "WeeklyMaintenanceStartTime": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected WeeklyTime to be of type string, got %T instead", value) + } + sv.WeeklyMaintenanceStartTime = ptr.String(jtv) } default: @@ -5180,7 +7482,7 @@ func awsAwsjson11_deserializeDocumentIncompatibleParameterError(v **types.Incomp return nil } -func awsAwsjson11_deserializeDocumentIncompatibleRegionForMultiAZ(v **types.IncompatibleRegionForMultiAZ, value interface{}) error { +func awsAwsjson11_deserializeDocumentOntapVolumeConfiguration(v **types.OntapVolumeConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5193,22 +7495,103 @@ func awsAwsjson11_deserializeDocumentIncompatibleRegionForMultiAZ(v **types.Inco return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.IncompatibleRegionForMultiAZ - if *v == nil { - sv = &types.IncompatibleRegionForMultiAZ{} - } else { - sv = *v - } + var sv *types.OntapVolumeConfiguration + if *v == nil { + sv = &types.OntapVolumeConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "FlexCacheEndpointType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FlexCacheEndpointType to be of type string, got %T instead", value) + } + sv.FlexCacheEndpointType = types.FlexCacheEndpointType(jtv) + } + + case "JunctionPath": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected JunctionPath to be of type string, got %T instead", value) + } + sv.JunctionPath = ptr.String(jtv) + } + + case "OntapVolumeType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected OntapVolumeType to be of type string, got %T instead", value) + } + sv.OntapVolumeType = types.OntapVolumeType(jtv) + } + + case "SecurityStyle": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SecurityStyle to be of type string, got %T instead", value) + } + sv.SecurityStyle = types.SecurityStyle(jtv) + } + + case "SizeInMegabytes": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected VolumeCapacity to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.SizeInMegabytes = ptr.Int32(int32(i64)) + } + + case "StorageEfficiencyEnabled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Flag to be of type *bool, got %T instead", value) + } + sv.StorageEfficiencyEnabled = ptr.Bool(jtv) + } + + case "StorageVirtualMachineId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected StorageVirtualMachineId to be of type string, got %T instead", value) + } + sv.StorageVirtualMachineId = ptr.String(jtv) + } + + case "StorageVirtualMachineRoot": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Flag to be of type *bool, got %T instead", value) + } + sv.StorageVirtualMachineRoot = ptr.Bool(jtv) + } + + case "TieringPolicy": + if err := awsAwsjson11_deserializeDocumentTieringPolicy(&sv.TieringPolicy, value); err != nil { + return err + } - for key, value := range shape { - switch key { - case "Message": + case "UUID": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + return fmt.Errorf("expected UUID to be of type string, got %T instead", value) } - sv.Message = ptr.String(jtv) + sv.UUID = ptr.String(jtv) } default: @@ -5220,7 +7603,7 @@ func awsAwsjson11_deserializeDocumentIncompatibleRegionForMultiAZ(v **types.Inco return nil } -func awsAwsjson11_deserializeDocumentInternalServerError(v **types.InternalServerError, value interface{}) error { +func awsAwsjson11_deserializeDocumentResourceDoesNotSupportTagging(v **types.ResourceDoesNotSupportTagging, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5233,9 +7616,9 @@ func awsAwsjson11_deserializeDocumentInternalServerError(v **types.InternalServe return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.InternalServerError + var sv *types.ResourceDoesNotSupportTagging if *v == nil { - sv = &types.InternalServerError{} + sv = &types.ResourceDoesNotSupportTagging{} } else { sv = *v } @@ -5251,44 +7634,13 @@ func awsAwsjson11_deserializeDocumentInternalServerError(v **types.InternalServe sv.Message = ptr.String(jtv) } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsAwsjson11_deserializeDocumentInvalidDestinationKmsKey(v **types.InvalidDestinationKmsKey, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.InvalidDestinationKmsKey - if *v == nil { - sv = &types.InvalidDestinationKmsKey{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "Message": + case "ResourceARN": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + return fmt.Errorf("expected ResourceARN to be of type string, got %T instead", value) } - sv.Message = ptr.String(jtv) + sv.ResourceARN = ptr.String(jtv) } default: @@ -5300,7 +7652,7 @@ func awsAwsjson11_deserializeDocumentInvalidDestinationKmsKey(v **types.InvalidD return nil } -func awsAwsjson11_deserializeDocumentInvalidExportPath(v **types.InvalidExportPath, value interface{}) error { +func awsAwsjson11_deserializeDocumentResourceNotFound(v **types.ResourceNotFound, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5313,9 +7665,9 @@ func awsAwsjson11_deserializeDocumentInvalidExportPath(v **types.InvalidExportPa return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.InvalidExportPath + var sv *types.ResourceNotFound if *v == nil { - sv = &types.InvalidExportPath{} + sv = &types.ResourceNotFound{} } else { sv = *v } @@ -5331,6 +7683,15 @@ func awsAwsjson11_deserializeDocumentInvalidExportPath(v **types.InvalidExportPa sv.Message = ptr.String(jtv) } + case "ResourceARN": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceARN to be of type string, got %T instead", value) + } + sv.ResourceARN = ptr.String(jtv) + } + default: _, _ = key, value @@ -5340,7 +7701,7 @@ func awsAwsjson11_deserializeDocumentInvalidExportPath(v **types.InvalidExportPa return nil } -func awsAwsjson11_deserializeDocumentInvalidImportPath(v **types.InvalidImportPath, value interface{}) error { +func awsAwsjson11_deserializeDocumentRouteTableIds(v *[]string, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5348,39 +7709,35 @@ func awsAwsjson11_deserializeDocumentInvalidImportPath(v **types.InvalidImportPa return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.InvalidImportPath + var cv []string if *v == nil { - sv = &types.InvalidImportPath{} + cv = []string{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "Message": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) - } - sv.Message = ptr.String(jtv) + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RouteTableId to be of type string, got %T instead", value) } - - default: - _, _ = key, value - + col = jtv } + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsAwsjson11_deserializeDocumentInvalidNetworkSettings(v **types.InvalidNetworkSettings, value interface{}) error { +func awsAwsjson11_deserializeDocumentSelfManagedActiveDirectoryAttributes(v **types.SelfManagedActiveDirectoryAttributes, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5393,80 +7750,54 @@ func awsAwsjson11_deserializeDocumentInvalidNetworkSettings(v **types.InvalidNet return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.InvalidNetworkSettings + var sv *types.SelfManagedActiveDirectoryAttributes if *v == nil { - sv = &types.InvalidNetworkSettings{} + sv = &types.SelfManagedActiveDirectoryAttributes{} } else { sv = *v } for key, value := range shape { switch key { - case "InvalidSecurityGroupId": + case "DnsIps": + if err := awsAwsjson11_deserializeDocumentDnsIps(&sv.DnsIps, value); err != nil { + return err + } + + case "DomainName": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected SecurityGroupId to be of type string, got %T instead", value) + return fmt.Errorf("expected ActiveDirectoryFullyQualifiedName to be of type string, got %T instead", value) } - sv.InvalidSecurityGroupId = ptr.String(jtv) + sv.DomainName = ptr.String(jtv) } - case "InvalidSubnetId": + case "FileSystemAdministratorsGroup": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected SubnetId to be of type string, got %T instead", value) + return fmt.Errorf("expected FileSystemAdministratorsGroupName to be of type string, got %T instead", value) } - sv.InvalidSubnetId = ptr.String(jtv) + sv.FileSystemAdministratorsGroup = ptr.String(jtv) } - case "Message": + case "OrganizationalUnitDistinguishedName": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + return fmt.Errorf("expected OrganizationalUnitDistinguishedName to be of type string, got %T instead", value) } - sv.Message = ptr.String(jtv) + sv.OrganizationalUnitDistinguishedName = ptr.String(jtv) } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsAwsjson11_deserializeDocumentInvalidPerUnitStorageThroughput(v **types.InvalidPerUnitStorageThroughput, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.InvalidPerUnitStorageThroughput - if *v == nil { - sv = &types.InvalidPerUnitStorageThroughput{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "Message": + case "UserName": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + return fmt.Errorf("expected DirectoryUserName to be of type string, got %T instead", value) } - sv.Message = ptr.String(jtv) + sv.UserName = ptr.String(jtv) } default: @@ -5478,7 +7809,7 @@ func awsAwsjson11_deserializeDocumentInvalidPerUnitStorageThroughput(v **types.I return nil } -func awsAwsjson11_deserializeDocumentInvalidRegion(v **types.InvalidRegion, value interface{}) error { +func awsAwsjson11_deserializeDocumentServiceLimitExceeded(v **types.ServiceLimitExceeded, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5491,15 +7822,24 @@ func awsAwsjson11_deserializeDocumentInvalidRegion(v **types.InvalidRegion, valu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.InvalidRegion + var sv *types.ServiceLimitExceeded if *v == nil { - sv = &types.InvalidRegion{} + sv = &types.ServiceLimitExceeded{} } else { sv = *v } for key, value := range shape { switch key { + case "Limit": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ServiceLimit to be of type string, got %T instead", value) + } + sv.Limit = types.ServiceLimit(jtv) + } + case "Message": if value != nil { jtv, ok := value.(string) @@ -5518,7 +7858,7 @@ func awsAwsjson11_deserializeDocumentInvalidRegion(v **types.InvalidRegion, valu return nil } -func awsAwsjson11_deserializeDocumentInvalidSourceKmsKey(v **types.InvalidSourceKmsKey, value interface{}) error { +func awsAwsjson11_deserializeDocumentSourceBackupUnavailable(v **types.SourceBackupUnavailable, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5531,15 +7871,24 @@ func awsAwsjson11_deserializeDocumentInvalidSourceKmsKey(v **types.InvalidSource return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.InvalidSourceKmsKey + var sv *types.SourceBackupUnavailable if *v == nil { - sv = &types.InvalidSourceKmsKey{} + sv = &types.SourceBackupUnavailable{} } else { sv = *v } for key, value := range shape { switch key { + case "BackupId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected BackupId to be of type string, got %T instead", value) + } + sv.BackupId = ptr.String(jtv) + } + case "Message": if value != nil { jtv, ok := value.(string) @@ -5558,7 +7907,7 @@ func awsAwsjson11_deserializeDocumentInvalidSourceKmsKey(v **types.InvalidSource return nil } -func awsAwsjson11_deserializeDocumentLustreFileSystemConfiguration(v **types.LustreFileSystemConfiguration, value interface{}) error { +func awsAwsjson11_deserializeDocumentStorageVirtualMachine(v **types.StorageVirtualMachine, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5571,107 +7920,121 @@ func awsAwsjson11_deserializeDocumentLustreFileSystemConfiguration(v **types.Lus return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.LustreFileSystemConfiguration + var sv *types.StorageVirtualMachine if *v == nil { - sv = &types.LustreFileSystemConfiguration{} + sv = &types.StorageVirtualMachine{} } else { sv = *v } for key, value := range shape { switch key { - case "AutomaticBackupRetentionDays": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected AutomaticBackupRetentionDays to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.AutomaticBackupRetentionDays = ptr.Int32(int32(i64)) + case "ActiveDirectoryConfiguration": + if err := awsAwsjson11_deserializeDocumentSvmActiveDirectoryConfiguration(&sv.ActiveDirectoryConfiguration, value); err != nil { + return err } - case "CopyTagsToBackups": + case "CreationTime": if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Flag to be of type *bool, got %T instead", value) + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.CreationTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected CreationTime to be a JSON Number, got %T instead", value) + } - sv.CopyTagsToBackups = ptr.Bool(jtv) } - case "DailyAutomaticBackupStartTime": + case "Endpoints": + if err := awsAwsjson11_deserializeDocumentSvmEndpoints(&sv.Endpoints, value); err != nil { + return err + } + + case "FileSystemId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected DailyTime to be of type string, got %T instead", value) + return fmt.Errorf("expected FileSystemId to be of type string, got %T instead", value) } - sv.DailyAutomaticBackupStartTime = ptr.String(jtv) + sv.FileSystemId = ptr.String(jtv) } - case "DataCompressionType": + case "Lifecycle": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected DataCompressionType to be of type string, got %T instead", value) + return fmt.Errorf("expected StorageVirtualMachineLifecycle to be of type string, got %T instead", value) } - sv.DataCompressionType = types.DataCompressionType(jtv) + sv.Lifecycle = types.StorageVirtualMachineLifecycle(jtv) } - case "DataRepositoryConfiguration": - if err := awsAwsjson11_deserializeDocumentDataRepositoryConfiguration(&sv.DataRepositoryConfiguration, value); err != nil { + case "LifecycleTransitionReason": + if err := awsAwsjson11_deserializeDocumentLifecycleTransitionReason(&sv.LifecycleTransitionReason, value); err != nil { return err } - case "DeploymentType": + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected StorageVirtualMachineName to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "ResourceARN": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected LustreDeploymentType to be of type string, got %T instead", value) + return fmt.Errorf("expected ResourceARN to be of type string, got %T instead", value) } - sv.DeploymentType = types.LustreDeploymentType(jtv) + sv.ResourceARN = ptr.String(jtv) } - case "DriveCacheType": + case "RootVolumeSecurityStyle": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected DriveCacheType to be of type string, got %T instead", value) + return fmt.Errorf("expected StorageVirtualMachineRootVolumeSecurityStyle to be of type string, got %T instead", value) } - sv.DriveCacheType = types.DriveCacheType(jtv) + sv.RootVolumeSecurityStyle = types.StorageVirtualMachineRootVolumeSecurityStyle(jtv) } - case "MountName": + case "StorageVirtualMachineId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected LustreFileSystemMountName to be of type string, got %T instead", value) + return fmt.Errorf("expected StorageVirtualMachineId to be of type string, got %T instead", value) } - sv.MountName = ptr.String(jtv) + sv.StorageVirtualMachineId = ptr.String(jtv) } - case "PerUnitStorageThroughput": + case "Subtype": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected PerUnitStorageThroughput to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected StorageVirtualMachineSubtype to be of type string, got %T instead", value) } - sv.PerUnitStorageThroughput = ptr.Int32(int32(i64)) + sv.Subtype = types.StorageVirtualMachineSubtype(jtv) } - case "WeeklyMaintenanceStartTime": + case "Tags": + if err := awsAwsjson11_deserializeDocumentTags(&sv.Tags, value); err != nil { + return err + } + + case "UUID": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected WeeklyTime to be of type string, got %T instead", value) + return fmt.Errorf("expected UUID to be of type string, got %T instead", value) } - sv.WeeklyMaintenanceStartTime = ptr.String(jtv) + sv.UUID = ptr.String(jtv) } default: @@ -5683,7 +8046,7 @@ func awsAwsjson11_deserializeDocumentLustreFileSystemConfiguration(v **types.Lus return nil } -func awsAwsjson11_deserializeDocumentMissingFileSystemConfiguration(v **types.MissingFileSystemConfiguration, value interface{}) error { +func awsAwsjson11_deserializeDocumentStorageVirtualMachineNotFound(v **types.StorageVirtualMachineNotFound, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5696,9 +8059,9 @@ func awsAwsjson11_deserializeDocumentMissingFileSystemConfiguration(v **types.Mi return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.MissingFileSystemConfiguration + var sv *types.StorageVirtualMachineNotFound if *v == nil { - sv = &types.MissingFileSystemConfiguration{} + sv = &types.StorageVirtualMachineNotFound{} } else { sv = *v } @@ -5723,7 +8086,7 @@ func awsAwsjson11_deserializeDocumentMissingFileSystemConfiguration(v **types.Mi return nil } -func awsAwsjson11_deserializeDocumentNetworkInterfaceIds(v *[]string, value interface{}) error { +func awsAwsjson11_deserializeDocumentStorageVirtualMachines(v *[]types.StorageVirtualMachine, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5736,22 +8099,20 @@ func awsAwsjson11_deserializeDocumentNetworkInterfaceIds(v *[]string, value inte return fmt.Errorf("unexpected JSON type %v", value) } - var cv []string + var cv []types.StorageVirtualMachine if *v == nil { - cv = []string{} + cv = []types.StorageVirtualMachine{} } else { cv = *v } for _, value := range shape { - var col string - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NetworkInterfaceId to be of type string, got %T instead", value) - } - col = jtv + var col types.StorageVirtualMachine + destAddr := &col + if err := awsAwsjson11_deserializeDocumentStorageVirtualMachine(&destAddr, value); err != nil { + return err } + col = *destAddr cv = append(cv, col) } @@ -5759,7 +8120,7 @@ func awsAwsjson11_deserializeDocumentNetworkInterfaceIds(v *[]string, value inte return nil } -func awsAwsjson11_deserializeDocumentNotServiceResourceError(v **types.NotServiceResourceError, value interface{}) error { +func awsAwsjson11_deserializeDocumentSubnetIds(v *[]string, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5767,48 +8128,35 @@ func awsAwsjson11_deserializeDocumentNotServiceResourceError(v **types.NotServic return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.NotServiceResourceError + var cv []string if *v == nil { - sv = &types.NotServiceResourceError{} + cv = []string{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "Message": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) - } - sv.Message = ptr.String(jtv) - } - - case "ResourceARN": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ResourceARN to be of type string, got %T instead", value) - } - sv.ResourceARN = ptr.String(jtv) + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SubnetId to be of type string, got %T instead", value) } - - default: - _, _ = key, value - + col = jtv } + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsAwsjson11_deserializeDocumentResourceDoesNotSupportTagging(v **types.ResourceDoesNotSupportTagging, value interface{}) error { +func awsAwsjson11_deserializeDocumentSvmActiveDirectoryConfiguration(v **types.SvmActiveDirectoryConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5821,31 +8169,27 @@ func awsAwsjson11_deserializeDocumentResourceDoesNotSupportTagging(v **types.Res return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ResourceDoesNotSupportTagging + var sv *types.SvmActiveDirectoryConfiguration if *v == nil { - sv = &types.ResourceDoesNotSupportTagging{} + sv = &types.SvmActiveDirectoryConfiguration{} } else { sv = *v } for key, value := range shape { switch key { - case "Message": + case "NetBiosName": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + return fmt.Errorf("expected NetBiosAlias to be of type string, got %T instead", value) } - sv.Message = ptr.String(jtv) + sv.NetBiosName = ptr.String(jtv) } - case "ResourceARN": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ResourceARN to be of type string, got %T instead", value) - } - sv.ResourceARN = ptr.String(jtv) + case "SelfManagedActiveDirectoryConfiguration": + if err := awsAwsjson11_deserializeDocumentSelfManagedActiveDirectoryAttributes(&sv.SelfManagedActiveDirectoryConfiguration, value); err != nil { + return err } default: @@ -5857,7 +8201,7 @@ func awsAwsjson11_deserializeDocumentResourceDoesNotSupportTagging(v **types.Res return nil } -func awsAwsjson11_deserializeDocumentResourceNotFound(v **types.ResourceNotFound, value interface{}) error { +func awsAwsjson11_deserializeDocumentSvmEndpoint(v **types.SvmEndpoint, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5870,31 +8214,27 @@ func awsAwsjson11_deserializeDocumentResourceNotFound(v **types.ResourceNotFound return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ResourceNotFound + var sv *types.SvmEndpoint if *v == nil { - sv = &types.ResourceNotFound{} + sv = &types.SvmEndpoint{} } else { sv = *v } for key, value := range shape { switch key { - case "Message": + case "DNSName": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + return fmt.Errorf("expected DNSName to be of type string, got %T instead", value) } - sv.Message = ptr.String(jtv) + sv.DNSName = ptr.String(jtv) } - case "ResourceARN": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ResourceARN to be of type string, got %T instead", value) - } - sv.ResourceARN = ptr.String(jtv) + case "IpAddresses": + if err := awsAwsjson11_deserializeDocumentOntapEndpointIpAddresses(&sv.IpAddresses, value); err != nil { + return err } default: @@ -5906,7 +8246,7 @@ func awsAwsjson11_deserializeDocumentResourceNotFound(v **types.ResourceNotFound return nil } -func awsAwsjson11_deserializeDocumentSelfManagedActiveDirectoryAttributes(v **types.SelfManagedActiveDirectoryAttributes, value interface{}) error { +func awsAwsjson11_deserializeDocumentSvmEndpoints(v **types.SvmEndpoints, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5919,54 +8259,33 @@ func awsAwsjson11_deserializeDocumentSelfManagedActiveDirectoryAttributes(v **ty return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.SelfManagedActiveDirectoryAttributes + var sv *types.SvmEndpoints if *v == nil { - sv = &types.SelfManagedActiveDirectoryAttributes{} + sv = &types.SvmEndpoints{} } else { sv = *v } for key, value := range shape { switch key { - case "DnsIps": - if err := awsAwsjson11_deserializeDocumentDnsIps(&sv.DnsIps, value); err != nil { + case "Iscsi": + if err := awsAwsjson11_deserializeDocumentSvmEndpoint(&sv.Iscsi, value); err != nil { return err } - case "DomainName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ActiveDirectoryFullyQualifiedName to be of type string, got %T instead", value) - } - sv.DomainName = ptr.String(jtv) - } - - case "FileSystemAdministratorsGroup": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected FileSystemAdministratorsGroupName to be of type string, got %T instead", value) - } - sv.FileSystemAdministratorsGroup = ptr.String(jtv) + case "Management": + if err := awsAwsjson11_deserializeDocumentSvmEndpoint(&sv.Management, value); err != nil { + return err } - case "OrganizationalUnitDistinguishedName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected OrganizationalUnitDistinguishedName to be of type string, got %T instead", value) - } - sv.OrganizationalUnitDistinguishedName = ptr.String(jtv) + case "Nfs": + if err := awsAwsjson11_deserializeDocumentSvmEndpoint(&sv.Nfs, value); err != nil { + return err } - case "UserName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected DirectoryUserName to be of type string, got %T instead", value) - } - sv.UserName = ptr.String(jtv) + case "Smb": + if err := awsAwsjson11_deserializeDocumentSvmEndpoint(&sv.Smb, value); err != nil { + return err } default: @@ -5978,7 +8297,7 @@ func awsAwsjson11_deserializeDocumentSelfManagedActiveDirectoryAttributes(v **ty return nil } -func awsAwsjson11_deserializeDocumentServiceLimitExceeded(v **types.ServiceLimitExceeded, value interface{}) error { +func awsAwsjson11_deserializeDocumentTag(v **types.Tag, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5991,31 +8310,31 @@ func awsAwsjson11_deserializeDocumentServiceLimitExceeded(v **types.ServiceLimit return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ServiceLimitExceeded + var sv *types.Tag if *v == nil { - sv = &types.ServiceLimitExceeded{} + sv = &types.Tag{} } else { sv = *v } for key, value := range shape { switch key { - case "Limit": + case "Key": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ServiceLimit to be of type string, got %T instead", value) + return fmt.Errorf("expected TagKey to be of type string, got %T instead", value) } - sv.Limit = types.ServiceLimit(jtv) + sv.Key = ptr.String(jtv) } - case "Message": + case "Value": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + return fmt.Errorf("expected TagValue to be of type string, got %T instead", value) } - sv.Message = ptr.String(jtv) + sv.Value = ptr.String(jtv) } default: @@ -6027,7 +8346,7 @@ func awsAwsjson11_deserializeDocumentServiceLimitExceeded(v **types.ServiceLimit return nil } -func awsAwsjson11_deserializeDocumentSourceBackupUnavailable(v **types.SourceBackupUnavailable, value interface{}) error { +func awsAwsjson11_deserializeDocumentTags(v *[]types.Tag, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -6035,48 +8354,33 @@ func awsAwsjson11_deserializeDocumentSourceBackupUnavailable(v **types.SourceBac return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.SourceBackupUnavailable + var cv []types.Tag if *v == nil { - sv = &types.SourceBackupUnavailable{} + cv = []types.Tag{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "BackupId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected BackupId to be of type string, got %T instead", value) - } - sv.BackupId = ptr.String(jtv) - } - - case "Message": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) - } - sv.Message = ptr.String(jtv) - } - - default: - _, _ = key, value - + for _, value := range shape { + var col types.Tag + destAddr := &col + if err := awsAwsjson11_deserializeDocumentTag(&destAddr, value); err != nil { + return err } + col = *destAddr + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsAwsjson11_deserializeDocumentSubnetIds(v *[]string, value interface{}) error { +func awsAwsjson11_deserializeDocumentTieringPolicy(v **types.TieringPolicy, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -6084,35 +8388,52 @@ func awsAwsjson11_deserializeDocumentSubnetIds(v *[]string, value interface{}) e return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []string + var sv *types.TieringPolicy if *v == nil { - cv = []string{} + sv = &types.TieringPolicy{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col string - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected SubnetId to be of type string, got %T instead", value) + for key, value := range shape { + switch key { + case "CoolingPeriod": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected CoolingPeriod to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.CoolingPeriod = ptr.Int32(int32(i64)) } - col = jtv - } - cv = append(cv, col) + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TieringPolicyName to be of type string, got %T instead", value) + } + sv.Name = types.TieringPolicyName(jtv) + } + + default: + _, _ = key, value + + } } - *v = cv + *v = sv return nil } -func awsAwsjson11_deserializeDocumentTag(v **types.Tag, value interface{}) error { +func awsAwsjson11_deserializeDocumentUnsupportedOperation(v **types.UnsupportedOperation, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -6125,31 +8446,22 @@ func awsAwsjson11_deserializeDocumentTag(v **types.Tag, value interface{}) error return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.Tag + var sv *types.UnsupportedOperation if *v == nil { - sv = &types.Tag{} + sv = &types.UnsupportedOperation{} } else { sv = *v } for key, value := range shape { switch key { - case "Key": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected TagKey to be of type string, got %T instead", value) - } - sv.Key = ptr.String(jtv) - } - - case "Value": + case "Message": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected TagValue to be of type string, got %T instead", value) + return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) } - sv.Value = ptr.String(jtv) + sv.Message = ptr.String(jtv) } default: @@ -6161,7 +8473,7 @@ func awsAwsjson11_deserializeDocumentTag(v **types.Tag, value interface{}) error return nil } -func awsAwsjson11_deserializeDocumentTags(v *[]types.Tag, value interface{}) error { +func awsAwsjson11_deserializeDocumentVolume(v **types.Volume, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -6169,33 +8481,115 @@ func awsAwsjson11_deserializeDocumentTags(v *[]types.Tag, value interface{}) err return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.Tag + var sv *types.Volume if *v == nil { - cv = []types.Tag{} + sv = &types.Volume{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col types.Tag - destAddr := &col - if err := awsAwsjson11_deserializeDocumentTag(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + for key, value := range shape { + switch key { + case "CreationTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.CreationTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected CreationTime to be a JSON Number, got %T instead", value) + + } + } + + case "FileSystemId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FileSystemId to be of type string, got %T instead", value) + } + sv.FileSystemId = ptr.String(jtv) + } + + case "Lifecycle": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VolumeLifecycle to be of type string, got %T instead", value) + } + sv.Lifecycle = types.VolumeLifecycle(jtv) + } + + case "LifecycleTransitionReason": + if err := awsAwsjson11_deserializeDocumentLifecycleTransitionReason(&sv.LifecycleTransitionReason, value); err != nil { + return err + } + + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VolumeName to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "OntapConfiguration": + if err := awsAwsjson11_deserializeDocumentOntapVolumeConfiguration(&sv.OntapConfiguration, value); err != nil { + return err + } + + case "ResourceARN": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceARN to be of type string, got %T instead", value) + } + sv.ResourceARN = ptr.String(jtv) + } + + case "Tags": + if err := awsAwsjson11_deserializeDocumentTags(&sv.Tags, value); err != nil { + return err + } + + case "VolumeId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VolumeId to be of type string, got %T instead", value) + } + sv.VolumeId = ptr.String(jtv) + } + + case "VolumeType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VolumeType to be of type string, got %T instead", value) + } + sv.VolumeType = types.VolumeType(jtv) + } + + default: + _, _ = key, value + } } - *v = cv + *v = sv return nil } -func awsAwsjson11_deserializeDocumentUnsupportedOperation(v **types.UnsupportedOperation, value interface{}) error { +func awsAwsjson11_deserializeDocumentVolumeNotFound(v **types.VolumeNotFound, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -6208,9 +8602,9 @@ func awsAwsjson11_deserializeDocumentUnsupportedOperation(v **types.UnsupportedO return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.UnsupportedOperation + var sv *types.VolumeNotFound if *v == nil { - sv = &types.UnsupportedOperation{} + sv = &types.VolumeNotFound{} } else { sv = *v } @@ -6235,6 +8629,40 @@ func awsAwsjson11_deserializeDocumentUnsupportedOperation(v **types.UnsupportedO return nil } +func awsAwsjson11_deserializeDocumentVolumes(v *[]types.Volume, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.Volume + if *v == nil { + cv = []types.Volume{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.Volume + destAddr := &col + if err := awsAwsjson11_deserializeDocumentVolume(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsAwsjson11_deserializeDocumentWindowsAuditLogConfiguration(v **types.WindowsAuditLogConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -6549,8 +8977,116 @@ func awsAwsjson11_deserializeOpDocumentCopyBackupOutput(v **CopyBackupOutput, va for key, value := range shape { switch key { - case "Backup": - if err := awsAwsjson11_deserializeDocumentBackup(&sv.Backup, value); err != nil { + case "Backup": + if err := awsAwsjson11_deserializeDocumentBackup(&sv.Backup, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeOpDocumentCreateBackupOutput(v **CreateBackupOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *CreateBackupOutput + if *v == nil { + sv = &CreateBackupOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Backup": + if err := awsAwsjson11_deserializeDocumentBackup(&sv.Backup, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeOpDocumentCreateDataRepositoryTaskOutput(v **CreateDataRepositoryTaskOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *CreateDataRepositoryTaskOutput + if *v == nil { + sv = &CreateDataRepositoryTaskOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "DataRepositoryTask": + if err := awsAwsjson11_deserializeDocumentDataRepositoryTask(&sv.DataRepositoryTask, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeOpDocumentCreateFileSystemFromBackupOutput(v **CreateFileSystemFromBackupOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *CreateFileSystemFromBackupOutput + if *v == nil { + sv = &CreateFileSystemFromBackupOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "FileSystem": + if err := awsAwsjson11_deserializeDocumentFileSystem(&sv.FileSystem, value); err != nil { return err } @@ -6563,7 +9099,7 @@ func awsAwsjson11_deserializeOpDocumentCopyBackupOutput(v **CopyBackupOutput, va return nil } -func awsAwsjson11_deserializeOpDocumentCreateBackupOutput(v **CreateBackupOutput, value interface{}) error { +func awsAwsjson11_deserializeOpDocumentCreateFileSystemOutput(v **CreateFileSystemOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -6576,17 +9112,17 @@ func awsAwsjson11_deserializeOpDocumentCreateBackupOutput(v **CreateBackupOutput return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CreateBackupOutput + var sv *CreateFileSystemOutput if *v == nil { - sv = &CreateBackupOutput{} + sv = &CreateFileSystemOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "Backup": - if err := awsAwsjson11_deserializeDocumentBackup(&sv.Backup, value); err != nil { + case "FileSystem": + if err := awsAwsjson11_deserializeDocumentFileSystem(&sv.FileSystem, value); err != nil { return err } @@ -6599,7 +9135,7 @@ func awsAwsjson11_deserializeOpDocumentCreateBackupOutput(v **CreateBackupOutput return nil } -func awsAwsjson11_deserializeOpDocumentCreateDataRepositoryTaskOutput(v **CreateDataRepositoryTaskOutput, value interface{}) error { +func awsAwsjson11_deserializeOpDocumentCreateStorageVirtualMachineOutput(v **CreateStorageVirtualMachineOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -6612,17 +9148,17 @@ func awsAwsjson11_deserializeOpDocumentCreateDataRepositoryTaskOutput(v **Create return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CreateDataRepositoryTaskOutput + var sv *CreateStorageVirtualMachineOutput if *v == nil { - sv = &CreateDataRepositoryTaskOutput{} + sv = &CreateStorageVirtualMachineOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "DataRepositoryTask": - if err := awsAwsjson11_deserializeDocumentDataRepositoryTask(&sv.DataRepositoryTask, value); err != nil { + case "StorageVirtualMachine": + if err := awsAwsjson11_deserializeDocumentStorageVirtualMachine(&sv.StorageVirtualMachine, value); err != nil { return err } @@ -6635,7 +9171,7 @@ func awsAwsjson11_deserializeOpDocumentCreateDataRepositoryTaskOutput(v **Create return nil } -func awsAwsjson11_deserializeOpDocumentCreateFileSystemFromBackupOutput(v **CreateFileSystemFromBackupOutput, value interface{}) error { +func awsAwsjson11_deserializeOpDocumentCreateVolumeFromBackupOutput(v **CreateVolumeFromBackupOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -6648,17 +9184,17 @@ func awsAwsjson11_deserializeOpDocumentCreateFileSystemFromBackupOutput(v **Crea return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CreateFileSystemFromBackupOutput + var sv *CreateVolumeFromBackupOutput if *v == nil { - sv = &CreateFileSystemFromBackupOutput{} + sv = &CreateVolumeFromBackupOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "FileSystem": - if err := awsAwsjson11_deserializeDocumentFileSystem(&sv.FileSystem, value); err != nil { + case "Volume": + if err := awsAwsjson11_deserializeDocumentVolume(&sv.Volume, value); err != nil { return err } @@ -6671,7 +9207,7 @@ func awsAwsjson11_deserializeOpDocumentCreateFileSystemFromBackupOutput(v **Crea return nil } -func awsAwsjson11_deserializeOpDocumentCreateFileSystemOutput(v **CreateFileSystemOutput, value interface{}) error { +func awsAwsjson11_deserializeOpDocumentCreateVolumeOutput(v **CreateVolumeOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -6684,17 +9220,17 @@ func awsAwsjson11_deserializeOpDocumentCreateFileSystemOutput(v **CreateFileSyst return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CreateFileSystemOutput + var sv *CreateVolumeOutput if *v == nil { - sv = &CreateFileSystemOutput{} + sv = &CreateVolumeOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "FileSystem": - if err := awsAwsjson11_deserializeDocumentFileSystem(&sv.FileSystem, value); err != nil { + case "Volume": + if err := awsAwsjson11_deserializeDocumentVolume(&sv.Volume, value); err != nil { return err } @@ -6815,6 +9351,109 @@ func awsAwsjson11_deserializeOpDocumentDeleteFileSystemOutput(v **DeleteFileSyst return nil } +func awsAwsjson11_deserializeOpDocumentDeleteStorageVirtualMachineOutput(v **DeleteStorageVirtualMachineOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *DeleteStorageVirtualMachineOutput + if *v == nil { + sv = &DeleteStorageVirtualMachineOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Lifecycle": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected StorageVirtualMachineLifecycle to be of type string, got %T instead", value) + } + sv.Lifecycle = types.StorageVirtualMachineLifecycle(jtv) + } + + case "StorageVirtualMachineId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected StorageVirtualMachineId to be of type string, got %T instead", value) + } + sv.StorageVirtualMachineId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeOpDocumentDeleteVolumeOutput(v **DeleteVolumeOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *DeleteVolumeOutput + if *v == nil { + sv = &DeleteVolumeOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Lifecycle": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VolumeLifecycle to be of type string, got %T instead", value) + } + sv.Lifecycle = types.VolumeLifecycle(jtv) + } + + case "OntapResponse": + if err := awsAwsjson11_deserializeDocumentDeleteVolumeOntapResponse(&sv.OntapResponse, value); err != nil { + return err + } + + case "VolumeId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VolumeId to be of type string, got %T instead", value) + } + sv.VolumeId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentDescribeBackupsOutput(v **DescribeBackupsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -6995,6 +9634,96 @@ func awsAwsjson11_deserializeOpDocumentDescribeFileSystemsOutput(v **DescribeFil return nil } +func awsAwsjson11_deserializeOpDocumentDescribeStorageVirtualMachinesOutput(v **DescribeStorageVirtualMachinesOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *DescribeStorageVirtualMachinesOutput + if *v == nil { + sv = &DescribeStorageVirtualMachinesOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "NextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NextToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + case "StorageVirtualMachines": + if err := awsAwsjson11_deserializeDocumentStorageVirtualMachines(&sv.StorageVirtualMachines, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeOpDocumentDescribeVolumesOutput(v **DescribeVolumesOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *DescribeVolumesOutput + if *v == nil { + sv = &DescribeVolumesOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "NextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NextToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + case "Volumes": + if err := awsAwsjson11_deserializeDocumentVolumes(&sv.Volumes, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentDisassociateFileSystemAliasesOutput(v **DisassociateFileSystemAliasesOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -7173,3 +9902,75 @@ func awsAwsjson11_deserializeOpDocumentUpdateFileSystemOutput(v **UpdateFileSyst *v = sv return nil } + +func awsAwsjson11_deserializeOpDocumentUpdateStorageVirtualMachineOutput(v **UpdateStorageVirtualMachineOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *UpdateStorageVirtualMachineOutput + if *v == nil { + sv = &UpdateStorageVirtualMachineOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "StorageVirtualMachine": + if err := awsAwsjson11_deserializeDocumentStorageVirtualMachine(&sv.StorageVirtualMachine, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeOpDocumentUpdateVolumeOutput(v **UpdateVolumeOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *UpdateVolumeOutput + if *v == nil { + sv = &UpdateVolumeOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Volume": + if err := awsAwsjson11_deserializeDocumentVolume(&sv.Volume, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} diff --git a/service/fsx/generated.json b/service/fsx/generated.json index fb5258c96b3..c4c88f8de74 100644 --- a/service/fsx/generated.json +++ b/service/fsx/generated.json @@ -12,17 +12,26 @@ "api_op_CreateDataRepositoryTask.go", "api_op_CreateFileSystem.go", "api_op_CreateFileSystemFromBackup.go", + "api_op_CreateStorageVirtualMachine.go", + "api_op_CreateVolume.go", + "api_op_CreateVolumeFromBackup.go", "api_op_DeleteBackup.go", "api_op_DeleteFileSystem.go", + "api_op_DeleteStorageVirtualMachine.go", + "api_op_DeleteVolume.go", "api_op_DescribeBackups.go", "api_op_DescribeDataRepositoryTasks.go", "api_op_DescribeFileSystemAliases.go", "api_op_DescribeFileSystems.go", + "api_op_DescribeStorageVirtualMachines.go", + "api_op_DescribeVolumes.go", "api_op_DisassociateFileSystemAliases.go", "api_op_ListTagsForResource.go", "api_op_TagResource.go", "api_op_UntagResource.go", "api_op_UpdateFileSystem.go", + "api_op_UpdateStorageVirtualMachine.go", + "api_op_UpdateVolume.go", "deserializers.go", "doc.go", "endpoints.go", diff --git a/service/fsx/serializers.go b/service/fsx/serializers.go index 0e2c27fbe18..80012472859 100644 --- a/service/fsx/serializers.go +++ b/service/fsx/serializers.go @@ -343,14 +343,14 @@ func (m *awsAwsjson11_serializeOpCreateFileSystemFromBackup) HandleSerialize(ctx return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpDeleteBackup struct { +type awsAwsjson11_serializeOpCreateStorageVirtualMachine struct { } -func (*awsAwsjson11_serializeOpDeleteBackup) ID() string { +func (*awsAwsjson11_serializeOpCreateStorageVirtualMachine) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpDeleteBackup) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpCreateStorageVirtualMachine) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -358,7 +358,7 @@ func (m *awsAwsjson11_serializeOpDeleteBackup) HandleSerialize(ctx context.Conte return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DeleteBackupInput) + input, ok := in.Parameters.(*CreateStorageVirtualMachineInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -371,10 +371,10 @@ func (m *awsAwsjson11_serializeOpDeleteBackup) HandleSerialize(ctx context.Conte return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSSimbaAPIService_v20180301.DeleteBackup") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSSimbaAPIService_v20180301.CreateStorageVirtualMachine") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentDeleteBackupInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentCreateStorageVirtualMachineInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -390,14 +390,14 @@ func (m *awsAwsjson11_serializeOpDeleteBackup) HandleSerialize(ctx context.Conte return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpDeleteFileSystem struct { +type awsAwsjson11_serializeOpCreateVolume struct { } -func (*awsAwsjson11_serializeOpDeleteFileSystem) ID() string { +func (*awsAwsjson11_serializeOpCreateVolume) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpDeleteFileSystem) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpCreateVolume) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -405,7 +405,7 @@ func (m *awsAwsjson11_serializeOpDeleteFileSystem) HandleSerialize(ctx context.C return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DeleteFileSystemInput) + input, ok := in.Parameters.(*CreateVolumeInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -418,10 +418,10 @@ func (m *awsAwsjson11_serializeOpDeleteFileSystem) HandleSerialize(ctx context.C return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSSimbaAPIService_v20180301.DeleteFileSystem") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSSimbaAPIService_v20180301.CreateVolume") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentDeleteFileSystemInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentCreateVolumeInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -437,14 +437,14 @@ func (m *awsAwsjson11_serializeOpDeleteFileSystem) HandleSerialize(ctx context.C return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpDescribeBackups struct { +type awsAwsjson11_serializeOpCreateVolumeFromBackup struct { } -func (*awsAwsjson11_serializeOpDescribeBackups) ID() string { +func (*awsAwsjson11_serializeOpCreateVolumeFromBackup) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpDescribeBackups) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpCreateVolumeFromBackup) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -452,7 +452,7 @@ func (m *awsAwsjson11_serializeOpDescribeBackups) HandleSerialize(ctx context.Co return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeBackupsInput) + input, ok := in.Parameters.(*CreateVolumeFromBackupInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -465,10 +465,10 @@ func (m *awsAwsjson11_serializeOpDescribeBackups) HandleSerialize(ctx context.Co return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSSimbaAPIService_v20180301.DescribeBackups") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSSimbaAPIService_v20180301.CreateVolumeFromBackup") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentDescribeBackupsInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentCreateVolumeFromBackupInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -484,14 +484,14 @@ func (m *awsAwsjson11_serializeOpDescribeBackups) HandleSerialize(ctx context.Co return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpDescribeDataRepositoryTasks struct { +type awsAwsjson11_serializeOpDeleteBackup struct { } -func (*awsAwsjson11_serializeOpDescribeDataRepositoryTasks) ID() string { +func (*awsAwsjson11_serializeOpDeleteBackup) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpDescribeDataRepositoryTasks) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpDeleteBackup) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -499,7 +499,7 @@ func (m *awsAwsjson11_serializeOpDescribeDataRepositoryTasks) HandleSerialize(ct return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeDataRepositoryTasksInput) + input, ok := in.Parameters.(*DeleteBackupInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -512,10 +512,10 @@ func (m *awsAwsjson11_serializeOpDescribeDataRepositoryTasks) HandleSerialize(ct return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSSimbaAPIService_v20180301.DescribeDataRepositoryTasks") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSSimbaAPIService_v20180301.DeleteBackup") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentDescribeDataRepositoryTasksInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentDeleteBackupInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -531,14 +531,14 @@ func (m *awsAwsjson11_serializeOpDescribeDataRepositoryTasks) HandleSerialize(ct return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpDescribeFileSystemAliases struct { +type awsAwsjson11_serializeOpDeleteFileSystem struct { } -func (*awsAwsjson11_serializeOpDescribeFileSystemAliases) ID() string { +func (*awsAwsjson11_serializeOpDeleteFileSystem) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpDescribeFileSystemAliases) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpDeleteFileSystem) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -546,7 +546,7 @@ func (m *awsAwsjson11_serializeOpDescribeFileSystemAliases) HandleSerialize(ctx return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeFileSystemAliasesInput) + input, ok := in.Parameters.(*DeleteFileSystemInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -559,10 +559,10 @@ func (m *awsAwsjson11_serializeOpDescribeFileSystemAliases) HandleSerialize(ctx return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSSimbaAPIService_v20180301.DescribeFileSystemAliases") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSSimbaAPIService_v20180301.DeleteFileSystem") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentDescribeFileSystemAliasesInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentDeleteFileSystemInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -578,14 +578,14 @@ func (m *awsAwsjson11_serializeOpDescribeFileSystemAliases) HandleSerialize(ctx return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpDescribeFileSystems struct { +type awsAwsjson11_serializeOpDeleteStorageVirtualMachine struct { } -func (*awsAwsjson11_serializeOpDescribeFileSystems) ID() string { +func (*awsAwsjson11_serializeOpDeleteStorageVirtualMachine) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpDescribeFileSystems) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpDeleteStorageVirtualMachine) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -593,7 +593,7 @@ func (m *awsAwsjson11_serializeOpDescribeFileSystems) HandleSerialize(ctx contex return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeFileSystemsInput) + input, ok := in.Parameters.(*DeleteStorageVirtualMachineInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -606,10 +606,10 @@ func (m *awsAwsjson11_serializeOpDescribeFileSystems) HandleSerialize(ctx contex return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSSimbaAPIService_v20180301.DescribeFileSystems") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSSimbaAPIService_v20180301.DeleteStorageVirtualMachine") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentDescribeFileSystemsInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentDeleteStorageVirtualMachineInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -625,14 +625,14 @@ func (m *awsAwsjson11_serializeOpDescribeFileSystems) HandleSerialize(ctx contex return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpDisassociateFileSystemAliases struct { +type awsAwsjson11_serializeOpDeleteVolume struct { } -func (*awsAwsjson11_serializeOpDisassociateFileSystemAliases) ID() string { +func (*awsAwsjson11_serializeOpDeleteVolume) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpDisassociateFileSystemAliases) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpDeleteVolume) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -640,7 +640,7 @@ func (m *awsAwsjson11_serializeOpDisassociateFileSystemAliases) HandleSerialize( return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DisassociateFileSystemAliasesInput) + input, ok := in.Parameters.(*DeleteVolumeInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -653,10 +653,10 @@ func (m *awsAwsjson11_serializeOpDisassociateFileSystemAliases) HandleSerialize( return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSSimbaAPIService_v20180301.DisassociateFileSystemAliases") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSSimbaAPIService_v20180301.DeleteVolume") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentDisassociateFileSystemAliasesInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentDeleteVolumeInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -672,14 +672,14 @@ func (m *awsAwsjson11_serializeOpDisassociateFileSystemAliases) HandleSerialize( return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpListTagsForResource struct { +type awsAwsjson11_serializeOpDescribeBackups struct { } -func (*awsAwsjson11_serializeOpListTagsForResource) ID() string { +func (*awsAwsjson11_serializeOpDescribeBackups) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpListTagsForResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpDescribeBackups) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -687,7 +687,7 @@ func (m *awsAwsjson11_serializeOpListTagsForResource) HandleSerialize(ctx contex return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListTagsForResourceInput) + input, ok := in.Parameters.(*DescribeBackupsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -700,10 +700,10 @@ func (m *awsAwsjson11_serializeOpListTagsForResource) HandleSerialize(ctx contex return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSSimbaAPIService_v20180301.ListTagsForResource") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSSimbaAPIService_v20180301.DescribeBackups") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentListTagsForResourceInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentDescribeBackupsInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -719,14 +719,14 @@ func (m *awsAwsjson11_serializeOpListTagsForResource) HandleSerialize(ctx contex return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpTagResource struct { +type awsAwsjson11_serializeOpDescribeDataRepositoryTasks struct { } -func (*awsAwsjson11_serializeOpTagResource) ID() string { +func (*awsAwsjson11_serializeOpDescribeDataRepositoryTasks) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpTagResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpDescribeDataRepositoryTasks) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -734,7 +734,7 @@ func (m *awsAwsjson11_serializeOpTagResource) HandleSerialize(ctx context.Contex return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*TagResourceInput) + input, ok := in.Parameters.(*DescribeDataRepositoryTasksInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -747,10 +747,10 @@ func (m *awsAwsjson11_serializeOpTagResource) HandleSerialize(ctx context.Contex return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSSimbaAPIService_v20180301.TagResource") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSSimbaAPIService_v20180301.DescribeDataRepositoryTasks") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentTagResourceInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentDescribeDataRepositoryTasksInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -766,14 +766,14 @@ func (m *awsAwsjson11_serializeOpTagResource) HandleSerialize(ctx context.Contex return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpUntagResource struct { +type awsAwsjson11_serializeOpDescribeFileSystemAliases struct { } -func (*awsAwsjson11_serializeOpUntagResource) ID() string { +func (*awsAwsjson11_serializeOpDescribeFileSystemAliases) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpUntagResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpDescribeFileSystemAliases) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -781,7 +781,7 @@ func (m *awsAwsjson11_serializeOpUntagResource) HandleSerialize(ctx context.Cont return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*UntagResourceInput) + input, ok := in.Parameters.(*DescribeFileSystemAliasesInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -794,10 +794,10 @@ func (m *awsAwsjson11_serializeOpUntagResource) HandleSerialize(ctx context.Cont return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSSimbaAPIService_v20180301.UntagResource") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSSimbaAPIService_v20180301.DescribeFileSystemAliases") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentUntagResourceInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentDescribeFileSystemAliasesInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -813,14 +813,14 @@ func (m *awsAwsjson11_serializeOpUntagResource) HandleSerialize(ctx context.Cont return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpUpdateFileSystem struct { +type awsAwsjson11_serializeOpDescribeFileSystems struct { } -func (*awsAwsjson11_serializeOpUpdateFileSystem) ID() string { +func (*awsAwsjson11_serializeOpDescribeFileSystems) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpUpdateFileSystem) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpDescribeFileSystems) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -828,7 +828,7 @@ func (m *awsAwsjson11_serializeOpUpdateFileSystem) HandleSerialize(ctx context.C return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*UpdateFileSystemInput) + input, ok := in.Parameters.(*DescribeFileSystemsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -841,10 +841,10 @@ func (m *awsAwsjson11_serializeOpUpdateFileSystem) HandleSerialize(ctx context.C return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSSimbaAPIService_v20180301.UpdateFileSystem") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSSimbaAPIService_v20180301.DescribeFileSystems") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentUpdateFileSystemInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentDescribeFileSystemsInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -859,120 +859,604 @@ func (m *awsAwsjson11_serializeOpUpdateFileSystem) HandleSerialize(ctx context.C return next.HandleSerialize(ctx, in) } -func awsAwsjson11_serializeDocumentAlternateDNSNames(v []string, value smithyjson.Value) error { - array := value.Array() - defer array.Close() - for i := range v { - av := array.Value() - av.String(v[i]) - } - return nil +type awsAwsjson11_serializeOpDescribeStorageVirtualMachines struct { } -func awsAwsjson11_serializeDocumentBackupIds(v []string, value smithyjson.Value) error { - array := value.Array() - defer array.Close() +func (*awsAwsjson11_serializeOpDescribeStorageVirtualMachines) ID() string { + return "OperationSerializer" +} - for i := range v { - av := array.Value() - av.String(v[i]) +func (m *awsAwsjson11_serializeOpDescribeStorageVirtualMachines) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - return nil -} -func awsAwsjson11_serializeDocumentCompletionReport(v *types.CompletionReport, value smithyjson.Value) error { - object := value.Object() - defer object.Close() + input, ok := in.Parameters.(*DescribeStorageVirtualMachinesInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } - if v.Enabled != nil { - ok := object.Key("Enabled") - ok.Boolean(*v.Enabled) + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSSimbaAPIService_v20180301.DescribeStorageVirtualMachines") - if len(v.Format) > 0 { - ok := object.Key("Format") - ok.String(string(v.Format)) + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentDescribeStorageVirtualMachinesInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} } - if v.Path != nil { - ok := object.Key("Path") - ok.String(*v.Path) + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} } - if len(v.Scope) > 0 { - ok := object.Key("Scope") - ok.String(string(v.Scope)) + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} } + in.Request = request - return nil + return next.HandleSerialize(ctx, in) } -func awsAwsjson11_serializeDocumentCreateFileSystemLustreConfiguration(v *types.CreateFileSystemLustreConfiguration, value smithyjson.Value) error { - object := value.Object() - defer object.Close() +type awsAwsjson11_serializeOpDescribeVolumes struct { +} - if len(v.AutoImportPolicy) > 0 { - ok := object.Key("AutoImportPolicy") - ok.String(string(v.AutoImportPolicy)) - } +func (*awsAwsjson11_serializeOpDescribeVolumes) ID() string { + return "OperationSerializer" +} - if v.AutomaticBackupRetentionDays != nil { - ok := object.Key("AutomaticBackupRetentionDays") - ok.Integer(*v.AutomaticBackupRetentionDays) +func (m *awsAwsjson11_serializeOpDescribeVolumes) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - if v.CopyTagsToBackups != nil { - ok := object.Key("CopyTagsToBackups") - ok.Boolean(*v.CopyTagsToBackups) + input, ok := in.Parameters.(*DescribeVolumesInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - if v.DailyAutomaticBackupStartTime != nil { - ok := object.Key("DailyAutomaticBackupStartTime") - ok.String(*v.DailyAutomaticBackupStartTime) + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSSimbaAPIService_v20180301.DescribeVolumes") - if len(v.DataCompressionType) > 0 { - ok := object.Key("DataCompressionType") - ok.String(string(v.DataCompressionType)) + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentDescribeVolumesInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} } - if len(v.DeploymentType) > 0 { - ok := object.Key("DeploymentType") - ok.String(string(v.DeploymentType)) + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} } - if len(v.DriveCacheType) > 0 { - ok := object.Key("DriveCacheType") - ok.String(string(v.DriveCacheType)) + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} } + in.Request = request - if v.ExportPath != nil { - ok := object.Key("ExportPath") - ok.String(*v.ExportPath) + return next.HandleSerialize(ctx, in) +} + +type awsAwsjson11_serializeOpDisassociateFileSystemAliases struct { +} + +func (*awsAwsjson11_serializeOpDisassociateFileSystemAliases) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpDisassociateFileSystemAliases) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - if v.ImportedFileChunkSize != nil { - ok := object.Key("ImportedFileChunkSize") - ok.Integer(*v.ImportedFileChunkSize) + input, ok := in.Parameters.(*DisassociateFileSystemAliasesInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - if v.ImportPath != nil { - ok := object.Key("ImportPath") - ok.String(*v.ImportPath) + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSSimbaAPIService_v20180301.DisassociateFileSystemAliases") - if v.PerUnitStorageThroughput != nil { - ok := object.Key("PerUnitStorageThroughput") - ok.Integer(*v.PerUnitStorageThroughput) + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentDisassociateFileSystemAliasesInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} } - if v.WeeklyMaintenanceStartTime != nil { - ok := object.Key("WeeklyMaintenanceStartTime") - ok.String(*v.WeeklyMaintenanceStartTime) + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} } - return nil + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + +type awsAwsjson11_serializeOpListTagsForResource struct { +} + +func (*awsAwsjson11_serializeOpListTagsForResource) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpListTagsForResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*ListTagsForResourceInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSSimbaAPIService_v20180301.ListTagsForResource") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentListTagsForResourceInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + +type awsAwsjson11_serializeOpTagResource struct { +} + +func (*awsAwsjson11_serializeOpTagResource) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpTagResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*TagResourceInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSSimbaAPIService_v20180301.TagResource") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentTagResourceInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + +type awsAwsjson11_serializeOpUntagResource struct { +} + +func (*awsAwsjson11_serializeOpUntagResource) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpUntagResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*UntagResourceInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSSimbaAPIService_v20180301.UntagResource") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentUntagResourceInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + +type awsAwsjson11_serializeOpUpdateFileSystem struct { +} + +func (*awsAwsjson11_serializeOpUpdateFileSystem) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpUpdateFileSystem) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*UpdateFileSystemInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSSimbaAPIService_v20180301.UpdateFileSystem") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentUpdateFileSystemInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + +type awsAwsjson11_serializeOpUpdateStorageVirtualMachine struct { +} + +func (*awsAwsjson11_serializeOpUpdateStorageVirtualMachine) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpUpdateStorageVirtualMachine) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*UpdateStorageVirtualMachineInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSSimbaAPIService_v20180301.UpdateStorageVirtualMachine") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentUpdateStorageVirtualMachineInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + +type awsAwsjson11_serializeOpUpdateVolume struct { +} + +func (*awsAwsjson11_serializeOpUpdateVolume) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpUpdateVolume) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*UpdateVolumeInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSSimbaAPIService_v20180301.UpdateVolume") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentUpdateVolumeInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsAwsjson11_serializeDocumentAlternateDNSNames(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + +func awsAwsjson11_serializeDocumentBackupIds(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + +func awsAwsjson11_serializeDocumentCompletionReport(v *types.CompletionReport, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Enabled != nil { + ok := object.Key("Enabled") + ok.Boolean(*v.Enabled) + } + + if len(v.Format) > 0 { + ok := object.Key("Format") + ok.String(string(v.Format)) + } + + if v.Path != nil { + ok := object.Key("Path") + ok.String(*v.Path) + } + + if len(v.Scope) > 0 { + ok := object.Key("Scope") + ok.String(string(v.Scope)) + } + + return nil +} + +func awsAwsjson11_serializeDocumentCreateFileSystemLustreConfiguration(v *types.CreateFileSystemLustreConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.AutoImportPolicy) > 0 { + ok := object.Key("AutoImportPolicy") + ok.String(string(v.AutoImportPolicy)) + } + + if v.AutomaticBackupRetentionDays != nil { + ok := object.Key("AutomaticBackupRetentionDays") + ok.Integer(*v.AutomaticBackupRetentionDays) + } + + if v.CopyTagsToBackups != nil { + ok := object.Key("CopyTagsToBackups") + ok.Boolean(*v.CopyTagsToBackups) + } + + if v.DailyAutomaticBackupStartTime != nil { + ok := object.Key("DailyAutomaticBackupStartTime") + ok.String(*v.DailyAutomaticBackupStartTime) + } + + if len(v.DataCompressionType) > 0 { + ok := object.Key("DataCompressionType") + ok.String(string(v.DataCompressionType)) + } + + if len(v.DeploymentType) > 0 { + ok := object.Key("DeploymentType") + ok.String(string(v.DeploymentType)) + } + + if len(v.DriveCacheType) > 0 { + ok := object.Key("DriveCacheType") + ok.String(string(v.DriveCacheType)) + } + + if v.ExportPath != nil { + ok := object.Key("ExportPath") + ok.String(*v.ExportPath) + } + + if v.ImportedFileChunkSize != nil { + ok := object.Key("ImportedFileChunkSize") + ok.Integer(*v.ImportedFileChunkSize) + } + + if v.ImportPath != nil { + ok := object.Key("ImportPath") + ok.String(*v.ImportPath) + } + + if v.PerUnitStorageThroughput != nil { + ok := object.Key("PerUnitStorageThroughput") + ok.Integer(*v.PerUnitStorageThroughput) + } + + if v.WeeklyMaintenanceStartTime != nil { + ok := object.Key("WeeklyMaintenanceStartTime") + ok.String(*v.WeeklyMaintenanceStartTime) + } + + return nil +} + +func awsAwsjson11_serializeDocumentCreateFileSystemOntapConfiguration(v *types.CreateFileSystemOntapConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AutomaticBackupRetentionDays != nil { + ok := object.Key("AutomaticBackupRetentionDays") + ok.Integer(*v.AutomaticBackupRetentionDays) + } + + if v.DailyAutomaticBackupStartTime != nil { + ok := object.Key("DailyAutomaticBackupStartTime") + ok.String(*v.DailyAutomaticBackupStartTime) + } + + if len(v.DeploymentType) > 0 { + ok := object.Key("DeploymentType") + ok.String(string(v.DeploymentType)) + } + + if v.DiskIopsConfiguration != nil { + ok := object.Key("DiskIopsConfiguration") + if err := awsAwsjson11_serializeDocumentDiskIopsConfiguration(v.DiskIopsConfiguration, ok); err != nil { + return err + } + } + + if v.EndpointIpAddressRange != nil { + ok := object.Key("EndpointIpAddressRange") + ok.String(*v.EndpointIpAddressRange) + } + + if v.FsxAdminPassword != nil { + ok := object.Key("FsxAdminPassword") + ok.String(*v.FsxAdminPassword) + } + + if v.PreferredSubnetId != nil { + ok := object.Key("PreferredSubnetId") + ok.String(*v.PreferredSubnetId) + } + + if v.RouteTableIds != nil { + ok := object.Key("RouteTableIds") + if err := awsAwsjson11_serializeDocumentRouteTableIds(v.RouteTableIds, ok); err != nil { + return err + } + } + + if v.ThroughputCapacity != nil { + ok := object.Key("ThroughputCapacity") + ok.Integer(*v.ThroughputCapacity) + } + + if v.WeeklyMaintenanceStartTime != nil { + ok := object.Key("WeeklyMaintenanceStartTime") + ok.String(*v.WeeklyMaintenanceStartTime) + } + + return nil } func awsAwsjson11_serializeDocumentCreateFileSystemWindowsConfiguration(v *types.CreateFileSystemWindowsConfiguration, value smithyjson.Value) error { @@ -1043,6 +1527,64 @@ func awsAwsjson11_serializeDocumentCreateFileSystemWindowsConfiguration(v *types return nil } +func awsAwsjson11_serializeDocumentCreateOntapVolumeConfiguration(v *types.CreateOntapVolumeConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.JunctionPath != nil { + ok := object.Key("JunctionPath") + ok.String(*v.JunctionPath) + } + + if len(v.SecurityStyle) > 0 { + ok := object.Key("SecurityStyle") + ok.String(string(v.SecurityStyle)) + } + + if v.SizeInMegabytes != nil { + ok := object.Key("SizeInMegabytes") + ok.Integer(*v.SizeInMegabytes) + } + + if v.StorageEfficiencyEnabled != nil { + ok := object.Key("StorageEfficiencyEnabled") + ok.Boolean(*v.StorageEfficiencyEnabled) + } + + if v.StorageVirtualMachineId != nil { + ok := object.Key("StorageVirtualMachineId") + ok.String(*v.StorageVirtualMachineId) + } + + if v.TieringPolicy != nil { + ok := object.Key("TieringPolicy") + if err := awsAwsjson11_serializeDocumentTieringPolicy(v.TieringPolicy, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson11_serializeDocumentCreateSvmActiveDirectoryConfiguration(v *types.CreateSvmActiveDirectoryConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.NetBiosName != nil { + ok := object.Key("NetBiosName") + ok.String(*v.NetBiosName) + } + + if v.SelfManagedActiveDirectoryConfiguration != nil { + ok := object.Key("SelfManagedActiveDirectoryConfiguration") + if err := awsAwsjson11_serializeDocumentSelfManagedActiveDirectoryConfiguration(v.SelfManagedActiveDirectoryConfiguration, ok); err != nil { + return err + } + } + + return nil +} + func awsAwsjson11_serializeDocumentDataRepositoryTaskFilter(v *types.DataRepositoryTaskFilter, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1135,6 +1677,42 @@ func awsAwsjson11_serializeDocumentDeleteFileSystemWindowsConfiguration(v *types return nil } +func awsAwsjson11_serializeDocumentDeleteVolumeOntapConfiguration(v *types.DeleteVolumeOntapConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.FinalBackupTags != nil { + ok := object.Key("FinalBackupTags") + if err := awsAwsjson11_serializeDocumentTags(v.FinalBackupTags, ok); err != nil { + return err + } + } + + if v.SkipFinalBackup != nil { + ok := object.Key("SkipFinalBackup") + ok.Boolean(*v.SkipFinalBackup) + } + + return nil +} + +func awsAwsjson11_serializeDocumentDiskIopsConfiguration(v *types.DiskIopsConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Iops != nil { + ok := object.Key("Iops") + ok.Long(*v.Iops) + } + + if len(v.Mode) > 0 { + ok := object.Key("Mode") + ok.String(string(v.Mode)) + } + + return nil +} + func awsAwsjson11_serializeDocumentDnsIps(v []string, value smithyjson.Value) error { array := value.Array() defer array.Close() @@ -1200,6 +1778,17 @@ func awsAwsjson11_serializeDocumentFilterValues(v []string, value smithyjson.Val return nil } +func awsAwsjson11_serializeDocumentRouteTableIds(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + func awsAwsjson11_serializeDocumentSecurityGroupIds(v []string, value smithyjson.Value) error { array := value.Array() defer array.Close() @@ -1274,6 +1863,60 @@ func awsAwsjson11_serializeDocumentSelfManagedActiveDirectoryConfigurationUpdate return nil } +func awsAwsjson11_serializeDocumentStorageVirtualMachineFilter(v *types.StorageVirtualMachineFilter, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.Name) > 0 { + ok := object.Key("Name") + ok.String(string(v.Name)) + } + + if v.Values != nil { + ok := object.Key("Values") + if err := awsAwsjson11_serializeDocumentStorageVirtualMachineFilterValues(v.Values, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson11_serializeDocumentStorageVirtualMachineFilters(v []types.StorageVirtualMachineFilter, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsAwsjson11_serializeDocumentStorageVirtualMachineFilter(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsAwsjson11_serializeDocumentStorageVirtualMachineFilterValues(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + +func awsAwsjson11_serializeDocumentStorageVirtualMachineIds(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + func awsAwsjson11_serializeDocumentSubnetIds(v []string, value smithyjson.Value) error { array := value.Array() defer array.Close() @@ -1337,6 +1980,23 @@ func awsAwsjson11_serializeDocumentTaskIds(v []string, value smithyjson.Value) e return nil } +func awsAwsjson11_serializeDocumentTieringPolicy(v *types.TieringPolicy, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.CoolingPeriod != nil { + ok := object.Key("CoolingPeriod") + ok.Integer(*v.CoolingPeriod) + } + + if len(v.Name) > 0 { + ok := object.Key("Name") + ok.String(string(v.Name)) + } + + return nil +} + func awsAwsjson11_serializeDocumentUpdateFileSystemLustreConfiguration(v *types.UpdateFileSystemLustreConfiguration, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1369,6 +2029,33 @@ func awsAwsjson11_serializeDocumentUpdateFileSystemLustreConfiguration(v *types. return nil } +func awsAwsjson11_serializeDocumentUpdateFileSystemOntapConfiguration(v *types.UpdateFileSystemOntapConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AutomaticBackupRetentionDays != nil { + ok := object.Key("AutomaticBackupRetentionDays") + ok.Integer(*v.AutomaticBackupRetentionDays) + } + + if v.DailyAutomaticBackupStartTime != nil { + ok := object.Key("DailyAutomaticBackupStartTime") + ok.String(*v.DailyAutomaticBackupStartTime) + } + + if v.FsxAdminPassword != nil { + ok := object.Key("FsxAdminPassword") + ok.String(*v.FsxAdminPassword) + } + + if v.WeeklyMaintenanceStartTime != nil { + ok := object.Key("WeeklyMaintenanceStartTime") + ok.String(*v.WeeklyMaintenanceStartTime) + } + + return nil +} + func awsAwsjson11_serializeDocumentUpdateFileSystemWindowsConfiguration(v *types.UpdateFileSystemWindowsConfiguration, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1385,28 +2072,130 @@ func awsAwsjson11_serializeDocumentUpdateFileSystemWindowsConfiguration(v *types ok.Integer(*v.AutomaticBackupRetentionDays) } - if v.DailyAutomaticBackupStartTime != nil { - ok := object.Key("DailyAutomaticBackupStartTime") - ok.String(*v.DailyAutomaticBackupStartTime) - } + if v.DailyAutomaticBackupStartTime != nil { + ok := object.Key("DailyAutomaticBackupStartTime") + ok.String(*v.DailyAutomaticBackupStartTime) + } + + if v.SelfManagedActiveDirectoryConfiguration != nil { + ok := object.Key("SelfManagedActiveDirectoryConfiguration") + if err := awsAwsjson11_serializeDocumentSelfManagedActiveDirectoryConfigurationUpdates(v.SelfManagedActiveDirectoryConfiguration, ok); err != nil { + return err + } + } + + if v.ThroughputCapacity != nil { + ok := object.Key("ThroughputCapacity") + ok.Integer(*v.ThroughputCapacity) + } + + if v.WeeklyMaintenanceStartTime != nil { + ok := object.Key("WeeklyMaintenanceStartTime") + ok.String(*v.WeeklyMaintenanceStartTime) + } + + return nil +} + +func awsAwsjson11_serializeDocumentUpdateOntapVolumeConfiguration(v *types.UpdateOntapVolumeConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.JunctionPath != nil { + ok := object.Key("JunctionPath") + ok.String(*v.JunctionPath) + } + + if len(v.SecurityStyle) > 0 { + ok := object.Key("SecurityStyle") + ok.String(string(v.SecurityStyle)) + } + + if v.SizeInMegabytes != nil { + ok := object.Key("SizeInMegabytes") + ok.Integer(*v.SizeInMegabytes) + } + + if v.StorageEfficiencyEnabled != nil { + ok := object.Key("StorageEfficiencyEnabled") + ok.Boolean(*v.StorageEfficiencyEnabled) + } + + if v.TieringPolicy != nil { + ok := object.Key("TieringPolicy") + if err := awsAwsjson11_serializeDocumentTieringPolicy(v.TieringPolicy, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson11_serializeDocumentUpdateSvmActiveDirectoryConfiguration(v *types.UpdateSvmActiveDirectoryConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.SelfManagedActiveDirectoryConfiguration != nil { + ok := object.Key("SelfManagedActiveDirectoryConfiguration") + if err := awsAwsjson11_serializeDocumentSelfManagedActiveDirectoryConfigurationUpdates(v.SelfManagedActiveDirectoryConfiguration, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson11_serializeDocumentVolumeFilter(v *types.VolumeFilter, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.Name) > 0 { + ok := object.Key("Name") + ok.String(string(v.Name)) + } + + if v.Values != nil { + ok := object.Key("Values") + if err := awsAwsjson11_serializeDocumentVolumeFilterValues(v.Values, ok); err != nil { + return err + } + } + + return nil +} - if v.SelfManagedActiveDirectoryConfiguration != nil { - ok := object.Key("SelfManagedActiveDirectoryConfiguration") - if err := awsAwsjson11_serializeDocumentSelfManagedActiveDirectoryConfigurationUpdates(v.SelfManagedActiveDirectoryConfiguration, ok); err != nil { +func awsAwsjson11_serializeDocumentVolumeFilters(v []types.VolumeFilter, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsAwsjson11_serializeDocumentVolumeFilter(&v[i], av); err != nil { return err } } + return nil +} - if v.ThroughputCapacity != nil { - ok := object.Key("ThroughputCapacity") - ok.Integer(*v.ThroughputCapacity) - } +func awsAwsjson11_serializeDocumentVolumeFilterValues(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() - if v.WeeklyMaintenanceStartTime != nil { - ok := object.Key("WeeklyMaintenanceStartTime") - ok.String(*v.WeeklyMaintenanceStartTime) + for i := range v { + av := array.Value() + av.String(v[i]) } + return nil +} + +func awsAwsjson11_serializeDocumentVolumeIds(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + for i := range v { + av := array.Value() + av.String(v[i]) + } return nil } @@ -1528,6 +2317,11 @@ func awsAwsjson11_serializeOpDocumentCreateBackupInput(v *CreateBackupInput, val } } + if v.VolumeId != nil { + ok := object.Key("VolumeId") + ok.String(*v.VolumeId) + } + return nil } @@ -1662,6 +2456,13 @@ func awsAwsjson11_serializeOpDocumentCreateFileSystemInput(v *CreateFileSystemIn } } + if v.OntapConfiguration != nil { + ok := object.Key("OntapConfiguration") + if err := awsAwsjson11_serializeDocumentCreateFileSystemOntapConfiguration(v.OntapConfiguration, ok); err != nil { + return err + } + } + if v.SecurityGroupIds != nil { ok := object.Key("SecurityGroupIds") if err := awsAwsjson11_serializeDocumentSecurityGroupIds(v.SecurityGroupIds, ok); err != nil { @@ -1703,6 +2504,124 @@ func awsAwsjson11_serializeOpDocumentCreateFileSystemInput(v *CreateFileSystemIn return nil } +func awsAwsjson11_serializeOpDocumentCreateStorageVirtualMachineInput(v *CreateStorageVirtualMachineInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ActiveDirectoryConfiguration != nil { + ok := object.Key("ActiveDirectoryConfiguration") + if err := awsAwsjson11_serializeDocumentCreateSvmActiveDirectoryConfiguration(v.ActiveDirectoryConfiguration, ok); err != nil { + return err + } + } + + if v.ClientRequestToken != nil { + ok := object.Key("ClientRequestToken") + ok.String(*v.ClientRequestToken) + } + + if v.FileSystemId != nil { + ok := object.Key("FileSystemId") + ok.String(*v.FileSystemId) + } + + if v.Name != nil { + ok := object.Key("Name") + ok.String(*v.Name) + } + + if len(v.RootVolumeSecurityStyle) > 0 { + ok := object.Key("RootVolumeSecurityStyle") + ok.String(string(v.RootVolumeSecurityStyle)) + } + + if v.SvmAdminPassword != nil { + ok := object.Key("SvmAdminPassword") + ok.String(*v.SvmAdminPassword) + } + + if v.Tags != nil { + ok := object.Key("Tags") + if err := awsAwsjson11_serializeDocumentTags(v.Tags, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson11_serializeOpDocumentCreateVolumeFromBackupInput(v *CreateVolumeFromBackupInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.BackupId != nil { + ok := object.Key("BackupId") + ok.String(*v.BackupId) + } + + if v.ClientRequestToken != nil { + ok := object.Key("ClientRequestToken") + ok.String(*v.ClientRequestToken) + } + + if v.Name != nil { + ok := object.Key("Name") + ok.String(*v.Name) + } + + if v.OntapConfiguration != nil { + ok := object.Key("OntapConfiguration") + if err := awsAwsjson11_serializeDocumentCreateOntapVolumeConfiguration(v.OntapConfiguration, ok); err != nil { + return err + } + } + + if v.Tags != nil { + ok := object.Key("Tags") + if err := awsAwsjson11_serializeDocumentTags(v.Tags, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson11_serializeOpDocumentCreateVolumeInput(v *CreateVolumeInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ClientRequestToken != nil { + ok := object.Key("ClientRequestToken") + ok.String(*v.ClientRequestToken) + } + + if v.Name != nil { + ok := object.Key("Name") + ok.String(*v.Name) + } + + if v.OntapConfiguration != nil { + ok := object.Key("OntapConfiguration") + if err := awsAwsjson11_serializeDocumentCreateOntapVolumeConfiguration(v.OntapConfiguration, ok); err != nil { + return err + } + } + + if v.Tags != nil { + ok := object.Key("Tags") + if err := awsAwsjson11_serializeDocumentTags(v.Tags, ok); err != nil { + return err + } + } + + if len(v.VolumeType) > 0 { + ok := object.Key("VolumeType") + ok.String(string(v.VolumeType)) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentDeleteBackupInput(v *DeleteBackupInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1751,6 +2670,47 @@ func awsAwsjson11_serializeOpDocumentDeleteFileSystemInput(v *DeleteFileSystemIn return nil } +func awsAwsjson11_serializeOpDocumentDeleteStorageVirtualMachineInput(v *DeleteStorageVirtualMachineInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ClientRequestToken != nil { + ok := object.Key("ClientRequestToken") + ok.String(*v.ClientRequestToken) + } + + if v.StorageVirtualMachineId != nil { + ok := object.Key("StorageVirtualMachineId") + ok.String(*v.StorageVirtualMachineId) + } + + return nil +} + +func awsAwsjson11_serializeOpDocumentDeleteVolumeInput(v *DeleteVolumeInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ClientRequestToken != nil { + ok := object.Key("ClientRequestToken") + ok.String(*v.ClientRequestToken) + } + + if v.OntapConfiguration != nil { + ok := object.Key("OntapConfiguration") + if err := awsAwsjson11_serializeDocumentDeleteVolumeOntapConfiguration(v.OntapConfiguration, ok); err != nil { + return err + } + } + + if v.VolumeId != nil { + ok := object.Key("VolumeId") + ok.String(*v.VolumeId) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentDescribeBackupsInput(v *DescribeBackupsInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1864,6 +2824,68 @@ func awsAwsjson11_serializeOpDocumentDescribeFileSystemsInput(v *DescribeFileSys return nil } +func awsAwsjson11_serializeOpDocumentDescribeStorageVirtualMachinesInput(v *DescribeStorageVirtualMachinesInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Filters != nil { + ok := object.Key("Filters") + if err := awsAwsjson11_serializeDocumentStorageVirtualMachineFilters(v.Filters, ok); err != nil { + return err + } + } + + if v.MaxResults != nil { + ok := object.Key("MaxResults") + ok.Integer(*v.MaxResults) + } + + if v.NextToken != nil { + ok := object.Key("NextToken") + ok.String(*v.NextToken) + } + + if v.StorageVirtualMachineIds != nil { + ok := object.Key("StorageVirtualMachineIds") + if err := awsAwsjson11_serializeDocumentStorageVirtualMachineIds(v.StorageVirtualMachineIds, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson11_serializeOpDocumentDescribeVolumesInput(v *DescribeVolumesInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Filters != nil { + ok := object.Key("Filters") + if err := awsAwsjson11_serializeDocumentVolumeFilters(v.Filters, ok); err != nil { + return err + } + } + + if v.MaxResults != nil { + ok := object.Key("MaxResults") + ok.Integer(*v.MaxResults) + } + + if v.NextToken != nil { + ok := object.Key("NextToken") + ok.String(*v.NextToken) + } + + if v.VolumeIds != nil { + ok := object.Key("VolumeIds") + if err := awsAwsjson11_serializeDocumentVolumeIds(v.VolumeIds, ok); err != nil { + return err + } + } + + return nil +} + func awsAwsjson11_serializeOpDocumentDisassociateFileSystemAliasesInput(v *DisassociateFileSystemAliasesInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1969,6 +2991,13 @@ func awsAwsjson11_serializeOpDocumentUpdateFileSystemInput(v *UpdateFileSystemIn } } + if v.OntapConfiguration != nil { + ok := object.Key("OntapConfiguration") + if err := awsAwsjson11_serializeDocumentUpdateFileSystemOntapConfiguration(v.OntapConfiguration, ok); err != nil { + return err + } + } + if v.StorageCapacity != nil { ok := object.Key("StorageCapacity") ok.Integer(*v.StorageCapacity) @@ -1983,3 +3012,56 @@ func awsAwsjson11_serializeOpDocumentUpdateFileSystemInput(v *UpdateFileSystemIn return nil } + +func awsAwsjson11_serializeOpDocumentUpdateStorageVirtualMachineInput(v *UpdateStorageVirtualMachineInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ActiveDirectoryConfiguration != nil { + ok := object.Key("ActiveDirectoryConfiguration") + if err := awsAwsjson11_serializeDocumentUpdateSvmActiveDirectoryConfiguration(v.ActiveDirectoryConfiguration, ok); err != nil { + return err + } + } + + if v.ClientRequestToken != nil { + ok := object.Key("ClientRequestToken") + ok.String(*v.ClientRequestToken) + } + + if v.StorageVirtualMachineId != nil { + ok := object.Key("StorageVirtualMachineId") + ok.String(*v.StorageVirtualMachineId) + } + + if v.SvmAdminPassword != nil { + ok := object.Key("SvmAdminPassword") + ok.String(*v.SvmAdminPassword) + } + + return nil +} + +func awsAwsjson11_serializeOpDocumentUpdateVolumeInput(v *UpdateVolumeInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ClientRequestToken != nil { + ok := object.Key("ClientRequestToken") + ok.String(*v.ClientRequestToken) + } + + if v.OntapConfiguration != nil { + ok := object.Key("OntapConfiguration") + if err := awsAwsjson11_serializeDocumentUpdateOntapVolumeConfiguration(v.OntapConfiguration, ok); err != nil { + return err + } + } + + if v.VolumeId != nil { + ok := object.Key("VolumeId") + ok.String(*v.VolumeId) + } + + return nil +} diff --git a/service/fsx/types/enums.go b/service/fsx/types/enums.go index e72483f069c..4d3a58ce8c8 100644 --- a/service/fsx/types/enums.go +++ b/service/fsx/types/enums.go @@ -240,6 +240,24 @@ func (DataRepositoryTaskType) Values() []DataRepositoryTaskType { } } +type DiskIopsConfigurationMode string + +// Enum values for DiskIopsConfigurationMode +const ( + DiskIopsConfigurationModeAutomatic DiskIopsConfigurationMode = "AUTOMATIC" + DiskIopsConfigurationModeUserProvisioned DiskIopsConfigurationMode = "USER_PROVISIONED" +) + +// Values returns all known values for DiskIopsConfigurationMode. Note that this +// can be expanded in the future, and so it is only as up to date as the client. +// The ordering of this slice is not guaranteed to be stable across updates. +func (DiskIopsConfigurationMode) Values() []DiskIopsConfigurationMode { + return []DiskIopsConfigurationMode{ + "AUTOMATIC", + "USER_PROVISIONED", + } +} + type DriveCacheType string // Enum values for DriveCacheType @@ -309,6 +327,7 @@ type FileSystemType string const ( FileSystemTypeWindows FileSystemType = "WINDOWS" FileSystemTypeLustre FileSystemType = "LUSTRE" + FileSystemTypeOntap FileSystemType = "ONTAP" ) // Values returns all known values for FileSystemType. Note that this can be @@ -318,6 +337,7 @@ func (FileSystemType) Values() []FileSystemType { return []FileSystemType{ "WINDOWS", "LUSTRE", + "ONTAP", } } @@ -328,6 +348,7 @@ const ( FilterNameFileSystemId FilterName = "file-system-id" FilterNameBackupType FilterName = "backup-type" FilterNameFileSystemType FilterName = "file-system-type" + FilterNameVolumeId FilterName = "volume-id" ) // Values returns all known values for FilterName. Note that this can be expanded @@ -338,6 +359,27 @@ func (FilterName) Values() []FilterName { "file-system-id", "backup-type", "file-system-type", + "volume-id", + } +} + +type FlexCacheEndpointType string + +// Enum values for FlexCacheEndpointType +const ( + FlexCacheEndpointTypeNone FlexCacheEndpointType = "NONE" + FlexCacheEndpointTypeOrigin FlexCacheEndpointType = "ORIGIN" + FlexCacheEndpointTypeCache FlexCacheEndpointType = "CACHE" +) + +// Values returns all known values for FlexCacheEndpointType. Note that this can be +// expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (FlexCacheEndpointType) Values() []FlexCacheEndpointType { + return []FlexCacheEndpointType{ + "NONE", + "ORIGIN", + "CACHE", } } @@ -361,6 +403,42 @@ func (LustreDeploymentType) Values() []LustreDeploymentType { } } +type OntapDeploymentType string + +// Enum values for OntapDeploymentType +const ( + OntapDeploymentTypeMultiAz1 OntapDeploymentType = "MULTI_AZ_1" +) + +// Values returns all known values for OntapDeploymentType. Note that this can be +// expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (OntapDeploymentType) Values() []OntapDeploymentType { + return []OntapDeploymentType{ + "MULTI_AZ_1", + } +} + +type OntapVolumeType string + +// Enum values for OntapVolumeType +const ( + OntapVolumeTypeRw OntapVolumeType = "RW" + OntapVolumeTypeDp OntapVolumeType = "DP" + OntapVolumeTypeLs OntapVolumeType = "LS" +) + +// Values returns all known values for OntapVolumeType. Note that this can be +// expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (OntapVolumeType) Values() []OntapVolumeType { + return []OntapVolumeType{ + "RW", + "DP", + "LS", + } +} + type ReportFormat string // Enum values for ReportFormat @@ -393,16 +471,57 @@ func (ReportScope) Values() []ReportScope { } } +type ResourceType string + +// Enum values for ResourceType +const ( + ResourceTypeFileSystem ResourceType = "FILE_SYSTEM" + ResourceTypeVolume ResourceType = "VOLUME" +) + +// Values returns all known values for ResourceType. Note that this can be expanded +// in the future, and so it is only as up to date as the client. The ordering of +// this slice is not guaranteed to be stable across updates. +func (ResourceType) Values() []ResourceType { + return []ResourceType{ + "FILE_SYSTEM", + "VOLUME", + } +} + +type SecurityStyle string + +// Enum values for SecurityStyle +const ( + SecurityStyleUnix SecurityStyle = "UNIX" + SecurityStyleNtfs SecurityStyle = "NTFS" + SecurityStyleMixed SecurityStyle = "MIXED" +) + +// Values returns all known values for SecurityStyle. Note that this can be +// expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (SecurityStyle) Values() []SecurityStyle { + return []SecurityStyle{ + "UNIX", + "NTFS", + "MIXED", + } +} + type ServiceLimit string // Enum values for ServiceLimit const ( - ServiceLimitFileSystemCount ServiceLimit = "FILE_SYSTEM_COUNT" - ServiceLimitTotalThroughputCapacity ServiceLimit = "TOTAL_THROUGHPUT_CAPACITY" - ServiceLimitTotalStorage ServiceLimit = "TOTAL_STORAGE" - ServiceLimitTotalUserInitiatedBackups ServiceLimit = "TOTAL_USER_INITIATED_BACKUPS" - ServiceLimitTotalUserTags ServiceLimit = "TOTAL_USER_TAGS" - ServiceLimitTotalInProgressCopyBackups ServiceLimit = "TOTAL_IN_PROGRESS_COPY_BACKUPS" + ServiceLimitFileSystemCount ServiceLimit = "FILE_SYSTEM_COUNT" + ServiceLimitTotalThroughputCapacity ServiceLimit = "TOTAL_THROUGHPUT_CAPACITY" + ServiceLimitTotalStorage ServiceLimit = "TOTAL_STORAGE" + ServiceLimitTotalUserInitiatedBackups ServiceLimit = "TOTAL_USER_INITIATED_BACKUPS" + ServiceLimitTotalUserTags ServiceLimit = "TOTAL_USER_TAGS" + ServiceLimitTotalInProgressCopyBackups ServiceLimit = "TOTAL_IN_PROGRESS_COPY_BACKUPS" + ServiceLimitStorageVirtualMachinesPerFileSystem ServiceLimit = "STORAGE_VIRTUAL_MACHINES_PER_FILE_SYSTEM" + ServiceLimitVolumesPerFileSystem ServiceLimit = "VOLUMES_PER_FILE_SYSTEM" + ServiceLimitTotalSsdIops ServiceLimit = "TOTAL_SSD_IOPS" ) // Values returns all known values for ServiceLimit. Note that this can be expanded @@ -416,6 +535,9 @@ func (ServiceLimit) Values() []ServiceLimit { "TOTAL_USER_INITIATED_BACKUPS", "TOTAL_USER_TAGS", "TOTAL_IN_PROGRESS_COPY_BACKUPS", + "STORAGE_VIRTUAL_MACHINES_PER_FILE_SYSTEM", + "VOLUMES_PER_FILE_SYSTEM", + "TOTAL_SSD_IOPS", } } @@ -461,6 +583,175 @@ func (StorageType) Values() []StorageType { } } +type StorageVirtualMachineFilterName string + +// Enum values for StorageVirtualMachineFilterName +const ( + StorageVirtualMachineFilterNameFileSystemId StorageVirtualMachineFilterName = "file-system-id" +) + +// Values returns all known values for StorageVirtualMachineFilterName. Note that +// this can be expanded in the future, and so it is only as up to date as the +// client. The ordering of this slice is not guaranteed to be stable across +// updates. +func (StorageVirtualMachineFilterName) Values() []StorageVirtualMachineFilterName { + return []StorageVirtualMachineFilterName{ + "file-system-id", + } +} + +type StorageVirtualMachineLifecycle string + +// Enum values for StorageVirtualMachineLifecycle +const ( + StorageVirtualMachineLifecycleCreated StorageVirtualMachineLifecycle = "CREATED" + StorageVirtualMachineLifecycleCreating StorageVirtualMachineLifecycle = "CREATING" + StorageVirtualMachineLifecycleDeleting StorageVirtualMachineLifecycle = "DELETING" + StorageVirtualMachineLifecycleFailed StorageVirtualMachineLifecycle = "FAILED" + StorageVirtualMachineLifecycleMisconfigured StorageVirtualMachineLifecycle = "MISCONFIGURED" + StorageVirtualMachineLifecyclePending StorageVirtualMachineLifecycle = "PENDING" +) + +// Values returns all known values for StorageVirtualMachineLifecycle. Note that +// this can be expanded in the future, and so it is only as up to date as the +// client. The ordering of this slice is not guaranteed to be stable across +// updates. +func (StorageVirtualMachineLifecycle) Values() []StorageVirtualMachineLifecycle { + return []StorageVirtualMachineLifecycle{ + "CREATED", + "CREATING", + "DELETING", + "FAILED", + "MISCONFIGURED", + "PENDING", + } +} + +type StorageVirtualMachineRootVolumeSecurityStyle string + +// Enum values for StorageVirtualMachineRootVolumeSecurityStyle +const ( + StorageVirtualMachineRootVolumeSecurityStyleUnix StorageVirtualMachineRootVolumeSecurityStyle = "UNIX" + StorageVirtualMachineRootVolumeSecurityStyleNtfs StorageVirtualMachineRootVolumeSecurityStyle = "NTFS" + StorageVirtualMachineRootVolumeSecurityStyleMixed StorageVirtualMachineRootVolumeSecurityStyle = "MIXED" +) + +// Values returns all known values for +// StorageVirtualMachineRootVolumeSecurityStyle. Note that this can be expanded in +// the future, and so it is only as up to date as the client. The ordering of this +// slice is not guaranteed to be stable across updates. +func (StorageVirtualMachineRootVolumeSecurityStyle) Values() []StorageVirtualMachineRootVolumeSecurityStyle { + return []StorageVirtualMachineRootVolumeSecurityStyle{ + "UNIX", + "NTFS", + "MIXED", + } +} + +type StorageVirtualMachineSubtype string + +// Enum values for StorageVirtualMachineSubtype +const ( + StorageVirtualMachineSubtypeDefault StorageVirtualMachineSubtype = "DEFAULT" + StorageVirtualMachineSubtypeDpDestination StorageVirtualMachineSubtype = "DP_DESTINATION" + StorageVirtualMachineSubtypeSyncDestination StorageVirtualMachineSubtype = "SYNC_DESTINATION" + StorageVirtualMachineSubtypeSyncSource StorageVirtualMachineSubtype = "SYNC_SOURCE" +) + +// Values returns all known values for StorageVirtualMachineSubtype. Note that this +// can be expanded in the future, and so it is only as up to date as the client. +// The ordering of this slice is not guaranteed to be stable across updates. +func (StorageVirtualMachineSubtype) Values() []StorageVirtualMachineSubtype { + return []StorageVirtualMachineSubtype{ + "DEFAULT", + "DP_DESTINATION", + "SYNC_DESTINATION", + "SYNC_SOURCE", + } +} + +type TieringPolicyName string + +// Enum values for TieringPolicyName +const ( + TieringPolicyNameSnapshotOnly TieringPolicyName = "SNAPSHOT_ONLY" + TieringPolicyNameAuto TieringPolicyName = "AUTO" + TieringPolicyNameAll TieringPolicyName = "ALL" + TieringPolicyNameNone TieringPolicyName = "NONE" +) + +// Values returns all known values for TieringPolicyName. Note that this can be +// expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (TieringPolicyName) Values() []TieringPolicyName { + return []TieringPolicyName{ + "SNAPSHOT_ONLY", + "AUTO", + "ALL", + "NONE", + } +} + +type VolumeFilterName string + +// Enum values for VolumeFilterName +const ( + VolumeFilterNameFileSystemId VolumeFilterName = "file-system-id" + VolumeFilterNameStorageVirtualMachineId VolumeFilterName = "storage-virtual-machine-id" +) + +// Values returns all known values for VolumeFilterName. Note that this can be +// expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (VolumeFilterName) Values() []VolumeFilterName { + return []VolumeFilterName{ + "file-system-id", + "storage-virtual-machine-id", + } +} + +type VolumeLifecycle string + +// Enum values for VolumeLifecycle +const ( + VolumeLifecycleCreating VolumeLifecycle = "CREATING" + VolumeLifecycleCreated VolumeLifecycle = "CREATED" + VolumeLifecycleDeleting VolumeLifecycle = "DELETING" + VolumeLifecycleFailed VolumeLifecycle = "FAILED" + VolumeLifecycleMisconfigured VolumeLifecycle = "MISCONFIGURED" + VolumeLifecyclePending VolumeLifecycle = "PENDING" +) + +// Values returns all known values for VolumeLifecycle. Note that this can be +// expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (VolumeLifecycle) Values() []VolumeLifecycle { + return []VolumeLifecycle{ + "CREATING", + "CREATED", + "DELETING", + "FAILED", + "MISCONFIGURED", + "PENDING", + } +} + +type VolumeType string + +// Enum values for VolumeType +const ( + VolumeTypeOntap VolumeType = "ONTAP" +) + +// Values returns all known values for VolumeType. Note that this can be expanded +// in the future, and so it is only as up to date as the client. The ordering of +// this slice is not guaranteed to be stable across updates. +func (VolumeType) Values() []VolumeType { + return []VolumeType{ + "ONTAP", + } +} + type WindowsAccessAuditLogLevel string // Enum values for WindowsAccessAuditLogLevel diff --git a/service/fsx/types/errors.go b/service/fsx/types/errors.go index 70e3a1ea8c3..edbde0db13a 100644 --- a/service/fsx/types/errors.go +++ b/service/fsx/types/errors.go @@ -269,8 +269,7 @@ func (e *InternalServerError) ErrorMessage() string { func (e *InternalServerError) ErrorCode() string { return "InternalServerError" } func (e *InternalServerError) ErrorFault() smithy.ErrorFault { return smithy.FaultServer } -// The AWS Key Management Service (AWS KMS) key of the destination backup is -// invalid. +// The Key Management Service (KMS) key of the destination backup is invalid. type InvalidDestinationKmsKey struct { Message *string @@ -327,16 +326,13 @@ func (e *InvalidImportPath) ErrorMessage() string { func (e *InvalidImportPath) ErrorCode() string { return "InvalidImportPath" } func (e *InvalidImportPath) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// One or more network settings specified in the request are invalid. InvalidVpcId -// means that the ID passed for the virtual private cloud (VPC) is invalid. -// InvalidSubnetIds returns the list of IDs for subnets that are either invalid or -// not part of the VPC specified. InvalidSecurityGroupIds returns the list of IDs -// for security groups that are either invalid or not part of the VPC specified. +// One or more network settings specified in the request are invalid. type InvalidNetworkSettings struct { Message *string InvalidSubnetId *string InvalidSecurityGroupId *string + InvalidRouteTableId *string noSmithyDocumentSerde } @@ -375,8 +371,8 @@ func (e *InvalidPerUnitStorageThroughput) ErrorCode() string { } func (e *InvalidPerUnitStorageThroughput) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// The Region provided for Source Region is invalid or is in a different AWS -// partition. +// The Region provided for Source Region is invalid or is in a different Amazon Web +// Services partition. type InvalidRegion struct { Message *string @@ -395,7 +391,7 @@ func (e *InvalidRegion) ErrorMessage() string { func (e *InvalidRegion) ErrorCode() string { return "InvalidRegion" } func (e *InvalidRegion) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// The AWS Key Management Service (AWS KMS) key of the source backup is invalid. +// The Key Management Service (KMS) key of the source backup is invalid. type InvalidSourceKmsKey struct { Message *string @@ -433,6 +429,25 @@ func (e *MissingFileSystemConfiguration) ErrorMessage() string { func (e *MissingFileSystemConfiguration) ErrorCode() string { return "MissingFileSystemConfiguration" } func (e *MissingFileSystemConfiguration) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } +// A volume configuration is required for this operation. +type MissingVolumeConfiguration struct { + Message *string + + noSmithyDocumentSerde +} + +func (e *MissingVolumeConfiguration) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *MissingVolumeConfiguration) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *MissingVolumeConfiguration) ErrorCode() string { return "MissingVolumeConfiguration" } +func (e *MissingVolumeConfiguration) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } + // The resource specified for the tagging operation is not a resource type owned by // Amazon FSx. Use the API of the relevant service to perform the operation. type NotServiceResourceError struct { @@ -498,7 +513,7 @@ func (e *ResourceNotFound) ErrorCode() string { return "ResourceNotF func (e *ResourceNotFound) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } // An error indicating that a particular service limit was exceeded. You can -// increase some service limits by contacting AWS Support. +// increase some service limits by contacting Amazon Web Services Support. type ServiceLimitExceeded struct { Message *string @@ -541,6 +556,26 @@ func (e *SourceBackupUnavailable) ErrorMessage() string { func (e *SourceBackupUnavailable) ErrorCode() string { return "SourceBackupUnavailable" } func (e *SourceBackupUnavailable) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } +// No Amazon FSx for NetApp ONTAP SVMs were found based upon the supplied +// parameters. +type StorageVirtualMachineNotFound struct { + Message *string + + noSmithyDocumentSerde +} + +func (e *StorageVirtualMachineNotFound) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *StorageVirtualMachineNotFound) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *StorageVirtualMachineNotFound) ErrorCode() string { return "StorageVirtualMachineNotFound" } +func (e *StorageVirtualMachineNotFound) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } + // The requested operation is not supported for this resource or API. type UnsupportedOperation struct { Message *string @@ -559,3 +594,23 @@ func (e *UnsupportedOperation) ErrorMessage() string { } func (e *UnsupportedOperation) ErrorCode() string { return "UnsupportedOperation" } func (e *UnsupportedOperation) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } + +// No Amazon FSx for NetApp ONTAP volumes were found based upon the supplied +// parameters. +type VolumeNotFound struct { + Message *string + + noSmithyDocumentSerde +} + +func (e *VolumeNotFound) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *VolumeNotFound) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *VolumeNotFound) ErrorCode() string { return "VolumeNotFound" } +func (e *VolumeNotFound) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } diff --git a/service/fsx/types/types.go b/service/fsx/types/types.go index b34a694acc9..8dcbeea4077 100644 --- a/service/fsx/types/types.go +++ b/service/fsx/types/types.go @@ -11,19 +11,19 @@ import ( // system. type ActiveDirectoryBackupAttributes struct { - // The ID of the AWS Managed Microsoft Active Directory instance to which the file - // system is joined. + // The ID of the Amazon Web Services Managed Microsoft Active Directory instance to + // which the file system is joined. ActiveDirectoryId *string // The fully qualified domain name of the self-managed AD directory. DomainName *string - // The Amazon Resource Name (ARN) for a given resource. ARNs uniquely identify AWS - // resources. We require an ARN when you need to specify a resource unambiguously - // across all of AWS. For more information, see Amazon Resource Names (ARNs) and - // AWS Service Namespaces + // The Amazon Resource Name (ARN) for a given resource. ARNs uniquely identify + // Amazon Web Services resources. We require an ARN when you need to specify a + // resource unambiguously across all of Amazon Web Services. For more information, + // see Amazon Resource Names (ARNs) // (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in - // the AWS General Reference. + // the Amazon Web Services General Reference. ResourceARN *string noSmithyDocumentSerde @@ -110,6 +110,9 @@ type AdministrativeAction struct { // actions. TargetFileSystemValues *FileSystem + // Describes an Amazon FSx for NetApp ONTAP volume. + TargetVolumeValues *Volume + noSmithyDocumentSerde } @@ -145,8 +148,8 @@ type Alias struct { // is disassociating the DNS alias from the file system and deleting it. // // * - // DELETE_FAILED - Amazon FSx was unable to disassocate the DNS alias from the file - // system. + // DELETE_FAILED - Amazon FSx was unable to disassociate the DNS alias from the + // file system. Lifecycle AliasLifecycle // The name of the DNS alias. The alias name has to meet the following @@ -172,7 +175,8 @@ type Alias struct { noSmithyDocumentSerde } -// A backup of an Amazon FSx file system. +// A backup of an Amazon FSx for Windows File Server or Amazon FSx for Lustre file +// system, or of an Amazon FSx for NetApp ONTAP volume. type Backup struct { // The ID of the backup. @@ -228,12 +232,12 @@ type Backup struct { // Details explaining any failures that occur when creating a backup. FailureDetails *BackupFailureDetails - // The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the - // backup of the Amazon FSx file system's data at rest. + // The ID of the Key Management Service (KMS) key used to encrypt the backup of the + // Amazon FSx file system's data at rest. KmsKeyId *string - // An AWS account ID. This ID is a 12-digit number that you use to construct Amazon - // Resource Names (ARNs) for resources. + // An Amazon Web Services account ID. This ID is a 12-digit number that you use to + // construct Amazon Resource Names (ARNs) for resources. OwnerId *string // The current percent of progress of an asynchronous task. @@ -242,6 +246,9 @@ type Backup struct { // The Amazon Resource Name (ARN) for the backup resource. ResourceARN *string + // Specifies the resource type that is backed up. + ResourceType ResourceType + // The ID of the source backup. Specifies the backup you are copying. SourceBackupId *string @@ -252,6 +259,9 @@ type Backup struct { // Tags associated with a particular file system. Tags []Tag + // Describes an Amazon FSx for NetApp ONTAP volume. + Volume *Volume + noSmithyDocumentSerde } @@ -378,8 +388,8 @@ type CreateFileSystemLustreConfiguration struct { // this feature (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/data- // protection.html). (Default = SCRATCH_1) Encryption of data in-transit for // SCRATCH_2 and PERSISTENT_1 deployment types is supported when accessed from - // supported instance types in supported AWS Regions. To learn more, Encrypting - // Data in Transit + // supported instance types in supported Amazon Web Services Regions. To learn + // more, Encrypting Data in Transit // (https://docs.aws.amazon.com/fsx/latest/LustreGuide/encryption-in-transit-fsxl.html). DeploymentType LustreDeploymentType @@ -440,6 +450,66 @@ type CreateFileSystemLustreConfiguration struct { noSmithyDocumentSerde } +// The ONTAP configuration properties of the FSx for NetApp ONTAP file system that +// you are creating. +type CreateFileSystemOntapConfiguration struct { + + // Specifies the ONTAP file system deployment type to use in creating the file + // system. + // + // This member is required. + DeploymentType OntapDeploymentType + + // Sustained throughput of an Amazon FSx file system in MBps. + // + // This member is required. + ThroughputCapacity *int32 + + // The number of days to retain automatic backups. Setting this to 0 disables + // automatic backups. You can retain automatic backups for a maximum of 90 days. + // The default is 0. + AutomaticBackupRetentionDays *int32 + + // A recurring daily time, in the format HH:MM. HH is the zero-padded hour of the + // day (0-23), and MM is the zero-padded minute of the hour. For example, 05:00 + // specifies 5 AM daily. + DailyAutomaticBackupStartTime *string + + // The SSD IOPS configuration for the Amazon FSx for NetApp ONTAP file system. + DiskIopsConfiguration *DiskIopsConfiguration + + // Specifies the IP address range in which the endpoints to access your file system + // will be created. By default, Amazon FSx selects an unused IP address range for + // you from the 198.19.* range. + EndpointIpAddressRange *string + + // The ONTAP administrative password for the fsxadmin user that you can use to + // administer your file system using the ONTAP CLI and REST API. + FsxAdminPassword *string + + // The ID for a subnet. A subnet is a range of IP addresses in your virtual private + // cloud (VPC). For more information, see VPC and Subnets + // (https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Subnets.html) in the + // Amazon VPC User Guide. + PreferredSubnetId *string + + // Specifies the VPC route tables in which your file system's endpoints will be + // created. You should specify all VPC route tables associated with the subnets in + // which your clients are located. By default, Amazon FSx selects your VPC's + // default route table. + RouteTableIds []string + + // A recurring weekly time, in the format D:HH:MM. D is the day of the week, for + // which 1 represents Monday and 7 represents Sunday. For further details, see the + // ISO-8601 spec as described on Wikipedia + // (https://en.wikipedia.org/wiki/ISO_week_date). HH is the zero-padded hour of the + // day (0-23), and MM is the zero-padded minute of the hour. For example, 1:05:00 + // specifies maintenance at 5 AM Monday. + WeeklyMaintenanceStartTime *string + + noSmithyDocumentSerde +} + // The configuration object for the Microsoft Windows file system used in // CreateFileSystem and CreateFileSystemFromBackup operations. type CreateFileSystemWindowsConfiguration struct { @@ -450,8 +520,8 @@ type CreateFileSystemWindowsConfiguration struct { // This member is required. ThroughputCapacity *int32 - // The ID for an existing AWS Managed Microsoft Active Directory (AD) instance that - // the file system should join when it's created. + // The ID for an existing Amazon Web Services Managed Microsoft Active Directory + // (AD) instance that the file system should join when it's created. ActiveDirectoryId *string // An array of one or more DNS alias names that you want to associate with the @@ -513,34 +583,37 @@ type CreateFileSystemWindowsConfiguration struct { // * // MULTI_AZ_1 - Deploys a high availability file system that is configured for // Multi-AZ redundancy to tolerate temporary Availability Zone (AZ) unavailability. - // You can only deploy a Multi-AZ file system in AWS Regions that have a minimum of - // three Availability Zones. Also supports HDD storage type + // You can only deploy a Multi-AZ file system in Amazon Web Services Regions that + // have a minimum of three Availability Zones. Also supports HDD storage type // - // * SINGLE_AZ_1 - - // (Default) Choose to deploy a file system that is configured for single AZ - // redundancy. + // * + // SINGLE_AZ_1 - (Default) Choose to deploy a file system that is configured for + // single AZ redundancy. // - // * SINGLE_AZ_2 - The latest generation Single AZ file system. - // Specifies a file system that is configured for single AZ redundancy and supports - // HDD storage type. + // * SINGLE_AZ_2 - The latest generation Single AZ file + // system. Specifies a file system that is configured for single AZ redundancy and + // supports HDD storage type. // - // For more information, see Availability and Durability: - // Single-AZ and Multi-AZ File Systems + // For more information, see Availability and + // Durability: Single-AZ and Multi-AZ File Systems // (https://docs.aws.amazon.com/fsx/latest/WindowsGuide/high-availability-multiAZ.html). DeploymentType WindowsDeploymentType // Required when DeploymentType is set to MULTI_AZ_1. This specifies the subnet in - // which you want the preferred file server to be located. For in-AWS applications, - // we recommend that you launch your clients in the same Availability Zone (AZ) as - // your preferred file server to reduce cross-AZ data transfer costs and minimize - // latency. + // which you want the preferred file server to be located. For in-Amazon Web + // Services applications, we recommend that you launch your clients in the same + // Availability Zone (AZ) as your preferred file server to reduce cross-AZ data + // transfer costs and minimize latency. PreferredSubnetId *string - // The configuration that Amazon FSx uses to join the Windows File Server instance - // to your self-managed (including on-premises) Microsoft Active Directory (AD) - // directory. For more information, see Using Amazon FSx with your self-managed - // Microsoft Active Directory - // (https://docs.aws.amazon.com/fsx/latest/WindowsGuide/self-managed-AD.html). + // The configuration that Amazon FSx uses to join a Amazon FSx for Windows File + // Server file system or an ONTAP storage virtual machine (SVM) to a self-managed + // (including on-premises) Microsoft Active Directory (AD) directory. For more + // information, see Using Amazon FSx with your self-managed Microsoft Active + // Directory + // (https://docs.aws.amazon.com/fsx/latest/WindowsGuide/self-managed-AD.html) or + // Managing SVMs + // (https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-svms.html). SelfManagedActiveDirectoryConfiguration *SelfManagedActiveDirectoryConfiguration // The preferred start time to perform weekly maintenance, formatted d:HH:MM in the @@ -551,6 +624,80 @@ type CreateFileSystemWindowsConfiguration struct { noSmithyDocumentSerde } +// Specifies the configuration of the ONTAP volume that you are creating. +type CreateOntapVolumeConfiguration struct { + + // Specifies the location in the SVM's namespace where the volume is mounted. The + // JunctionPath must have a leading forward slash, such as /vol3. + // + // This member is required. + JunctionPath *string + + // Specifies the size of the volume, in megabytes (MB), that you are creating. + // + // This member is required. + SizeInMegabytes *int32 + + // Set to true to enable deduplication, compression, and compaction storage + // efficiency features on the volume. + // + // This member is required. + StorageEfficiencyEnabled *bool + + // Specifies the ONTAP SVM in which to create the volume. + // + // This member is required. + StorageVirtualMachineId *string + + // The security style for the volume. Specify one of the following values: + // + // * UNIX + // if the file system is managed by a UNIX administrator, the majority of users are + // NFS clients, and an application accessing the data uses a UNIX user as the + // service account. UNIX is the default. + // + // * NTFS if the file system is managed by a + // Windows administrator, the majority of users are SMB clients, and an application + // accessing the data uses a Windows user as the service account. + // + // * MIXED if the + // file system is managed by both UNIX and Windows administrators and users consist + // of both NFS and SMB clients. + SecurityStyle SecurityStyle + + // Describes the data tiering policy for an ONTAP volume. When enabled, Amazon FSx + // for ONTAP's intelligent tiering automatically transitions a volume's data + // between the file system's primary storage and capacity pool storage based on + // your access patterns. + TieringPolicy *TieringPolicy + + noSmithyDocumentSerde +} + +// The configuration that Amazon FSx uses to join the ONTAP storage virtual machine +// (SVM) to your self-managed (including on-premises) Microsoft Active Directory +// (AD) directory. +type CreateSvmActiveDirectoryConfiguration struct { + + // The NetBIOS name of the Active Directory computer object that will be created + // for your SVM. + // + // This member is required. + NetBiosName *string + + // The configuration that Amazon FSx uses to join a Amazon FSx for Windows File + // Server file system or an ONTAP storage virtual machine (SVM) to a self-managed + // (including on-premises) Microsoft Active Directory (AD) directory. For more + // information, see Using Amazon FSx with your self-managed Microsoft Active + // Directory + // (https://docs.aws.amazon.com/fsx/latest/WindowsGuide/self-managed-AD.html) or + // Managing SVMs + // (https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-svms.html). + SelfManagedActiveDirectoryConfiguration *SelfManagedActiveDirectoryConfiguration + + noSmithyDocumentSerde +} + // The data repository configuration object for Lustre file systems returned in the // response of the CreateFileSystem operation. type DataRepositoryConfiguration struct { @@ -716,12 +863,12 @@ type DataRepositoryTask struct { // or not a report gets generated for a task using the Enabled parameter. Report *CompletionReport - // The Amazon Resource Name (ARN) for a given resource. ARNs uniquely identify AWS - // resources. We require an ARN when you need to specify a resource unambiguously - // across all of AWS. For more information, see Amazon Resource Names (ARNs) and - // AWS Service Namespaces + // The Amazon Resource Name (ARN) for a given resource. ARNs uniquely identify + // Amazon Web Services resources. We require an ARN when you need to specify a + // resource unambiguously across all of Amazon Web Services. For more information, + // see Amazon Resource Names (ARNs) // (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in - // the AWS General Reference. + // the Amazon Web Services General Reference. ResourceARN *string // The time that Amazon FSx began processing the task. @@ -854,12 +1001,55 @@ type DeleteFileSystemWindowsResponse struct { noSmithyDocumentSerde } +// Use to specify skipping a final backup, or to add tags to a final backup. +type DeleteVolumeOntapConfiguration struct { + + // A list of Tag values, with a maximum of 50 elements. + FinalBackupTags []Tag + + // Set to true if you want to skip taking a final backup of the volume you are + // deleting. + SkipFinalBackup *bool + + noSmithyDocumentSerde +} + +// The response object for the Amazon FSx for NetApp ONTAP volume being deleted in +// the DeleteVolume operation. +type DeleteVolumeOntapResponse struct { + + // The ID of the source backup. Specifies the backup you are copying. + FinalBackupId *string + + // A list of Tag values, with a maximum of 50 elements. + FinalBackupTags []Tag + + noSmithyDocumentSerde +} + +// The SSD IOPS (input/output operations per second) configuration for an Amazon +// FSx for NetApp ONTAP file system. The default is 3 IOPS per GB of storage +// capacity, but you can provision additional IOPS per GB of storage. The +// configuration consists of the total number of provisioned SSD IOPS and how the +// amount was provisioned (by the customer or by the system). +type DiskIopsConfiguration struct { + + // The total number of SSD IOPS provisioned for the file system. + Iops *int64 + + // Specifies whether the number of IOPS for the file system is using the system + // default (AUTOMATIC) or was provisioned by the customer (USER_PROVISIONED). + Mode DiskIopsConfigurationMode + + noSmithyDocumentSerde +} + // A description of a specific Amazon FSx file system. type FileSystem struct { // A list of administrative actions for the file system that are in process or - // waiting to be processed. Administrative actions describe changes to the Windows - // file system that you have initiated using the UpdateFileSystem action. + // waiting to be processed. Administrative actions describe changes to the Amazon + // FSx file system that you have initiated using the UpdateFileSystem action. AdministrativeActions []AdministrativeAction // The time that the file system was created, in seconds (since @@ -876,17 +1066,17 @@ type FileSystem struct { // The system-generated, unique 17-digit ID of the file system. FileSystemId *string - // The type of Amazon FSx file system, either LUSTRE or WINDOWS. + // The type of Amazon FSx file system, which can be LUSTRE, WINDOWS, or ONTAP. FileSystemType FileSystemType - // The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the file - // system's data for Amazon FSx for Windows File Server file systems and persistent - // Amazon FSx for Lustre file systems at rest. In either case, if not specified, - // the Amazon FSx managed key is used. The scratch Amazon FSx for Lustre file - // systems are always encrypted at rest using Amazon FSx managed keys. For more - // information, see Encrypt + // The ID of the Key Management Service (KMS) key used to encrypt the file system's + // data for Amazon FSx for Windows File Server file systems, Amazon FSx for NetApp + // ONTAP file systems, and persistent Amazon FSx for Lustre file systems at rest. + // If not specified, the Amazon FSx managed key is used. The scratch Amazon FSx for + // Lustre file systems are always encrypted at rest using Amazon FSx managed keys. + // For more information, see Encrypt // (https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html) in the - // AWS Key Management Service API Reference. + // Key Management Service API Reference. KmsKeyId *string // The lifecycle status of the file system, following are the possible values and @@ -925,9 +1115,12 @@ type FileSystem struct { // you can have more than one. NetworkInterfaceIds []string - // The AWS account that created the file system. If the file system was created by - // an AWS Identity and Access Management (IAM) user, the AWS account to which the - // IAM user belongs is the owner. + // The configuration for this FSx for NetApp ONTAP file system. + OntapConfiguration *OntapFileSystemConfiguration + + // The Amazon Web Services account that created the file system. If the file system + // was created by an Identity and Access Management (IAM) user, the Amazon Web + // Services account to which the IAM user belongs is the owner. OwnerId *string // The Amazon Resource Name (ARN) for the file system resource. @@ -942,13 +1135,13 @@ type FileSystem struct { StorageType StorageType // Specifies the IDs of the subnets that the file system is accessible from. For - // Windows MULTI_AZ_1 file system deployment type, there are two subnet IDs, one - // for the preferred file server and one for the standby file server. The preferred - // file server subnet identified in the PreferredSubnetID property. All other file - // systems have only one subnet ID. For Lustre file systems, and Single-AZ Windows - // file systems, this is the ID of the subnet that contains the endpoint for the - // file system. For MULTI_AZ_1 Windows file systems, the endpoint for the file - // system is available in the PreferredSubnetID. + // Windows and ONTAP MULTI_AZ_1 file system deployment type, there are two subnet + // IDs, one for the preferred file server and one for the standby file server. The + // preferred file server subnet identified in the PreferredSubnetID property. All + // other file systems have only one subnet ID. For Lustre file systems, and + // Single-AZ Windows file systems, this is the ID of the subnet that contains the + // endpoint for the file system. For MULTI_AZ_1 Windows and ONTAP file systems, the + // endpoint for the file system is available in the PreferredSubnetID. SubnetIds []string // The tags to associate with the file system. For more information, see Tagging @@ -966,6 +1159,37 @@ type FileSystem struct { noSmithyDocumentSerde } +// An Amazon FSx for NetApp ONTAP file system has two endpoints that are used to +// access data or to manage the file system using the NetApp ONTAP CLI, REST API, +// or NetApp SnapMirror. They are the Management and Intercluster endpoints. +type FileSystemEndpoint struct { + + // The Domain Name Service (DNS) name for the file system. You can mount your file + // system using its DNS name. + DNSName *string + + // IP addresses of the file system endpoint. + IpAddresses []string + + noSmithyDocumentSerde +} + +// An Amazon FSx for NetApp ONTAP file system has the following endpoints that are +// used to access data or to manage the file system using the NetApp ONTAP CLI, +// REST API, or NetApp SnapMirror. +type FileSystemEndpoints struct { + + // An endpoint for managing your file system by setting up NetApp SnapMirror with + // other ONTAP systems. + Intercluster *FileSystemEndpoint + + // An endpoint for managing your file system using the NetApp ONTAP CLI and NetApp + // ONTAP API. + Management *FileSystemEndpoint + + noSmithyDocumentSerde +} + // A structure providing details of any failures that occur when creating the file // system has failed. type FileSystemFailureDetails struct { @@ -990,6 +1214,15 @@ type Filter struct { noSmithyDocumentSerde } +// Describes why a resource lifecycle state changed. +type LifecycleTransitionReason struct { + + // A detailed error message. + Message *string + + noSmithyDocumentSerde +} + // The configuration for the Amazon FSx for Lustre file system. type LustreFileSystemConfiguration struct { @@ -1050,7 +1283,8 @@ type LustreFileSystemConfiguration struct { // You use the MountName value when mounting the file system. For the SCRATCH_1 // deployment type, this value is always "fsx". For SCRATCH_2 and PERSISTENT_1 - // deployment types, this value is a string that is unique within an AWS Region. + // deployment types, this value is a string that is unique within an Amazon Web + // Services Region. MountName *string // Per unit storage throughput represents the megabytes per second of read or write @@ -1068,8 +1302,128 @@ type LustreFileSystemConfiguration struct { noSmithyDocumentSerde } +// Configuration for the FSx for NetApp ONTAP file system. +type OntapFileSystemConfiguration struct { + + // The number of days to retain automatic backups. Setting this to 0 disables + // automatic backups. You can retain automatic backups for a maximum of 90 days. + // The default is 0. + AutomaticBackupRetentionDays *int32 + + // A recurring daily time, in the format HH:MM. HH is the zero-padded hour of the + // day (0-23), and MM is the zero-padded minute of the hour. For example, 05:00 + // specifies 5 AM daily. + DailyAutomaticBackupStartTime *string + + // The ONTAP file system deployment type. + DeploymentType OntapDeploymentType + + // The SSD IOPS configuration for the ONTAP file system, specifying the number of + // provisioned IOPS and the provision mode. + DiskIopsConfiguration *DiskIopsConfiguration + + // The IP address range in which the endpoints to access your file system are + // created. + EndpointIpAddressRange *string + + // The Management and Intercluster endpoints that are used to access data or to + // manage the file system using the NetApp ONTAP CLI, REST API, or NetApp + // SnapMirror. + Endpoints *FileSystemEndpoints + + // The ID for a subnet. A subnet is a range of IP addresses in your virtual private + // cloud (VPC). For more information, see VPC and Subnets + // (https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Subnets.html) in the + // Amazon VPC User Guide. + PreferredSubnetId *string + + // The VPC route tables in which your file system's endpoints are created. + RouteTableIds []string + + // Sustained throughput of an Amazon FSx file system in MBps. + ThroughputCapacity *int32 + + // A recurring weekly time, in the format D:HH:MM. D is the day of the week, for + // which 1 represents Monday and 7 represents Sunday. For further details, see the + // ISO-8601 spec as described on Wikipedia + // (https://en.wikipedia.org/wiki/ISO_week_date). HH is the zero-padded hour of the + // day (0-23), and MM is the zero-padded minute of the hour. For example, 1:05:00 + // specifies maintenance at 5 AM Monday. + WeeklyMaintenanceStartTime *string + + noSmithyDocumentSerde +} + +// The configuration of an Amazon FSx for NetApp ONTAP volume +type OntapVolumeConfiguration struct { + + // Specifies the FlexCache endpoint type of the volume. Valid values are the + // following: + // + // * NONE specifies that the volume doesn't have a FlexCache + // configuration. NONE is the default. + // + // * ORIGIN specifies that the volume is the + // origin volume for a FlexCache volume. + // + // * CACHE specifies that the volume is a + // FlexCache volume. + FlexCacheEndpointType FlexCacheEndpointType + + // Specifies the directory that NAS clients use to mount the volume, along with the + // SVM DNS name or IP address. You can create a JunctionPath directly below a + // parent volume junction or on a directory within a volume. A JunctionPath for a + // volume named vol3 might be /vol1/vol2/vol3, or /vol1/dir2/vol3, or even + // /dir1/dir2/vol3.. + JunctionPath *string + + // Specifies the type of volume. Valid values are the following: + // + // * RW specifies a + // read-write volume. RW is the default. + // + // * DP specifies a data protection volume. + // You can protect data by replicating it to data protection mirror copies and use + // data protection mirror copies to recover data when a disaster occurs. + // + // * LS + // specifies a load-sharing mirror volume. A load-sharing mirror reduces the + // network traffic to a FlexVol volume by providing additional read-only access to + // clients. + OntapVolumeType OntapVolumeType + + // The security style for the volume, which can be UNIX, NTFS, or MIXED. + SecurityStyle SecurityStyle + + // The configured size of the volume, in megabytes (MBs). + SizeInMegabytes *int32 + + // The volume's storage efficiency setting. + StorageEfficiencyEnabled *bool + + // The ID of the volume's storage virtual machine. + StorageVirtualMachineId *string + + // A boolean flag indicating whether this volume is the root volume for its storage + // virtual machine (SVM). Only one volume on an SVM can be the root volume. This + // value defaults to false. If this value is true, then this is the SVM root + // volume. This flag is useful when you're deleting an SVM, because you must first + // delete all non-root volumes. This flag, when set to false, helps you identify + // which volumes to delete before you can delete the SVM. + StorageVirtualMachineRoot *bool + + // The volume's TieringPolicy setting. + TieringPolicy *TieringPolicy + + // The volume's UUID (universally unique identifier). + UUID *string + + noSmithyDocumentSerde +} + // The configuration of the self-managed Microsoft Active Directory (AD) directory -// to which the Windows File Server instance is joined. +// to which the Windows File Server or ONTAP storage virtual machine (SVM) instance +// is joined. type SelfManagedActiveDirectoryAttributes struct { // A list of up to two IP addresses of DNS servers or domain controllers in the @@ -1084,7 +1438,8 @@ type SelfManagedActiveDirectoryAttributes struct { FileSystemAdministratorsGroup *string // The fully qualified distinguished name of the organizational unit within the - // self-managed AD directory to which the Windows File Server instance is joined. + // self-managed AD directory to which the Windows File Server or ONTAP storage + // virtual machine (SVM) instance is joined. OrganizationalUnitDistinguishedName *string // The user name for the service account on your self-managed AD domain that FSx @@ -1094,11 +1449,14 @@ type SelfManagedActiveDirectoryAttributes struct { noSmithyDocumentSerde } -// The configuration that Amazon FSx uses to join the Windows File Server instance -// to your self-managed (including on-premises) Microsoft Active Directory (AD) -// directory. For more information, see Using Amazon FSx with your self-managed -// Microsoft Active Directory -// (https://docs.aws.amazon.com/fsx/latest/WindowsGuide/self-managed-AD.html). +// The configuration that Amazon FSx uses to join a Amazon FSx for Windows File +// Server file system or an ONTAP storage virtual machine (SVM) to a self-managed +// (including on-premises) Microsoft Active Directory (AD) directory. For more +// information, see Using Amazon FSx with your self-managed Microsoft Active +// Directory +// (https://docs.aws.amazon.com/fsx/latest/WindowsGuide/self-managed-AD.html) or +// Managing SVMs +// (https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-svms.html). type SelfManagedActiveDirectoryConfiguration struct { // A list of up to two IP addresses of DNS servers or domain controllers in the @@ -1137,13 +1495,12 @@ type SelfManagedActiveDirectoryConfiguration struct { FileSystemAdministratorsGroup *string // (Optional) The fully qualified distinguished name of the organizational unit - // within your self-managed AD directory that the Windows File Server instance will - // join. Amazon FSx only accepts OU as the direct parent of the file system. An - // example is OU=FSx,DC=yourdomain,DC=corp,DC=com. To learn more, see RFC 2253 - // (https://tools.ietf.org/html/rfc2253). If none is provided, the FSx file system - // is created in the default location of your self-managed AD directory. Only - // Organizational Unit (OU) objects can be the direct parent of the file system - // that you're creating. + // within your self-managed AD directory. Amazon FSx only accepts OU as the direct + // parent of the file system. An example is OU=FSx,DC=yourdomain,DC=corp,DC=com. To + // learn more, see RFC 2253 (https://tools.ietf.org/html/rfc2253). If none is + // provided, the FSx file system is created in the default location of your + // self-managed AD directory. Only Organizational Unit (OU) objects can be the + // direct parent of the file system that you're creating. OrganizationalUnitDistinguishedName *string noSmithyDocumentSerde @@ -1170,6 +1527,147 @@ type SelfManagedActiveDirectoryConfigurationUpdates struct { noSmithyDocumentSerde } +// Describes the Amazon FSx for NetApp ONTAP storage virtual machine (SVM) +// configuraton. +type StorageVirtualMachine struct { + + // Describes the Microsoft Active Directory configuration to which the SVM is + // joined, if applicable. + ActiveDirectoryConfiguration *SvmActiveDirectoryConfiguration + + // The time that the resource was created, in seconds (since 1970-01-01T00:00:00Z), + // also known as Unix time. + CreationTime *time.Time + + // The endpoints that are used to access data or to manage the SVM using the NetApp + // ONTAP CLI, REST API, or NetApp CloudManager. They are the Iscsi, Management, + // Nfs, and Smb endpoints. + Endpoints *SvmEndpoints + + // The globally unique ID of the file system, assigned by Amazon FSx. + FileSystemId *string + + // Describes the SVM's lifecycle status. + // + // * CREATED - The SVM is fully available + // for use. + // + // * CREATING - Amazon FSx is creating the new SVM. + // + // * DELETING - Amazon + // FSx is deleting an existing SVM. + // + // * FAILED - Amazon FSx was unable to create the + // SVM. + // + // * MISCONFIGURED - The SVM is in a failed but recoverable state. + // + // * PENDING + // - Amazon FSx has not started creating the SVM. + Lifecycle StorageVirtualMachineLifecycle + + // Describes why the SVM lifecycle state changed. + LifecycleTransitionReason *LifecycleTransitionReason + + // The name of the SVM, if provisioned. + Name *string + + // The Amazon Resource Name (ARN) for a given resource. ARNs uniquely identify + // Amazon Web Services resources. We require an ARN when you need to specify a + // resource unambiguously across all of Amazon Web Services. For more information, + // see Amazon Resource Names (ARNs) + // (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in + // the Amazon Web Services General Reference. + ResourceARN *string + + // The security style of the root volume of the SVM. + RootVolumeSecurityStyle StorageVirtualMachineRootVolumeSecurityStyle + + // The SVM's system generated unique ID. + StorageVirtualMachineId *string + + // Describes the SVM's subtype. + Subtype StorageVirtualMachineSubtype + + // A list of Tag values, with a maximum of 50 elements. + Tags []Tag + + // The SVM's UUID (universally unique identifier). + UUID *string + + noSmithyDocumentSerde +} + +// A filter used to restrict the results of describe calls for Amazon FSx for +// NetApp ONTAP storage virtual machines (SVMs). You can use multiple filters to +// return results that meet all applied filter requirements. +type StorageVirtualMachineFilter struct { + + // The name for this filter. + Name StorageVirtualMachineFilterName + + // The values of the filter. These are all the values for any of the applied + // filters. + Values []string + + noSmithyDocumentSerde +} + +// Describes the configuration of the Microsoft Active Directory (AD) directory to +// which the Amazon FSx for ONTAP storage virtual machine (SVM) is joined. Pleae +// note, account credentials are not returned in the response payload. +type SvmActiveDirectoryConfiguration struct { + + // The NetBIOS name of the Active Directory computer object that is joined to your + // SVM. + NetBiosName *string + + // The configuration of the self-managed Microsoft Active Directory (AD) directory + // to which the Windows File Server or ONTAP storage virtual machine (SVM) instance + // is joined. + SelfManagedActiveDirectoryConfiguration *SelfManagedActiveDirectoryAttributes + + noSmithyDocumentSerde +} + +// An Amazon FSx for NetApp ONTAP storage virtual machine (SVM) has four endpoints +// that are used to access data or to manage the SVM using the NetApp ONTAP CLI, +// REST API, or NetApp CloudManager. They are the Iscsi, Management, Nfs, and Smb +// endpoints. +type SvmEndpoint struct { + + // The Domain Name Service (DNS) name for the file system. You can mount your file + // system using its DNS name. + DNSName *string + + // The SVM endpoint's IP addresses. + IpAddresses []string + + noSmithyDocumentSerde +} + +// An Amazon FSx for NetApp ONTAP storage virtual machine (SVM) has the following +// endpoints that are used to access data or to manage the SVM using the NetApp +// ONTAP CLI, REST API, or NetApp CloudManager. +type SvmEndpoints struct { + + // An endpoint for connecting using the Internet Small Computer Systems Interface + // (iSCSI) protocol. + Iscsi *SvmEndpoint + + // An endpoint for managing SVMs using the NetApp ONTAP CLI, NetApp ONTAP API, or + // NetApp CloudManager. + Management *SvmEndpoint + + // An endpoint for connecting using the Network File System (NFS) protocol. + Nfs *SvmEndpoint + + // An endpoint for connecting using the Server Message Block (SMB) protocol. + Smb *SvmEndpoint + + noSmithyDocumentSerde +} + // Specifies a key-value pair for a resource tag. type Tag struct { @@ -1190,6 +1688,38 @@ type Tag struct { noSmithyDocumentSerde } +// Describes the data tiering policy for an ONTAP volume. When enabled, Amazon FSx +// for ONTAP's intelligent tiering automatically transitions a volume's data +// between the file system's primary storage and capacity pool storage based on +// your access patterns. +type TieringPolicy struct { + + // Specifies the number of days that user data in a volume must remain inactive + // before it is considered "cold" and moved to the capacity pool. Used with the + // AUTO and SNAPSHOT_ONLY tiering policies. Enter a whole number between 2 and 183. + // Default values are 31 days for AUTO and 2 days for SNAPSHOT_ONLY. + CoolingPeriod *int32 + + // Specifies the tiering policy used to transition data. Default value is + // SNAPSHOT_ONLY. + // + // * SNAPSHOT_ONLY - moves cold snapshots to the capacity pool + // storage tier. + // + // * AUTO - moves cold user data and snapshots to the capacity pool + // storage tier based on your access patterns. + // + // * ALL - moves all user data blocks + // in both the active file system and Snapshot copies to the storage pool tier. + // + // * + // NONE - keeps a volume's data in the primary storage tier, preventing it from + // being moved to the capacity pool tier. + Name TieringPolicyName + + noSmithyDocumentSerde +} + // The configuration object for Amazon FSx for Lustre file systems used in the // UpdateFileSystem operation. type UpdateFileSystemLustreConfiguration struct { @@ -1251,6 +1781,33 @@ type UpdateFileSystemLustreConfiguration struct { noSmithyDocumentSerde } +// The configuration updates for an Amazon FSx for NetApp ONTAP file system. +type UpdateFileSystemOntapConfiguration struct { + + // The number of days to retain automatic backups. Setting this to 0 disables + // automatic backups. You can retain automatic backups for a maximum of 90 days. + // The default is 0. + AutomaticBackupRetentionDays *int32 + + // A recurring daily time, in the format HH:MM. HH is the zero-padded hour of the + // day (0-23), and MM is the zero-padded minute of the hour. For example, 05:00 + // specifies 5 AM daily. + DailyAutomaticBackupStartTime *string + + // The ONTAP administrative password for the fsxadmin user. + FsxAdminPassword *string + + // A recurring weekly time, in the format D:HH:MM. D is the day of the week, for + // which 1 represents Monday and 7 represents Sunday. For further details, see the + // ISO-8601 spec as described on Wikipedia + // (https://en.wikipedia.org/wiki/ISO_week_date). HH is the zero-padded hour of the + // day (0-23), and MM is the zero-padded minute of the hour. For example, 1:05:00 + // specifies maintenance at 5 AM Monday. + WeeklyMaintenanceStartTime *string + + noSmithyDocumentSerde +} + // Updates the configuration for an existing Amazon FSx for Windows File Server // file system. Amazon FSx only overwrites existing properties with non-null values // provided in the request. @@ -1294,6 +1851,114 @@ type UpdateFileSystemWindowsConfiguration struct { noSmithyDocumentSerde } +// Used to specify changes to the ONTAP configuration for the volume you are +// updating. +type UpdateOntapVolumeConfiguration struct { + + // Specifies the location in the SVM's namespace where the volume is mounted. The + // JunctionPath must have a leading forward slash, such as /vol3. + JunctionPath *string + + // The security style for the volume, which can be UNIX. NTFS, or MIXED. + SecurityStyle SecurityStyle + + // Specifies the size of the volume in megabytes. + SizeInMegabytes *int32 + + // Default is false. Set to true to enable the deduplication, compression, and + // compaction storage efficiency features on the volume. + StorageEfficiencyEnabled *bool + + // Update the volume's data tiering policy. + TieringPolicy *TieringPolicy + + noSmithyDocumentSerde +} + +// Updates the Microsoft Active Directory (AD) configuration of an SVM joined to an +// AD. Pleae note, account credentials are not returned in the response payload. +type UpdateSvmActiveDirectoryConfiguration struct { + + // The configuration that Amazon FSx uses to join the Windows File Server instance + // to a self-managed Microsoft Active Directory (AD) directory. + SelfManagedActiveDirectoryConfiguration *SelfManagedActiveDirectoryConfigurationUpdates + + noSmithyDocumentSerde +} + +// Describes an Amazon FSx for NetApp ONTAP volume. +type Volume struct { + + // The time that the resource was created, in seconds (since 1970-01-01T00:00:00Z), + // also known as Unix time. + CreationTime *time.Time + + // The globally unique ID of the file system, assigned by Amazon FSx. + FileSystemId *string + + // The lifecycle status of the volume. + // + // * CREATED - The volume is fully available + // for use. + // + // * CREATING - Amazon FSx is creating the new volume. + // + // * DELETING - + // Amazon FSx is deleting an existing volume. + // + // * FAILED - Amazon FSx was unable to + // create the volume. + // + // * MISCONFIGURED - The volume is in a failed but recoverable + // state. + // + // * PENDING - Amazon FSx has not started creating the volume. + Lifecycle VolumeLifecycle + + // Describes why the volume lifecycle state changed. + LifecycleTransitionReason *LifecycleTransitionReason + + // The name of the volume. + Name *string + + // The configuration of an Amazon FSx for NetApp ONTAP volume + OntapConfiguration *OntapVolumeConfiguration + + // The Amazon Resource Name (ARN) for a given resource. ARNs uniquely identify + // Amazon Web Services resources. We require an ARN when you need to specify a + // resource unambiguously across all of Amazon Web Services. For more information, + // see Amazon Resource Names (ARNs) + // (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in + // the Amazon Web Services General Reference. + ResourceARN *string + + // A list of Tag values, with a maximum of 50 elements. + Tags []Tag + + // The system-generated, unique ID of the volume. + VolumeId *string + + // The type of volume; ONTAP is the only valid volume type. + VolumeType VolumeType + + noSmithyDocumentSerde +} + +// A filter used to restrict the results of describe calls for Amazon FSx for +// NetApp ONTAP volumes. You can use multiple filters to return results that meet +// all applied filter requirements. +type VolumeFilter struct { + + // The name for this filter. + Name VolumeFilterName + + // The values of the filter. These are all the values for any of the applied + // filters. + Values []string + + noSmithyDocumentSerde +} + // The configuration that Amazon FSx for Windows File Server uses to audit and log // user accesses of files, folders, and file shares on the Amazon FSx for Windows // File Server file system. For more information, see File access auditing @@ -1342,8 +2007,8 @@ type WindowsAuditLogConfiguration struct { // group must begin with the /aws/fsx prefix. The name of the Amazon Kinesis Data // Firehouse delivery stream must begin with the aws-fsx prefix. The destination // ARN (either CloudWatch Logs log group or Kinesis Data Firehose delivery stream) - // must be in the same AWS partition, AWS region, and AWS account as your Amazon - // FSx file system. + // must be in the same Amazon Web Services partition, Amazon Web Services Region, + // and Amazon Web Services account as your Amazon FSx file system. AuditLogDestination *string noSmithyDocumentSerde @@ -1395,24 +2060,25 @@ type WindowsAuditLogCreateConfiguration struct { // // * // The destination ARN that you provide (either CloudWatch Logs log group or - // Kinesis Data Firehose delivery stream) must be in the same AWS partition, AWS - // region, and AWS account as your Amazon FSx file system. + // Kinesis Data Firehose delivery stream) must be in the same Amazon Web Services + // partition, Amazon Web Services Region, and Amazon Web Services account as your + // Amazon FSx file system. // - // * The name of the - // Amazon CloudWatch Logs log group must begin with the /aws/fsx prefix. The name - // of the Amazon Kinesis Data Firehouse delivery stream must begin with the aws-fsx - // prefix. + // * The name of the Amazon CloudWatch Logs log group must + // begin with the /aws/fsx prefix. The name of the Amazon Kinesis Data Firehouse + // delivery stream must begin with the aws-fsx prefix. // - // * If you do not provide a destination in AuditLogDestination, Amazon - // FSx will create and use a log stream in the CloudWatch Logs /aws/fsx/windows log - // group. + // * If you do not provide a + // destination in AuditLogDestination, Amazon FSx will create and use a log stream + // in the CloudWatch Logs /aws/fsx/windows log group. // - // * If AuditLogDestination is provided and the resource does not exist, - // the request will fail with a BadRequest error. + // * If AuditLogDestination is + // provided and the resource does not exist, the request will fail with a + // BadRequest error. // - // * If FileAccessAuditLogLevel and - // FileShareAccessAuditLogLevel are both set to DISABLED, you cannot specify a - // destination in AuditLogDestination. + // * If FileAccessAuditLogLevel and FileShareAccessAuditLogLevel + // are both set to DISABLED, you cannot specify a destination in + // AuditLogDestination. AuditLogDestination *string noSmithyDocumentSerde @@ -1421,8 +2087,8 @@ type WindowsAuditLogCreateConfiguration struct { // The configuration for this Microsoft Windows file system. type WindowsFileSystemConfiguration struct { - // The ID for an existing AWS Managed Microsoft Active Directory instance that the - // file system is joined to. + // The ID for an existing Amazon Web Services Managed Microsoft Active Directory + // instance that the file system is joined to. ActiveDirectoryId *string // An array of one or more DNS aliases that are currently associated with the @@ -1508,7 +2174,8 @@ type WindowsFileSystemConfiguration struct { RemoteAdministrationEndpoint *string // The configuration of the self-managed Microsoft Active Directory (AD) directory - // to which the Windows File Server instance is joined. + // to which the Windows File Server or ONTAP storage virtual machine (SVM) instance + // is joined. SelfManagedActiveDirectoryConfiguration *SelfManagedActiveDirectoryAttributes // The throughput of the Amazon FSx file system, measured in megabytes per second. diff --git a/service/fsx/validators.go b/service/fsx/validators.go index efccc4823f9..fde8e09ad98 100644 --- a/service/fsx/validators.go +++ b/service/fsx/validators.go @@ -150,6 +150,66 @@ func (m *validateOpCreateFileSystem) HandleInitialize(ctx context.Context, in mi return next.HandleInitialize(ctx, in) } +type validateOpCreateStorageVirtualMachine struct { +} + +func (*validateOpCreateStorageVirtualMachine) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateStorageVirtualMachine) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateStorageVirtualMachineInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateStorageVirtualMachineInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpCreateVolumeFromBackup struct { +} + +func (*validateOpCreateVolumeFromBackup) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateVolumeFromBackup) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateVolumeFromBackupInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateVolumeFromBackupInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpCreateVolume struct { +} + +func (*validateOpCreateVolume) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateVolume) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateVolumeInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateVolumeInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDeleteBackup struct { } @@ -190,6 +250,46 @@ func (m *validateOpDeleteFileSystem) HandleInitialize(ctx context.Context, in mi return next.HandleInitialize(ctx, in) } +type validateOpDeleteStorageVirtualMachine struct { +} + +func (*validateOpDeleteStorageVirtualMachine) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeleteStorageVirtualMachine) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeleteStorageVirtualMachineInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeleteStorageVirtualMachineInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpDeleteVolume struct { +} + +func (*validateOpDeleteVolume) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeleteVolume) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeleteVolumeInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeleteVolumeInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDescribeFileSystemAliases struct { } @@ -310,6 +410,46 @@ func (m *validateOpUpdateFileSystem) HandleInitialize(ctx context.Context, in mi return next.HandleInitialize(ctx, in) } +type validateOpUpdateStorageVirtualMachine struct { +} + +func (*validateOpUpdateStorageVirtualMachine) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUpdateStorageVirtualMachine) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UpdateStorageVirtualMachineInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUpdateStorageVirtualMachineInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpUpdateVolume struct { +} + +func (*validateOpUpdateVolume) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUpdateVolume) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UpdateVolumeInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUpdateVolumeInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + func addOpAssociateFileSystemAliasesValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpAssociateFileSystemAliases{}, middleware.After) } @@ -338,6 +478,18 @@ func addOpCreateFileSystemValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateFileSystem{}, middleware.After) } +func addOpCreateStorageVirtualMachineValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateStorageVirtualMachine{}, middleware.After) +} + +func addOpCreateVolumeFromBackupValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateVolumeFromBackup{}, middleware.After) +} + +func addOpCreateVolumeValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateVolume{}, middleware.After) +} + func addOpDeleteBackupValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteBackup{}, middleware.After) } @@ -346,6 +498,14 @@ func addOpDeleteFileSystemValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteFileSystem{}, middleware.After) } +func addOpDeleteStorageVirtualMachineValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeleteStorageVirtualMachine{}, middleware.After) +} + +func addOpDeleteVolumeValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeleteVolume{}, middleware.After) +} + func addOpDescribeFileSystemAliasesValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDescribeFileSystemAliases{}, middleware.After) } @@ -370,6 +530,14 @@ func addOpUpdateFileSystemValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUpdateFileSystem{}, middleware.After) } +func addOpUpdateStorageVirtualMachineValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUpdateStorageVirtualMachine{}, middleware.After) +} + +func addOpUpdateVolumeValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUpdateVolume{}, middleware.After) +} + func validateCompletionReport(v *types.CompletionReport) error { if v == nil { return nil @@ -385,6 +553,24 @@ func validateCompletionReport(v *types.CompletionReport) error { } } +func validateCreateFileSystemOntapConfiguration(v *types.CreateFileSystemOntapConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateFileSystemOntapConfiguration"} + if len(v.DeploymentType) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("DeploymentType")) + } + if v.ThroughputCapacity == nil { + invalidParams.Add(smithy.NewErrParamRequired("ThroughputCapacity")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateCreateFileSystemWindowsConfiguration(v *types.CreateFileSystemWindowsConfiguration) error { if v == nil { return nil @@ -410,6 +596,50 @@ func validateCreateFileSystemWindowsConfiguration(v *types.CreateFileSystemWindo } } +func validateCreateOntapVolumeConfiguration(v *types.CreateOntapVolumeConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateOntapVolumeConfiguration"} + if v.JunctionPath == nil { + invalidParams.Add(smithy.NewErrParamRequired("JunctionPath")) + } + if v.SizeInMegabytes == nil { + invalidParams.Add(smithy.NewErrParamRequired("SizeInMegabytes")) + } + if v.StorageEfficiencyEnabled == nil { + invalidParams.Add(smithy.NewErrParamRequired("StorageEfficiencyEnabled")) + } + if v.StorageVirtualMachineId == nil { + invalidParams.Add(smithy.NewErrParamRequired("StorageVirtualMachineId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateCreateSvmActiveDirectoryConfiguration(v *types.CreateSvmActiveDirectoryConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateSvmActiveDirectoryConfiguration"} + if v.NetBiosName == nil { + invalidParams.Add(smithy.NewErrParamRequired("NetBiosName")) + } + if v.SelfManagedActiveDirectoryConfiguration != nil { + if err := validateSelfManagedActiveDirectoryConfiguration(v.SelfManagedActiveDirectoryConfiguration); err != nil { + invalidParams.AddNested("SelfManagedActiveDirectoryConfiguration", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateDeleteFileSystemLustreConfiguration(v *types.DeleteFileSystemLustreConfiguration) error { if v == nil { return nil @@ -444,6 +674,23 @@ func validateDeleteFileSystemWindowsConfiguration(v *types.DeleteFileSystemWindo } } +func validateDeleteVolumeOntapConfiguration(v *types.DeleteVolumeOntapConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteVolumeOntapConfiguration"} + if v.FinalBackupTags != nil { + if err := validateTags(v.FinalBackupTags); err != nil { + invalidParams.AddNested("FinalBackupTags", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateSelfManagedActiveDirectoryConfiguration(v *types.SelfManagedActiveDirectoryConfiguration) error { if v == nil { return nil @@ -596,9 +843,6 @@ func validateOpCreateBackupInput(v *CreateBackupInput) error { return nil } invalidParams := smithy.InvalidParamsError{Context: "CreateBackupInput"} - if v.FileSystemId == nil { - invalidParams.Add(smithy.NewErrParamRequired("FileSystemId")) - } if v.Tags != nil { if err := validateTags(v.Tags); err != nil { invalidParams.AddNested("Tags", err.(smithy.InvalidParamsError)) @@ -693,6 +937,95 @@ func validateOpCreateFileSystemInput(v *CreateFileSystemInput) error { invalidParams.AddNested("WindowsConfiguration", err.(smithy.InvalidParamsError)) } } + if v.OntapConfiguration != nil { + if err := validateCreateFileSystemOntapConfiguration(v.OntapConfiguration); err != nil { + invalidParams.AddNested("OntapConfiguration", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpCreateStorageVirtualMachineInput(v *CreateStorageVirtualMachineInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateStorageVirtualMachineInput"} + if v.ActiveDirectoryConfiguration != nil { + if err := validateCreateSvmActiveDirectoryConfiguration(v.ActiveDirectoryConfiguration); err != nil { + invalidParams.AddNested("ActiveDirectoryConfiguration", err.(smithy.InvalidParamsError)) + } + } + if v.FileSystemId == nil { + invalidParams.Add(smithy.NewErrParamRequired("FileSystemId")) + } + if v.Name == nil { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if v.Tags != nil { + if err := validateTags(v.Tags); err != nil { + invalidParams.AddNested("Tags", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpCreateVolumeFromBackupInput(v *CreateVolumeFromBackupInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateVolumeFromBackupInput"} + if v.BackupId == nil { + invalidParams.Add(smithy.NewErrParamRequired("BackupId")) + } + if v.Name == nil { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if v.OntapConfiguration != nil { + if err := validateCreateOntapVolumeConfiguration(v.OntapConfiguration); err != nil { + invalidParams.AddNested("OntapConfiguration", err.(smithy.InvalidParamsError)) + } + } + if v.Tags != nil { + if err := validateTags(v.Tags); err != nil { + invalidParams.AddNested("Tags", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpCreateVolumeInput(v *CreateVolumeInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateVolumeInput"} + if len(v.VolumeType) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("VolumeType")) + } + if v.Name == nil { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if v.OntapConfiguration != nil { + if err := validateCreateOntapVolumeConfiguration(v.OntapConfiguration); err != nil { + invalidParams.AddNested("OntapConfiguration", err.(smithy.InvalidParamsError)) + } + } + if v.Tags != nil { + if err := validateTags(v.Tags); err != nil { + invalidParams.AddNested("Tags", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { @@ -740,6 +1073,41 @@ func validateOpDeleteFileSystemInput(v *DeleteFileSystemInput) error { } } +func validateOpDeleteStorageVirtualMachineInput(v *DeleteStorageVirtualMachineInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteStorageVirtualMachineInput"} + if v.StorageVirtualMachineId == nil { + invalidParams.Add(smithy.NewErrParamRequired("StorageVirtualMachineId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpDeleteVolumeInput(v *DeleteVolumeInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteVolumeInput"} + if v.VolumeId == nil { + invalidParams.Add(smithy.NewErrParamRequired("VolumeId")) + } + if v.OntapConfiguration != nil { + if err := validateDeleteVolumeOntapConfiguration(v.OntapConfiguration); err != nil { + invalidParams.AddNested("OntapConfiguration", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDescribeFileSystemAliasesInput(v *DescribeFileSystemAliasesInput) error { if v == nil { return nil @@ -847,3 +1215,33 @@ func validateOpUpdateFileSystemInput(v *UpdateFileSystemInput) error { return nil } } + +func validateOpUpdateStorageVirtualMachineInput(v *UpdateStorageVirtualMachineInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdateStorageVirtualMachineInput"} + if v.StorageVirtualMachineId == nil { + invalidParams.Add(smithy.NewErrParamRequired("StorageVirtualMachineId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpUpdateVolumeInput(v *UpdateVolumeInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdateVolumeInput"} + if v.VolumeId == nil { + invalidParams.Add(smithy.NewErrParamRequired("VolumeId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} diff --git a/service/iot/api_op_AcceptCertificateTransfer.go b/service/iot/api_op_AcceptCertificateTransfer.go index b3297ca47dd..e0b2e8d1926 100644 --- a/service/iot/api_op_AcceptCertificateTransfer.go +++ b/service/iot/api_op_AcceptCertificateTransfer.go @@ -12,7 +12,10 @@ import ( // Accepts a pending certificate transfer. The default state of the certificate is // INACTIVE. To check for pending certificate transfers, call ListCertificates to -// enumerate your certificates. +// enumerate your certificates. Requires permission to access the +// AcceptCertificateTransfer +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) AcceptCertificateTransfer(ctx context.Context, params *AcceptCertificateTransferInput, optFns ...func(*Options)) (*AcceptCertificateTransferOutput, error) { if params == nil { params = &AcceptCertificateTransferInput{} diff --git a/service/iot/api_op_AddThingToBillingGroup.go b/service/iot/api_op_AddThingToBillingGroup.go index 4beaa83b8df..67bc03a04e6 100644 --- a/service/iot/api_op_AddThingToBillingGroup.go +++ b/service/iot/api_op_AddThingToBillingGroup.go @@ -10,7 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Adds a thing to a billing group. +// Adds a thing to a billing group. Requires permission to access the +// AddThingToBillingGroup +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) AddThingToBillingGroup(ctx context.Context, params *AddThingToBillingGroupInput, optFns ...func(*Options)) (*AddThingToBillingGroupOutput, error) { if params == nil { params = &AddThingToBillingGroupInput{} diff --git a/service/iot/api_op_AddThingToThingGroup.go b/service/iot/api_op_AddThingToThingGroup.go index 04d7a00dc79..da1d9fe5d43 100644 --- a/service/iot/api_op_AddThingToThingGroup.go +++ b/service/iot/api_op_AddThingToThingGroup.go @@ -10,7 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Adds a thing to a thing group. +// Adds a thing to a thing group. Requires permission to access the +// AddThingToThingGroup +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) AddThingToThingGroup(ctx context.Context, params *AddThingToThingGroupInput, optFns ...func(*Options)) (*AddThingToThingGroupOutput, error) { if params == nil { params = &AddThingToThingGroupInput{} diff --git a/service/iot/api_op_AssociateTargetsWithJob.go b/service/iot/api_op_AssociateTargetsWithJob.go index b1532eae6bf..338c2fb5fbf 100644 --- a/service/iot/api_op_AssociateTargetsWithJob.go +++ b/service/iot/api_op_AssociateTargetsWithJob.go @@ -20,6 +20,11 @@ import ( // // * The total // number of targets associated with a job must not exceed 100. +// +// Requires +// permission to access the AssociateTargetsWithJob +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) AssociateTargetsWithJob(ctx context.Context, params *AssociateTargetsWithJobInput, optFns ...func(*Options)) (*AssociateTargetsWithJobOutput, error) { if params == nil { params = &AssociateTargetsWithJobInput{} @@ -52,8 +57,8 @@ type AssociateTargetsWithJobInput struct { Comment *string // The namespace used to indicate that a job is a customer-managed job. When you - // specify a value for this parameter, AWS IoT Core sends jobs notifications to - // MQTT topics that contain the value in the following format. + // specify a value for this parameter, Amazon Web Services IoT Core sends jobs + // notifications to MQTT topics that contain the value in the following format. // $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/ The // namespaceId feature is in public preview. NamespaceId *string diff --git a/service/iot/api_op_AttachPolicy.go b/service/iot/api_op_AttachPolicy.go index 7924cc1a935..a5816e47e1c 100644 --- a/service/iot/api_op_AttachPolicy.go +++ b/service/iot/api_op_AttachPolicy.go @@ -11,7 +11,9 @@ import ( ) // Attaches the specified policy to the specified principal (certificate or other -// credential). +// credential). Requires permission to access the AttachPolicy +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) AttachPolicy(ctx context.Context, params *AttachPolicyInput, optFns ...func(*Options)) (*AttachPolicyOutput, error) { if params == nil { params = &AttachPolicyInput{} diff --git a/service/iot/api_op_AttachPrincipalPolicy.go b/service/iot/api_op_AttachPrincipalPolicy.go index 5c3f642a035..393a4c63d84 100644 --- a/service/iot/api_op_AttachPrincipalPolicy.go +++ b/service/iot/api_op_AttachPrincipalPolicy.go @@ -11,7 +11,10 @@ import ( ) // Attaches the specified policy to the specified principal (certificate or other -// credential). Note: This API is deprecated. Please use AttachPolicy instead. +// credential). Note: This action is deprecated. Please use AttachPolicy instead. +// Requires permission to access the AttachPrincipalPolicy +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. // // Deprecated: This operation has been deprecated. func (c *Client) AttachPrincipalPolicy(ctx context.Context, params *AttachPrincipalPolicyInput, optFns ...func(*Options)) (*AttachPrincipalPolicyOutput, error) { diff --git a/service/iot/api_op_AttachSecurityProfile.go b/service/iot/api_op_AttachSecurityProfile.go index d942a35230d..740de6a65ad 100644 --- a/service/iot/api_op_AttachSecurityProfile.go +++ b/service/iot/api_op_AttachSecurityProfile.go @@ -12,7 +12,9 @@ import ( // Associates a Device Defender security profile with a thing group or this // account. Each thing group or account can have up to five security profiles -// associated with it. +// associated with it. Requires permission to access the AttachSecurityProfile +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) AttachSecurityProfile(ctx context.Context, params *AttachSecurityProfileInput, optFns ...func(*Options)) (*AttachSecurityProfileOutput, error) { if params == nil { params = &AttachSecurityProfileInput{} diff --git a/service/iot/api_op_AttachThingPrincipal.go b/service/iot/api_op_AttachThingPrincipal.go index 89a4ec2abd2..463cc18df56 100644 --- a/service/iot/api_op_AttachThingPrincipal.go +++ b/service/iot/api_op_AttachThingPrincipal.go @@ -12,7 +12,9 @@ import ( // Attaches the specified principal to the specified thing. A principal can be // X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities or -// federated identities. +// federated identities. Requires permission to access the AttachThingPrincipal +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) AttachThingPrincipal(ctx context.Context, params *AttachThingPrincipalInput, optFns ...func(*Options)) (*AttachThingPrincipalOutput, error) { if params == nil { params = &AttachThingPrincipalInput{} diff --git a/service/iot/api_op_CancelAuditMitigationActionsTask.go b/service/iot/api_op_CancelAuditMitigationActionsTask.go index 447a88356ea..3fb22581298 100644 --- a/service/iot/api_op_CancelAuditMitigationActionsTask.go +++ b/service/iot/api_op_CancelAuditMitigationActionsTask.go @@ -11,7 +11,10 @@ import ( ) // Cancels a mitigation action task that is in progress. If the task is not in -// progress, an InvalidRequestException occurs. +// progress, an InvalidRequestException occurs. Requires permission to access the +// CancelAuditMitigationActionsTask +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) CancelAuditMitigationActionsTask(ctx context.Context, params *CancelAuditMitigationActionsTaskInput, optFns ...func(*Options)) (*CancelAuditMitigationActionsTaskOutput, error) { if params == nil { params = &CancelAuditMitigationActionsTaskInput{} diff --git a/service/iot/api_op_CancelAuditTask.go b/service/iot/api_op_CancelAuditTask.go index 36b527a8911..9ffbd178023 100644 --- a/service/iot/api_op_CancelAuditTask.go +++ b/service/iot/api_op_CancelAuditTask.go @@ -12,6 +12,9 @@ import ( // Cancels an audit that is in progress. The audit can be either scheduled or on // demand. If the audit isn't in progress, an "InvalidRequestException" occurs. +// Requires permission to access the CancelAuditTask +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) CancelAuditTask(ctx context.Context, params *CancelAuditTaskInput, optFns ...func(*Options)) (*CancelAuditTaskOutput, error) { if params == nil { params = &CancelAuditTaskInput{} diff --git a/service/iot/api_op_CancelCertificateTransfer.go b/service/iot/api_op_CancelCertificateTransfer.go index 8fb8289710e..57f3f5f18dd 100644 --- a/service/iot/api_op_CancelCertificateTransfer.go +++ b/service/iot/api_op_CancelCertificateTransfer.go @@ -12,11 +12,14 @@ import ( // Cancels a pending transfer for the specified certificate. Note Only the transfer // source account can use this operation to cancel a transfer. (Transfer -// destinations can use RejectCertificateTransfer instead.) After transfer, AWS IoT +// destinations can use RejectCertificateTransfer instead.) After transfer, IoT // returns the certificate to the source account in the INACTIVE state. After the // destination account has accepted the transfer, the transfer cannot be cancelled. // After a certificate transfer is cancelled, the status of the certificate changes -// from PENDING_TRANSFER to INACTIVE. +// from PENDING_TRANSFER to INACTIVE. Requires permission to access the +// CancelCertificateTransfer +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) CancelCertificateTransfer(ctx context.Context, params *CancelCertificateTransferInput, optFns ...func(*Options)) (*CancelCertificateTransferOutput, error) { if params == nil { params = &CancelCertificateTransferInput{} diff --git a/service/iot/api_op_CancelDetectMitigationActionsTask.go b/service/iot/api_op_CancelDetectMitigationActionsTask.go index 17f13b143ed..ac7805aa25a 100644 --- a/service/iot/api_op_CancelDetectMitigationActionsTask.go +++ b/service/iot/api_op_CancelDetectMitigationActionsTask.go @@ -10,7 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Cancels a Device Defender ML Detect mitigation action. +// Cancels a Device Defender ML Detect mitigation action. Requires permission to +// access the CancelDetectMitigationActionsTask +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) CancelDetectMitigationActionsTask(ctx context.Context, params *CancelDetectMitigationActionsTaskInput, optFns ...func(*Options)) (*CancelDetectMitigationActionsTaskOutput, error) { if params == nil { params = &CancelDetectMitigationActionsTaskInput{} diff --git a/service/iot/api_op_CancelJob.go b/service/iot/api_op_CancelJob.go index 3432fbace8c..b6d7df48a71 100644 --- a/service/iot/api_op_CancelJob.go +++ b/service/iot/api_op_CancelJob.go @@ -10,7 +10,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Cancels a job. +// Cancels a job. Requires permission to access the CancelJob +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) CancelJob(ctx context.Context, params *CancelJobInput, optFns ...func(*Options)) (*CancelJobOutput, error) { if params == nil { params = &CancelJobInput{} diff --git a/service/iot/api_op_CancelJobExecution.go b/service/iot/api_op_CancelJobExecution.go index dd2383442ac..f5f5004f4e3 100644 --- a/service/iot/api_op_CancelJobExecution.go +++ b/service/iot/api_op_CancelJobExecution.go @@ -10,7 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Cancels the execution of a job for a given thing. +// Cancels the execution of a job for a given thing. Requires permission to access +// the CancelJobExecution +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) CancelJobExecution(ctx context.Context, params *CancelJobExecutionInput, optFns ...func(*Options)) (*CancelJobExecutionOutput, error) { if params == nil { params = &CancelJobExecutionInput{} diff --git a/service/iot/api_op_ClearDefaultAuthorizer.go b/service/iot/api_op_ClearDefaultAuthorizer.go index 2dfe9eec9e0..6ae6a567882 100644 --- a/service/iot/api_op_ClearDefaultAuthorizer.go +++ b/service/iot/api_op_ClearDefaultAuthorizer.go @@ -10,7 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Clears the default authorizer. +// Clears the default authorizer. Requires permission to access the +// ClearDefaultAuthorizer +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ClearDefaultAuthorizer(ctx context.Context, params *ClearDefaultAuthorizerInput, optFns ...func(*Options)) (*ClearDefaultAuthorizerOutput, error) { if params == nil { params = &ClearDefaultAuthorizerInput{} diff --git a/service/iot/api_op_ConfirmTopicRuleDestination.go b/service/iot/api_op_ConfirmTopicRuleDestination.go index d536e3c17b8..c6d7324d1ec 100644 --- a/service/iot/api_op_ConfirmTopicRuleDestination.go +++ b/service/iot/api_op_ConfirmTopicRuleDestination.go @@ -11,10 +11,12 @@ import ( ) // Confirms a topic rule destination. When you create a rule requiring a -// destination, AWS IoT sends a confirmation message to the endpoint or base -// address you specify. The message includes a token which you pass back when -// calling ConfirmTopicRuleDestination to confirm that you own or have access to -// the endpoint. +// destination, IoT sends a confirmation message to the endpoint or base address +// you specify. The message includes a token which you pass back when calling +// ConfirmTopicRuleDestination to confirm that you own or have access to the +// endpoint. Requires permission to access the ConfirmTopicRuleDestination +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ConfirmTopicRuleDestination(ctx context.Context, params *ConfirmTopicRuleDestinationInput, optFns ...func(*Options)) (*ConfirmTopicRuleDestinationOutput, error) { if params == nil { params = &ConfirmTopicRuleDestinationInput{} diff --git a/service/iot/api_op_CreateAuditSuppression.go b/service/iot/api_op_CreateAuditSuppression.go index 4f5e8b1ebb5..e56f625fa8d 100644 --- a/service/iot/api_op_CreateAuditSuppression.go +++ b/service/iot/api_op_CreateAuditSuppression.go @@ -13,7 +13,10 @@ import ( "time" ) -// Creates a Device Defender audit suppression. +// Creates a Device Defender audit suppression. Requires permission to access the +// CreateAuditSuppression +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) CreateAuditSuppression(ctx context.Context, params *CreateAuditSuppressionInput, optFns ...func(*Options)) (*CreateAuditSuppressionOutput, error) { if params == nil { params = &CreateAuditSuppressionInput{} diff --git a/service/iot/api_op_CreateAuthorizer.go b/service/iot/api_op_CreateAuthorizer.go index 913b402ec29..bc6539b056f 100644 --- a/service/iot/api_op_CreateAuthorizer.go +++ b/service/iot/api_op_CreateAuthorizer.go @@ -11,7 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates an authorizer. +// Creates an authorizer. Requires permission to access the CreateAuthorizer +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) CreateAuthorizer(ctx context.Context, params *CreateAuthorizerInput, optFns ...func(*Options)) (*CreateAuthorizerOutput, error) { if params == nil { params = &CreateAuthorizerInput{} @@ -39,8 +41,7 @@ type CreateAuthorizerInput struct { // This member is required. AuthorizerName *string - // Specifies whether AWS IoT validates the token signature in an authorization - // request. + // Specifies whether IoT validates the token signature in an authorization request. SigningDisabled *bool // The status of the create authorizer request. diff --git a/service/iot/api_op_CreateBillingGroup.go b/service/iot/api_op_CreateBillingGroup.go index 0bdd9878e64..0b0fcd6829d 100644 --- a/service/iot/api_op_CreateBillingGroup.go +++ b/service/iot/api_op_CreateBillingGroup.go @@ -11,7 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a billing group. +// Creates a billing group. Requires permission to access the CreateBillingGroup +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) CreateBillingGroup(ctx context.Context, params *CreateBillingGroupInput, optFns ...func(*Options)) (*CreateBillingGroupOutput, error) { if params == nil { params = &CreateBillingGroupInput{} diff --git a/service/iot/api_op_CreateCertificateFromCsr.go b/service/iot/api_op_CreateCertificateFromCsr.go index 8828c3bee4e..e276329c2f1 100644 --- a/service/iot/api_op_CreateCertificateFromCsr.go +++ b/service/iot/api_op_CreateCertificateFromCsr.go @@ -14,25 +14,28 @@ import ( // Note: The CSR must include a public key that is either an RSA key with a length // of at least 2048 bits or an ECC key from NIST P-256 or NIST P-384 curves. Note: // Reusing the same certificate signing request (CSR) results in a distinct -// certificate. You can create multiple certificates in a batch by creating a -// directory, copying multiple .csr files into that directory, and then specifying -// that directory on the command line. The following commands show how to create a -// batch of certificates given a batch of CSRs. Assuming a set of CSRs are located -// inside of the directory my-csr-directory: On Linux and OS X, the command is: $ -// ls my-csr-directory/ | xargs -I {} aws iot create-certificate-from-csr +// certificate. Requires permission to access the CreateCertificateFromCsr +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. You can create multiple certificates in a batch by creating a directory, +// copying multiple .csr files into that directory, and then specifying that +// directory on the command line. The following commands show how to create a batch +// of certificates given a batch of CSRs. Assuming a set of CSRs are located inside +// of the directory my-csr-directory: On Linux and OS X, the command is: $ ls +// my-csr-directory/ | xargs -I {} aws iot create-certificate-from-csr // --certificate-signing-request file://my-csr-directory/{} This command lists all // of the CSRs in my-csr-directory and pipes each CSR file name to the aws iot -// create-certificate-from-csr AWS CLI command to create a certificate for the -// corresponding CSR. The aws iot create-certificate-from-csr part of the command -// can also be run in parallel to speed up the certificate creation process: $ ls -// my-csr-directory/ | xargs -P 10 -I {} aws iot create-certificate-from-csr -// --certificate-signing-request file://my-csr-directory/{} On Windows PowerShell, -// the command to create certificates for all CSRs in my-csr-directory is: > ls -// -Name my-csr-directory | %{aws iot create-certificate-from-csr -// --certificate-signing-request file://my-csr-directory/$_} On a Windows command -// prompt, the command to create certificates for all CSRs in my-csr-directory is: -// > forfiles /p my-csr-directory /c "cmd /c aws iot create-certificate-from-csr -// --certificate-signing-request file://@path" +// create-certificate-from-csr Amazon Web Services CLI command to create a +// certificate for the corresponding CSR. The aws iot create-certificate-from-csr +// part of the command can also be run in parallel to speed up the certificate +// creation process: $ ls my-csr-directory/ | xargs -P 10 -I {} aws iot +// create-certificate-from-csr --certificate-signing-request +// file://my-csr-directory/{} On Windows PowerShell, the command to create +// certificates for all CSRs in my-csr-directory is: > ls -Name my-csr-directory | +// %{aws iot create-certificate-from-csr --certificate-signing-request +// file://my-csr-directory/$_} On a Windows command prompt, the command to create +// certificates for all CSRs in my-csr-directory is: > forfiles /p my-csr-directory +// /c "cmd /c aws iot create-certificate-from-csr --certificate-signing-request +// file://@path" func (c *Client) CreateCertificateFromCsr(ctx context.Context, params *CreateCertificateFromCsrInput, optFns ...func(*Options)) (*CreateCertificateFromCsrOutput, error) { if params == nil { params = &CreateCertificateFromCsrInput{} diff --git a/service/iot/api_op_CreateCustomMetric.go b/service/iot/api_op_CreateCustomMetric.go index 02024caf6ef..36139725cfb 100644 --- a/service/iot/api_op_CreateCustomMetric.go +++ b/service/iot/api_op_CreateCustomMetric.go @@ -13,7 +13,9 @@ import ( ) // Use this API to define a Custom Metric published by your devices to Device -// Defender. +// Defender. Requires permission to access the CreateCustomMetric +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) CreateCustomMetric(ctx context.Context, params *CreateCustomMetricInput, optFns ...func(*Options)) (*CreateCustomMetricOutput, error) { if params == nil { params = &CreateCustomMetricInput{} @@ -33,8 +35,8 @@ type CreateCustomMetricInput struct { // Each custom metric must have a unique client request token. If you try to create // a new custom metric that already exists with a different token, an exception - // occurs. If you omit this value, AWS SDKs will automatically generate a unique - // client request. + // occurs. If you omit this value, Amazon Web Services SDKs will automatically + // generate a unique client request. // // This member is required. ClientRequestToken *string diff --git a/service/iot/api_op_CreateDimension.go b/service/iot/api_op_CreateDimension.go index 6ad546914d6..bf5d5604cda 100644 --- a/service/iot/api_op_CreateDimension.go +++ b/service/iot/api_op_CreateDimension.go @@ -13,9 +13,12 @@ import ( ) // Create a dimension that you can use to limit the scope of a metric used in a -// security profile for AWS IoT Device Defender. For example, using a TOPIC_FILTER +// security profile for IoT Device Defender. For example, using a TOPIC_FILTER // dimension, you can narrow down the scope of the metric only to MQTT topics whose -// name match the pattern specified in the dimension. +// name match the pattern specified in the dimension. Requires permission to access +// the CreateDimension +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) CreateDimension(ctx context.Context, params *CreateDimensionInput, optFns ...func(*Options)) (*CreateDimensionOutput, error) { if params == nil { params = &CreateDimensionInput{} @@ -35,8 +38,8 @@ type CreateDimensionInput struct { // Each dimension must have a unique client request token. If you try to create a // new dimension with the same token as a dimension that already exists, an - // exception occurs. If you omit this value, AWS SDKs will automatically generate a - // unique client request. + // exception occurs. If you omit this value, Amazon Web Services SDKs will + // automatically generate a unique client request. // // This member is required. ClientRequestToken *string diff --git a/service/iot/api_op_CreateDomainConfiguration.go b/service/iot/api_op_CreateDomainConfiguration.go index 17f4f42b8a7..cbe67acf529 100644 --- a/service/iot/api_op_CreateDomainConfiguration.go +++ b/service/iot/api_op_CreateDomainConfiguration.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a domain configuration. +// Creates a domain configuration. Requires permission to access the +// CreateDomainConfiguration +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) CreateDomainConfiguration(ctx context.Context, params *CreateDomainConfigurationInput, optFns ...func(*Options)) (*CreateDomainConfigurationOutput, error) { if params == nil { params = &CreateDomainConfigurationInput{} @@ -40,13 +43,13 @@ type CreateDomainConfigurationInput struct { // The name of the domain. DomainName *string - // The ARNs of the certificates that AWS IoT passes to the device during the TLS + // The ARNs of the certificates that IoT passes to the device during the TLS // handshake. Currently you can specify only one certificate ARN. This value is not - // required for AWS-managed domains. + // required for Amazon Web Services-managed domains. ServerCertificateArns []string - // The type of service delivered by the endpoint. AWS IoT Core currently supports - // only the DATA service type. + // The type of service delivered by the endpoint. Amazon Web Services IoT Core + // currently supports only the DATA service type. ServiceType types.ServiceType // Metadata which can be used to manage the domain configuration. For URI Request @@ -57,7 +60,7 @@ type CreateDomainConfigurationInput struct { // The certificate used to validate the server certificate and prove domain name // ownership. This certificate must be signed by a public certificate authority. - // This value is not required for AWS-managed domains. + // This value is not required for Amazon Web Services-managed domains. ValidationCertificateArn *string noSmithyDocumentSerde diff --git a/service/iot/api_op_CreateDynamicThingGroup.go b/service/iot/api_op_CreateDynamicThingGroup.go index f5d4732f843..bc2cb870a01 100644 --- a/service/iot/api_op_CreateDynamicThingGroup.go +++ b/service/iot/api_op_CreateDynamicThingGroup.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a dynamic thing group. +// Creates a dynamic thing group. Requires permission to access the +// CreateDynamicThingGroup +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) CreateDynamicThingGroup(ctx context.Context, params *CreateDynamicThingGroupInput, optFns ...func(*Options)) (*CreateDynamicThingGroupOutput, error) { if params == nil { params = &CreateDynamicThingGroupInput{} @@ -42,7 +45,7 @@ type CreateDynamicThingGroupInput struct { ThingGroupName *string // The dynamic thing group index name. Currently one index is supported: - // "AWS_Things". + // AWS_Things. IndexName *string // The dynamic thing group query version. Currently one query version is supported: diff --git a/service/iot/api_op_CreateFleetMetric.go b/service/iot/api_op_CreateFleetMetric.go new file mode 100644 index 00000000000..5030ff36c38 --- /dev/null +++ b/service/iot/api_op_CreateFleetMetric.go @@ -0,0 +1,165 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package iot + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/iot/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Creates a fleet metric. Requires permission to access the CreateFleetMetric +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. +func (c *Client) CreateFleetMetric(ctx context.Context, params *CreateFleetMetricInput, optFns ...func(*Options)) (*CreateFleetMetricOutput, error) { + if params == nil { + params = &CreateFleetMetricInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateFleetMetric", params, optFns, c.addOperationCreateFleetMetricMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateFleetMetricOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreateFleetMetricInput struct { + + // The field to aggregate. + // + // This member is required. + AggregationField *string + + // The type of the aggregation query. + // + // This member is required. + AggregationType *types.AggregationType + + // The name of the fleet metric to create. + // + // This member is required. + MetricName *string + + // The time in seconds between fleet metric emissions. Range [60(1 min), 86400(1 + // day)] and must be multiple of 60. + // + // This member is required. + Period *int32 + + // The search query string. + // + // This member is required. + QueryString *string + + // The fleet metric description. + Description *string + + // The name of the index to search. + IndexName *string + + // The query version. + QueryVersion *string + + // Metadata, which can be used to manage the fleet metric. + Tags []types.Tag + + // Used to support unit transformation such as milliseconds to seconds. The unit + // must be supported by CW metric + // (https://docs.aws.amazon.com/https:/docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html). + // Default to null. + Unit types.FleetMetricUnit + + noSmithyDocumentSerde +} + +type CreateFleetMetricOutput struct { + + // The Amazon Resource Name (ARN) of the new fleet metric. + MetricArn *string + + // The name of the fleet metric to create. + MetricName *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateFleetMetricMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpCreateFleetMetric{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpCreateFleetMetric{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpCreateFleetMetricValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateFleetMetric(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opCreateFleetMetric(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "execute-api", + OperationName: "CreateFleetMetric", + } +} diff --git a/service/iot/api_op_CreateJob.go b/service/iot/api_op_CreateJob.go index da9b8c24bc5..136e7e532b8 100644 --- a/service/iot/api_op_CreateJob.go +++ b/service/iot/api_op_CreateJob.go @@ -11,7 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a job. +// Creates a job. Requires permission to access the CreateJob +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) CreateJob(ctx context.Context, params *CreateJobInput, optFns ...func(*Options)) (*CreateJobOutput, error) { if params == nil { params = &CreateJobInput{} @@ -29,8 +31,9 @@ func (c *Client) CreateJob(ctx context.Context, params *CreateJobInput, optFns . type CreateJobInput struct { - // A job identifier which must be unique for your AWS account. We recommend using a - // UUID. Alpha-numeric characters, "-" and "_" are valid for use here. + // A job identifier which must be unique for your Amazon Web Services account. We + // recommend using a UUID. Alpha-numeric characters, "-" and "_" are valid for use + // here. // // This member is required. JobId *string @@ -64,8 +67,8 @@ type CreateJobInput struct { JobTemplateArn *string // The namespace used to indicate that a job is a customer-managed job. When you - // specify a value for this parameter, AWS IoT Core sends jobs notifications to - // MQTT topics that contain the value in the following format. + // specify a value for this parameter, Amazon Web Services IoT Core sends jobs + // notifications to MQTT topics that contain the value in the following format. // $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/ The // namespaceId feature is in public preview. NamespaceId *string diff --git a/service/iot/api_op_CreateJobTemplate.go b/service/iot/api_op_CreateJobTemplate.go index 0f6d562f994..79d72b0d90f 100644 --- a/service/iot/api_op_CreateJobTemplate.go +++ b/service/iot/api_op_CreateJobTemplate.go @@ -11,7 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a job template. +// Creates a job template. Requires permission to access the CreateJobTemplate +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) CreateJobTemplate(ctx context.Context, params *CreateJobTemplateInput, optFns ...func(*Options)) (*CreateJobTemplateOutput, error) { if params == nil { params = &CreateJobTemplateInput{} diff --git a/service/iot/api_op_CreateKeysAndCertificate.go b/service/iot/api_op_CreateKeysAndCertificate.go index 3f7c7a63e67..98f06b8bbb4 100644 --- a/service/iot/api_op_CreateKeysAndCertificate.go +++ b/service/iot/api_op_CreateKeysAndCertificate.go @@ -15,8 +15,11 @@ import ( // public key. You can also call CreateKeysAndCertificate over MQTT from a device, // for more information, see Provisioning MQTT API // (https://docs.aws.amazon.com/iot/latest/developerguide/provision-wo-cert.html#provision-mqtt-api). -// Note This is the only time AWS IoT issues the private key for this certificate, -// so it is important to keep it in a secure location. +// Note This is the only time IoT issues the private key for this certificate, so +// it is important to keep it in a secure location. Requires permission to access +// the CreateKeysAndCertificate +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) CreateKeysAndCertificate(ctx context.Context, params *CreateKeysAndCertificateInput, optFns ...func(*Options)) (*CreateKeysAndCertificateOutput, error) { if params == nil { params = &CreateKeysAndCertificateInput{} @@ -32,7 +35,10 @@ func (c *Client) CreateKeysAndCertificate(ctx context.Context, params *CreateKey return out, nil } -// The input for the CreateKeysAndCertificate operation. +// The input for the CreateKeysAndCertificate operation. Requires permission to +// access the CreateKeysAndCertificateRequest +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. type CreateKeysAndCertificateInput struct { // Specifies whether the certificate is active. @@ -47,8 +53,8 @@ type CreateKeysAndCertificateOutput struct { // The ARN of the certificate. CertificateArn *string - // The ID of the certificate. AWS IoT issues a default subject name for the - // certificate (for example, AWS IoT Certificate). + // The ID of the certificate. IoT issues a default subject name for the certificate + // (for example, IoT Certificate). CertificateId *string // The certificate data, in PEM format. diff --git a/service/iot/api_op_CreateMitigationAction.go b/service/iot/api_op_CreateMitigationAction.go index 3bbc680424c..f8f05e27662 100644 --- a/service/iot/api_op_CreateMitigationAction.go +++ b/service/iot/api_op_CreateMitigationAction.go @@ -15,7 +15,10 @@ import ( // StartAuditMitigationActionsTask. Only certain types of mitigation actions can be // applied to specific check names. For more information, see Mitigation actions // (https://docs.aws.amazon.com/iot/latest/developerguide/device-defender-mitigation-actions.html). -// Each mitigation action can apply only one type of change. +// Each mitigation action can apply only one type of change. Requires permission to +// access the CreateMitigationAction +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) CreateMitigationAction(ctx context.Context, params *CreateMitigationActionInput, optFns ...func(*Options)) (*CreateMitigationActionOutput, error) { if params == nil { params = &CreateMitigationActionInput{} diff --git a/service/iot/api_op_CreateOTAUpdate.go b/service/iot/api_op_CreateOTAUpdate.go index 32a1bfc9638..7092c40c415 100644 --- a/service/iot/api_op_CreateOTAUpdate.go +++ b/service/iot/api_op_CreateOTAUpdate.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates an AWS IoT OTAUpdate on a target group of things or groups. +// Creates an IoT OTA update on a target group of things or groups. Requires +// permission to access the CreateOTAUpdate +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) CreateOTAUpdate(ctx context.Context, params *CreateOTAUpdateInput, optFns ...func(*Options)) (*CreateOTAUpdateOutput, error) { if params == nil { params = &CreateOTAUpdateInput{} @@ -39,8 +42,9 @@ type CreateOTAUpdateInput struct { // This member is required. OtaUpdateId *string - // The IAM role that grants AWS IoT access to the Amazon S3, AWS IoT jobs and AWS - // Code Signing resources to create an OTA update job. + // The IAM role that grants Amazon Web Services IoT Core access to the Amazon S3, + // IoT jobs and Amazon Web Services Code Signing resources to create an OTA update + // job. // // This member is required. RoleArn *string @@ -92,10 +96,10 @@ type CreateOTAUpdateInput struct { type CreateOTAUpdateOutput struct { - // The AWS IoT job ARN associated with the OTA update. + // The IoT job ARN associated with the OTA update. AwsIotJobArn *string - // The AWS IoT job ID associated with the OTA update. + // The IoT job ID associated with the OTA update. AwsIotJobId *string // The OTA update ARN. diff --git a/service/iot/api_op_CreatePolicy.go b/service/iot/api_op_CreatePolicy.go index c9b37bb2c9f..cb4de81cd2d 100644 --- a/service/iot/api_op_CreatePolicy.go +++ b/service/iot/api_op_CreatePolicy.go @@ -11,9 +11,12 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates an AWS IoT policy. The created policy is the default version for the -// policy. This operation creates a policy version with a version identifier of 1 -// and sets 1 as the policy's default version. +// Creates an IoT policy. The created policy is the default version for the policy. +// This operation creates a policy version with a version identifier of 1 and sets +// 1 as the policy's default version. Requires permission to access the +// CreatePolicy +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) CreatePolicy(ctx context.Context, params *CreatePolicyInput, optFns ...func(*Options)) (*CreatePolicyOutput, error) { if params == nil { params = &CreatePolicyInput{} diff --git a/service/iot/api_op_CreatePolicyVersion.go b/service/iot/api_op_CreatePolicyVersion.go index c6e1a79d500..69f22fedeb0 100644 --- a/service/iot/api_op_CreatePolicyVersion.go +++ b/service/iot/api_op_CreatePolicyVersion.go @@ -10,13 +10,15 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a new version of the specified AWS IoT policy. To update a policy, -// create a new policy version. A managed policy can have up to five versions. If -// the policy has five versions, you must use DeletePolicyVersion to delete an -// existing version before you create a new one. Optionally, you can set the new -// version as the policy's default version. The default version is the operative -// version (that is, the version that is in effect for the certificates to which -// the policy is attached). +// Creates a new version of the specified IoT policy. To update a policy, create a +// new policy version. A managed policy can have up to five versions. If the policy +// has five versions, you must use DeletePolicyVersion to delete an existing +// version before you create a new one. Optionally, you can set the new version as +// the policy's default version. The default version is the operative version (that +// is, the version that is in effect for the certificates to which the policy is +// attached). Requires permission to access the CreatePolicyVersion +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) CreatePolicyVersion(ctx context.Context, params *CreatePolicyVersionInput, optFns ...func(*Options)) (*CreatePolicyVersionOutput, error) { if params == nil { params = &CreatePolicyVersionInput{} diff --git a/service/iot/api_op_CreateProvisioningClaim.go b/service/iot/api_op_CreateProvisioningClaim.go index 0afacf7b211..e6339f42688 100644 --- a/service/iot/api_op_CreateProvisioningClaim.go +++ b/service/iot/api_op_CreateProvisioningClaim.go @@ -12,7 +12,10 @@ import ( "time" ) -// Creates a provisioning claim. +// Creates a provisioning claim. Requires permission to access the +// CreateProvisioningClaim +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) CreateProvisioningClaim(ctx context.Context, params *CreateProvisioningClaimInput, optFns ...func(*Options)) (*CreateProvisioningClaimOutput, error) { if params == nil { params = &CreateProvisioningClaimInput{} diff --git a/service/iot/api_op_CreateProvisioningTemplate.go b/service/iot/api_op_CreateProvisioningTemplate.go index eb7121568e5..6393df0860a 100644 --- a/service/iot/api_op_CreateProvisioningTemplate.go +++ b/service/iot/api_op_CreateProvisioningTemplate.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a fleet provisioning template. +// Creates a fleet provisioning template. Requires permission to access the +// CreateProvisioningTemplate +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) CreateProvisioningTemplate(ctx context.Context, params *CreateProvisioningTemplateInput, optFns ...func(*Options)) (*CreateProvisioningTemplateOutput, error) { if params == nil { params = &CreateProvisioningTemplateInput{} diff --git a/service/iot/api_op_CreateProvisioningTemplateVersion.go b/service/iot/api_op_CreateProvisioningTemplateVersion.go index 839279ae9a5..7e7933bfe29 100644 --- a/service/iot/api_op_CreateProvisioningTemplateVersion.go +++ b/service/iot/api_op_CreateProvisioningTemplateVersion.go @@ -10,7 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a new version of a fleet provisioning template. +// Creates a new version of a fleet provisioning template. Requires permission to +// access the CreateProvisioningTemplateVersion +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) CreateProvisioningTemplateVersion(ctx context.Context, params *CreateProvisioningTemplateVersionInput, optFns ...func(*Options)) (*CreateProvisioningTemplateVersionOutput, error) { if params == nil { params = &CreateProvisioningTemplateVersionInput{} diff --git a/service/iot/api_op_CreateRoleAlias.go b/service/iot/api_op_CreateRoleAlias.go index 1c5077c4e91..dfd17252cb1 100644 --- a/service/iot/api_op_CreateRoleAlias.go +++ b/service/iot/api_op_CreateRoleAlias.go @@ -11,7 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a role alias. +// Creates a role alias. Requires permission to access the CreateRoleAlias +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) CreateRoleAlias(ctx context.Context, params *CreateRoleAliasInput, optFns ...func(*Options)) (*CreateRoleAliasOutput, error) { if params == nil { params = &CreateRoleAliasInput{} @@ -40,7 +42,8 @@ type CreateRoleAliasInput struct { // This member is required. RoleArn *string - // How long (in seconds) the credentials will be valid. + // How long (in seconds) the credentials will be valid. The default value is 3,600 + // seconds. CredentialDurationSeconds *int32 // Metadata which can be used to manage the role alias. For URI Request parameters diff --git a/service/iot/api_op_CreateScheduledAudit.go b/service/iot/api_op_CreateScheduledAudit.go index 4c8347e70ac..1fb12df7131 100644 --- a/service/iot/api_op_CreateScheduledAudit.go +++ b/service/iot/api_op_CreateScheduledAudit.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a scheduled audit that is run at a specified time interval. +// Creates a scheduled audit that is run at a specified time interval. Requires +// permission to access the CreateScheduledAudit +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) CreateScheduledAudit(ctx context.Context, params *CreateScheduledAuditInput, optFns ...func(*Options)) (*CreateScheduledAuditOutput, error) { if params == nil { params = &CreateScheduledAuditInput{} diff --git a/service/iot/api_op_CreateSecurityProfile.go b/service/iot/api_op_CreateSecurityProfile.go index 00df2d6dfec..2e04a570f0c 100644 --- a/service/iot/api_op_CreateSecurityProfile.go +++ b/service/iot/api_op_CreateSecurityProfile.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a Device Defender security profile. +// Creates a Device Defender security profile. Requires permission to access the +// CreateSecurityProfile +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) CreateSecurityProfile(ctx context.Context, params *CreateSecurityProfileInput, optFns ...func(*Options)) (*CreateSecurityProfileOutput, error) { if params == nil { params = &CreateSecurityProfileInput{} diff --git a/service/iot/api_op_CreateStream.go b/service/iot/api_op_CreateStream.go index 28ba9fa28c8..5fd46cc39c4 100644 --- a/service/iot/api_op_CreateStream.go +++ b/service/iot/api_op_CreateStream.go @@ -14,6 +14,9 @@ import ( // Creates a stream for delivering one or more large files in chunks over MQTT. A // stream transports data bytes in chunks or blocks packaged as MQTT messages from // a source like S3. You can have one or more files associated with a stream. +// Requires permission to access the CreateStream +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) CreateStream(ctx context.Context, params *CreateStreamInput, optFns ...func(*Options)) (*CreateStreamOutput, error) { if params == nil { params = &CreateStreamInput{} diff --git a/service/iot/api_op_CreateThing.go b/service/iot/api_op_CreateThing.go index 4795a947151..50e907c9e30 100644 --- a/service/iot/api_op_CreateThing.go +++ b/service/iot/api_op_CreateThing.go @@ -17,7 +17,10 @@ import ( // ResourceAlreadyExistsException is thrown. This is a control plane operation. See // Authorization // (https://docs.aws.amazon.com/iot/latest/developerguide/iot-authorization.html) -// for information about authorizing control plane actions. +// for information about authorizing control plane actions. Requires permission to +// access the CreateThing +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) CreateThing(ctx context.Context, params *CreateThingInput, optFns ...func(*Options)) (*CreateThingOutput, error) { if params == nil { params = &CreateThingInput{} diff --git a/service/iot/api_op_CreateThingGroup.go b/service/iot/api_op_CreateThingGroup.go index 5fe4d97f87c..4a6da9531d1 100644 --- a/service/iot/api_op_CreateThingGroup.go +++ b/service/iot/api_op_CreateThingGroup.go @@ -13,7 +13,10 @@ import ( // Create a thing group. This is a control plane operation. See Authorization // (https://docs.aws.amazon.com/iot/latest/developerguide/iot-authorization.html) -// for information about authorizing control plane actions. +// for information about authorizing control plane actions. Requires permission to +// access the CreateThingGroup +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) CreateThingGroup(ctx context.Context, params *CreateThingGroupInput, optFns ...func(*Options)) (*CreateThingGroupOutput, error) { if params == nil { params = &CreateThingGroupInput{} diff --git a/service/iot/api_op_CreateThingType.go b/service/iot/api_op_CreateThingType.go index 0210305d6b5..fd684135740 100644 --- a/service/iot/api_op_CreateThingType.go +++ b/service/iot/api_op_CreateThingType.go @@ -11,7 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a new thing type. +// Creates a new thing type. Requires permission to access the CreateThingType +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) CreateThingType(ctx context.Context, params *CreateThingTypeInput, optFns ...func(*Options)) (*CreateThingTypeOutput, error) { if params == nil { params = &CreateThingTypeInput{} diff --git a/service/iot/api_op_CreateTopicRule.go b/service/iot/api_op_CreateTopicRule.go index 62c483d0828..3b530718cae 100644 --- a/service/iot/api_op_CreateTopicRule.go +++ b/service/iot/api_op_CreateTopicRule.go @@ -13,7 +13,9 @@ import ( // Creates a rule. Creating rules is an administrator-level action. Any user who // has permission to create rules will be able to access data processed by the -// rule. +// rule. Requires permission to access the CreateTopicRule +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) CreateTopicRule(ctx context.Context, params *CreateTopicRuleInput, optFns ...func(*Options)) (*CreateTopicRuleOutput, error) { if params == nil { params = &CreateTopicRuleInput{} diff --git a/service/iot/api_op_CreateTopicRuleDestination.go b/service/iot/api_op_CreateTopicRuleDestination.go index 5fecf37eadc..168382a4f0a 100644 --- a/service/iot/api_op_CreateTopicRuleDestination.go +++ b/service/iot/api_op_CreateTopicRuleDestination.go @@ -12,7 +12,9 @@ import ( ) // Creates a topic rule destination. The destination must be confirmed prior to -// use. +// use. Requires permission to access the CreateTopicRuleDestination +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) CreateTopicRuleDestination(ctx context.Context, params *CreateTopicRuleDestinationInput, optFns ...func(*Options)) (*CreateTopicRuleDestinationOutput, error) { if params == nil { params = &CreateTopicRuleDestinationInput{} diff --git a/service/iot/api_op_DeleteAccountAuditConfiguration.go b/service/iot/api_op_DeleteAccountAuditConfiguration.go index 455fd8e42f8..5163bfec71c 100644 --- a/service/iot/api_op_DeleteAccountAuditConfiguration.go +++ b/service/iot/api_op_DeleteAccountAuditConfiguration.go @@ -12,7 +12,9 @@ import ( // Restores the default settings for Device Defender audits for this account. Any // configuration data you entered is deleted and all audit checks are reset to -// disabled. +// disabled. Requires permission to access the DeleteAccountAuditConfiguration +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DeleteAccountAuditConfiguration(ctx context.Context, params *DeleteAccountAuditConfigurationInput, optFns ...func(*Options)) (*DeleteAccountAuditConfigurationOutput, error) { if params == nil { params = &DeleteAccountAuditConfigurationInput{} diff --git a/service/iot/api_op_DeleteAuditSuppression.go b/service/iot/api_op_DeleteAuditSuppression.go index 9fc87fc9115..31e508f26e4 100644 --- a/service/iot/api_op_DeleteAuditSuppression.go +++ b/service/iot/api_op_DeleteAuditSuppression.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes a Device Defender audit suppression. +// Deletes a Device Defender audit suppression. Requires permission to access the +// DeleteAuditSuppression +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DeleteAuditSuppression(ctx context.Context, params *DeleteAuditSuppressionInput, optFns ...func(*Options)) (*DeleteAuditSuppressionOutput, error) { if params == nil { params = &DeleteAuditSuppressionInput{} diff --git a/service/iot/api_op_DeleteAuthorizer.go b/service/iot/api_op_DeleteAuthorizer.go index 8b9d69bc0f7..caa7b0c00cd 100644 --- a/service/iot/api_op_DeleteAuthorizer.go +++ b/service/iot/api_op_DeleteAuthorizer.go @@ -10,7 +10,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes an authorizer. +// Deletes an authorizer. Requires permission to access the DeleteAuthorizer +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DeleteAuthorizer(ctx context.Context, params *DeleteAuthorizerInput, optFns ...func(*Options)) (*DeleteAuthorizerOutput, error) { if params == nil { params = &DeleteAuthorizerInput{} diff --git a/service/iot/api_op_DeleteBillingGroup.go b/service/iot/api_op_DeleteBillingGroup.go index 55ac9b24c44..25cfa2ebc70 100644 --- a/service/iot/api_op_DeleteBillingGroup.go +++ b/service/iot/api_op_DeleteBillingGroup.go @@ -10,7 +10,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes the billing group. +// Deletes the billing group. Requires permission to access the DeleteBillingGroup +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DeleteBillingGroup(ctx context.Context, params *DeleteBillingGroupInput, optFns ...func(*Options)) (*DeleteBillingGroupOutput, error) { if params == nil { params = &DeleteBillingGroupInput{} diff --git a/service/iot/api_op_DeleteCACertificate.go b/service/iot/api_op_DeleteCACertificate.go index 31358a0c3ee..76a5259ff58 100644 --- a/service/iot/api_op_DeleteCACertificate.go +++ b/service/iot/api_op_DeleteCACertificate.go @@ -10,7 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes a registered CA certificate. +// Deletes a registered CA certificate. Requires permission to access the +// DeleteCACertificate +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DeleteCACertificate(ctx context.Context, params *DeleteCACertificateInput, optFns ...func(*Options)) (*DeleteCACertificateOutput, error) { if params == nil { params = &DeleteCACertificateInput{} diff --git a/service/iot/api_op_DeleteCertificate.go b/service/iot/api_op_DeleteCertificate.go index 3a63b15f0df..5f1c384ab67 100644 --- a/service/iot/api_op_DeleteCertificate.go +++ b/service/iot/api_op_DeleteCertificate.go @@ -12,9 +12,11 @@ import ( // Deletes the specified certificate. A certificate cannot be deleted if it has a // policy or IoT thing attached to it or if its status is set to ACTIVE. To delete -// a certificate, first use the DetachPrincipalPolicy API to detach all policies. -// Next, use the UpdateCertificate API to set the certificate to the INACTIVE -// status. +// a certificate, first use the DetachPolicy action to detach all policies. Next, +// use the UpdateCertificate action to set the certificate to the INACTIVE status. +// Requires permission to access the DeleteCertificate +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DeleteCertificate(ctx context.Context, params *DeleteCertificateInput, optFns ...func(*Options)) (*DeleteCertificateOutput, error) { if params == nil { params = &DeleteCertificateInput{} diff --git a/service/iot/api_op_DeleteCustomMetric.go b/service/iot/api_op_DeleteCustomMetric.go index 0d64409327e..a4a1bac1dac 100644 --- a/service/iot/api_op_DeleteCustomMetric.go +++ b/service/iot/api_op_DeleteCustomMetric.go @@ -10,12 +10,14 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Before you can delete a custom metric, you must first remove the custom metric -// from all security profiles it's a part of. The security profile associated with -// the custom metric can be found using the ListSecurityProfiles +// Deletes a Device Defender detect custom metric. Requires permission to access +// the DeleteCustomMetric +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. Before you can delete a custom metric, you must first remove the custom +// metric from all security profiles it's a part of. The security profile +// associated with the custom metric can be found using the ListSecurityProfiles // (https://docs.aws.amazon.com/iot/latest/apireference/API_ListSecurityProfiles.html) -// API with metricName set to your custom metric name. Deletes a Device Defender -// detect custom metric. +// API with metricName set to your custom metric name. func (c *Client) DeleteCustomMetric(ctx context.Context, params *DeleteCustomMetricInput, optFns ...func(*Options)) (*DeleteCustomMetricOutput, error) { if params == nil { params = &DeleteCustomMetricInput{} diff --git a/service/iot/api_op_DeleteDimension.go b/service/iot/api_op_DeleteDimension.go index 2cafbffddaa..bcd9a59c9fa 100644 --- a/service/iot/api_op_DeleteDimension.go +++ b/service/iot/api_op_DeleteDimension.go @@ -10,7 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Removes the specified dimension from your AWS account. +// Removes the specified dimension from your Amazon Web Services accounts. Requires +// permission to access the DeleteDimension +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DeleteDimension(ctx context.Context, params *DeleteDimensionInput, optFns ...func(*Options)) (*DeleteDimensionOutput, error) { if params == nil { params = &DeleteDimensionInput{} diff --git a/service/iot/api_op_DeleteDomainConfiguration.go b/service/iot/api_op_DeleteDomainConfiguration.go index cefdc55d2b9..818a62d5ead 100644 --- a/service/iot/api_op_DeleteDomainConfiguration.go +++ b/service/iot/api_op_DeleteDomainConfiguration.go @@ -10,7 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes the specified domain configuration. +// Deletes the specified domain configuration. Requires permission to access the +// DeleteDomainConfiguration +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DeleteDomainConfiguration(ctx context.Context, params *DeleteDomainConfigurationInput, optFns ...func(*Options)) (*DeleteDomainConfigurationOutput, error) { if params == nil { params = &DeleteDomainConfigurationInput{} diff --git a/service/iot/api_op_DeleteDynamicThingGroup.go b/service/iot/api_op_DeleteDynamicThingGroup.go index fe132c67fd1..0a680584613 100644 --- a/service/iot/api_op_DeleteDynamicThingGroup.go +++ b/service/iot/api_op_DeleteDynamicThingGroup.go @@ -10,7 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes a dynamic thing group. +// Deletes a dynamic thing group. Requires permission to access the +// DeleteDynamicThingGroup +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DeleteDynamicThingGroup(ctx context.Context, params *DeleteDynamicThingGroupInput, optFns ...func(*Options)) (*DeleteDynamicThingGroupOutput, error) { if params == nil { params = &DeleteDynamicThingGroupInput{} diff --git a/service/iot/api_op_DeleteFleetMetric.go b/service/iot/api_op_DeleteFleetMetric.go new file mode 100644 index 00000000000..74437a907c1 --- /dev/null +++ b/service/iot/api_op_DeleteFleetMetric.go @@ -0,0 +1,123 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package iot + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Deletes the specified fleet metric. Returns successfully with no error if the +// deletion is successful or you specify a fleet metric that doesn't exist. +// Requires permission to access the DeleteFleetMetric +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. +func (c *Client) DeleteFleetMetric(ctx context.Context, params *DeleteFleetMetricInput, optFns ...func(*Options)) (*DeleteFleetMetricOutput, error) { + if params == nil { + params = &DeleteFleetMetricInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeleteFleetMetric", params, optFns, c.addOperationDeleteFleetMetricMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeleteFleetMetricOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeleteFleetMetricInput struct { + + // The name of the fleet metric to delete. + // + // This member is required. + MetricName *string + + // The expected version of the fleet metric to delete. + ExpectedVersion *int64 + + noSmithyDocumentSerde +} + +type DeleteFleetMetricOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeleteFleetMetricMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpDeleteFleetMetric{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDeleteFleetMetric{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpDeleteFleetMetricValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteFleetMetric(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDeleteFleetMetric(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "execute-api", + OperationName: "DeleteFleetMetric", + } +} diff --git a/service/iot/api_op_DeleteJob.go b/service/iot/api_op_DeleteJob.go index 4866a691bc0..1d916c94883 100644 --- a/service/iot/api_op_DeleteJob.go +++ b/service/iot/api_op_DeleteJob.go @@ -16,7 +16,9 @@ import ( // "DELETION_IN_PROGRESS". Attempting to delete or cancel a job whose status is // already "DELETION_IN_PROGRESS" will result in an error. Only 10 jobs may have // status "DELETION_IN_PROGRESS" at the same time, or a LimitExceededException will -// occur. +// occur. Requires permission to access the DeleteJob +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DeleteJob(ctx context.Context, params *DeleteJobInput, optFns ...func(*Options)) (*DeleteJobOutput, error) { if params == nil { params = &DeleteJobInput{} @@ -52,8 +54,8 @@ type DeleteJobInput struct { Force bool // The namespace used to indicate that a job is a customer-managed job. When you - // specify a value for this parameter, AWS IoT Core sends jobs notifications to - // MQTT topics that contain the value in the following format. + // specify a value for this parameter, Amazon Web Services IoT Core sends jobs + // notifications to MQTT topics that contain the value in the following format. // $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/ The // namespaceId feature is in public preview. NamespaceId *string diff --git a/service/iot/api_op_DeleteJobExecution.go b/service/iot/api_op_DeleteJobExecution.go index aaaa17739cc..c390403c708 100644 --- a/service/iot/api_op_DeleteJobExecution.go +++ b/service/iot/api_op_DeleteJobExecution.go @@ -10,7 +10,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes a job execution. +// Deletes a job execution. Requires permission to access the DeleteJobExecution +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DeleteJobExecution(ctx context.Context, params *DeleteJobExecutionInput, optFns ...func(*Options)) (*DeleteJobExecutionOutput, error) { if params == nil { params = &DeleteJobExecutionInput{} @@ -56,8 +58,8 @@ type DeleteJobExecutionInput struct { Force bool // The namespace used to indicate that a job is a customer-managed job. When you - // specify a value for this parameter, AWS IoT Core sends jobs notifications to - // MQTT topics that contain the value in the following format. + // specify a value for this parameter, Amazon Web Services IoT Core sends jobs + // notifications to MQTT topics that contain the value in the following format. // $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/ The // namespaceId feature is in public preview. NamespaceId *string diff --git a/service/iot/api_op_DeleteMitigationAction.go b/service/iot/api_op_DeleteMitigationAction.go index 7c7ee473e95..05d13e4c60c 100644 --- a/service/iot/api_op_DeleteMitigationAction.go +++ b/service/iot/api_op_DeleteMitigationAction.go @@ -10,7 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes a defined mitigation action from your AWS account. +// Deletes a defined mitigation action from your Amazon Web Services accounts. +// Requires permission to access the DeleteMitigationAction +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DeleteMitigationAction(ctx context.Context, params *DeleteMitigationActionInput, optFns ...func(*Options)) (*DeleteMitigationActionOutput, error) { if params == nil { params = &DeleteMitigationActionInput{} diff --git a/service/iot/api_op_DeleteOTAUpdate.go b/service/iot/api_op_DeleteOTAUpdate.go index f494e9087b9..598e0be4086 100644 --- a/service/iot/api_op_DeleteOTAUpdate.go +++ b/service/iot/api_op_DeleteOTAUpdate.go @@ -10,7 +10,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Delete an OTA update. +// Delete an OTA update. Requires permission to access the DeleteOTAUpdate +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DeleteOTAUpdate(ctx context.Context, params *DeleteOTAUpdateInput, optFns ...func(*Options)) (*DeleteOTAUpdateOutput, error) { if params == nil { params = &DeleteOTAUpdateInput{} @@ -38,7 +40,7 @@ type DeleteOTAUpdateInput struct { // by the user. DeleteStream bool - // When true, deletes the AWS job created by the OTAUpdate process even if it is + // When true, deletes the IoT job created by the OTAUpdate process even if it is // "IN_PROGRESS". Otherwise, if the job is not in a terminal state ("COMPLETED" or // "CANCELED") an exception will occur. The default is false. ForceDeleteAWSJob bool diff --git a/service/iot/api_op_DeletePolicy.go b/service/iot/api_op_DeletePolicy.go index 0b30c92b050..cc7fa00f025 100644 --- a/service/iot/api_op_DeletePolicy.go +++ b/service/iot/api_op_DeletePolicy.go @@ -12,10 +12,15 @@ import ( // Deletes the specified policy. A policy cannot be deleted if it has non-default // versions or it is attached to any certificate. To delete a policy, use the -// DeletePolicyVersion API to delete all non-default versions of the policy; use -// the DetachPrincipalPolicy API to detach the policy from any certificate; and -// then use the DeletePolicy API to delete the policy. When a policy is deleted -// using DeletePolicy, its default version is deleted with it. +// DeletePolicyVersion action to delete all non-default versions of the policy; use +// the DetachPolicy action to detach the policy from any certificate; and then use +// the DeletePolicy action to delete the policy. When a policy is deleted using +// DeletePolicy, its default version is deleted with it. Because of the distributed +// nature of Amazon Web Services, it can take up to five minutes after a policy is +// detached before it's ready to be deleted. Requires permission to access the +// DeletePolicy +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DeletePolicy(ctx context.Context, params *DeletePolicyInput, optFns ...func(*Options)) (*DeletePolicyOutput, error) { if params == nil { params = &DeletePolicyInput{} diff --git a/service/iot/api_op_DeletePolicyVersion.go b/service/iot/api_op_DeletePolicyVersion.go index d5a5481be6b..948cc5dc120 100644 --- a/service/iot/api_op_DeletePolicyVersion.go +++ b/service/iot/api_op_DeletePolicyVersion.go @@ -11,9 +11,12 @@ import ( ) // Deletes the specified version of the specified policy. You cannot delete the -// default version of a policy using this API. To delete the default version of a -// policy, use DeletePolicy. To find out which version of a policy is marked as the -// default version, use ListPolicyVersions. +// default version of a policy using this action. To delete the default version of +// a policy, use DeletePolicy. To find out which version of a policy is marked as +// the default version, use ListPolicyVersions. Requires permission to access the +// DeletePolicyVersion +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DeletePolicyVersion(ctx context.Context, params *DeletePolicyVersionInput, optFns ...func(*Options)) (*DeletePolicyVersionOutput, error) { if params == nil { params = &DeletePolicyVersionInput{} diff --git a/service/iot/api_op_DeleteProvisioningTemplate.go b/service/iot/api_op_DeleteProvisioningTemplate.go index 55142b4a929..0f90cf14698 100644 --- a/service/iot/api_op_DeleteProvisioningTemplate.go +++ b/service/iot/api_op_DeleteProvisioningTemplate.go @@ -10,7 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes a fleet provisioning template. +// Deletes a fleet provisioning template. Requires permission to access the +// DeleteProvisioningTemplate +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DeleteProvisioningTemplate(ctx context.Context, params *DeleteProvisioningTemplateInput, optFns ...func(*Options)) (*DeleteProvisioningTemplateOutput, error) { if params == nil { params = &DeleteProvisioningTemplateInput{} diff --git a/service/iot/api_op_DeleteProvisioningTemplateVersion.go b/service/iot/api_op_DeleteProvisioningTemplateVersion.go index f01612c6da9..81d38941ab4 100644 --- a/service/iot/api_op_DeleteProvisioningTemplateVersion.go +++ b/service/iot/api_op_DeleteProvisioningTemplateVersion.go @@ -10,7 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes a fleet provisioning template version. +// Deletes a fleet provisioning template version. Requires permission to access the +// DeleteProvisioningTemplateVersion +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DeleteProvisioningTemplateVersion(ctx context.Context, params *DeleteProvisioningTemplateVersionInput, optFns ...func(*Options)) (*DeleteProvisioningTemplateVersionOutput, error) { if params == nil { params = &DeleteProvisioningTemplateVersionInput{} diff --git a/service/iot/api_op_DeleteRegistrationCode.go b/service/iot/api_op_DeleteRegistrationCode.go index 516d8459009..f19ed92bd70 100644 --- a/service/iot/api_op_DeleteRegistrationCode.go +++ b/service/iot/api_op_DeleteRegistrationCode.go @@ -10,7 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes a CA certificate registration code. +// Deletes a CA certificate registration code. Requires permission to access the +// DeleteRegistrationCode +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DeleteRegistrationCode(ctx context.Context, params *DeleteRegistrationCodeInput, optFns ...func(*Options)) (*DeleteRegistrationCodeOutput, error) { if params == nil { params = &DeleteRegistrationCodeInput{} diff --git a/service/iot/api_op_DeleteRoleAlias.go b/service/iot/api_op_DeleteRoleAlias.go index e614671112e..57a6a67c23d 100644 --- a/service/iot/api_op_DeleteRoleAlias.go +++ b/service/iot/api_op_DeleteRoleAlias.go @@ -10,7 +10,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes a role alias +// Deletes a role alias Requires permission to access the DeleteRoleAlias +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DeleteRoleAlias(ctx context.Context, params *DeleteRoleAliasInput, optFns ...func(*Options)) (*DeleteRoleAliasOutput, error) { if params == nil { params = &DeleteRoleAliasInput{} diff --git a/service/iot/api_op_DeleteScheduledAudit.go b/service/iot/api_op_DeleteScheduledAudit.go index e44b625ddcc..029c57ca403 100644 --- a/service/iot/api_op_DeleteScheduledAudit.go +++ b/service/iot/api_op_DeleteScheduledAudit.go @@ -10,7 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes a scheduled audit. +// Deletes a scheduled audit. Requires permission to access the +// DeleteScheduledAudit +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DeleteScheduledAudit(ctx context.Context, params *DeleteScheduledAuditInput, optFns ...func(*Options)) (*DeleteScheduledAuditOutput, error) { if params == nil { params = &DeleteScheduledAuditInput{} diff --git a/service/iot/api_op_DeleteSecurityProfile.go b/service/iot/api_op_DeleteSecurityProfile.go index b35080fb1ea..7cb89a11eff 100644 --- a/service/iot/api_op_DeleteSecurityProfile.go +++ b/service/iot/api_op_DeleteSecurityProfile.go @@ -10,7 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes a Device Defender security profile. +// Deletes a Device Defender security profile. Requires permission to access the +// DeleteSecurityProfile +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DeleteSecurityProfile(ctx context.Context, params *DeleteSecurityProfileInput, optFns ...func(*Options)) (*DeleteSecurityProfileOutput, error) { if params == nil { params = &DeleteSecurityProfileInput{} diff --git a/service/iot/api_op_DeleteStream.go b/service/iot/api_op_DeleteStream.go index 9af79aee1aa..026201f8e0c 100644 --- a/service/iot/api_op_DeleteStream.go +++ b/service/iot/api_op_DeleteStream.go @@ -10,7 +10,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes a stream. +// Deletes a stream. Requires permission to access the DeleteStream +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DeleteStream(ctx context.Context, params *DeleteStreamInput, optFns ...func(*Options)) (*DeleteStreamOutput, error) { if params == nil { params = &DeleteStreamInput{} diff --git a/service/iot/api_op_DeleteThing.go b/service/iot/api_op_DeleteThing.go index 23497f7aa63..8f78ed31808 100644 --- a/service/iot/api_op_DeleteThing.go +++ b/service/iot/api_op_DeleteThing.go @@ -11,7 +11,10 @@ import ( ) // Deletes the specified thing. Returns successfully with no error if the deletion -// is successful or you specify a thing that doesn't exist. +// is successful or you specify a thing that doesn't exist. Requires permission to +// access the DeleteThing +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DeleteThing(ctx context.Context, params *DeleteThingInput, optFns ...func(*Options)) (*DeleteThingOutput, error) { if params == nil { params = &DeleteThingInput{} diff --git a/service/iot/api_op_DeleteThingGroup.go b/service/iot/api_op_DeleteThingGroup.go index 578bfc9a8c2..58a395bc58d 100644 --- a/service/iot/api_op_DeleteThingGroup.go +++ b/service/iot/api_op_DeleteThingGroup.go @@ -10,7 +10,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes a thing group. +// Deletes a thing group. Requires permission to access the DeleteThingGroup +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DeleteThingGroup(ctx context.Context, params *DeleteThingGroupInput, optFns ...func(*Options)) (*DeleteThingGroupOutput, error) { if params == nil { params = &DeleteThingGroupInput{} diff --git a/service/iot/api_op_DeleteThingType.go b/service/iot/api_op_DeleteThingType.go index 70c9e8744a5..ddccb5f90da 100644 --- a/service/iot/api_op_DeleteThingType.go +++ b/service/iot/api_op_DeleteThingType.go @@ -14,7 +14,10 @@ import ( // things associated with it. To delete a thing type, first mark it as deprecated // by calling DeprecateThingType, then remove any associated things by calling // UpdateThing to change the thing type on any associated thing, and finally use -// DeleteThingType to delete the thing type. +// DeleteThingType to delete the thing type. Requires permission to access the +// DeleteThingType +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DeleteThingType(ctx context.Context, params *DeleteThingTypeInput, optFns ...func(*Options)) (*DeleteThingTypeOutput, error) { if params == nil { params = &DeleteThingTypeInput{} diff --git a/service/iot/api_op_DeleteTopicRule.go b/service/iot/api_op_DeleteTopicRule.go index 34601088b0a..05e0f0a6d0f 100644 --- a/service/iot/api_op_DeleteTopicRule.go +++ b/service/iot/api_op_DeleteTopicRule.go @@ -10,7 +10,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes the rule. +// Deletes the rule. Requires permission to access the DeleteTopicRule +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DeleteTopicRule(ctx context.Context, params *DeleteTopicRuleInput, optFns ...func(*Options)) (*DeleteTopicRuleOutput, error) { if params == nil { params = &DeleteTopicRuleInput{} diff --git a/service/iot/api_op_DeleteTopicRuleDestination.go b/service/iot/api_op_DeleteTopicRuleDestination.go index 64f6ec12f83..7e35ea26a88 100644 --- a/service/iot/api_op_DeleteTopicRuleDestination.go +++ b/service/iot/api_op_DeleteTopicRuleDestination.go @@ -10,7 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes a topic rule destination. +// Deletes a topic rule destination. Requires permission to access the +// DeleteTopicRuleDestination +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DeleteTopicRuleDestination(ctx context.Context, params *DeleteTopicRuleDestinationInput, optFns ...func(*Options)) (*DeleteTopicRuleDestinationOutput, error) { if params == nil { params = &DeleteTopicRuleDestinationInput{} diff --git a/service/iot/api_op_DeleteV2LoggingLevel.go b/service/iot/api_op_DeleteV2LoggingLevel.go index 74fa5e7857a..002b65f530a 100644 --- a/service/iot/api_op_DeleteV2LoggingLevel.go +++ b/service/iot/api_op_DeleteV2LoggingLevel.go @@ -11,7 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes a logging level. +// Deletes a logging level. Requires permission to access the DeleteV2LoggingLevel +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DeleteV2LoggingLevel(ctx context.Context, params *DeleteV2LoggingLevelInput, optFns ...func(*Options)) (*DeleteV2LoggingLevelOutput, error) { if params == nil { params = &DeleteV2LoggingLevelInput{} diff --git a/service/iot/api_op_DeprecateThingType.go b/service/iot/api_op_DeprecateThingType.go index b9c7626f1d7..5216244e98a 100644 --- a/service/iot/api_op_DeprecateThingType.go +++ b/service/iot/api_op_DeprecateThingType.go @@ -11,7 +11,9 @@ import ( ) // Deprecates a thing type. You can not associate new things with deprecated thing -// type. +// type. Requires permission to access the DeprecateThingType +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DeprecateThingType(ctx context.Context, params *DeprecateThingTypeInput, optFns ...func(*Options)) (*DeprecateThingTypeOutput, error) { if params == nil { params = &DeprecateThingTypeInput{} diff --git a/service/iot/api_op_DescribeAccountAuditConfiguration.go b/service/iot/api_op_DescribeAccountAuditConfiguration.go index cb149e38a3c..042b5f25b98 100644 --- a/service/iot/api_op_DescribeAccountAuditConfiguration.go +++ b/service/iot/api_op_DescribeAccountAuditConfiguration.go @@ -13,7 +13,10 @@ import ( // Gets information about the Device Defender audit settings for this account. // Settings include how audit notifications are sent and which audit checks are -// enabled or disabled. +// enabled or disabled. Requires permission to access the +// DescribeAccountAuditConfiguration +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DescribeAccountAuditConfiguration(ctx context.Context, params *DescribeAccountAuditConfigurationInput, optFns ...func(*Options)) (*DescribeAccountAuditConfigurationOutput, error) { if params == nil { params = &DescribeAccountAuditConfigurationInput{} @@ -42,8 +45,8 @@ type DescribeAccountAuditConfigurationOutput struct { // account. AuditNotificationTargetConfigurations map[string]types.AuditNotificationTarget - // The ARN of the role that grants permission to AWS IoT to access information - // about your devices, policies, certificates, and other items as required when + // The ARN of the role that grants permission to IoT to access information about + // your devices, policies, certificates, and other items as required when // performing an audit. On the first call to UpdateAccountAuditConfiguration, this // parameter is required. RoleArn *string diff --git a/service/iot/api_op_DescribeAuditFinding.go b/service/iot/api_op_DescribeAuditFinding.go index 08f8a4434ed..8f459b9f30f 100644 --- a/service/iot/api_op_DescribeAuditFinding.go +++ b/service/iot/api_op_DescribeAuditFinding.go @@ -13,7 +13,9 @@ import ( // Gets information about a single audit finding. Properties include the reason for // noncompliance, the severity of the issue, and the start time when the audit that -// returned the finding. +// returned the finding. Requires permission to access the DescribeAuditFinding +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DescribeAuditFinding(ctx context.Context, params *DescribeAuditFindingInput, optFns ...func(*Options)) (*DescribeAuditFindingOutput, error) { if params == nil { params = &DescribeAuditFindingInput{} diff --git a/service/iot/api_op_DescribeAuditTask.go b/service/iot/api_op_DescribeAuditTask.go index d1c15ff6419..6daf855b986 100644 --- a/service/iot/api_op_DescribeAuditTask.go +++ b/service/iot/api_op_DescribeAuditTask.go @@ -12,7 +12,10 @@ import ( "time" ) -// Gets information about a Device Defender audit. +// Gets information about a Device Defender audit. Requires permission to access +// the DescribeAuditTask +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DescribeAuditTask(ctx context.Context, params *DescribeAuditTaskInput, optFns ...func(*Options)) (*DescribeAuditTaskOutput, error) { if params == nil { params = &DescribeAuditTaskInput{} diff --git a/service/iot/api_op_DescribeAuthorizer.go b/service/iot/api_op_DescribeAuthorizer.go index e8fd8ece406..7ad1f2fc1b4 100644 --- a/service/iot/api_op_DescribeAuthorizer.go +++ b/service/iot/api_op_DescribeAuthorizer.go @@ -11,7 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Describes an authorizer. +// Describes an authorizer. Requires permission to access the DescribeAuthorizer +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DescribeAuthorizer(ctx context.Context, params *DescribeAuthorizerInput, optFns ...func(*Options)) (*DescribeAuthorizerOutput, error) { if params == nil { params = &DescribeAuthorizerInput{} diff --git a/service/iot/api_op_DescribeBillingGroup.go b/service/iot/api_op_DescribeBillingGroup.go index 2d0bb936179..9ada129ca78 100644 --- a/service/iot/api_op_DescribeBillingGroup.go +++ b/service/iot/api_op_DescribeBillingGroup.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns information about a billing group. +// Returns information about a billing group. Requires permission to access the +// DescribeBillingGroup +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DescribeBillingGroup(ctx context.Context, params *DescribeBillingGroupInput, optFns ...func(*Options)) (*DescribeBillingGroupOutput, error) { if params == nil { params = &DescribeBillingGroupInput{} diff --git a/service/iot/api_op_DescribeCACertificate.go b/service/iot/api_op_DescribeCACertificate.go index 59a6786e565..b253fda8710 100644 --- a/service/iot/api_op_DescribeCACertificate.go +++ b/service/iot/api_op_DescribeCACertificate.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Describes a registered CA certificate. +// Describes a registered CA certificate. Requires permission to access the +// DescribeCACertificate +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DescribeCACertificate(ctx context.Context, params *DescribeCACertificateInput, optFns ...func(*Options)) (*DescribeCACertificateOutput, error) { if params == nil { params = &DescribeCACertificateInput{} diff --git a/service/iot/api_op_DescribeCertificate.go b/service/iot/api_op_DescribeCertificate.go index 34c038d4f73..4151e710e51 100644 --- a/service/iot/api_op_DescribeCertificate.go +++ b/service/iot/api_op_DescribeCertificate.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Gets information about the specified certificate. +// Gets information about the specified certificate. Requires permission to access +// the DescribeCertificate +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DescribeCertificate(ctx context.Context, params *DescribeCertificateInput, optFns ...func(*Options)) (*DescribeCertificateOutput, error) { if params == nil { params = &DescribeCertificateInput{} diff --git a/service/iot/api_op_DescribeCustomMetric.go b/service/iot/api_op_DescribeCustomMetric.go index 036b63c6ee7..fded5b9107f 100644 --- a/service/iot/api_op_DescribeCustomMetric.go +++ b/service/iot/api_op_DescribeCustomMetric.go @@ -12,7 +12,10 @@ import ( "time" ) -// Gets information about a Device Defender detect custom metric. +// Gets information about a Device Defender detect custom metric. Requires +// permission to access the DescribeCustomMetric +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DescribeCustomMetric(ctx context.Context, params *DescribeCustomMetricInput, optFns ...func(*Options)) (*DescribeCustomMetricOutput, error) { if params == nil { params = &DescribeCustomMetricInput{} diff --git a/service/iot/api_op_DescribeDefaultAuthorizer.go b/service/iot/api_op_DescribeDefaultAuthorizer.go index 62eb7a7ebe4..f5e17aab404 100644 --- a/service/iot/api_op_DescribeDefaultAuthorizer.go +++ b/service/iot/api_op_DescribeDefaultAuthorizer.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Describes the default authorizer. +// Describes the default authorizer. Requires permission to access the +// DescribeDefaultAuthorizer +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DescribeDefaultAuthorizer(ctx context.Context, params *DescribeDefaultAuthorizerInput, optFns ...func(*Options)) (*DescribeDefaultAuthorizerOutput, error) { if params == nil { params = &DescribeDefaultAuthorizerInput{} diff --git a/service/iot/api_op_DescribeDetectMitigationActionsTask.go b/service/iot/api_op_DescribeDetectMitigationActionsTask.go index 34cee17defa..c6fe2caf6ec 100644 --- a/service/iot/api_op_DescribeDetectMitigationActionsTask.go +++ b/service/iot/api_op_DescribeDetectMitigationActionsTask.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Gets information about a Device Defender ML Detect mitigation action. +// Gets information about a Device Defender ML Detect mitigation action. Requires +// permission to access the DescribeDetectMitigationActionsTask +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DescribeDetectMitigationActionsTask(ctx context.Context, params *DescribeDetectMitigationActionsTaskInput, optFns ...func(*Options)) (*DescribeDetectMitigationActionsTaskOutput, error) { if params == nil { params = &DescribeDetectMitigationActionsTaskInput{} diff --git a/service/iot/api_op_DescribeDimension.go b/service/iot/api_op_DescribeDimension.go index c8a52cc071c..52d0cd4c106 100644 --- a/service/iot/api_op_DescribeDimension.go +++ b/service/iot/api_op_DescribeDimension.go @@ -12,7 +12,10 @@ import ( "time" ) -// Provides details about a dimension that is defined in your AWS account. +// Provides details about a dimension that is defined in your Amazon Web Services +// accounts. Requires permission to access the DescribeDimension +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DescribeDimension(ctx context.Context, params *DescribeDimensionInput, optFns ...func(*Options)) (*DescribeDimensionOutput, error) { if params == nil { params = &DescribeDimensionInput{} diff --git a/service/iot/api_op_DescribeDomainConfiguration.go b/service/iot/api_op_DescribeDomainConfiguration.go index 4ca12413260..7cead659418 100644 --- a/service/iot/api_op_DescribeDomainConfiguration.go +++ b/service/iot/api_op_DescribeDomainConfiguration.go @@ -12,7 +12,10 @@ import ( "time" ) -// Gets summary information about a domain configuration. +// Gets summary information about a domain configuration. Requires permission to +// access the DescribeDomainConfiguration +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DescribeDomainConfiguration(ctx context.Context, params *DescribeDomainConfigurationInput, optFns ...func(*Options)) (*DescribeDomainConfigurationOutput, error) { if params == nil { params = &DescribeDomainConfigurationInput{} diff --git a/service/iot/api_op_DescribeEndpoint.go b/service/iot/api_op_DescribeEndpoint.go index a7f2ac12386..e424f408f37 100644 --- a/service/iot/api_op_DescribeEndpoint.go +++ b/service/iot/api_op_DescribeEndpoint.go @@ -10,7 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns a unique endpoint specific to the AWS account making the call. +// Returns a unique endpoint specific to the Amazon Web Services account making the +// call. Requires permission to access the DescribeEndpoint +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DescribeEndpoint(ctx context.Context, params *DescribeEndpointInput, optFns ...func(*Options)) (*DescribeEndpointOutput, error) { if params == nil { params = &DescribeEndpointInput{} @@ -37,15 +40,15 @@ type DescribeEndpointInput struct { // * iot:Data-ATS - Returns an ATS signed data // endpoint. // - // * iot:CredentialProvider - Returns an AWS IoT credentials provider - // API endpoint. - // - // * iot:Jobs - Returns an AWS IoT device management Jobs API + // * iot:CredentialProvider - Returns an IoT credentials provider API // endpoint. // - // We strongly recommend that customers use the newer iot:Data-ATS - // endpoint type to avoid issues related to the widespread distrust of Symantec - // certificate authorities. + // * iot:Jobs - Returns an IoT device management Jobs API endpoint. + // + // We + // strongly recommend that customers use the newer iot:Data-ATS endpoint type to + // avoid issues related to the widespread distrust of Symantec certificate + // authorities. EndpointType *string noSmithyDocumentSerde diff --git a/service/iot/api_op_DescribeEventConfigurations.go b/service/iot/api_op_DescribeEventConfigurations.go index 4339c1851bd..7fca8a4ba39 100644 --- a/service/iot/api_op_DescribeEventConfigurations.go +++ b/service/iot/api_op_DescribeEventConfigurations.go @@ -12,7 +12,10 @@ import ( "time" ) -// Describes event configurations. +// Describes event configurations. Requires permission to access the +// DescribeEventConfigurations +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DescribeEventConfigurations(ctx context.Context, params *DescribeEventConfigurationsInput, optFns ...func(*Options)) (*DescribeEventConfigurationsOutput, error) { if params == nil { params = &DescribeEventConfigurationsInput{} diff --git a/service/iot/api_op_DescribeFleetMetric.go b/service/iot/api_op_DescribeFleetMetric.go new file mode 100644 index 00000000000..ed15499a8c3 --- /dev/null +++ b/service/iot/api_op_DescribeFleetMetric.go @@ -0,0 +1,164 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package iot + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/iot/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "time" +) + +// Gets information about the specified fleet metric. Requires permission to access +// the DescribeFleetMetric +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. +func (c *Client) DescribeFleetMetric(ctx context.Context, params *DescribeFleetMetricInput, optFns ...func(*Options)) (*DescribeFleetMetricOutput, error) { + if params == nil { + params = &DescribeFleetMetricInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DescribeFleetMetric", params, optFns, c.addOperationDescribeFleetMetricMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DescribeFleetMetricOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DescribeFleetMetricInput struct { + + // The name of the fleet metric to describe. + // + // This member is required. + MetricName *string + + noSmithyDocumentSerde +} + +type DescribeFleetMetricOutput struct { + + // The field to aggregate. + AggregationField *string + + // The type of the aggregation query. + AggregationType *types.AggregationType + + // The date when the fleet metric is created. + CreationDate *time.Time + + // The fleet metric description. + Description *string + + // The name of the index to search. + IndexName *string + + // The date when the fleet metric is last modified. + LastModifiedDate *time.Time + + // The ARN of the fleet metric to describe. + MetricArn *string + + // The name of the fleet metric to describe. + MetricName *string + + // The time in seconds between fleet metric emissions. Range [60(1 min), 86400(1 + // day)] and must be multiple of 60. + Period *int32 + + // The search query string. + QueryString *string + + // The query version. + QueryVersion *string + + // Used to support unit transformation such as milliseconds to seconds. The unit + // must be supported by CW metric + // (https://docs.aws.amazon.com/https:/docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html). + Unit types.FleetMetricUnit + + // The version of the fleet metric. + Version int64 + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDescribeFleetMetricMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpDescribeFleetMetric{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDescribeFleetMetric{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpDescribeFleetMetricValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeFleetMetric(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDescribeFleetMetric(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "execute-api", + OperationName: "DescribeFleetMetric", + } +} diff --git a/service/iot/api_op_DescribeIndex.go b/service/iot/api_op_DescribeIndex.go index a9fb156a9a4..3b190bc15b6 100644 --- a/service/iot/api_op_DescribeIndex.go +++ b/service/iot/api_op_DescribeIndex.go @@ -11,7 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Describes a search index. +// Describes a search index. Requires permission to access the DescribeIndex +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DescribeIndex(ctx context.Context, params *DescribeIndexInput, optFns ...func(*Options)) (*DescribeIndexOutput, error) { if params == nil { params = &DescribeIndexInput{} diff --git a/service/iot/api_op_DescribeJob.go b/service/iot/api_op_DescribeJob.go index d9befb88034..55a7414bcd3 100644 --- a/service/iot/api_op_DescribeJob.go +++ b/service/iot/api_op_DescribeJob.go @@ -11,7 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Describes a job. +// Describes a job. Requires permission to access the DescribeJob +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DescribeJob(ctx context.Context, params *DescribeJobInput, optFns ...func(*Options)) (*DescribeJobOutput, error) { if params == nil { params = &DescribeJobInput{} diff --git a/service/iot/api_op_DescribeJobExecution.go b/service/iot/api_op_DescribeJobExecution.go index 5f4695391b2..20a0084b0f5 100644 --- a/service/iot/api_op_DescribeJobExecution.go +++ b/service/iot/api_op_DescribeJobExecution.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Describes a job execution. +// Describes a job execution. Requires permission to access the +// DescribeJobExecution +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DescribeJobExecution(ctx context.Context, params *DescribeJobExecutionInput, optFns ...func(*Options)) (*DescribeJobExecutionOutput, error) { if params == nil { params = &DescribeJobExecutionInput{} diff --git a/service/iot/api_op_DescribeMitigationAction.go b/service/iot/api_op_DescribeMitigationAction.go index 2fb079e7934..71beb68e739 100644 --- a/service/iot/api_op_DescribeMitigationAction.go +++ b/service/iot/api_op_DescribeMitigationAction.go @@ -12,7 +12,10 @@ import ( "time" ) -// Gets information about a mitigation action. +// Gets information about a mitigation action. Requires permission to access the +// DescribeMitigationAction +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DescribeMitigationAction(ctx context.Context, params *DescribeMitigationActionInput, optFns ...func(*Options)) (*DescribeMitigationActionOutput, error) { if params == nil { params = &DescribeMitigationActionInput{} @@ -56,7 +59,8 @@ type DescribeMitigationActionOutput struct { // The type of mitigation action. ActionType types.MitigationActionType - // The date and time when the mitigation action was added to your AWS account. + // The date and time when the mitigation action was added to your Amazon Web + // Services accounts. CreationDate *time.Time // The date and time when the mitigation action was last changed. diff --git a/service/iot/api_op_DescribeProvisioningTemplate.go b/service/iot/api_op_DescribeProvisioningTemplate.go index 9f1ed9a8d05..84df48269e2 100644 --- a/service/iot/api_op_DescribeProvisioningTemplate.go +++ b/service/iot/api_op_DescribeProvisioningTemplate.go @@ -12,7 +12,10 @@ import ( "time" ) -// Returns information about a fleet provisioning template. +// Returns information about a fleet provisioning template. Requires permission to +// access the DescribeProvisioningTemplate +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DescribeProvisioningTemplate(ctx context.Context, params *DescribeProvisioningTemplateInput, optFns ...func(*Options)) (*DescribeProvisioningTemplateOutput, error) { if params == nil { params = &DescribeProvisioningTemplateInput{} diff --git a/service/iot/api_op_DescribeProvisioningTemplateVersion.go b/service/iot/api_op_DescribeProvisioningTemplateVersion.go index 8f52d9f6ef1..5150b0ec3e0 100644 --- a/service/iot/api_op_DescribeProvisioningTemplateVersion.go +++ b/service/iot/api_op_DescribeProvisioningTemplateVersion.go @@ -11,7 +11,10 @@ import ( "time" ) -// Returns information about a fleet provisioning template version. +// Returns information about a fleet provisioning template version. Requires +// permission to access the DescribeProvisioningTemplateVersion +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DescribeProvisioningTemplateVersion(ctx context.Context, params *DescribeProvisioningTemplateVersionInput, optFns ...func(*Options)) (*DescribeProvisioningTemplateVersionOutput, error) { if params == nil { params = &DescribeProvisioningTemplateVersionInput{} diff --git a/service/iot/api_op_DescribeRoleAlias.go b/service/iot/api_op_DescribeRoleAlias.go index 38eb75de492..73fa4ea67b0 100644 --- a/service/iot/api_op_DescribeRoleAlias.go +++ b/service/iot/api_op_DescribeRoleAlias.go @@ -11,7 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Describes a role alias. +// Describes a role alias. Requires permission to access the DescribeRoleAlias +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DescribeRoleAlias(ctx context.Context, params *DescribeRoleAliasInput, optFns ...func(*Options)) (*DescribeRoleAliasOutput, error) { if params == nil { params = &DescribeRoleAliasInput{} diff --git a/service/iot/api_op_DescribeScheduledAudit.go b/service/iot/api_op_DescribeScheduledAudit.go index 1bdedeee504..690370f39b6 100644 --- a/service/iot/api_op_DescribeScheduledAudit.go +++ b/service/iot/api_op_DescribeScheduledAudit.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Gets information about a scheduled audit. +// Gets information about a scheduled audit. Requires permission to access the +// DescribeScheduledAudit +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DescribeScheduledAudit(ctx context.Context, params *DescribeScheduledAuditInput, optFns ...func(*Options)) (*DescribeScheduledAuditOutput, error) { if params == nil { params = &DescribeScheduledAuditInput{} diff --git a/service/iot/api_op_DescribeSecurityProfile.go b/service/iot/api_op_DescribeSecurityProfile.go index ce20ce2ab67..9c507817d6b 100644 --- a/service/iot/api_op_DescribeSecurityProfile.go +++ b/service/iot/api_op_DescribeSecurityProfile.go @@ -12,7 +12,10 @@ import ( "time" ) -// Gets information about a Device Defender security profile. +// Gets information about a Device Defender security profile. Requires permission +// to access the DescribeSecurityProfile +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DescribeSecurityProfile(ctx context.Context, params *DescribeSecurityProfileInput, optFns ...func(*Options)) (*DescribeSecurityProfileOutput, error) { if params == nil { params = &DescribeSecurityProfileInput{} diff --git a/service/iot/api_op_DescribeStream.go b/service/iot/api_op_DescribeStream.go index 60acc1daa73..a6ed23fc819 100644 --- a/service/iot/api_op_DescribeStream.go +++ b/service/iot/api_op_DescribeStream.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Gets information about a stream. +// Gets information about a stream. Requires permission to access the +// DescribeStream +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DescribeStream(ctx context.Context, params *DescribeStreamInput, optFns ...func(*Options)) (*DescribeStreamOutput, error) { if params == nil { params = &DescribeStreamInput{} diff --git a/service/iot/api_op_DescribeThing.go b/service/iot/api_op_DescribeThing.go index 3eabc81ee83..088282e0294 100644 --- a/service/iot/api_op_DescribeThing.go +++ b/service/iot/api_op_DescribeThing.go @@ -10,7 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Gets information about the specified thing. +// Gets information about the specified thing. Requires permission to access the +// DescribeThing +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DescribeThing(ctx context.Context, params *DescribeThingInput, optFns ...func(*Options)) (*DescribeThingOutput, error) { if params == nil { params = &DescribeThingInput{} @@ -51,7 +54,7 @@ type DescribeThingOutput struct { // thing's registry name and its use of MQTT client IDs, certificates, or shadow // state, we recommend that you choose a thing name and use it as the MQTT client // ID for the registry and the Device Shadow service. This lets you better organize - // your AWS IoT fleet without removing the flexibility of the underlying device + // your IoT fleet without removing the flexibility of the underlying device // certificate model or shadows. DefaultClientId *string diff --git a/service/iot/api_op_DescribeThingGroup.go b/service/iot/api_op_DescribeThingGroup.go index 0f96005932e..f3fd66e70b0 100644 --- a/service/iot/api_op_DescribeThingGroup.go +++ b/service/iot/api_op_DescribeThingGroup.go @@ -11,7 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Describe a thing group. +// Describe a thing group. Requires permission to access the DescribeThingGroup +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DescribeThingGroup(ctx context.Context, params *DescribeThingGroupInput, optFns ...func(*Options)) (*DescribeThingGroupOutput, error) { if params == nil { params = &DescribeThingGroupInput{} diff --git a/service/iot/api_op_DescribeThingRegistrationTask.go b/service/iot/api_op_DescribeThingRegistrationTask.go index 6947ae97872..69775229053 100644 --- a/service/iot/api_op_DescribeThingRegistrationTask.go +++ b/service/iot/api_op_DescribeThingRegistrationTask.go @@ -12,7 +12,10 @@ import ( "time" ) -// Describes a bulk thing provisioning task. +// Describes a bulk thing provisioning task. Requires permission to access the +// DescribeThingRegistrationTask +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DescribeThingRegistrationTask(ctx context.Context, params *DescribeThingRegistrationTaskInput, optFns ...func(*Options)) (*DescribeThingRegistrationTaskOutput, error) { if params == nil { params = &DescribeThingRegistrationTaskInput{} diff --git a/service/iot/api_op_DescribeThingType.go b/service/iot/api_op_DescribeThingType.go index 8f13324685e..907ce4f8b36 100644 --- a/service/iot/api_op_DescribeThingType.go +++ b/service/iot/api_op_DescribeThingType.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Gets information about the specified thing type. +// Gets information about the specified thing type. Requires permission to access +// the DescribeThingType +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DescribeThingType(ctx context.Context, params *DescribeThingTypeInput, optFns ...func(*Options)) (*DescribeThingTypeOutput, error) { if params == nil { params = &DescribeThingTypeInput{} diff --git a/service/iot/api_op_DetachPolicy.go b/service/iot/api_op_DetachPolicy.go index bc5453d595c..aefdce71d66 100644 --- a/service/iot/api_op_DetachPolicy.go +++ b/service/iot/api_op_DetachPolicy.go @@ -10,7 +10,12 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Detaches a policy from the specified target. +// Detaches a policy from the specified target. Because of the distributed nature +// of Amazon Web Services, it can take up to five minutes after a policy is +// detached before it's ready to be deleted. Requires permission to access the +// DetachPolicy +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DetachPolicy(ctx context.Context, params *DetachPolicyInput, optFns ...func(*Options)) (*DetachPolicyOutput, error) { if params == nil { params = &DetachPolicyInput{} diff --git a/service/iot/api_op_DetachPrincipalPolicy.go b/service/iot/api_op_DetachPrincipalPolicy.go index b0eab2eff6a..515d5ca574d 100644 --- a/service/iot/api_op_DetachPrincipalPolicy.go +++ b/service/iot/api_op_DetachPrincipalPolicy.go @@ -10,8 +10,11 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Removes the specified policy from the specified certificate. Note: This API is -// deprecated. Please use DetachPolicy instead. +// Removes the specified policy from the specified certificate. This action is +// deprecated. Please use DetachPolicy instead. Requires permission to access the +// DetachPrincipalPolicy +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. // // Deprecated: This operation has been deprecated. func (c *Client) DetachPrincipalPolicy(ctx context.Context, params *DetachPrincipalPolicyInput, optFns ...func(*Options)) (*DetachPrincipalPolicyOutput, error) { diff --git a/service/iot/api_op_DetachSecurityProfile.go b/service/iot/api_op_DetachSecurityProfile.go index 681d9ce3274..be51523b0ca 100644 --- a/service/iot/api_op_DetachSecurityProfile.go +++ b/service/iot/api_op_DetachSecurityProfile.go @@ -11,7 +11,9 @@ import ( ) // Disassociates a Device Defender security profile from a thing group or from this -// account. +// account. Requires permission to access the DetachSecurityProfile +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DetachSecurityProfile(ctx context.Context, params *DetachSecurityProfileInput, optFns ...func(*Options)) (*DetachSecurityProfileOutput, error) { if params == nil { params = &DetachSecurityProfileInput{} diff --git a/service/iot/api_op_DetachThingPrincipal.go b/service/iot/api_op_DetachThingPrincipal.go index bca47454788..c7e441f8979 100644 --- a/service/iot/api_op_DetachThingPrincipal.go +++ b/service/iot/api_op_DetachThingPrincipal.go @@ -13,7 +13,10 @@ import ( // Detaches the specified principal from the specified thing. A principal can be // X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities or // federated identities. This call is asynchronous. It might take several seconds -// for the detachment to propagate. +// for the detachment to propagate. Requires permission to access the +// DetachThingPrincipal +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DetachThingPrincipal(ctx context.Context, params *DetachThingPrincipalInput, optFns ...func(*Options)) (*DetachThingPrincipalOutput, error) { if params == nil { params = &DetachThingPrincipalInput{} diff --git a/service/iot/api_op_DisableTopicRule.go b/service/iot/api_op_DisableTopicRule.go index d87c55ea937..0e5bac597c7 100644 --- a/service/iot/api_op_DisableTopicRule.go +++ b/service/iot/api_op_DisableTopicRule.go @@ -10,7 +10,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Disables the rule. +// Disables the rule. Requires permission to access the DisableTopicRule +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) DisableTopicRule(ctx context.Context, params *DisableTopicRuleInput, optFns ...func(*Options)) (*DisableTopicRuleOutput, error) { if params == nil { params = &DisableTopicRuleInput{} diff --git a/service/iot/api_op_EnableTopicRule.go b/service/iot/api_op_EnableTopicRule.go index b5df093821c..ac628ae3965 100644 --- a/service/iot/api_op_EnableTopicRule.go +++ b/service/iot/api_op_EnableTopicRule.go @@ -10,7 +10,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Enables the rule. +// Enables the rule. Requires permission to access the EnableTopicRule +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) EnableTopicRule(ctx context.Context, params *EnableTopicRuleInput, optFns ...func(*Options)) (*EnableTopicRuleOutput, error) { if params == nil { params = &EnableTopicRuleInput{} diff --git a/service/iot/api_op_GetBehaviorModelTrainingSummaries.go b/service/iot/api_op_GetBehaviorModelTrainingSummaries.go index f5d93d7c5f8..5075487bf4b 100644 --- a/service/iot/api_op_GetBehaviorModelTrainingSummaries.go +++ b/service/iot/api_op_GetBehaviorModelTrainingSummaries.go @@ -13,6 +13,9 @@ import ( ) // Returns a Device Defender's ML Detect Security Profile training model's status. +// Requires permission to access the GetBehaviorModelTrainingSummaries +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) GetBehaviorModelTrainingSummaries(ctx context.Context, params *GetBehaviorModelTrainingSummariesInput, optFns ...func(*Options)) (*GetBehaviorModelTrainingSummariesOutput, error) { if params == nil { params = &GetBehaviorModelTrainingSummariesInput{} diff --git a/service/iot/api_op_GetBucketsAggregation.go b/service/iot/api_op_GetBucketsAggregation.go new file mode 100644 index 00000000000..9b6d2e88647 --- /dev/null +++ b/service/iot/api_op_GetBucketsAggregation.go @@ -0,0 +1,147 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package iot + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/iot/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Aggregates on indexed data with search queries pertaining to particular fields. +// Requires permission to access the GetBucketsAggregation +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. +func (c *Client) GetBucketsAggregation(ctx context.Context, params *GetBucketsAggregationInput, optFns ...func(*Options)) (*GetBucketsAggregationOutput, error) { + if params == nil { + params = &GetBucketsAggregationInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GetBucketsAggregation", params, optFns, c.addOperationGetBucketsAggregationMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GetBucketsAggregationOutput) + out.ResultMetadata = metadata + return out, nil +} + +type GetBucketsAggregationInput struct { + + // The aggregation field. + // + // This member is required. + AggregationField *string + + // The basic control of the response shape and the bucket aggregation type to + // perform. + // + // This member is required. + BucketsAggregationType *types.BucketsAggregationType + + // The search query string. + // + // This member is required. + QueryString *string + + // The name of the index to search. + IndexName *string + + // The version of the query. + QueryVersion *string + + noSmithyDocumentSerde +} + +type GetBucketsAggregationOutput struct { + + // The main part of the response with a list of buckets. Each bucket contains a + // keyValue and a count. keyValue: The aggregation field value counted for the + // particular bucket. count: The number of documents that have that value. + Buckets []types.Bucket + + // The total number of documents that fit the query string criteria and contain a + // value for the Aggregation field targeted in the request. + TotalCount int32 + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGetBucketsAggregationMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpGetBucketsAggregation{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpGetBucketsAggregation{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpGetBucketsAggregationValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetBucketsAggregation(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opGetBucketsAggregation(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "execute-api", + OperationName: "GetBucketsAggregation", + } +} diff --git a/service/iot/api_op_GetCardinality.go b/service/iot/api_op_GetCardinality.go index 0f80bb0c03b..6f888e66a0b 100644 --- a/service/iot/api_op_GetCardinality.go +++ b/service/iot/api_op_GetCardinality.go @@ -10,7 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns the approximate count of unique values that match the query. +// Returns the approximate count of unique values that match the query. Requires +// permission to access the GetCardinality +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) GetCardinality(ctx context.Context, params *GetCardinalityInput, optFns ...func(*Options)) (*GetCardinalityOutput, error) { if params == nil { params = &GetCardinalityInput{} @@ -28,7 +31,7 @@ func (c *Client) GetCardinality(ctx context.Context, params *GetCardinalityInput type GetCardinalityInput struct { - // The search query. + // The search query string. // // This member is required. QueryString *string diff --git a/service/iot/api_op_GetEffectivePolicies.go b/service/iot/api_op_GetEffectivePolicies.go index 427f117a9b5..75e02c93af9 100644 --- a/service/iot/api_op_GetEffectivePolicies.go +++ b/service/iot/api_op_GetEffectivePolicies.go @@ -12,7 +12,10 @@ import ( ) // Gets a list of the policies that have an effect on the authorization behavior of -// the specified device when it connects to the AWS IoT device gateway. +// the specified device when it connects to the IoT device gateway. Requires +// permission to access the GetEffectivePolicies +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) GetEffectivePolicies(ctx context.Context, params *GetEffectivePoliciesInput, optFns ...func(*Options)) (*GetEffectivePoliciesOutput, error) { if params == nil { params = &GetEffectivePoliciesInput{} diff --git a/service/iot/api_op_GetIndexingConfiguration.go b/service/iot/api_op_GetIndexingConfiguration.go index 07b3d627c94..d6796f0b102 100644 --- a/service/iot/api_op_GetIndexingConfiguration.go +++ b/service/iot/api_op_GetIndexingConfiguration.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Gets the indexing configuration. +// Gets the indexing configuration. Requires permission to access the +// GetIndexingConfiguration +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) GetIndexingConfiguration(ctx context.Context, params *GetIndexingConfigurationInput, optFns ...func(*Options)) (*GetIndexingConfigurationOutput, error) { if params == nil { params = &GetIndexingConfigurationInput{} diff --git a/service/iot/api_op_GetJobDocument.go b/service/iot/api_op_GetJobDocument.go index 6a978a83011..4a67177c92e 100644 --- a/service/iot/api_op_GetJobDocument.go +++ b/service/iot/api_op_GetJobDocument.go @@ -10,7 +10,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Gets a job document. +// Gets a job document. Requires permission to access the GetJobDocument +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) GetJobDocument(ctx context.Context, params *GetJobDocumentInput, optFns ...func(*Options)) (*GetJobDocumentOutput, error) { if params == nil { params = &GetJobDocumentInput{} diff --git a/service/iot/api_op_GetLoggingOptions.go b/service/iot/api_op_GetLoggingOptions.go index 87c49a2d355..228ddfa5cdd 100644 --- a/service/iot/api_op_GetLoggingOptions.go +++ b/service/iot/api_op_GetLoggingOptions.go @@ -12,7 +12,9 @@ import ( ) // Gets the logging options. NOTE: use of this command is not recommended. Use -// GetV2LoggingOptions instead. +// GetV2LoggingOptions instead. Requires permission to access the GetLoggingOptions +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) GetLoggingOptions(ctx context.Context, params *GetLoggingOptionsInput, optFns ...func(*Options)) (*GetLoggingOptionsOutput, error) { if params == nil { params = &GetLoggingOptionsInput{} diff --git a/service/iot/api_op_GetOTAUpdate.go b/service/iot/api_op_GetOTAUpdate.go index 5a1a78a9d9c..3587aea5d89 100644 --- a/service/iot/api_op_GetOTAUpdate.go +++ b/service/iot/api_op_GetOTAUpdate.go @@ -11,7 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Gets an OTA update. +// Gets an OTA update. Requires permission to access the GetOTAUpdate +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) GetOTAUpdate(ctx context.Context, params *GetOTAUpdateInput, optFns ...func(*Options)) (*GetOTAUpdateOutput, error) { if params == nil { params = &GetOTAUpdateInput{} diff --git a/service/iot/api_op_GetPercentiles.go b/service/iot/api_op_GetPercentiles.go index a801d72e6f5..684b93c8d23 100644 --- a/service/iot/api_op_GetPercentiles.go +++ b/service/iot/api_op_GetPercentiles.go @@ -19,7 +19,10 @@ import ( // percent of the values that match the query. The percentile group "5" contains // the aggregated field value that occurs in approximately five percent of the // values that match the query, and so on. The result is an approximation, the more -// values that match the query, the more accurate the percentile values. +// values that match the query, the more accurate the percentile values. Requires +// permission to access the GetPercentiles +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) GetPercentiles(ctx context.Context, params *GetPercentilesInput, optFns ...func(*Options)) (*GetPercentilesOutput, error) { if params == nil { params = &GetPercentilesInput{} @@ -37,7 +40,7 @@ func (c *Client) GetPercentiles(ctx context.Context, params *GetPercentilesInput type GetPercentilesInput struct { - // The query string. + // The search query string. // // This member is required. QueryString *string diff --git a/service/iot/api_op_GetPolicy.go b/service/iot/api_op_GetPolicy.go index 377eae509d6..88725262777 100644 --- a/service/iot/api_op_GetPolicy.go +++ b/service/iot/api_op_GetPolicy.go @@ -12,7 +12,9 @@ import ( ) // Gets information about the specified policy with the policy document of the -// default version. +// default version. Requires permission to access the GetPolicy +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) GetPolicy(ctx context.Context, params *GetPolicyInput, optFns ...func(*Options)) (*GetPolicyOutput, error) { if params == nil { params = &GetPolicyInput{} diff --git a/service/iot/api_op_GetPolicyVersion.go b/service/iot/api_op_GetPolicyVersion.go index 47fc7aaf0ce..35e90152dcd 100644 --- a/service/iot/api_op_GetPolicyVersion.go +++ b/service/iot/api_op_GetPolicyVersion.go @@ -11,7 +11,10 @@ import ( "time" ) -// Gets information about the specified policy version. +// Gets information about the specified policy version. Requires permission to +// access the GetPolicyVersion +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) GetPolicyVersion(ctx context.Context, params *GetPolicyVersionInput, optFns ...func(*Options)) (*GetPolicyVersionOutput, error) { if params == nil { params = &GetPolicyVersionInput{} diff --git a/service/iot/api_op_GetRegistrationCode.go b/service/iot/api_op_GetRegistrationCode.go index 0b5ba131203..70a5b0e7c04 100644 --- a/service/iot/api_op_GetRegistrationCode.go +++ b/service/iot/api_op_GetRegistrationCode.go @@ -10,7 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Gets a registration code used to register a CA certificate with AWS IoT. +// Gets a registration code used to register a CA certificate with IoT. Requires +// permission to access the GetRegistrationCode +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) GetRegistrationCode(ctx context.Context, params *GetRegistrationCodeInput, optFns ...func(*Options)) (*GetRegistrationCodeOutput, error) { if params == nil { params = &GetRegistrationCodeInput{} diff --git a/service/iot/api_op_GetStatistics.go b/service/iot/api_op_GetStatistics.go index ece1dcca421..35fe334ff0e 100644 --- a/service/iot/api_op_GetStatistics.go +++ b/service/iot/api_op_GetStatistics.go @@ -13,7 +13,10 @@ import ( // Returns the count, average, sum, minimum, maximum, sum of squares, variance, and // standard deviation for the specified aggregated field. If the aggregation field -// is of type String, only the count statistic is returned. +// is of type String, only the count statistic is returned. Requires permission to +// access the GetStatistics +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) GetStatistics(ctx context.Context, params *GetStatisticsInput, optFns ...func(*Options)) (*GetStatisticsOutput, error) { if params == nil { params = &GetStatisticsInput{} @@ -32,7 +35,7 @@ func (c *Client) GetStatistics(ctx context.Context, params *GetStatisticsInput, type GetStatisticsInput struct { // The query used to search. You can specify "*" for the query string to get the - // count of all indexed things in your AWS account. + // count of all indexed things in your Amazon Web Services account. // // This member is required. QueryString *string diff --git a/service/iot/api_op_GetTopicRule.go b/service/iot/api_op_GetTopicRule.go index b317ac59a35..15a76d2919a 100644 --- a/service/iot/api_op_GetTopicRule.go +++ b/service/iot/api_op_GetTopicRule.go @@ -11,7 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Gets information about the rule. +// Gets information about the rule. Requires permission to access the GetTopicRule +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) GetTopicRule(ctx context.Context, params *GetTopicRuleInput, optFns ...func(*Options)) (*GetTopicRuleOutput, error) { if params == nil { params = &GetTopicRuleInput{} diff --git a/service/iot/api_op_GetTopicRuleDestination.go b/service/iot/api_op_GetTopicRuleDestination.go index 11904129e8e..05a6e7e3124 100644 --- a/service/iot/api_op_GetTopicRuleDestination.go +++ b/service/iot/api_op_GetTopicRuleDestination.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Gets information about a topic rule destination. +// Gets information about a topic rule destination. Requires permission to access +// the GetTopicRuleDestination +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) GetTopicRuleDestination(ctx context.Context, params *GetTopicRuleDestinationInput, optFns ...func(*Options)) (*GetTopicRuleDestinationOutput, error) { if params == nil { params = &GetTopicRuleDestinationInput{} diff --git a/service/iot/api_op_GetV2LoggingOptions.go b/service/iot/api_op_GetV2LoggingOptions.go index 1dad65b808d..b65ed70c042 100644 --- a/service/iot/api_op_GetV2LoggingOptions.go +++ b/service/iot/api_op_GetV2LoggingOptions.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Gets the fine grained logging options. +// Gets the fine grained logging options. Requires permission to access the +// GetV2LoggingOptions +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) GetV2LoggingOptions(ctx context.Context, params *GetV2LoggingOptionsInput, optFns ...func(*Options)) (*GetV2LoggingOptionsOutput, error) { if params == nil { params = &GetV2LoggingOptionsInput{} @@ -39,7 +42,7 @@ type GetV2LoggingOptionsOutput struct { // Disables all logs. DisableAllLogs bool - // The IAM role ARN AWS IoT uses to write to your CloudWatch logs. + // The IAM role ARN IoT uses to write to your CloudWatch logs. RoleArn *string // Metadata pertaining to the operation's result. diff --git a/service/iot/api_op_ListActiveViolations.go b/service/iot/api_op_ListActiveViolations.go index c12fc323154..9a68718f3d2 100644 --- a/service/iot/api_op_ListActiveViolations.go +++ b/service/iot/api_op_ListActiveViolations.go @@ -13,6 +13,9 @@ import ( ) // Lists the active violations for a given Device Defender security profile. +// Requires permission to access the ListActiveViolations +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListActiveViolations(ctx context.Context, params *ListActiveViolationsInput, optFns ...func(*Options)) (*ListActiveViolationsOutput, error) { if params == nil { params = &ListActiveViolationsInput{} diff --git a/service/iot/api_op_ListAttachedPolicies.go b/service/iot/api_op_ListAttachedPolicies.go index 7356bbf76c3..e360b1f864f 100644 --- a/service/iot/api_op_ListAttachedPolicies.go +++ b/service/iot/api_op_ListAttachedPolicies.go @@ -12,7 +12,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists the policies attached to the specified thing group. +// Lists the policies attached to the specified thing group. Requires permission to +// access the ListAttachedPolicies +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListAttachedPolicies(ctx context.Context, params *ListAttachedPoliciesInput, optFns ...func(*Options)) (*ListAttachedPoliciesOutput, error) { if params == nil { params = &ListAttachedPoliciesInput{} diff --git a/service/iot/api_op_ListAuditFindings.go b/service/iot/api_op_ListAuditFindings.go index 134d58d6f55..7f0cdb32cfa 100644 --- a/service/iot/api_op_ListAuditFindings.go +++ b/service/iot/api_op_ListAuditFindings.go @@ -15,6 +15,9 @@ import ( // Lists the findings (results) of a Device Defender audit or of the audits // performed during a specified time period. (Findings are retained for 90 days.) +// Requires permission to access the ListAuditFindings +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListAuditFindings(ctx context.Context, params *ListAuditFindingsInput, optFns ...func(*Options)) (*ListAuditFindingsOutput, error) { if params == nil { params = &ListAuditFindingsInput{} diff --git a/service/iot/api_op_ListAuditMitigationActionsExecutions.go b/service/iot/api_op_ListAuditMitigationActionsExecutions.go index 0fe19bf22e9..44c6f35e275 100644 --- a/service/iot/api_op_ListAuditMitigationActionsExecutions.go +++ b/service/iot/api_op_ListAuditMitigationActionsExecutions.go @@ -12,7 +12,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Gets the status of audit mitigation action tasks that were executed. +// Gets the status of audit mitigation action tasks that were executed. Requires +// permission to access the ListAuditMitigationActionsExecutions +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListAuditMitigationActionsExecutions(ctx context.Context, params *ListAuditMitigationActionsExecutionsInput, optFns ...func(*Options)) (*ListAuditMitigationActionsExecutionsOutput, error) { if params == nil { params = &ListAuditMitigationActionsExecutionsInput{} diff --git a/service/iot/api_op_ListAuditMitigationActionsTasks.go b/service/iot/api_op_ListAuditMitigationActionsTasks.go index f42d13ad76e..1a80db897b8 100644 --- a/service/iot/api_op_ListAuditMitigationActionsTasks.go +++ b/service/iot/api_op_ListAuditMitigationActionsTasks.go @@ -14,6 +14,9 @@ import ( ) // Gets a list of audit mitigation action tasks that match the specified filters. +// Requires permission to access the ListAuditMitigationActionsTasks +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListAuditMitigationActionsTasks(ctx context.Context, params *ListAuditMitigationActionsTasksInput, optFns ...func(*Options)) (*ListAuditMitigationActionsTasksOutput, error) { if params == nil { params = &ListAuditMitigationActionsTasksInput{} diff --git a/service/iot/api_op_ListAuditSuppressions.go b/service/iot/api_op_ListAuditSuppressions.go index 4c6bf725dca..f7509ecf8d6 100644 --- a/service/iot/api_op_ListAuditSuppressions.go +++ b/service/iot/api_op_ListAuditSuppressions.go @@ -12,7 +12,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists your Device Defender audit listings. +// Lists your Device Defender audit listings. Requires permission to access the +// ListAuditSuppressions +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListAuditSuppressions(ctx context.Context, params *ListAuditSuppressionsInput, optFns ...func(*Options)) (*ListAuditSuppressionsOutput, error) { if params == nil { params = &ListAuditSuppressionsInput{} diff --git a/service/iot/api_op_ListAuditTasks.go b/service/iot/api_op_ListAuditTasks.go index fad1d029338..7e09a122dca 100644 --- a/service/iot/api_op_ListAuditTasks.go +++ b/service/iot/api_op_ListAuditTasks.go @@ -14,7 +14,9 @@ import ( ) // Lists the Device Defender audits that have been performed during a given time -// period. +// period. Requires permission to access the ListAuditTasks +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListAuditTasks(ctx context.Context, params *ListAuditTasksInput, optFns ...func(*Options)) (*ListAuditTasksOutput, error) { if params == nil { params = &ListAuditTasksInput{} diff --git a/service/iot/api_op_ListAuthorizers.go b/service/iot/api_op_ListAuthorizers.go index c1c26b16ddb..372c9a0f1ff 100644 --- a/service/iot/api_op_ListAuthorizers.go +++ b/service/iot/api_op_ListAuthorizers.go @@ -12,7 +12,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists the authorizers registered in your account. +// Lists the authorizers registered in your account. Requires permission to access +// the ListAuthorizers +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListAuthorizers(ctx context.Context, params *ListAuthorizersInput, optFns ...func(*Options)) (*ListAuthorizersOutput, error) { if params == nil { params = &ListAuthorizersInput{} diff --git a/service/iot/api_op_ListBillingGroups.go b/service/iot/api_op_ListBillingGroups.go index f3cea898b26..d5634ac0408 100644 --- a/service/iot/api_op_ListBillingGroups.go +++ b/service/iot/api_op_ListBillingGroups.go @@ -12,7 +12,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists the billing groups you have created. +// Lists the billing groups you have created. Requires permission to access the +// ListBillingGroups +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListBillingGroups(ctx context.Context, params *ListBillingGroupsInput, optFns ...func(*Options)) (*ListBillingGroupsOutput, error) { if params == nil { params = &ListBillingGroupsInput{} diff --git a/service/iot/api_op_ListCACertificates.go b/service/iot/api_op_ListCACertificates.go index 3090b6e20a5..07d21e0b129 100644 --- a/service/iot/api_op_ListCACertificates.go +++ b/service/iot/api_op_ListCACertificates.go @@ -12,9 +12,12 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists the CA certificates registered for your AWS account. The results are -// paginated with a default page size of 25. You can use the returned marker to -// retrieve additional results. +// Lists the CA certificates registered for your Amazon Web Services account. The +// results are paginated with a default page size of 25. You can use the returned +// marker to retrieve additional results. Requires permission to access the +// ListCACertificates +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListCACertificates(ctx context.Context, params *ListCACertificatesInput, optFns ...func(*Options)) (*ListCACertificatesOutput, error) { if params == nil { params = &ListCACertificatesInput{} @@ -48,7 +51,7 @@ type ListCACertificatesInput struct { // The output from the ListCACertificates operation. type ListCACertificatesOutput struct { - // The CA certificates registered in your AWS account. + // The CA certificates registered in your Amazon Web Services account. Certificates []types.CACertificate // The current position within the list of CA certificates. diff --git a/service/iot/api_op_ListCertificates.go b/service/iot/api_op_ListCertificates.go index b89e8f27cb8..608a14e757e 100644 --- a/service/iot/api_op_ListCertificates.go +++ b/service/iot/api_op_ListCertificates.go @@ -12,9 +12,12 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists the certificates registered in your AWS account. The results are paginated -// with a default page size of 25. You can use the returned marker to retrieve -// additional results. +// Lists the certificates registered in your Amazon Web Services account. The +// results are paginated with a default page size of 25. You can use the returned +// marker to retrieve additional results. Requires permission to access the +// ListCertificates +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListCertificates(ctx context.Context, params *ListCertificatesInput, optFns ...func(*Options)) (*ListCertificatesOutput, error) { if params == nil { params = &ListCertificatesInput{} diff --git a/service/iot/api_op_ListCertificatesByCA.go b/service/iot/api_op_ListCertificatesByCA.go index 922f4bf4088..073532dcd3f 100644 --- a/service/iot/api_op_ListCertificatesByCA.go +++ b/service/iot/api_op_ListCertificatesByCA.go @@ -12,7 +12,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// List the device certificates signed by the specified CA certificate. +// List the device certificates signed by the specified CA certificate. Requires +// permission to access the ListCertificatesByCA +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListCertificatesByCA(ctx context.Context, params *ListCertificatesByCAInput, optFns ...func(*Options)) (*ListCertificatesByCAOutput, error) { if params == nil { params = &ListCertificatesByCAInput{} diff --git a/service/iot/api_op_ListCustomMetrics.go b/service/iot/api_op_ListCustomMetrics.go index 752a496d286..3505e57e62b 100644 --- a/service/iot/api_op_ListCustomMetrics.go +++ b/service/iot/api_op_ListCustomMetrics.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists your Device Defender detect custom metrics. +// Lists your Device Defender detect custom metrics. Requires permission to access +// the ListCustomMetrics +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListCustomMetrics(ctx context.Context, params *ListCustomMetricsInput, optFns ...func(*Options)) (*ListCustomMetricsOutput, error) { if params == nil { params = &ListCustomMetricsInput{} diff --git a/service/iot/api_op_ListDetectMitigationActionsExecutions.go b/service/iot/api_op_ListDetectMitigationActionsExecutions.go index 6bd6cb4147c..7415b2ef12c 100644 --- a/service/iot/api_op_ListDetectMitigationActionsExecutions.go +++ b/service/iot/api_op_ListDetectMitigationActionsExecutions.go @@ -14,7 +14,9 @@ import ( ) // Lists mitigation actions executions for a Device Defender ML Detect Security -// Profile. +// Profile. Requires permission to access the ListDetectMitigationActionsExecutions +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListDetectMitigationActionsExecutions(ctx context.Context, params *ListDetectMitigationActionsExecutionsInput, optFns ...func(*Options)) (*ListDetectMitigationActionsExecutionsOutput, error) { if params == nil { params = &ListDetectMitigationActionsExecutionsInput{} diff --git a/service/iot/api_op_ListDetectMitigationActionsTasks.go b/service/iot/api_op_ListDetectMitigationActionsTasks.go index e6dea9e3c71..c0ee52057e7 100644 --- a/service/iot/api_op_ListDetectMitigationActionsTasks.go +++ b/service/iot/api_op_ListDetectMitigationActionsTasks.go @@ -13,7 +13,10 @@ import ( "time" ) -// List of Device Defender ML Detect mitigation actions tasks. +// List of Device Defender ML Detect mitigation actions tasks. Requires permission +// to access the ListDetectMitigationActionsTasks +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListDetectMitigationActionsTasks(ctx context.Context, params *ListDetectMitigationActionsTasksInput, optFns ...func(*Options)) (*ListDetectMitigationActionsTasksOutput, error) { if params == nil { params = &ListDetectMitigationActionsTasksInput{} diff --git a/service/iot/api_op_ListDimensions.go b/service/iot/api_op_ListDimensions.go index 6b8126b6bc2..885cabc1748 100644 --- a/service/iot/api_op_ListDimensions.go +++ b/service/iot/api_op_ListDimensions.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// List the set of dimensions that are defined for your AWS account. +// List the set of dimensions that are defined for your Amazon Web Services +// accounts. Requires permission to access the ListDimensions +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListDimensions(ctx context.Context, params *ListDimensionsInput, optFns ...func(*Options)) (*ListDimensionsOutput, error) { if params == nil { params = &ListDimensionsInput{} diff --git a/service/iot/api_op_ListDomainConfigurations.go b/service/iot/api_op_ListDomainConfigurations.go index 7d3643d067a..1d629a3e016 100644 --- a/service/iot/api_op_ListDomainConfigurations.go +++ b/service/iot/api_op_ListDomainConfigurations.go @@ -13,7 +13,10 @@ import ( ) // Gets a list of domain configurations for the user. This list is sorted -// alphabetically by domain configuration name. +// alphabetically by domain configuration name. Requires permission to access the +// ListDomainConfigurations +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListDomainConfigurations(ctx context.Context, params *ListDomainConfigurationsInput, optFns ...func(*Options)) (*ListDomainConfigurationsOutput, error) { if params == nil { params = &ListDomainConfigurationsInput{} diff --git a/service/iot/api_op_ListFleetMetrics.go b/service/iot/api_op_ListFleetMetrics.go new file mode 100644 index 00000000000..c973526af1b --- /dev/null +++ b/service/iot/api_op_ListFleetMetrics.go @@ -0,0 +1,213 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package iot + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/iot/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Lists all your fleet metrics. Requires permission to access the ListFleetMetrics +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. +func (c *Client) ListFleetMetrics(ctx context.Context, params *ListFleetMetricsInput, optFns ...func(*Options)) (*ListFleetMetricsOutput, error) { + if params == nil { + params = &ListFleetMetricsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListFleetMetrics", params, optFns, c.addOperationListFleetMetricsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListFleetMetricsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListFleetMetricsInput struct { + + // The maximum number of results to return in this operation. + MaxResults *int32 + + // To retrieve the next set of results, the nextToken value from a previous + // response; otherwise null to receive the first set of results. + NextToken *string + + noSmithyDocumentSerde +} + +type ListFleetMetricsOutput struct { + + // The list of fleet metrics objects. + FleetMetrics []types.FleetMetricNameAndArn + + // The token for the next set of results. Will not be returned if the operation has + // returned all results. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListFleetMetricsMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpListFleetMetrics{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpListFleetMetrics{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListFleetMetrics(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +// ListFleetMetricsAPIClient is a client that implements the ListFleetMetrics +// operation. +type ListFleetMetricsAPIClient interface { + ListFleetMetrics(context.Context, *ListFleetMetricsInput, ...func(*Options)) (*ListFleetMetricsOutput, error) +} + +var _ ListFleetMetricsAPIClient = (*Client)(nil) + +// ListFleetMetricsPaginatorOptions is the paginator options for ListFleetMetrics +type ListFleetMetricsPaginatorOptions struct { + // The maximum number of results to return in this operation. + Limit int32 + + // Set to true if pagination should stop if the service returns a pagination token + // that matches the most recent token provided to the service. + StopOnDuplicateToken bool +} + +// ListFleetMetricsPaginator is a paginator for ListFleetMetrics +type ListFleetMetricsPaginator struct { + options ListFleetMetricsPaginatorOptions + client ListFleetMetricsAPIClient + params *ListFleetMetricsInput + nextToken *string + firstPage bool +} + +// NewListFleetMetricsPaginator returns a new ListFleetMetricsPaginator +func NewListFleetMetricsPaginator(client ListFleetMetricsAPIClient, params *ListFleetMetricsInput, optFns ...func(*ListFleetMetricsPaginatorOptions)) *ListFleetMetricsPaginator { + if params == nil { + params = &ListFleetMetricsInput{} + } + + options := ListFleetMetricsPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListFleetMetricsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListFleetMetricsPaginator) HasMorePages() bool { + return p.firstPage || p.nextToken != nil +} + +// NextPage retrieves the next ListFleetMetrics page. +func (p *ListFleetMetricsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListFleetMetricsOutput, error) { + if !p.HasMorePages() { + return nil, fmt.Errorf("no more pages available") + } + + params := *p.params + params.NextToken = p.nextToken + + var limit *int32 + if p.options.Limit > 0 { + limit = &p.options.Limit + } + params.MaxResults = limit + + result, err := p.client.ListFleetMetrics(ctx, ¶ms, optFns...) + if err != nil { + return nil, err + } + p.firstPage = false + + prevToken := p.nextToken + p.nextToken = result.NextToken + + if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken { + p.nextToken = nil + } + + return result, nil +} + +func newServiceMetadataMiddleware_opListFleetMetrics(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "execute-api", + OperationName: "ListFleetMetrics", + } +} diff --git a/service/iot/api_op_ListIndices.go b/service/iot/api_op_ListIndices.go index e01790399e3..bbe274c61fd 100644 --- a/service/iot/api_op_ListIndices.go +++ b/service/iot/api_op_ListIndices.go @@ -11,7 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists the search indices. +// Lists the search indices. Requires permission to access the ListIndices +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListIndices(ctx context.Context, params *ListIndicesInput, optFns ...func(*Options)) (*ListIndicesOutput, error) { if params == nil { params = &ListIndicesInput{} diff --git a/service/iot/api_op_ListJobExecutionsForJob.go b/service/iot/api_op_ListJobExecutionsForJob.go index 926715c76c3..88844f3efba 100644 --- a/service/iot/api_op_ListJobExecutionsForJob.go +++ b/service/iot/api_op_ListJobExecutionsForJob.go @@ -12,7 +12,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists the job executions for a job. +// Lists the job executions for a job. Requires permission to access the +// ListJobExecutionsForJob +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListJobExecutionsForJob(ctx context.Context, params *ListJobExecutionsForJobInput, optFns ...func(*Options)) (*ListJobExecutionsForJobOutput, error) { if params == nil { params = &ListJobExecutionsForJobInput{} diff --git a/service/iot/api_op_ListJobExecutionsForThing.go b/service/iot/api_op_ListJobExecutionsForThing.go index 4b9f83750bc..61fd4d0cec6 100644 --- a/service/iot/api_op_ListJobExecutionsForThing.go +++ b/service/iot/api_op_ListJobExecutionsForThing.go @@ -12,7 +12,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists the job executions for the specified thing. +// Lists the job executions for the specified thing. Requires permission to access +// the ListJobExecutionsForThing +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListJobExecutionsForThing(ctx context.Context, params *ListJobExecutionsForThingInput, optFns ...func(*Options)) (*ListJobExecutionsForThingOutput, error) { if params == nil { params = &ListJobExecutionsForThingInput{} @@ -39,8 +42,8 @@ type ListJobExecutionsForThingInput struct { MaxResults *int32 // The namespace used to indicate that a job is a customer-managed job. When you - // specify a value for this parameter, AWS IoT Core sends jobs notifications to - // MQTT topics that contain the value in the following format. + // specify a value for this parameter, Amazon Web Services IoT Core sends jobs + // notifications to MQTT topics that contain the value in the following format. // $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/ The // namespaceId feature is in public preview. NamespaceId *string diff --git a/service/iot/api_op_ListJobTemplates.go b/service/iot/api_op_ListJobTemplates.go index dd7658a0d84..329ca85ca13 100644 --- a/service/iot/api_op_ListJobTemplates.go +++ b/service/iot/api_op_ListJobTemplates.go @@ -4,6 +4,7 @@ package iot import ( "context" + "fmt" awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" "github.com/aws/aws-sdk-go-v2/aws/signer/v4" "github.com/aws/aws-sdk-go-v2/service/iot/types" @@ -11,7 +12,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns a list of job templates. +// Returns a list of job templates. Requires permission to access the +// ListJobTemplates +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListJobTemplates(ctx context.Context, params *ListJobTemplatesInput, optFns ...func(*Options)) (*ListJobTemplatesOutput, error) { if params == nil { params = &ListJobTemplatesInput{} @@ -113,6 +117,92 @@ func (c *Client) addOperationListJobTemplatesMiddlewares(stack *middleware.Stack return nil } +// ListJobTemplatesAPIClient is a client that implements the ListJobTemplates +// operation. +type ListJobTemplatesAPIClient interface { + ListJobTemplates(context.Context, *ListJobTemplatesInput, ...func(*Options)) (*ListJobTemplatesOutput, error) +} + +var _ ListJobTemplatesAPIClient = (*Client)(nil) + +// ListJobTemplatesPaginatorOptions is the paginator options for ListJobTemplates +type ListJobTemplatesPaginatorOptions struct { + // The maximum number of results to return in the list. + Limit int32 + + // Set to true if pagination should stop if the service returns a pagination token + // that matches the most recent token provided to the service. + StopOnDuplicateToken bool +} + +// ListJobTemplatesPaginator is a paginator for ListJobTemplates +type ListJobTemplatesPaginator struct { + options ListJobTemplatesPaginatorOptions + client ListJobTemplatesAPIClient + params *ListJobTemplatesInput + nextToken *string + firstPage bool +} + +// NewListJobTemplatesPaginator returns a new ListJobTemplatesPaginator +func NewListJobTemplatesPaginator(client ListJobTemplatesAPIClient, params *ListJobTemplatesInput, optFns ...func(*ListJobTemplatesPaginatorOptions)) *ListJobTemplatesPaginator { + if params == nil { + params = &ListJobTemplatesInput{} + } + + options := ListJobTemplatesPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListJobTemplatesPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListJobTemplatesPaginator) HasMorePages() bool { + return p.firstPage || p.nextToken != nil +} + +// NextPage retrieves the next ListJobTemplates page. +func (p *ListJobTemplatesPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListJobTemplatesOutput, error) { + if !p.HasMorePages() { + return nil, fmt.Errorf("no more pages available") + } + + params := *p.params + params.NextToken = p.nextToken + + var limit *int32 + if p.options.Limit > 0 { + limit = &p.options.Limit + } + params.MaxResults = limit + + result, err := p.client.ListJobTemplates(ctx, ¶ms, optFns...) + if err != nil { + return nil, err + } + p.firstPage = false + + prevToken := p.nextToken + p.nextToken = result.NextToken + + if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken { + p.nextToken = nil + } + + return result, nil +} + func newServiceMetadataMiddleware_opListJobTemplates(region string) *awsmiddleware.RegisterServiceMetadata { return &awsmiddleware.RegisterServiceMetadata{ Region: region, diff --git a/service/iot/api_op_ListJobs.go b/service/iot/api_op_ListJobs.go index 38ad1aa5520..223f0b6173b 100644 --- a/service/iot/api_op_ListJobs.go +++ b/service/iot/api_op_ListJobs.go @@ -12,7 +12,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists jobs. +// Lists jobs. Requires permission to access the ListJobs +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListJobs(ctx context.Context, params *ListJobsInput, optFns ...func(*Options)) (*ListJobsOutput, error) { if params == nil { params = &ListJobsInput{} @@ -34,8 +36,8 @@ type ListJobsInput struct { MaxResults *int32 // The namespace used to indicate that a job is a customer-managed job. When you - // specify a value for this parameter, AWS IoT Core sends jobs notifications to - // MQTT topics that contain the value in the following format. + // specify a value for this parameter, Amazon Web Services IoT Core sends jobs + // notifications to MQTT topics that contain the value in the following format. // $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/ The // namespaceId feature is in public preview. NamespaceId *string diff --git a/service/iot/api_op_ListMitigationActions.go b/service/iot/api_op_ListMitigationActions.go index 337225eeb4d..1b6a50b2703 100644 --- a/service/iot/api_op_ListMitigationActions.go +++ b/service/iot/api_op_ListMitigationActions.go @@ -13,6 +13,9 @@ import ( ) // Gets a list of all mitigation actions that match the specified filter criteria. +// Requires permission to access the ListMitigationActions +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListMitigationActions(ctx context.Context, params *ListMitigationActionsInput, optFns ...func(*Options)) (*ListMitigationActionsOutput, error) { if params == nil { params = &ListMitigationActionsInput{} diff --git a/service/iot/api_op_ListOTAUpdates.go b/service/iot/api_op_ListOTAUpdates.go index a2cedf0f699..81c8b90f6bc 100644 --- a/service/iot/api_op_ListOTAUpdates.go +++ b/service/iot/api_op_ListOTAUpdates.go @@ -12,7 +12,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists OTA updates. +// Lists OTA updates. Requires permission to access the ListOTAUpdates +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListOTAUpdates(ctx context.Context, params *ListOTAUpdatesInput, optFns ...func(*Options)) (*ListOTAUpdatesOutput, error) { if params == nil { params = &ListOTAUpdatesInput{} diff --git a/service/iot/api_op_ListOutgoingCertificates.go b/service/iot/api_op_ListOutgoingCertificates.go index 8794749158c..6fda4fe3c3e 100644 --- a/service/iot/api_op_ListOutgoingCertificates.go +++ b/service/iot/api_op_ListOutgoingCertificates.go @@ -12,7 +12,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists certificates that are being transferred but not yet accepted. +// Lists certificates that are being transferred but not yet accepted. Requires +// permission to access the ListOutgoingCertificates +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListOutgoingCertificates(ctx context.Context, params *ListOutgoingCertificatesInput, optFns ...func(*Options)) (*ListOutgoingCertificatesOutput, error) { if params == nil { params = &ListOutgoingCertificatesInput{} diff --git a/service/iot/api_op_ListPolicies.go b/service/iot/api_op_ListPolicies.go index ca3d1be8f53..e83d57cab2c 100644 --- a/service/iot/api_op_ListPolicies.go +++ b/service/iot/api_op_ListPolicies.go @@ -12,7 +12,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists your policies. +// Lists your policies. Requires permission to access the ListPolicies +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListPolicies(ctx context.Context, params *ListPoliciesInput, optFns ...func(*Options)) (*ListPoliciesOutput, error) { if params == nil { params = &ListPoliciesInput{} diff --git a/service/iot/api_op_ListPolicyPrincipals.go b/service/iot/api_op_ListPolicyPrincipals.go index fb9ccfcfdf7..4a5ccb16501 100644 --- a/service/iot/api_op_ListPolicyPrincipals.go +++ b/service/iot/api_op_ListPolicyPrincipals.go @@ -11,8 +11,11 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists the principals associated with the specified policy. Note: This API is -// deprecated. Please use ListTargetsForPolicy instead. +// Lists the principals associated with the specified policy. Note: This action is +// deprecated. Please use ListTargetsForPolicy instead. Requires permission to +// access the ListPolicyPrincipals +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. // // Deprecated: This operation has been deprecated. func (c *Client) ListPolicyPrincipals(ctx context.Context, params *ListPolicyPrincipalsInput, optFns ...func(*Options)) (*ListPolicyPrincipalsOutput, error) { diff --git a/service/iot/api_op_ListPolicyVersions.go b/service/iot/api_op_ListPolicyVersions.go index f3610f37c7e..6401d3dde68 100644 --- a/service/iot/api_op_ListPolicyVersions.go +++ b/service/iot/api_op_ListPolicyVersions.go @@ -12,6 +12,9 @@ import ( ) // Lists the versions of the specified policy and identifies the default version. +// Requires permission to access the ListPolicyVersions +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListPolicyVersions(ctx context.Context, params *ListPolicyVersionsInput, optFns ...func(*Options)) (*ListPolicyVersionsOutput, error) { if params == nil { params = &ListPolicyVersionsInput{} diff --git a/service/iot/api_op_ListPrincipalPolicies.go b/service/iot/api_op_ListPrincipalPolicies.go index e01a044fb9d..18f04d68ff9 100644 --- a/service/iot/api_op_ListPrincipalPolicies.go +++ b/service/iot/api_op_ListPrincipalPolicies.go @@ -15,7 +15,10 @@ import ( // Lists the policies attached to the specified principal. If you use an Cognito // identity, the ID must be in AmazonCognito Identity format // (https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html#API_GetCredentialsForIdentity_RequestSyntax). -// Note: This API is deprecated. Please use ListAttachedPolicies instead. +// Note: This action is deprecated. Please use ListAttachedPolicies instead. +// Requires permission to access the ListPrincipalPolicies +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. // // Deprecated: This operation has been deprecated. func (c *Client) ListPrincipalPolicies(ctx context.Context, params *ListPrincipalPoliciesInput, optFns ...func(*Options)) (*ListPrincipalPoliciesOutput, error) { diff --git a/service/iot/api_op_ListPrincipalThings.go b/service/iot/api_op_ListPrincipalThings.go index 9c2481203f8..a3560d6d532 100644 --- a/service/iot/api_op_ListPrincipalThings.go +++ b/service/iot/api_op_ListPrincipalThings.go @@ -13,7 +13,9 @@ import ( // Lists the things associated with the specified principal. A principal can be // X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities or -// federated identities. +// federated identities. Requires permission to access the ListPrincipalThings +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListPrincipalThings(ctx context.Context, params *ListPrincipalThingsInput, optFns ...func(*Options)) (*ListPrincipalThingsOutput, error) { if params == nil { params = &ListPrincipalThingsInput{} diff --git a/service/iot/api_op_ListProvisioningTemplateVersions.go b/service/iot/api_op_ListProvisioningTemplateVersions.go index 03dd67b76ac..bb10d5df6f2 100644 --- a/service/iot/api_op_ListProvisioningTemplateVersions.go +++ b/service/iot/api_op_ListProvisioningTemplateVersions.go @@ -12,7 +12,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// A list of fleet provisioning template versions. +// A list of fleet provisioning template versions. Requires permission to access +// the ListProvisioningTemplateVersions +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListProvisioningTemplateVersions(ctx context.Context, params *ListProvisioningTemplateVersionsInput, optFns ...func(*Options)) (*ListProvisioningTemplateVersionsOutput, error) { if params == nil { params = &ListProvisioningTemplateVersionsInput{} diff --git a/service/iot/api_op_ListProvisioningTemplates.go b/service/iot/api_op_ListProvisioningTemplates.go index ef492a67bac..1ded4cf598a 100644 --- a/service/iot/api_op_ListProvisioningTemplates.go +++ b/service/iot/api_op_ListProvisioningTemplates.go @@ -12,7 +12,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists the fleet provisioning templates in your AWS account. +// Lists the fleet provisioning templates in your Amazon Web Services account. +// Requires permission to access the ListProvisioningTemplates +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListProvisioningTemplates(ctx context.Context, params *ListProvisioningTemplatesInput, optFns ...func(*Options)) (*ListProvisioningTemplatesOutput, error) { if params == nil { params = &ListProvisioningTemplatesInput{} diff --git a/service/iot/api_op_ListRoleAliases.go b/service/iot/api_op_ListRoleAliases.go index 75d8ed1863e..bc976e577d6 100644 --- a/service/iot/api_op_ListRoleAliases.go +++ b/service/iot/api_op_ListRoleAliases.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists the role aliases registered in your account. +// Lists the role aliases registered in your account. Requires permission to access +// the ListRoleAliases +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListRoleAliases(ctx context.Context, params *ListRoleAliasesInput, optFns ...func(*Options)) (*ListRoleAliasesOutput, error) { if params == nil { params = &ListRoleAliasesInput{} diff --git a/service/iot/api_op_ListScheduledAudits.go b/service/iot/api_op_ListScheduledAudits.go index 2ce62d31ec5..702347a9e8f 100644 --- a/service/iot/api_op_ListScheduledAudits.go +++ b/service/iot/api_op_ListScheduledAudits.go @@ -12,7 +12,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists all of your scheduled audits. +// Lists all of your scheduled audits. Requires permission to access the +// ListScheduledAudits +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListScheduledAudits(ctx context.Context, params *ListScheduledAuditsInput, optFns ...func(*Options)) (*ListScheduledAuditsOutput, error) { if params == nil { params = &ListScheduledAuditsInput{} diff --git a/service/iot/api_op_ListSecurityProfiles.go b/service/iot/api_op_ListSecurityProfiles.go index 02373c7fa3e..eecfd6344bc 100644 --- a/service/iot/api_op_ListSecurityProfiles.go +++ b/service/iot/api_op_ListSecurityProfiles.go @@ -13,8 +13,10 @@ import ( ) // Lists the Device Defender security profiles you've created. You can filter -// security profiles by dimension or custom metric. dimensionName and metricName -// cannot be used in the same request. +// security profiles by dimension or custom metric. Requires permission to access +// the ListSecurityProfiles +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. dimensionName and metricName cannot be used in the same request. func (c *Client) ListSecurityProfiles(ctx context.Context, params *ListSecurityProfilesInput, optFns ...func(*Options)) (*ListSecurityProfilesOutput, error) { if params == nil { params = &ListSecurityProfilesInput{} diff --git a/service/iot/api_op_ListSecurityProfilesForTarget.go b/service/iot/api_op_ListSecurityProfilesForTarget.go index 2f747393ddd..9e71da517ff 100644 --- a/service/iot/api_op_ListSecurityProfilesForTarget.go +++ b/service/iot/api_op_ListSecurityProfilesForTarget.go @@ -13,6 +13,9 @@ import ( ) // Lists the Device Defender security profiles attached to a target (thing group). +// Requires permission to access the ListSecurityProfilesForTarget +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListSecurityProfilesForTarget(ctx context.Context, params *ListSecurityProfilesForTargetInput, optFns ...func(*Options)) (*ListSecurityProfilesForTargetOutput, error) { if params == nil { params = &ListSecurityProfilesForTargetInput{} diff --git a/service/iot/api_op_ListStreams.go b/service/iot/api_op_ListStreams.go index 3ae646da5be..339d01c6048 100644 --- a/service/iot/api_op_ListStreams.go +++ b/service/iot/api_op_ListStreams.go @@ -12,7 +12,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists all of the streams in your AWS account. +// Lists all of the streams in your Amazon Web Services account. Requires +// permission to access the ListStreams +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListStreams(ctx context.Context, params *ListStreamsInput, optFns ...func(*Options)) (*ListStreamsOutput, error) { if params == nil { params = &ListStreamsInput{} diff --git a/service/iot/api_op_ListTagsForResource.go b/service/iot/api_op_ListTagsForResource.go index a55f333b841..225c998aecc 100644 --- a/service/iot/api_op_ListTagsForResource.go +++ b/service/iot/api_op_ListTagsForResource.go @@ -12,7 +12,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists the tags (metadata) you have assigned to the resource. +// Lists the tags (metadata) you have assigned to the resource. Requires permission +// to access the ListTagsForResource +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListTagsForResource(ctx context.Context, params *ListTagsForResourceInput, optFns ...func(*Options)) (*ListTagsForResourceOutput, error) { if params == nil { params = &ListTagsForResourceInput{} diff --git a/service/iot/api_op_ListTargetsForPolicy.go b/service/iot/api_op_ListTargetsForPolicy.go index ff5816e637e..8667f4890ed 100644 --- a/service/iot/api_op_ListTargetsForPolicy.go +++ b/service/iot/api_op_ListTargetsForPolicy.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// List targets for the specified policy. +// List targets for the specified policy. Requires permission to access the +// ListTargetsForPolicy +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListTargetsForPolicy(ctx context.Context, params *ListTargetsForPolicyInput, optFns ...func(*Options)) (*ListTargetsForPolicyOutput, error) { if params == nil { params = &ListTargetsForPolicyInput{} diff --git a/service/iot/api_op_ListTargetsForSecurityProfile.go b/service/iot/api_op_ListTargetsForSecurityProfile.go index 8ff1b9fed62..6e4cd268706 100644 --- a/service/iot/api_op_ListTargetsForSecurityProfile.go +++ b/service/iot/api_op_ListTargetsForSecurityProfile.go @@ -13,7 +13,10 @@ import ( ) // Lists the targets (thing groups) associated with a given Device Defender -// security profile. +// security profile. Requires permission to access the +// ListTargetsForSecurityProfile +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListTargetsForSecurityProfile(ctx context.Context, params *ListTargetsForSecurityProfileInput, optFns ...func(*Options)) (*ListTargetsForSecurityProfileOutput, error) { if params == nil { params = &ListTargetsForSecurityProfileInput{} diff --git a/service/iot/api_op_ListThingGroups.go b/service/iot/api_op_ListThingGroups.go index 8621b994cac..2530cea14e8 100644 --- a/service/iot/api_op_ListThingGroups.go +++ b/service/iot/api_op_ListThingGroups.go @@ -12,7 +12,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// List the thing groups in your account. +// List the thing groups in your account. Requires permission to access the +// ListThingGroups +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListThingGroups(ctx context.Context, params *ListThingGroupsInput, optFns ...func(*Options)) (*ListThingGroupsOutput, error) { if params == nil { params = &ListThingGroupsInput{} diff --git a/service/iot/api_op_ListThingGroupsForThing.go b/service/iot/api_op_ListThingGroupsForThing.go index 7134f6b27d6..82c494a8610 100644 --- a/service/iot/api_op_ListThingGroupsForThing.go +++ b/service/iot/api_op_ListThingGroupsForThing.go @@ -12,7 +12,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// List the thing groups to which the specified thing belongs. +// List the thing groups to which the specified thing belongs. Requires permission +// to access the ListThingGroupsForThing +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListThingGroupsForThing(ctx context.Context, params *ListThingGroupsForThingInput, optFns ...func(*Options)) (*ListThingGroupsForThingOutput, error) { if params == nil { params = &ListThingGroupsForThingInput{} diff --git a/service/iot/api_op_ListThingPrincipals.go b/service/iot/api_op_ListThingPrincipals.go index b9052334384..e50f5695188 100644 --- a/service/iot/api_op_ListThingPrincipals.go +++ b/service/iot/api_op_ListThingPrincipals.go @@ -13,7 +13,9 @@ import ( // Lists the principals associated with the specified thing. A principal can be // X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities or -// federated identities. +// federated identities. Requires permission to access the ListThingPrincipals +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListThingPrincipals(ctx context.Context, params *ListThingPrincipalsInput, optFns ...func(*Options)) (*ListThingPrincipalsOutput, error) { if params == nil { params = &ListThingPrincipalsInput{} diff --git a/service/iot/api_op_ListThingRegistrationTasks.go b/service/iot/api_op_ListThingRegistrationTasks.go index 546c4d86382..6f9091ffbc7 100644 --- a/service/iot/api_op_ListThingRegistrationTasks.go +++ b/service/iot/api_op_ListThingRegistrationTasks.go @@ -12,7 +12,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// List bulk thing provisioning tasks. +// List bulk thing provisioning tasks. Requires permission to access the +// ListThingRegistrationTasks +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListThingRegistrationTasks(ctx context.Context, params *ListThingRegistrationTasksInput, optFns ...func(*Options)) (*ListThingRegistrationTasksOutput, error) { if params == nil { params = &ListThingRegistrationTasksInput{} diff --git a/service/iot/api_op_ListThingTypes.go b/service/iot/api_op_ListThingTypes.go index 453f9fb0762..d0867dde5b5 100644 --- a/service/iot/api_op_ListThingTypes.go +++ b/service/iot/api_op_ListThingTypes.go @@ -12,7 +12,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists the existing thing types. +// Lists the existing thing types. Requires permission to access the ListThingTypes +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListThingTypes(ctx context.Context, params *ListThingTypesInput, optFns ...func(*Options)) (*ListThingTypesOutput, error) { if params == nil { params = &ListThingTypesInput{} diff --git a/service/iot/api_op_ListThings.go b/service/iot/api_op_ListThings.go index 8f109438be0..4b988c66703 100644 --- a/service/iot/api_op_ListThings.go +++ b/service/iot/api_op_ListThings.go @@ -15,10 +15,11 @@ import ( // Lists your things. Use the attributeName and attributeValue parameters to filter // your things. For example, calling ListThings with attributeName=Color and // attributeValue=Red retrieves all things in the registry that contain an -// attribute Color with the value Red. You will not be charged for calling this API -// if an Access denied error is returned. You will also not be charged if no -// attributes or pagination token was provided in request and no pagination token -// and no results were returned. +// attribute Color with the value Red. Requires permission to access the ListThings +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. You will not be charged for calling this API if an Access denied error +// is returned. You will also not be charged if no attributes or pagination token +// was provided in request and no pagination token and no results were returned. func (c *Client) ListThings(ctx context.Context, params *ListThingsInput, optFns ...func(*Options)) (*ListThingsOutput, error) { if params == nil { params = &ListThingsInput{} diff --git a/service/iot/api_op_ListThingsInBillingGroup.go b/service/iot/api_op_ListThingsInBillingGroup.go index af177dc03d8..77d8d63ff81 100644 --- a/service/iot/api_op_ListThingsInBillingGroup.go +++ b/service/iot/api_op_ListThingsInBillingGroup.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists the things you have added to the given billing group. +// Lists the things you have added to the given billing group. Requires permission +// to access the ListThingsInBillingGroup +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListThingsInBillingGroup(ctx context.Context, params *ListThingsInBillingGroupInput, optFns ...func(*Options)) (*ListThingsInBillingGroupOutput, error) { if params == nil { params = &ListThingsInBillingGroupInput{} diff --git a/service/iot/api_op_ListThingsInThingGroup.go b/service/iot/api_op_ListThingsInThingGroup.go index ab6c60806c2..5a919464742 100644 --- a/service/iot/api_op_ListThingsInThingGroup.go +++ b/service/iot/api_op_ListThingsInThingGroup.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists the things in the specified group. +// Lists the things in the specified group. Requires permission to access the +// ListThingsInThingGroup +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListThingsInThingGroup(ctx context.Context, params *ListThingsInThingGroupInput, optFns ...func(*Options)) (*ListThingsInThingGroupOutput, error) { if params == nil { params = &ListThingsInThingGroupInput{} diff --git a/service/iot/api_op_ListTopicRuleDestinations.go b/service/iot/api_op_ListTopicRuleDestinations.go index f69b776989b..9dfee8bf510 100644 --- a/service/iot/api_op_ListTopicRuleDestinations.go +++ b/service/iot/api_op_ListTopicRuleDestinations.go @@ -12,7 +12,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists all the topic rule destinations in your AWS account. +// Lists all the topic rule destinations in your Amazon Web Services account. +// Requires permission to access the ListTopicRuleDestinations +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListTopicRuleDestinations(ctx context.Context, params *ListTopicRuleDestinationsInput, optFns ...func(*Options)) (*ListTopicRuleDestinationsOutput, error) { if params == nil { params = &ListTopicRuleDestinationsInput{} diff --git a/service/iot/api_op_ListTopicRules.go b/service/iot/api_op_ListTopicRules.go index 0ccb724970d..9b5b03a27f0 100644 --- a/service/iot/api_op_ListTopicRules.go +++ b/service/iot/api_op_ListTopicRules.go @@ -12,7 +12,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists the rules for the specific topic. +// Lists the rules for the specific topic. Requires permission to access the +// ListTopicRules +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListTopicRules(ctx context.Context, params *ListTopicRulesInput, optFns ...func(*Options)) (*ListTopicRulesOutput, error) { if params == nil { params = &ListTopicRulesInput{} diff --git a/service/iot/api_op_ListV2LoggingLevels.go b/service/iot/api_op_ListV2LoggingLevels.go index 2310bf8d672..90f6d7cc43c 100644 --- a/service/iot/api_op_ListV2LoggingLevels.go +++ b/service/iot/api_op_ListV2LoggingLevels.go @@ -12,7 +12,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists logging levels. +// Lists logging levels. Requires permission to access the ListV2LoggingLevels +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListV2LoggingLevels(ctx context.Context, params *ListV2LoggingLevelsInput, optFns ...func(*Options)) (*ListV2LoggingLevelsOutput, error) { if params == nil { params = &ListV2LoggingLevelsInput{} diff --git a/service/iot/api_op_ListViolationEvents.go b/service/iot/api_op_ListViolationEvents.go index e011dd484df..777eca09089 100644 --- a/service/iot/api_op_ListViolationEvents.go +++ b/service/iot/api_op_ListViolationEvents.go @@ -15,7 +15,10 @@ import ( // Lists the Device Defender security profile violations discovered during the // given time period. You can use filters to limit the results to those alerts -// issued for a particular security profile, behavior, or thing (device). +// issued for a particular security profile, behavior, or thing (device). Requires +// permission to access the ListViolationEvents +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ListViolationEvents(ctx context.Context, params *ListViolationEventsInput, optFns ...func(*Options)) (*ListViolationEventsOutput, error) { if params == nil { params = &ListViolationEventsInput{} diff --git a/service/iot/api_op_RegisterCACertificate.go b/service/iot/api_op_RegisterCACertificate.go index bb0829879fd..b7a224a157d 100644 --- a/service/iot/api_op_RegisterCACertificate.go +++ b/service/iot/api_op_RegisterCACertificate.go @@ -11,13 +11,16 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Registers a CA certificate with AWS IoT. This CA certificate can then be used to -// sign device certificates, which can be then registered with AWS IoT. You can -// register up to 10 CA certificates per AWS account that have the same subject -// field. This enables you to have up to 10 certificate authorities sign your -// device certificates. If you have more than one CA certificate registered, make -// sure you pass the CA certificate when you register your device certificates with -// the RegisterCertificate API. +// Registers a CA certificate with IoT. This CA certificate can then be used to +// sign device certificates, which can be then registered with IoT. You can +// register up to 10 CA certificates per Amazon Web Services account that have the +// same subject field. This enables you to have up to 10 certificate authorities +// sign your device certificates. If you have more than one CA certificate +// registered, make sure you pass the CA certificate when you register your device +// certificates with the RegisterCertificate action. Requires permission to access +// the RegisterCACertificate +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) RegisterCACertificate(ctx context.Context, params *RegisterCACertificateInput, optFns ...func(*Options)) (*RegisterCACertificateOutput, error) { if params == nil { params = &RegisterCACertificateInput{} diff --git a/service/iot/api_op_RegisterCertificate.go b/service/iot/api_op_RegisterCertificate.go index 41a6b439b76..afde806668b 100644 --- a/service/iot/api_op_RegisterCertificate.go +++ b/service/iot/api_op_RegisterCertificate.go @@ -11,9 +11,12 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Registers a device certificate with AWS IoT. If you have more than one CA +// Registers a device certificate with IoT. If you have more than one CA // certificate that has the same subject field, you must specify the CA certificate -// that was used to sign the device certificate being registered. +// that was used to sign the device certificate being registered. Requires +// permission to access the RegisterCertificate +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) RegisterCertificate(ctx context.Context, params *RegisterCertificateInput, optFns ...func(*Options)) (*RegisterCertificateOutput, error) { if params == nil { params = &RegisterCertificateInput{} diff --git a/service/iot/api_op_RegisterThing.go b/service/iot/api_op_RegisterThing.go index 49d6c7428b2..be6a95a1afa 100644 --- a/service/iot/api_op_RegisterThing.go +++ b/service/iot/api_op_RegisterThing.go @@ -10,13 +10,14 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Provisions a thing in the device registry. RegisterThing calls other AWS IoT -// control plane APIs. These calls might exceed your account level AWS IoT -// Throttling Limits +// Provisions a thing in the device registry. RegisterThing calls other IoT control +// plane APIs. These calls might exceed your account level IoT Throttling Limits // (https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_iot) -// and cause throttle errors. Please contact AWS Customer Support +// and cause throttle errors. Please contact Amazon Web Services Customer Support // (https://console.aws.amazon.com/support/home) to raise your throttling limits if -// necessary. +// necessary. Requires permission to access the RegisterThing +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) RegisterThing(ctx context.Context, params *RegisterThingInput, optFns ...func(*Options)) (*RegisterThingOutput, error) { if params == nil { params = &RegisterThingInput{} diff --git a/service/iot/api_op_RejectCertificateTransfer.go b/service/iot/api_op_RejectCertificateTransfer.go index f339d568d94..4b500fb6696 100644 --- a/service/iot/api_op_RejectCertificateTransfer.go +++ b/service/iot/api_op_RejectCertificateTransfer.go @@ -10,12 +10,14 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Rejects a pending certificate transfer. After AWS IoT rejects a certificate +// Rejects a pending certificate transfer. After IoT rejects a certificate // transfer, the certificate status changes from PENDING_TRANSFER to INACTIVE. To // check for pending certificate transfers, call ListCertificates to enumerate your // certificates. This operation can only be called by the transfer destination. // After it is called, the certificate will be returned to the source's account in -// the INACTIVE state. +// the INACTIVE state. Requires permission to access the RejectCertificateTransfer +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) RejectCertificateTransfer(ctx context.Context, params *RejectCertificateTransferInput, optFns ...func(*Options)) (*RejectCertificateTransferOutput, error) { if params == nil { params = &RejectCertificateTransferInput{} diff --git a/service/iot/api_op_RemoveThingFromBillingGroup.go b/service/iot/api_op_RemoveThingFromBillingGroup.go index dd023d9236d..ff93d019c4f 100644 --- a/service/iot/api_op_RemoveThingFromBillingGroup.go +++ b/service/iot/api_op_RemoveThingFromBillingGroup.go @@ -10,7 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Removes the given thing from the billing group. +// Removes the given thing from the billing group. Requires permission to access +// the RemoveThingFromBillingGroup +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) RemoveThingFromBillingGroup(ctx context.Context, params *RemoveThingFromBillingGroupInput, optFns ...func(*Options)) (*RemoveThingFromBillingGroupOutput, error) { if params == nil { params = &RemoveThingFromBillingGroupInput{} diff --git a/service/iot/api_op_RemoveThingFromThingGroup.go b/service/iot/api_op_RemoveThingFromThingGroup.go index 64a8d02fec0..d8cf40edb15 100644 --- a/service/iot/api_op_RemoveThingFromThingGroup.go +++ b/service/iot/api_op_RemoveThingFromThingGroup.go @@ -13,6 +13,9 @@ import ( // Remove the specified thing from the specified group. You must specify either a // thingGroupArn or a thingGroupName to identify the thing group and either a // thingArn or a thingName to identify the thing to remove from the thing group. +// Requires permission to access the RemoveThingFromThingGroup +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) RemoveThingFromThingGroup(ctx context.Context, params *RemoveThingFromThingGroupInput, optFns ...func(*Options)) (*RemoveThingFromThingGroupOutput, error) { if params == nil { params = &RemoveThingFromThingGroupInput{} diff --git a/service/iot/api_op_ReplaceTopicRule.go b/service/iot/api_op_ReplaceTopicRule.go index 616e52dd418..2e3c97fdea9 100644 --- a/service/iot/api_op_ReplaceTopicRule.go +++ b/service/iot/api_op_ReplaceTopicRule.go @@ -13,7 +13,10 @@ import ( // Replaces the rule. You must specify all parameters for the new rule. Creating // rules is an administrator-level action. Any user who has permission to create -// rules will be able to access data processed by the rule. +// rules will be able to access data processed by the rule. Requires permission to +// access the ReplaceTopicRule +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ReplaceTopicRule(ctx context.Context, params *ReplaceTopicRuleInput, optFns ...func(*Options)) (*ReplaceTopicRuleOutput, error) { if params == nil { params = &ReplaceTopicRuleInput{} diff --git a/service/iot/api_op_SearchIndex.go b/service/iot/api_op_SearchIndex.go index c37c5b47f33..7028ba4f31d 100644 --- a/service/iot/api_op_SearchIndex.go +++ b/service/iot/api_op_SearchIndex.go @@ -11,7 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// The query search index. +// The query search index. Requires permission to access the SearchIndex +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) SearchIndex(ctx context.Context, params *SearchIndexInput, optFns ...func(*Options)) (*SearchIndexOutput, error) { if params == nil { params = &SearchIndexInput{} diff --git a/service/iot/api_op_SetDefaultAuthorizer.go b/service/iot/api_op_SetDefaultAuthorizer.go index 084a45dee63..6410bfaf360 100644 --- a/service/iot/api_op_SetDefaultAuthorizer.go +++ b/service/iot/api_op_SetDefaultAuthorizer.go @@ -11,7 +11,10 @@ import ( ) // Sets the default authorizer. This will be used if a websocket connection is made -// without specifying an authorizer. +// without specifying an authorizer. Requires permission to access the +// SetDefaultAuthorizer +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) SetDefaultAuthorizer(ctx context.Context, params *SetDefaultAuthorizerInput, optFns ...func(*Options)) (*SetDefaultAuthorizerOutput, error) { if params == nil { params = &SetDefaultAuthorizerInput{} diff --git a/service/iot/api_op_SetDefaultPolicyVersion.go b/service/iot/api_op_SetDefaultPolicyVersion.go index 63273f747ce..95e3d5fee1a 100644 --- a/service/iot/api_op_SetDefaultPolicyVersion.go +++ b/service/iot/api_op_SetDefaultPolicyVersion.go @@ -13,7 +13,10 @@ import ( // Sets the specified version of the specified policy as the policy's default // (operative) version. This action affects all certificates to which the policy is // attached. To list the principals the policy is attached to, use the -// ListPrincipalPolicy API. +// ListPrincipalPolicies action. Requires permission to access the +// SetDefaultPolicyVersion +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) SetDefaultPolicyVersion(ctx context.Context, params *SetDefaultPolicyVersionInput, optFns ...func(*Options)) (*SetDefaultPolicyVersionOutput, error) { if params == nil { params = &SetDefaultPolicyVersionInput{} diff --git a/service/iot/api_op_SetLoggingOptions.go b/service/iot/api_op_SetLoggingOptions.go index fb3bb1a2b36..c94d41353c8 100644 --- a/service/iot/api_op_SetLoggingOptions.go +++ b/service/iot/api_op_SetLoggingOptions.go @@ -12,7 +12,9 @@ import ( ) // Sets the logging options. NOTE: use of this command is not recommended. Use -// SetV2LoggingOptions instead. +// SetV2LoggingOptions instead. Requires permission to access the SetLoggingOptions +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) SetLoggingOptions(ctx context.Context, params *SetLoggingOptionsInput, optFns ...func(*Options)) (*SetLoggingOptionsOutput, error) { if params == nil { params = &SetLoggingOptionsInput{} diff --git a/service/iot/api_op_SetV2LoggingLevel.go b/service/iot/api_op_SetV2LoggingLevel.go index 640337144b5..e7fa57382da 100644 --- a/service/iot/api_op_SetV2LoggingLevel.go +++ b/service/iot/api_op_SetV2LoggingLevel.go @@ -11,7 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Sets the logging level. +// Sets the logging level. Requires permission to access the SetV2LoggingLevel +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) SetV2LoggingLevel(ctx context.Context, params *SetV2LoggingLevelInput, optFns ...func(*Options)) (*SetV2LoggingLevelOutput, error) { if params == nil { params = &SetV2LoggingLevelInput{} diff --git a/service/iot/api_op_SetV2LoggingOptions.go b/service/iot/api_op_SetV2LoggingOptions.go index 260d66314e2..c8f9532e009 100644 --- a/service/iot/api_op_SetV2LoggingOptions.go +++ b/service/iot/api_op_SetV2LoggingOptions.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Sets the logging options for the V2 logging service. +// Sets the logging options for the V2 logging service. Requires permission to +// access the SetV2LoggingOptions +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) SetV2LoggingOptions(ctx context.Context, params *SetV2LoggingOptionsInput, optFns ...func(*Options)) (*SetV2LoggingOptionsOutput, error) { if params == nil { params = &SetV2LoggingOptionsInput{} diff --git a/service/iot/api_op_StartAuditMitigationActionsTask.go b/service/iot/api_op_StartAuditMitigationActionsTask.go index baa17ab23a8..20f4cb0784f 100644 --- a/service/iot/api_op_StartAuditMitigationActionsTask.go +++ b/service/iot/api_op_StartAuditMitigationActionsTask.go @@ -13,6 +13,9 @@ import ( ) // Starts a task that applies a set of mitigation actions to the specified target. +// Requires permission to access the StartAuditMitigationActionsTask +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) StartAuditMitigationActionsTask(ctx context.Context, params *StartAuditMitigationActionsTaskInput, optFns ...func(*Options)) (*StartAuditMitigationActionsTaskOutput, error) { if params == nil { params = &StartAuditMitigationActionsTaskInput{} @@ -31,7 +34,7 @@ func (c *Client) StartAuditMitigationActionsTask(ctx context.Context, params *St type StartAuditMitigationActionsTaskInput struct { // For an audit check, specifies which mitigation actions to apply. Those actions - // must be defined in your AWS account. + // must be defined in your Amazon Web Services accounts. // // This member is required. AuditCheckToActionsMapping map[string][]string diff --git a/service/iot/api_op_StartDetectMitigationActionsTask.go b/service/iot/api_op_StartDetectMitigationActionsTask.go index c9df0c98db8..64c42493fb8 100644 --- a/service/iot/api_op_StartDetectMitigationActionsTask.go +++ b/service/iot/api_op_StartDetectMitigationActionsTask.go @@ -12,7 +12,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Starts a Device Defender ML Detect mitigation actions task. +// Starts a Device Defender ML Detect mitigation actions task. Requires permission +// to access the StartDetectMitigationActionsTask +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) StartDetectMitigationActionsTask(ctx context.Context, params *StartDetectMitigationActionsTaskInput, optFns ...func(*Options)) (*StartDetectMitigationActionsTaskOutput, error) { if params == nil { params = &StartDetectMitigationActionsTaskInput{} @@ -37,8 +40,8 @@ type StartDetectMitigationActionsTaskInput struct { // Each mitigation action task must have a unique client request token. If you try // to create a new task with the same token as a task that already exists, an - // exception occurs. If you omit this value, AWS SDKs will automatically generate a - // unique client request. + // exception occurs. If you omit this value, Amazon Web Services SDKs will + // automatically generate a unique client request. // // This member is required. ClientRequestToken *string diff --git a/service/iot/api_op_StartOnDemandAuditTask.go b/service/iot/api_op_StartOnDemandAuditTask.go index ee30bc85272..9d0f201f947 100644 --- a/service/iot/api_op_StartOnDemandAuditTask.go +++ b/service/iot/api_op_StartOnDemandAuditTask.go @@ -10,7 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Starts an on-demand Device Defender audit. +// Starts an on-demand Device Defender audit. Requires permission to access the +// StartOnDemandAuditTask +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) StartOnDemandAuditTask(ctx context.Context, params *StartOnDemandAuditTaskInput, optFns ...func(*Options)) (*StartOnDemandAuditTaskOutput, error) { if params == nil { params = &StartOnDemandAuditTaskInput{} diff --git a/service/iot/api_op_StartThingRegistrationTask.go b/service/iot/api_op_StartThingRegistrationTask.go index ffcc0bf22fb..da934bbf664 100644 --- a/service/iot/api_op_StartThingRegistrationTask.go +++ b/service/iot/api_op_StartThingRegistrationTask.go @@ -10,7 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a bulk thing provisioning task. +// Creates a bulk thing provisioning task. Requires permission to access the +// StartThingRegistrationTask +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) StartThingRegistrationTask(ctx context.Context, params *StartThingRegistrationTaskInput, optFns ...func(*Options)) (*StartThingRegistrationTaskOutput, error) { if params == nil { params = &StartThingRegistrationTaskInput{} diff --git a/service/iot/api_op_StopThingRegistrationTask.go b/service/iot/api_op_StopThingRegistrationTask.go index d564f71df58..1334873ac28 100644 --- a/service/iot/api_op_StopThingRegistrationTask.go +++ b/service/iot/api_op_StopThingRegistrationTask.go @@ -10,7 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Cancels a bulk thing provisioning task. +// Cancels a bulk thing provisioning task. Requires permission to access the +// StopThingRegistrationTask +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) StopThingRegistrationTask(ctx context.Context, params *StopThingRegistrationTaskInput, optFns ...func(*Options)) (*StopThingRegistrationTaskOutput, error) { if params == nil { params = &StopThingRegistrationTaskInput{} diff --git a/service/iot/api_op_TagResource.go b/service/iot/api_op_TagResource.go index 3e471f634f3..62206c0ffa1 100644 --- a/service/iot/api_op_TagResource.go +++ b/service/iot/api_op_TagResource.go @@ -12,7 +12,9 @@ import ( ) // Adds to or modifies the tags of the given resource. Tags are metadata which can -// be used to manage a resource. +// be used to manage a resource. Requires permission to access the TagResource +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) TagResource(ctx context.Context, params *TagResourceInput, optFns ...func(*Options)) (*TagResourceOutput, error) { if params == nil { params = &TagResourceInput{} diff --git a/service/iot/api_op_TestAuthorization.go b/service/iot/api_op_TestAuthorization.go index c4d96727f09..5bfa3e894bc 100644 --- a/service/iot/api_op_TestAuthorization.go +++ b/service/iot/api_op_TestAuthorization.go @@ -11,9 +11,12 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Tests if a specified principal is authorized to perform an AWS IoT action on a +// Tests if a specified principal is authorized to perform an IoT action on a // specified resource. Use this to test and debug the authorization behavior of -// devices that connect to the AWS IoT device gateway. +// devices that connect to the IoT device gateway. Requires permission to access +// the TestAuthorization +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) TestAuthorization(ctx context.Context, params *TestAuthorizationInput, optFns ...func(*Options)) (*TestAuthorizationOutput, error) { if params == nil { params = &TestAuthorizationInput{} diff --git a/service/iot/api_op_TestInvokeAuthorizer.go b/service/iot/api_op_TestInvokeAuthorizer.go index a281656543c..4b153ddd2de 100644 --- a/service/iot/api_op_TestInvokeAuthorizer.go +++ b/service/iot/api_op_TestInvokeAuthorizer.go @@ -13,7 +13,10 @@ import ( // Tests a custom authorization behavior by invoking a specified custom authorizer. // Use this to test and debug the custom authorization behavior of devices that -// connect to the AWS IoT device gateway. +// connect to the IoT device gateway. Requires permission to access the +// TestInvokeAuthorizer +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) TestInvokeAuthorizer(ctx context.Context, params *TestInvokeAuthorizerInput, optFns ...func(*Options)) (*TestInvokeAuthorizerOutput, error) { if params == nil { params = &TestInvokeAuthorizerInput{} diff --git a/service/iot/api_op_TransferCertificate.go b/service/iot/api_op_TransferCertificate.go index 8f578d5f94c..87186e5a505 100644 --- a/service/iot/api_op_TransferCertificate.go +++ b/service/iot/api_op_TransferCertificate.go @@ -10,13 +10,15 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Transfers the specified certificate to the specified AWS account. You can cancel -// the transfer until it is acknowledged by the recipient. No notification is sent -// to the transfer destination's account. It is up to the caller to notify the -// transfer target. The certificate being transferred must not be in the ACTIVE -// state. You can use the UpdateCertificate API to deactivate it. The certificate -// must not have any policies attached to it. You can use the DetachPrincipalPolicy -// API to detach them. +// Transfers the specified certificate to the specified Amazon Web Services +// account. Requires permission to access the TransferCertificate +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. You can cancel the transfer until it is acknowledged by the recipient. +// No notification is sent to the transfer destination's account. It is up to the +// caller to notify the transfer target. The certificate being transferred must not +// be in the ACTIVE state. You can use the UpdateCertificate action to deactivate +// it. The certificate must not have any policies attached to it. You can use the +// DetachPolicy action to detach them. func (c *Client) TransferCertificate(ctx context.Context, params *TransferCertificateInput, optFns ...func(*Options)) (*TransferCertificateOutput, error) { if params == nil { params = &TransferCertificateInput{} @@ -41,7 +43,7 @@ type TransferCertificateInput struct { // This member is required. CertificateId *string - // The AWS account. + // The Amazon Web Services account. // // This member is required. TargetAwsAccount *string diff --git a/service/iot/api_op_UntagResource.go b/service/iot/api_op_UntagResource.go index 3746ca81c07..184b5b376da 100644 --- a/service/iot/api_op_UntagResource.go +++ b/service/iot/api_op_UntagResource.go @@ -10,7 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Removes the given tags (metadata) from the resource. +// Removes the given tags (metadata) from the resource. Requires permission to +// access the UntagResource +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) UntagResource(ctx context.Context, params *UntagResourceInput, optFns ...func(*Options)) (*UntagResourceOutput, error) { if params == nil { params = &UntagResourceInput{} diff --git a/service/iot/api_op_UpdateAccountAuditConfiguration.go b/service/iot/api_op_UpdateAccountAuditConfiguration.go index ae94ae55b91..dd468465c32 100644 --- a/service/iot/api_op_UpdateAccountAuditConfiguration.go +++ b/service/iot/api_op_UpdateAccountAuditConfiguration.go @@ -13,7 +13,10 @@ import ( // Configures or reconfigures the Device Defender audit settings for this account. // Settings include how audit notifications are sent and which audit checks are -// enabled or disabled. +// enabled or disabled. Requires permission to access the +// UpdateAccountAuditConfiguration +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) UpdateAccountAuditConfiguration(ctx context.Context, params *UpdateAccountAuditConfigurationInput, optFns ...func(*Options)) (*UpdateAccountAuditConfigurationOutput, error) { if params == nil { params = &UpdateAccountAuditConfigurationInput{} @@ -45,7 +48,7 @@ type UpdateAccountAuditConfigurationInput struct { // Information about the targets to which audit notifications are sent. AuditNotificationTargetConfigurations map[string]types.AuditNotificationTarget - // The Amazon Resource Name (ARN) of the role that grants permission to AWS IoT to + // The Amazon Resource Name (ARN) of the role that grants permission to IoT to // access information about your devices, policies, certificates, and other items // as required when performing an audit. RoleArn *string diff --git a/service/iot/api_op_UpdateAuthorizer.go b/service/iot/api_op_UpdateAuthorizer.go index 5cb2cc08ad0..9b80c6fba49 100644 --- a/service/iot/api_op_UpdateAuthorizer.go +++ b/service/iot/api_op_UpdateAuthorizer.go @@ -11,7 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Updates an authorizer. +// Updates an authorizer. Requires permission to access the UpdateAuthorizer +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) UpdateAuthorizer(ctx context.Context, params *UpdateAuthorizerInput, optFns ...func(*Options)) (*UpdateAuthorizerOutput, error) { if params == nil { params = &UpdateAuthorizerInput{} diff --git a/service/iot/api_op_UpdateBillingGroup.go b/service/iot/api_op_UpdateBillingGroup.go index e64f3c22a97..8b37b8f4b6f 100644 --- a/service/iot/api_op_UpdateBillingGroup.go +++ b/service/iot/api_op_UpdateBillingGroup.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Updates information about the billing group. +// Updates information about the billing group. Requires permission to access the +// UpdateBillingGroup +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) UpdateBillingGroup(ctx context.Context, params *UpdateBillingGroupInput, optFns ...func(*Options)) (*UpdateBillingGroupOutput, error) { if params == nil { params = &UpdateBillingGroupInput{} diff --git a/service/iot/api_op_UpdateCACertificate.go b/service/iot/api_op_UpdateCACertificate.go index 014927638ff..c2bf7be8070 100644 --- a/service/iot/api_op_UpdateCACertificate.go +++ b/service/iot/api_op_UpdateCACertificate.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Updates a registered CA certificate. +// Updates a registered CA certificate. Requires permission to access the +// UpdateCACertificate +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) UpdateCACertificate(ctx context.Context, params *UpdateCACertificateInput, optFns ...func(*Options)) (*UpdateCACertificateOutput, error) { if params == nil { params = &UpdateCACertificateInput{} diff --git a/service/iot/api_op_UpdateCertificate.go b/service/iot/api_op_UpdateCertificate.go index a37088d9b8b..37963ac6d95 100644 --- a/service/iot/api_op_UpdateCertificate.go +++ b/service/iot/api_op_UpdateCertificate.go @@ -12,9 +12,11 @@ import ( ) // Updates the status of the specified certificate. This operation is idempotent. -// Certificates must be in the ACTIVE state to authenticate devices that use a -// certificate to connect to AWS IoT. Within a few minutes of updating a -// certificate from the ACTIVE state to any other state, AWS IoT disconnects all +// Requires permission to access the UpdateCertificate +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. Certificates must be in the ACTIVE state to authenticate devices that +// use a certificate to connect to IoT. Within a few minutes of updating a +// certificate from the ACTIVE state to any other state, IoT disconnects all // devices that used that certificate to connect. Devices cannot use a certificate // that is not in the ACTIVE state to reconnect. func (c *Client) UpdateCertificate(ctx context.Context, params *UpdateCertificateInput, optFns ...func(*Options)) (*UpdateCertificateOutput, error) { @@ -43,7 +45,7 @@ type UpdateCertificateInput struct { // The new status. Note: Setting the status to PENDING_TRANSFER or // PENDING_ACTIVATION will result in an exception being thrown. PENDING_TRANSFER - // and PENDING_ACTIVATION are statuses used internally by AWS IoT. They are not + // and PENDING_ACTIVATION are statuses used internally by IoT. They are not // intended for developer use. Note: The status value REGISTER_INACTIVE is // deprecated and should not be used. // diff --git a/service/iot/api_op_UpdateCustomMetric.go b/service/iot/api_op_UpdateCustomMetric.go index 7825fd60e7c..0d6744dc86b 100644 --- a/service/iot/api_op_UpdateCustomMetric.go +++ b/service/iot/api_op_UpdateCustomMetric.go @@ -12,7 +12,10 @@ import ( "time" ) -// Updates a Device Defender detect custom metric. +// Updates a Device Defender detect custom metric. Requires permission to access +// the UpdateCustomMetric +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) UpdateCustomMetric(ctx context.Context, params *UpdateCustomMetricInput, optFns ...func(*Options)) (*UpdateCustomMetricOutput, error) { if params == nil { params = &UpdateCustomMetricInput{} diff --git a/service/iot/api_op_UpdateDimension.go b/service/iot/api_op_UpdateDimension.go index 34176831281..36cf4586891 100644 --- a/service/iot/api_op_UpdateDimension.go +++ b/service/iot/api_op_UpdateDimension.go @@ -13,7 +13,10 @@ import ( ) // Updates the definition for a dimension. You cannot change the type of a -// dimension after it is created (you can delete it and recreate it). +// dimension after it is created (you can delete it and recreate it). Requires +// permission to access the UpdateDimension +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) UpdateDimension(ctx context.Context, params *UpdateDimensionInput, optFns ...func(*Options)) (*UpdateDimensionOutput, error) { if params == nil { params = &UpdateDimensionInput{} diff --git a/service/iot/api_op_UpdateDomainConfiguration.go b/service/iot/api_op_UpdateDomainConfiguration.go index fc733919174..4f5182b873e 100644 --- a/service/iot/api_op_UpdateDomainConfiguration.go +++ b/service/iot/api_op_UpdateDomainConfiguration.go @@ -12,7 +12,10 @@ import ( ) // Updates values stored in the domain configuration. Domain configurations for -// default endpoints can't be updated. +// default endpoints can't be updated. Requires permission to access the +// UpdateDomainConfiguration +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) UpdateDomainConfiguration(ctx context.Context, params *UpdateDomainConfigurationInput, optFns ...func(*Options)) (*UpdateDomainConfigurationOutput, error) { if params == nil { params = &UpdateDomainConfigurationInput{} diff --git a/service/iot/api_op_UpdateDynamicThingGroup.go b/service/iot/api_op_UpdateDynamicThingGroup.go index 912dcc7ddbb..9e3ef9879dd 100644 --- a/service/iot/api_op_UpdateDynamicThingGroup.go +++ b/service/iot/api_op_UpdateDynamicThingGroup.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Updates a dynamic thing group. +// Updates a dynamic thing group. Requires permission to access the +// UpdateDynamicThingGroup +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) UpdateDynamicThingGroup(ctx context.Context, params *UpdateDynamicThingGroupInput, optFns ...func(*Options)) (*UpdateDynamicThingGroupOutput, error) { if params == nil { params = &UpdateDynamicThingGroupInput{} @@ -43,7 +46,7 @@ type UpdateDynamicThingGroupInput struct { ExpectedVersion *int64 // The dynamic thing group index to update. Currently one index is supported: - // 'AWS_Things'. + // AWS_Things. IndexName *string // The dynamic thing group search query string to update. diff --git a/service/iot/api_op_UpdateEventConfigurations.go b/service/iot/api_op_UpdateEventConfigurations.go index 5dde7ab4174..ca05daccb74 100644 --- a/service/iot/api_op_UpdateEventConfigurations.go +++ b/service/iot/api_op_UpdateEventConfigurations.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Updates the event configurations. +// Updates the event configurations. Requires permission to access the +// UpdateEventConfigurations +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) UpdateEventConfigurations(ctx context.Context, params *UpdateEventConfigurationsInput, optFns ...func(*Options)) (*UpdateEventConfigurationsOutput, error) { if params == nil { params = &UpdateEventConfigurationsInput{} diff --git a/service/iot/api_op_UpdateFleetMetric.go b/service/iot/api_op_UpdateFleetMetric.go new file mode 100644 index 00000000000..24299b698c3 --- /dev/null +++ b/service/iot/api_op_UpdateFleetMetric.go @@ -0,0 +1,152 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package iot + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/iot/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Updates the data for a fleet metric. Requires permission to access the +// UpdateFleetMetric +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. +func (c *Client) UpdateFleetMetric(ctx context.Context, params *UpdateFleetMetricInput, optFns ...func(*Options)) (*UpdateFleetMetricOutput, error) { + if params == nil { + params = &UpdateFleetMetricInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UpdateFleetMetric", params, optFns, c.addOperationUpdateFleetMetricMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UpdateFleetMetricOutput) + out.ResultMetadata = metadata + return out, nil +} + +type UpdateFleetMetricInput struct { + + // The name of the index to search. + // + // This member is required. + IndexName *string + + // The name of the fleet metric to update. + // + // This member is required. + MetricName *string + + // The field to aggregate. + AggregationField *string + + // The type of the aggregation query. + AggregationType *types.AggregationType + + // The description of the fleet metric. + Description *string + + // The expected version of the fleet metric record in the registry. + ExpectedVersion *int64 + + // The time in seconds between fleet metric emissions. Range [60(1 min), 86400(1 + // day)] and must be multiple of 60. + Period *int32 + + // The search query string. + QueryString *string + + // The version of the query. + QueryVersion *string + + // Used to support unit transformation such as milliseconds to seconds. The unit + // must be supported by CW metric + // (https://docs.aws.amazon.com/https:/docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html). + Unit types.FleetMetricUnit + + noSmithyDocumentSerde +} + +type UpdateFleetMetricOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUpdateFleetMetricMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpUpdateFleetMetric{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpUpdateFleetMetric{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpUpdateFleetMetricValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdateFleetMetric(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opUpdateFleetMetric(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "execute-api", + OperationName: "UpdateFleetMetric", + } +} diff --git a/service/iot/api_op_UpdateIndexingConfiguration.go b/service/iot/api_op_UpdateIndexingConfiguration.go index 4ade14b0f62..d3d67506b7f 100644 --- a/service/iot/api_op_UpdateIndexingConfiguration.go +++ b/service/iot/api_op_UpdateIndexingConfiguration.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Updates the search configuration. +// Updates the search configuration. Requires permission to access the +// UpdateIndexingConfiguration +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) UpdateIndexingConfiguration(ctx context.Context, params *UpdateIndexingConfigurationInput, optFns ...func(*Options)) (*UpdateIndexingConfigurationOutput, error) { if params == nil { params = &UpdateIndexingConfigurationInput{} diff --git a/service/iot/api_op_UpdateJob.go b/service/iot/api_op_UpdateJob.go index e2ad2656d28..0e3b9e85dce 100644 --- a/service/iot/api_op_UpdateJob.go +++ b/service/iot/api_op_UpdateJob.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Updates supported fields of the specified job. +// Updates supported fields of the specified job. Requires permission to access the +// UpdateJob +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) UpdateJob(ctx context.Context, params *UpdateJobInput, optFns ...func(*Options)) (*UpdateJobOutput, error) { if params == nil { params = &UpdateJobInput{} @@ -44,8 +47,8 @@ type UpdateJobInput struct { JobExecutionsRolloutConfig *types.JobExecutionsRolloutConfig // The namespace used to indicate that a job is a customer-managed job. When you - // specify a value for this parameter, AWS IoT Core sends jobs notifications to - // MQTT topics that contain the value in the following format. + // specify a value for this parameter, Amazon Web Services IoT Core sends jobs + // notifications to MQTT topics that contain the value in the following format. // $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/ The // namespaceId feature is in public preview. NamespaceId *string diff --git a/service/iot/api_op_UpdateMitigationAction.go b/service/iot/api_op_UpdateMitigationAction.go index 4c01a5a8e1d..b341e82764f 100644 --- a/service/iot/api_op_UpdateMitigationAction.go +++ b/service/iot/api_op_UpdateMitigationAction.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Updates the definition for the specified mitigation action. +// Updates the definition for the specified mitigation action. Requires permission +// to access the UpdateMitigationAction +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) UpdateMitigationAction(ctx context.Context, params *UpdateMitigationActionInput, optFns ...func(*Options)) (*UpdateMitigationActionOutput, error) { if params == nil { params = &UpdateMitigationActionInput{} diff --git a/service/iot/api_op_UpdateProvisioningTemplate.go b/service/iot/api_op_UpdateProvisioningTemplate.go index 70d93dfc29b..3fc8b751a42 100644 --- a/service/iot/api_op_UpdateProvisioningTemplate.go +++ b/service/iot/api_op_UpdateProvisioningTemplate.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Updates a fleet provisioning template. +// Updates a fleet provisioning template. Requires permission to access the +// UpdateProvisioningTemplate +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) UpdateProvisioningTemplate(ctx context.Context, params *UpdateProvisioningTemplateInput, optFns ...func(*Options)) (*UpdateProvisioningTemplateOutput, error) { if params == nil { params = &UpdateProvisioningTemplateInput{} diff --git a/service/iot/api_op_UpdateRoleAlias.go b/service/iot/api_op_UpdateRoleAlias.go index e2ac86bca7f..f7f2ae758ef 100644 --- a/service/iot/api_op_UpdateRoleAlias.go +++ b/service/iot/api_op_UpdateRoleAlias.go @@ -10,7 +10,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Updates a role alias. +// Updates a role alias. Requires permission to access the UpdateRoleAlias +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) UpdateRoleAlias(ctx context.Context, params *UpdateRoleAliasInput, optFns ...func(*Options)) (*UpdateRoleAliasOutput, error) { if params == nil { params = &UpdateRoleAliasInput{} diff --git a/service/iot/api_op_UpdateScheduledAudit.go b/service/iot/api_op_UpdateScheduledAudit.go index fd41927cddb..54eb7e247f8 100644 --- a/service/iot/api_op_UpdateScheduledAudit.go +++ b/service/iot/api_op_UpdateScheduledAudit.go @@ -12,7 +12,9 @@ import ( ) // Updates a scheduled audit, including which checks are performed and how often -// the audit takes place. +// the audit takes place. Requires permission to access the UpdateScheduledAudit +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) UpdateScheduledAudit(ctx context.Context, params *UpdateScheduledAuditInput, optFns ...func(*Options)) (*UpdateScheduledAuditOutput, error) { if params == nil { params = &UpdateScheduledAuditInput{} diff --git a/service/iot/api_op_UpdateSecurityProfile.go b/service/iot/api_op_UpdateSecurityProfile.go index 10e1e58b411..40ffab5c4ce 100644 --- a/service/iot/api_op_UpdateSecurityProfile.go +++ b/service/iot/api_op_UpdateSecurityProfile.go @@ -12,7 +12,10 @@ import ( "time" ) -// Updates a Device Defender security profile. +// Updates a Device Defender security profile. Requires permission to access the +// UpdateSecurityProfile +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) UpdateSecurityProfile(ctx context.Context, params *UpdateSecurityProfileInput, optFns ...func(*Options)) (*UpdateSecurityProfileOutput, error) { if params == nil { params = &UpdateSecurityProfileInput{} diff --git a/service/iot/api_op_UpdateStream.go b/service/iot/api_op_UpdateStream.go index c6277d17c8e..249c6483115 100644 --- a/service/iot/api_op_UpdateStream.go +++ b/service/iot/api_op_UpdateStream.go @@ -12,6 +12,9 @@ import ( ) // Updates an existing stream. The stream version will be incremented by one. +// Requires permission to access the UpdateStream +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) UpdateStream(ctx context.Context, params *UpdateStreamInput, optFns ...func(*Options)) (*UpdateStreamOutput, error) { if params == nil { params = &UpdateStreamInput{} diff --git a/service/iot/api_op_UpdateThing.go b/service/iot/api_op_UpdateThing.go index 46322bbc9bf..ddde03dd18b 100644 --- a/service/iot/api_op_UpdateThing.go +++ b/service/iot/api_op_UpdateThing.go @@ -11,7 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Updates the data for a thing. +// Updates the data for a thing. Requires permission to access the UpdateThing +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) UpdateThing(ctx context.Context, params *UpdateThingInput, optFns ...func(*Options)) (*UpdateThingOutput, error) { if params == nil { params = &UpdateThingInput{} diff --git a/service/iot/api_op_UpdateThingGroup.go b/service/iot/api_op_UpdateThingGroup.go index ef337935ce2..55dee0665f1 100644 --- a/service/iot/api_op_UpdateThingGroup.go +++ b/service/iot/api_op_UpdateThingGroup.go @@ -11,7 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Update a thing group. +// Update a thing group. Requires permission to access the UpdateThingGroup +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) UpdateThingGroup(ctx context.Context, params *UpdateThingGroupInput, optFns ...func(*Options)) (*UpdateThingGroupOutput, error) { if params == nil { params = &UpdateThingGroupInput{} diff --git a/service/iot/api_op_UpdateThingGroupsForThing.go b/service/iot/api_op_UpdateThingGroupsForThing.go index 15aef196113..5195e165a23 100644 --- a/service/iot/api_op_UpdateThingGroupsForThing.go +++ b/service/iot/api_op_UpdateThingGroupsForThing.go @@ -10,7 +10,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Updates the groups to which the thing belongs. +// Updates the groups to which the thing belongs. Requires permission to access the +// UpdateThingGroupsForThing +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) UpdateThingGroupsForThing(ctx context.Context, params *UpdateThingGroupsForThingInput, optFns ...func(*Options)) (*UpdateThingGroupsForThingOutput, error) { if params == nil { params = &UpdateThingGroupsForThingInput{} diff --git a/service/iot/api_op_UpdateTopicRuleDestination.go b/service/iot/api_op_UpdateTopicRuleDestination.go index 9971cd7a608..cf8f95421d4 100644 --- a/service/iot/api_op_UpdateTopicRuleDestination.go +++ b/service/iot/api_op_UpdateTopicRuleDestination.go @@ -12,7 +12,10 @@ import ( ) // Updates a topic rule destination. You use this to change the status, endpoint -// URL, or confirmation URL of the destination. +// URL, or confirmation URL of the destination. Requires permission to access the +// UpdateTopicRuleDestination +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) UpdateTopicRuleDestination(ctx context.Context, params *UpdateTopicRuleDestinationInput, optFns ...func(*Options)) (*UpdateTopicRuleDestinationOutput, error) { if params == nil { params = &UpdateTopicRuleDestinationInput{} diff --git a/service/iot/api_op_ValidateSecurityProfileBehaviors.go b/service/iot/api_op_ValidateSecurityProfileBehaviors.go index dc9bca924c3..ba28f12e79f 100644 --- a/service/iot/api_op_ValidateSecurityProfileBehaviors.go +++ b/service/iot/api_op_ValidateSecurityProfileBehaviors.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Validates a Device Defender security profile behaviors specification. +// Validates a Device Defender security profile behaviors specification. Requires +// permission to access the ValidateSecurityProfileBehaviors +// (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) +// action. func (c *Client) ValidateSecurityProfileBehaviors(ctx context.Context, params *ValidateSecurityProfileBehaviorsInput, optFns ...func(*Options)) (*ValidateSecurityProfileBehaviorsOutput, error) { if params == nil { params = &ValidateSecurityProfileBehaviorsInput{} diff --git a/service/iot/deserializers.go b/service/iot/deserializers.go index f0ca47c9c38..e538f4dc9fe 100644 --- a/service/iot/deserializers.go +++ b/service/iot/deserializers.go @@ -3133,6 +3133,196 @@ func awsRestjson1_deserializeOpDocumentCreateDynamicThingGroupOutput(v **CreateD return nil } +type awsRestjson1_deserializeOpCreateFleetMetric struct { +} + +func (*awsRestjson1_deserializeOpCreateFleetMetric) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpCreateFleetMetric) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorCreateFleetMetric(response, &metadata) + } + output := &CreateFleetMetricOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsRestjson1_deserializeOpDocumentCreateFleetMetricOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorCreateFleetMetric(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("IndexNotReadyException", errorCode): + return awsRestjson1_deserializeErrorIndexNotReadyException(response, errorBody) + + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + + case strings.EqualFold("InvalidAggregationException", errorCode): + return awsRestjson1_deserializeErrorInvalidAggregationException(response, errorBody) + + case strings.EqualFold("InvalidQueryException", errorCode): + return awsRestjson1_deserializeErrorInvalidQueryException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + + case strings.EqualFold("ResourceAlreadyExistsException", errorCode): + return awsRestjson1_deserializeErrorResourceAlreadyExistsException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("UnauthorizedException", errorCode): + return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentCreateFleetMetricOutput(v **CreateFleetMetricOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *CreateFleetMetricOutput + if *v == nil { + sv = &CreateFleetMetricOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "metricArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FleetMetricArn to be of type string, got %T instead", value) + } + sv.MetricArn = ptr.String(jtv) + } + + case "metricName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FleetMetricName to be of type string, got %T instead", value) + } + sv.MetricName = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + type awsRestjson1_deserializeOpCreateJob struct { } @@ -7515,14 +7705,14 @@ func awsRestjson1_deserializeOpErrorDeleteDynamicThingGroup(response *smithyhttp } } -type awsRestjson1_deserializeOpDeleteJob struct { +type awsRestjson1_deserializeOpDeleteFleetMetric struct { } -func (*awsRestjson1_deserializeOpDeleteJob) ID() string { +func (*awsRestjson1_deserializeOpDeleteFleetMetric) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteFleetMetric) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -7536,9 +7726,9 @@ func (m *awsRestjson1_deserializeOpDeleteJob) HandleDeserialize(ctx context.Cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteJob(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteFleetMetric(response, &metadata) } - output := &DeleteJobOutput{} + output := &DeleteFleetMetricOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -7550,7 +7740,7 @@ func (m *awsRestjson1_deserializeOpDeleteJob) HandleDeserialize(ctx context.Cont return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteFleetMetric(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -7591,24 +7781,24 @@ func awsRestjson1_deserializeOpErrorDeleteJob(response *smithyhttp.Response, met } switch { + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + case strings.EqualFold("InvalidRequestException", errorCode): return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) - case strings.EqualFold("InvalidStateTransitionException", errorCode): - return awsRestjson1_deserializeErrorInvalidStateTransitionException(response, errorBody) - - case strings.EqualFold("LimitExceededException", errorCode): - return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) - - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ServiceUnavailableException", errorCode): return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody) case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnauthorizedException", errorCode): + return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) + + case strings.EqualFold("VersionConflictException", errorCode): + return awsRestjson1_deserializeErrorVersionConflictException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -7619,14 +7809,14 @@ func awsRestjson1_deserializeOpErrorDeleteJob(response *smithyhttp.Response, met } } -type awsRestjson1_deserializeOpDeleteJobExecution struct { +type awsRestjson1_deserializeOpDeleteJob struct { } -func (*awsRestjson1_deserializeOpDeleteJobExecution) ID() string { +func (*awsRestjson1_deserializeOpDeleteJob) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteJobExecution) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -7640,9 +7830,9 @@ func (m *awsRestjson1_deserializeOpDeleteJobExecution) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteJobExecution(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteJob(response, &metadata) } - output := &DeleteJobExecutionOutput{} + output := &DeleteJobOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -7654,7 +7844,7 @@ func (m *awsRestjson1_deserializeOpDeleteJobExecution) HandleDeserialize(ctx con return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteJobExecution(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -7701,6 +7891,9 @@ func awsRestjson1_deserializeOpErrorDeleteJobExecution(response *smithyhttp.Resp case strings.EqualFold("InvalidStateTransitionException", errorCode): return awsRestjson1_deserializeErrorInvalidStateTransitionException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) @@ -7720,14 +7913,14 @@ func awsRestjson1_deserializeOpErrorDeleteJobExecution(response *smithyhttp.Resp } } -type awsRestjson1_deserializeOpDeleteJobTemplate struct { +type awsRestjson1_deserializeOpDeleteJobExecution struct { } -func (*awsRestjson1_deserializeOpDeleteJobTemplate) ID() string { +func (*awsRestjson1_deserializeOpDeleteJobExecution) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteJobTemplate) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteJobExecution) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -7741,9 +7934,9 @@ func (m *awsRestjson1_deserializeOpDeleteJobTemplate) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteJobTemplate(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteJobExecution(response, &metadata) } - output := &DeleteJobTemplateOutput{} + output := &DeleteJobExecutionOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -7755,7 +7948,7 @@ func (m *awsRestjson1_deserializeOpDeleteJobTemplate) HandleDeserialize(ctx cont return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteJobTemplate(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteJobExecution(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -7796,15 +7989,18 @@ func awsRestjson1_deserializeOpErrorDeleteJobTemplate(response *smithyhttp.Respo } switch { - case strings.EqualFold("InternalFailureException", errorCode): - return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - case strings.EqualFold("InvalidRequestException", errorCode): return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + case strings.EqualFold("InvalidStateTransitionException", errorCode): + return awsRestjson1_deserializeErrorInvalidStateTransitionException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ServiceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -7818,14 +8014,14 @@ func awsRestjson1_deserializeOpErrorDeleteJobTemplate(response *smithyhttp.Respo } } -type awsRestjson1_deserializeOpDeleteMitigationAction struct { +type awsRestjson1_deserializeOpDeleteJobTemplate struct { } -func (*awsRestjson1_deserializeOpDeleteMitigationAction) ID() string { +func (*awsRestjson1_deserializeOpDeleteJobTemplate) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteMitigationAction) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteJobTemplate) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -7839,15 +8035,21 @@ func (m *awsRestjson1_deserializeOpDeleteMitigationAction) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteMitigationAction(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteJobTemplate(response, &metadata) } - output := &DeleteMitigationActionOutput{} + output := &DeleteJobTemplateOutput{} out.Result = output + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), + } + } + return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteMitigationAction(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteJobTemplate(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -7894,6 +8096,9 @@ func awsRestjson1_deserializeOpErrorDeleteMitigationAction(response *smithyhttp. case strings.EqualFold("InvalidRequestException", errorCode): return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -7907,14 +8112,14 @@ func awsRestjson1_deserializeOpErrorDeleteMitigationAction(response *smithyhttp. } } -type awsRestjson1_deserializeOpDeleteOTAUpdate struct { +type awsRestjson1_deserializeOpDeleteMitigationAction struct { } -func (*awsRestjson1_deserializeOpDeleteOTAUpdate) ID() string { +func (*awsRestjson1_deserializeOpDeleteMitigationAction) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteOTAUpdate) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteMitigationAction) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -7928,15 +8133,15 @@ func (m *awsRestjson1_deserializeOpDeleteOTAUpdate) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteOTAUpdate(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteMitigationAction(response, &metadata) } - output := &DeleteOTAUpdateOutput{} + output := &DeleteMitigationActionOutput{} out.Result = output return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteOTAUpdate(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteMitigationAction(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -7983,21 +8188,9 @@ func awsRestjson1_deserializeOpErrorDeleteOTAUpdate(response *smithyhttp.Respons case strings.EqualFold("InvalidRequestException", errorCode): return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - - case strings.EqualFold("ServiceUnavailableException", errorCode): - return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnauthorizedException", errorCode): - return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) - - case strings.EqualFold("VersionConflictException", errorCode): - return awsRestjson1_deserializeErrorVersionConflictException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -8008,14 +8201,14 @@ func awsRestjson1_deserializeOpErrorDeleteOTAUpdate(response *smithyhttp.Respons } } -type awsRestjson1_deserializeOpDeletePolicy struct { +type awsRestjson1_deserializeOpDeleteOTAUpdate struct { } -func (*awsRestjson1_deserializeOpDeletePolicy) ID() string { +func (*awsRestjson1_deserializeOpDeleteOTAUpdate) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeletePolicy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteOTAUpdate) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -8029,21 +8222,15 @@ func (m *awsRestjson1_deserializeOpDeletePolicy) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeletePolicy(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteOTAUpdate(response, &metadata) } - output := &DeletePolicyOutput{} + output := &DeleteOTAUpdateOutput{} out.Result = output - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { - return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), - } - } - return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeletePolicy(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteOTAUpdate(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -8084,9 +8271,6 @@ func awsRestjson1_deserializeOpErrorDeletePolicy(response *smithyhttp.Response, } switch { - case strings.EqualFold("DeleteConflictException", errorCode): - return awsRestjson1_deserializeErrorDeleteConflictException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) @@ -8105,6 +8289,9 @@ func awsRestjson1_deserializeOpErrorDeletePolicy(response *smithyhttp.Response, case strings.EqualFold("UnauthorizedException", errorCode): return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) + case strings.EqualFold("VersionConflictException", errorCode): + return awsRestjson1_deserializeErrorVersionConflictException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -8115,14 +8302,14 @@ func awsRestjson1_deserializeOpErrorDeletePolicy(response *smithyhttp.Response, } } -type awsRestjson1_deserializeOpDeletePolicyVersion struct { +type awsRestjson1_deserializeOpDeletePolicy struct { } -func (*awsRestjson1_deserializeOpDeletePolicyVersion) ID() string { +func (*awsRestjson1_deserializeOpDeletePolicy) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeletePolicyVersion) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeletePolicy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -8136,9 +8323,9 @@ func (m *awsRestjson1_deserializeOpDeletePolicyVersion) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeletePolicyVersion(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeletePolicy(response, &metadata) } - output := &DeletePolicyVersionOutput{} + output := &DeletePolicyOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -8150,7 +8337,7 @@ func (m *awsRestjson1_deserializeOpDeletePolicyVersion) HandleDeserialize(ctx co return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeletePolicyVersion(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeletePolicy(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -8222,14 +8409,14 @@ func awsRestjson1_deserializeOpErrorDeletePolicyVersion(response *smithyhttp.Res } } -type awsRestjson1_deserializeOpDeleteProvisioningTemplate struct { +type awsRestjson1_deserializeOpDeletePolicyVersion struct { } -func (*awsRestjson1_deserializeOpDeleteProvisioningTemplate) ID() string { +func (*awsRestjson1_deserializeOpDeletePolicyVersion) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteProvisioningTemplate) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeletePolicyVersion) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -8243,15 +8430,21 @@ func (m *awsRestjson1_deserializeOpDeleteProvisioningTemplate) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteProvisioningTemplate(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeletePolicyVersion(response, &metadata) } - output := &DeleteProvisioningTemplateOutput{} + output := &DeletePolicyVersionOutput{} out.Result = output + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), + } + } + return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteProvisioningTemplate(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeletePolicyVersion(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -8292,9 +8485,6 @@ func awsRestjson1_deserializeOpErrorDeleteProvisioningTemplate(response *smithyh } switch { - case strings.EqualFold("ConflictingResourceUpdateException", errorCode): - return awsRestjson1_deserializeErrorConflictingResourceUpdateException(response, errorBody) - case strings.EqualFold("DeleteConflictException", errorCode): return awsRestjson1_deserializeErrorDeleteConflictException(response, errorBody) @@ -8307,6 +8497,9 @@ func awsRestjson1_deserializeOpErrorDeleteProvisioningTemplate(response *smithyh case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ServiceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -8323,14 +8516,14 @@ func awsRestjson1_deserializeOpErrorDeleteProvisioningTemplate(response *smithyh } } -type awsRestjson1_deserializeOpDeleteProvisioningTemplateVersion struct { +type awsRestjson1_deserializeOpDeleteProvisioningTemplate struct { } -func (*awsRestjson1_deserializeOpDeleteProvisioningTemplateVersion) ID() string { +func (*awsRestjson1_deserializeOpDeleteProvisioningTemplate) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteProvisioningTemplateVersion) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteProvisioningTemplate) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -8344,15 +8537,15 @@ func (m *awsRestjson1_deserializeOpDeleteProvisioningTemplateVersion) HandleDese } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteProvisioningTemplateVersion(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteProvisioningTemplate(response, &metadata) } - output := &DeleteProvisioningTemplateVersionOutput{} + output := &DeleteProvisioningTemplateOutput{} out.Result = output return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteProvisioningTemplateVersion(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteProvisioningTemplate(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -8424,14 +8617,14 @@ func awsRestjson1_deserializeOpErrorDeleteProvisioningTemplateVersion(response * } } -type awsRestjson1_deserializeOpDeleteRegistrationCode struct { +type awsRestjson1_deserializeOpDeleteProvisioningTemplateVersion struct { } -func (*awsRestjson1_deserializeOpDeleteRegistrationCode) ID() string { +func (*awsRestjson1_deserializeOpDeleteProvisioningTemplateVersion) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteRegistrationCode) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteProvisioningTemplateVersion) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -8445,15 +8638,15 @@ func (m *awsRestjson1_deserializeOpDeleteRegistrationCode) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteRegistrationCode(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteProvisioningTemplateVersion(response, &metadata) } - output := &DeleteRegistrationCodeOutput{} + output := &DeleteProvisioningTemplateVersionOutput{} out.Result = output return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteRegistrationCode(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteProvisioningTemplateVersion(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -8494,15 +8687,21 @@ func awsRestjson1_deserializeOpErrorDeleteRegistrationCode(response *smithyhttp. } switch { + case strings.EqualFold("ConflictingResourceUpdateException", errorCode): + return awsRestjson1_deserializeErrorConflictingResourceUpdateException(response, errorBody) + + case strings.EqualFold("DeleteConflictException", errorCode): + return awsRestjson1_deserializeErrorDeleteConflictException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + case strings.EqualFold("InvalidRequestException", errorCode): + return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ServiceUnavailableException", errorCode): - return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -8519,14 +8718,14 @@ func awsRestjson1_deserializeOpErrorDeleteRegistrationCode(response *smithyhttp. } } -type awsRestjson1_deserializeOpDeleteRoleAlias struct { +type awsRestjson1_deserializeOpDeleteRegistrationCode struct { } -func (*awsRestjson1_deserializeOpDeleteRoleAlias) ID() string { +func (*awsRestjson1_deserializeOpDeleteRegistrationCode) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteRoleAlias) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteRegistrationCode) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -8540,15 +8739,15 @@ func (m *awsRestjson1_deserializeOpDeleteRoleAlias) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteRoleAlias(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteRegistrationCode(response, &metadata) } - output := &DeleteRoleAliasOutput{} + output := &DeleteRegistrationCodeOutput{} out.Result = output return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteRoleAlias(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteRegistrationCode(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -8589,15 +8788,9 @@ func awsRestjson1_deserializeOpErrorDeleteRoleAlias(response *smithyhttp.Respons } switch { - case strings.EqualFold("DeleteConflictException", errorCode): - return awsRestjson1_deserializeErrorDeleteConflictException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - case strings.EqualFold("InvalidRequestException", errorCode): - return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) @@ -8620,14 +8813,14 @@ func awsRestjson1_deserializeOpErrorDeleteRoleAlias(response *smithyhttp.Respons } } -type awsRestjson1_deserializeOpDeleteScheduledAudit struct { +type awsRestjson1_deserializeOpDeleteRoleAlias struct { } -func (*awsRestjson1_deserializeOpDeleteScheduledAudit) ID() string { +func (*awsRestjson1_deserializeOpDeleteRoleAlias) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteScheduledAudit) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteRoleAlias) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -8641,15 +8834,15 @@ func (m *awsRestjson1_deserializeOpDeleteScheduledAudit) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteScheduledAudit(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteRoleAlias(response, &metadata) } - output := &DeleteScheduledAuditOutput{} + output := &DeleteRoleAliasOutput{} out.Result = output return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteScheduledAudit(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteRoleAlias(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -8690,6 +8883,9 @@ func awsRestjson1_deserializeOpErrorDeleteScheduledAudit(response *smithyhttp.Re } switch { + case strings.EqualFold("DeleteConflictException", errorCode): + return awsRestjson1_deserializeErrorDeleteConflictException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) @@ -8699,100 +8895,14 @@ func awsRestjson1_deserializeOpErrorDeleteScheduledAudit(response *smithyhttp.Re case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): - return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - - default: - genericError := &smithy.GenericAPIError{ - Code: errorCode, - Message: errorMessage, - } - return genericError - - } -} - -type awsRestjson1_deserializeOpDeleteSecurityProfile struct { -} - -func (*awsRestjson1_deserializeOpDeleteSecurityProfile) ID() string { - return "OperationDeserializer" -} - -func (m *awsRestjson1_deserializeOpDeleteSecurityProfile) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( - out middleware.DeserializeOutput, metadata middleware.Metadata, err error, -) { - out, metadata, err = next.HandleDeserialize(ctx, in) - if err != nil { - return out, metadata, err - } - - response, ok := out.RawResponse.(*smithyhttp.Response) - if !ok { - return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} - } - - if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteSecurityProfile(response, &metadata) - } - output := &DeleteSecurityProfileOutput{} - out.Result = output - - return out, metadata, err -} - -func awsRestjson1_deserializeOpErrorDeleteSecurityProfile(response *smithyhttp.Response, metadata *middleware.Metadata) error { - var errorBuffer bytes.Buffer - if _, err := io.Copy(&errorBuffer, response.Body); err != nil { - return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} - } - errorBody := bytes.NewReader(errorBuffer.Bytes()) - - errorCode := "UnknownError" - errorMessage := errorCode - - code := response.Header.Get("X-Amzn-ErrorType") - if len(code) != 0 { - errorCode = restjson.SanitizeErrorCode(code) - } - - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) - - body := io.TeeReader(errorBody, ringBuffer) - decoder := json.NewDecoder(body) - decoder.UseNumber() - code, message, err := restjson.GetErrorInfo(decoder) - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - return err - } - - errorBody.Seek(0, io.SeekStart) - if len(code) != 0 { - errorCode = restjson.SanitizeErrorCode(code) - } - if len(message) != 0 { - errorMessage = message - } - - switch { - case strings.EqualFold("InternalFailureException", errorCode): - return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - - case strings.EqualFold("InvalidRequestException", errorCode): - return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + case strings.EqualFold("ServiceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody) case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("VersionConflictException", errorCode): - return awsRestjson1_deserializeErrorVersionConflictException(response, errorBody) + case strings.EqualFold("UnauthorizedException", errorCode): + return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -8804,14 +8914,14 @@ func awsRestjson1_deserializeOpErrorDeleteSecurityProfile(response *smithyhttp.R } } -type awsRestjson1_deserializeOpDeleteStream struct { +type awsRestjson1_deserializeOpDeleteScheduledAudit struct { } -func (*awsRestjson1_deserializeOpDeleteStream) ID() string { +func (*awsRestjson1_deserializeOpDeleteScheduledAudit) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteStream) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteScheduledAudit) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -8825,15 +8935,15 @@ func (m *awsRestjson1_deserializeOpDeleteStream) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteStream(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteScheduledAudit(response, &metadata) } - output := &DeleteStreamOutput{} + output := &DeleteScheduledAuditOutput{} out.Result = output return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteStream(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteScheduledAudit(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -8874,9 +8984,6 @@ func awsRestjson1_deserializeOpErrorDeleteStream(response *smithyhttp.Response, } switch { - case strings.EqualFold("DeleteConflictException", errorCode): - return awsRestjson1_deserializeErrorDeleteConflictException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) @@ -8886,15 +8993,9 @@ func awsRestjson1_deserializeOpErrorDeleteStream(response *smithyhttp.Response, case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ServiceUnavailableException", errorCode): - return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnauthorizedException", errorCode): - return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -8905,14 +9006,14 @@ func awsRestjson1_deserializeOpErrorDeleteStream(response *smithyhttp.Response, } } -type awsRestjson1_deserializeOpDeleteThing struct { +type awsRestjson1_deserializeOpDeleteSecurityProfile struct { } -func (*awsRestjson1_deserializeOpDeleteThing) ID() string { +func (*awsRestjson1_deserializeOpDeleteSecurityProfile) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteThing) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteSecurityProfile) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -8926,15 +9027,15 @@ func (m *awsRestjson1_deserializeOpDeleteThing) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteThing(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteSecurityProfile(response, &metadata) } - output := &DeleteThingOutput{} + output := &DeleteSecurityProfileOutput{} out.Result = output return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteThing(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteSecurityProfile(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -8981,18 +9082,9 @@ func awsRestjson1_deserializeOpErrorDeleteThing(response *smithyhttp.Response, m case strings.EqualFold("InvalidRequestException", errorCode): return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - - case strings.EqualFold("ServiceUnavailableException", errorCode): - return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnauthorizedException", errorCode): - return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) - case strings.EqualFold("VersionConflictException", errorCode): return awsRestjson1_deserializeErrorVersionConflictException(response, errorBody) @@ -9006,14 +9098,14 @@ func awsRestjson1_deserializeOpErrorDeleteThing(response *smithyhttp.Response, m } } -type awsRestjson1_deserializeOpDeleteThingGroup struct { +type awsRestjson1_deserializeOpDeleteStream struct { } -func (*awsRestjson1_deserializeOpDeleteThingGroup) ID() string { +func (*awsRestjson1_deserializeOpDeleteStream) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteThingGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteStream) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -9027,15 +9119,15 @@ func (m *awsRestjson1_deserializeOpDeleteThingGroup) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteThingGroup(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteStream(response, &metadata) } - output := &DeleteThingGroupOutput{} + output := &DeleteStreamOutput{} out.Result = output return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteThingGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteStream(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -9076,17 +9168,26 @@ func awsRestjson1_deserializeOpErrorDeleteThingGroup(response *smithyhttp.Respon } switch { + case strings.EqualFold("DeleteConflictException", errorCode): + return awsRestjson1_deserializeErrorDeleteConflictException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidRequestException", errorCode): return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("VersionConflictException", errorCode): - return awsRestjson1_deserializeErrorVersionConflictException(response, errorBody) + case strings.EqualFold("UnauthorizedException", errorCode): + return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -9098,14 +9199,14 @@ func awsRestjson1_deserializeOpErrorDeleteThingGroup(response *smithyhttp.Respon } } -type awsRestjson1_deserializeOpDeleteThingType struct { +type awsRestjson1_deserializeOpDeleteThing struct { } -func (*awsRestjson1_deserializeOpDeleteThingType) ID() string { +func (*awsRestjson1_deserializeOpDeleteThing) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteThingType) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteThing) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -9119,15 +9220,15 @@ func (m *awsRestjson1_deserializeOpDeleteThingType) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteThingType(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteThing(response, &metadata) } - output := &DeleteThingTypeOutput{} + output := &DeleteThingOutput{} out.Result = output return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteThingType(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteThing(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -9186,6 +9287,9 @@ func awsRestjson1_deserializeOpErrorDeleteThingType(response *smithyhttp.Respons case strings.EqualFold("UnauthorizedException", errorCode): return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) + case strings.EqualFold("VersionConflictException", errorCode): + return awsRestjson1_deserializeErrorVersionConflictException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -9196,14 +9300,14 @@ func awsRestjson1_deserializeOpErrorDeleteThingType(response *smithyhttp.Respons } } -type awsRestjson1_deserializeOpDeleteTopicRule struct { +type awsRestjson1_deserializeOpDeleteThingGroup struct { } -func (*awsRestjson1_deserializeOpDeleteTopicRule) ID() string { +func (*awsRestjson1_deserializeOpDeleteThingGroup) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteTopicRule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteThingGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -9217,21 +9321,15 @@ func (m *awsRestjson1_deserializeOpDeleteTopicRule) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteTopicRule(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteThingGroup(response, &metadata) } - output := &DeleteTopicRuleOutput{} + output := &DeleteThingGroupOutput{} out.Result = output - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { - return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), - } - } - return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteTopicRule(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteThingGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -9272,20 +9370,17 @@ func awsRestjson1_deserializeOpErrorDeleteTopicRule(response *smithyhttp.Respons } switch { - case strings.EqualFold("ConflictingResourceUpdateException", errorCode): - return awsRestjson1_deserializeErrorConflictingResourceUpdateException(response, errorBody) - - case strings.EqualFold("InternalException", errorCode): - return awsRestjson1_deserializeErrorInternalException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidRequestException", errorCode): return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) - case strings.EqualFold("ServiceUnavailableException", errorCode): - return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnauthorizedException", errorCode): - return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) + case strings.EqualFold("VersionConflictException", errorCode): + return awsRestjson1_deserializeErrorVersionConflictException(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -9297,14 +9392,14 @@ func awsRestjson1_deserializeOpErrorDeleteTopicRule(response *smithyhttp.Respons } } -type awsRestjson1_deserializeOpDeleteTopicRuleDestination struct { +type awsRestjson1_deserializeOpDeleteThingType struct { } -func (*awsRestjson1_deserializeOpDeleteTopicRuleDestination) ID() string { +func (*awsRestjson1_deserializeOpDeleteThingType) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteTopicRuleDestination) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteThingType) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -9318,15 +9413,15 @@ func (m *awsRestjson1_deserializeOpDeleteTopicRuleDestination) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteTopicRuleDestination(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteThingType(response, &metadata) } - output := &DeleteTopicRuleDestinationOutput{} + output := &DeleteThingTypeOutput{} out.Result = output return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteTopicRuleDestination(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteThingType(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -9367,18 +9462,21 @@ func awsRestjson1_deserializeOpErrorDeleteTopicRuleDestination(response *smithyh } switch { - case strings.EqualFold("ConflictingResourceUpdateException", errorCode): - return awsRestjson1_deserializeErrorConflictingResourceUpdateException(response, errorBody) - - case strings.EqualFold("InternalException", errorCode): - return awsRestjson1_deserializeErrorInternalException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidRequestException", errorCode): return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ServiceUnavailableException", errorCode): return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnauthorizedException", errorCode): return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) @@ -9392,14 +9490,14 @@ func awsRestjson1_deserializeOpErrorDeleteTopicRuleDestination(response *smithyh } } -type awsRestjson1_deserializeOpDeleteV2LoggingLevel struct { +type awsRestjson1_deserializeOpDeleteTopicRule struct { } -func (*awsRestjson1_deserializeOpDeleteV2LoggingLevel) ID() string { +func (*awsRestjson1_deserializeOpDeleteTopicRule) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteV2LoggingLevel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteTopicRule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -9413,9 +9511,9 @@ func (m *awsRestjson1_deserializeOpDeleteV2LoggingLevel) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteV2LoggingLevel(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteTopicRule(response, &metadata) } - output := &DeleteV2LoggingLevelOutput{} + output := &DeleteTopicRuleOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -9427,7 +9525,7 @@ func (m *awsRestjson1_deserializeOpDeleteV2LoggingLevel) HandleDeserialize(ctx c return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteV2LoggingLevel(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteTopicRule(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -9468,6 +9566,9 @@ func awsRestjson1_deserializeOpErrorDeleteV2LoggingLevel(response *smithyhttp.Re } switch { + case strings.EqualFold("ConflictingResourceUpdateException", errorCode): + return awsRestjson1_deserializeErrorConflictingResourceUpdateException(response, errorBody) + case strings.EqualFold("InternalException", errorCode): return awsRestjson1_deserializeErrorInternalException(response, errorBody) @@ -9477,101 +9578,6 @@ func awsRestjson1_deserializeOpErrorDeleteV2LoggingLevel(response *smithyhttp.Re case strings.EqualFold("ServiceUnavailableException", errorCode): return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody) - default: - genericError := &smithy.GenericAPIError{ - Code: errorCode, - Message: errorMessage, - } - return genericError - - } -} - -type awsRestjson1_deserializeOpDeprecateThingType struct { -} - -func (*awsRestjson1_deserializeOpDeprecateThingType) ID() string { - return "OperationDeserializer" -} - -func (m *awsRestjson1_deserializeOpDeprecateThingType) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( - out middleware.DeserializeOutput, metadata middleware.Metadata, err error, -) { - out, metadata, err = next.HandleDeserialize(ctx, in) - if err != nil { - return out, metadata, err - } - - response, ok := out.RawResponse.(*smithyhttp.Response) - if !ok { - return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} - } - - if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeprecateThingType(response, &metadata) - } - output := &DeprecateThingTypeOutput{} - out.Result = output - - return out, metadata, err -} - -func awsRestjson1_deserializeOpErrorDeprecateThingType(response *smithyhttp.Response, metadata *middleware.Metadata) error { - var errorBuffer bytes.Buffer - if _, err := io.Copy(&errorBuffer, response.Body); err != nil { - return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} - } - errorBody := bytes.NewReader(errorBuffer.Bytes()) - - errorCode := "UnknownError" - errorMessage := errorCode - - code := response.Header.Get("X-Amzn-ErrorType") - if len(code) != 0 { - errorCode = restjson.SanitizeErrorCode(code) - } - - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) - - body := io.TeeReader(errorBody, ringBuffer) - decoder := json.NewDecoder(body) - decoder.UseNumber() - code, message, err := restjson.GetErrorInfo(decoder) - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - return err - } - - errorBody.Seek(0, io.SeekStart) - if len(code) != 0 { - errorCode = restjson.SanitizeErrorCode(code) - } - if len(message) != 0 { - errorMessage = message - } - - switch { - case strings.EqualFold("InternalFailureException", errorCode): - return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - - case strings.EqualFold("InvalidRequestException", errorCode): - return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) - - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - - case strings.EqualFold("ServiceUnavailableException", errorCode): - return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody) - - case strings.EqualFold("ThrottlingException", errorCode): - return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnauthorizedException", errorCode): return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) @@ -9585,14 +9591,14 @@ func awsRestjson1_deserializeOpErrorDeprecateThingType(response *smithyhttp.Resp } } -type awsRestjson1_deserializeOpDescribeAccountAuditConfiguration struct { +type awsRestjson1_deserializeOpDeleteTopicRuleDestination struct { } -func (*awsRestjson1_deserializeOpDescribeAccountAuditConfiguration) ID() string { +func (*awsRestjson1_deserializeOpDeleteTopicRuleDestination) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeAccountAuditConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteTopicRuleDestination) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -9606,43 +9612,331 @@ func (m *awsRestjson1_deserializeOpDescribeAccountAuditConfiguration) HandleDese } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeAccountAuditConfiguration(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteTopicRuleDestination(response, &metadata) } - output := &DescribeAccountAuditConfigurationOutput{} + output := &DeleteTopicRuleDestinationOutput{} out.Result = output - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) - - body := io.TeeReader(response.Body, ringBuffer) - - decoder := json.NewDecoder(body) - decoder.UseNumber() - var shape interface{} - if err := decoder.Decode(&shape); err != nil && err != io.EOF { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - return out, metadata, err - } - - err = awsRestjson1_deserializeOpDocumentDescribeAccountAuditConfigurationOutput(&output, shape) - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), - Snapshot: snapshot.Bytes(), - } - } - return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeAccountAuditConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteTopicRuleDestination(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("ConflictingResourceUpdateException", errorCode): + return awsRestjson1_deserializeErrorConflictingResourceUpdateException(response, errorBody) + + case strings.EqualFold("InternalException", errorCode): + return awsRestjson1_deserializeErrorInternalException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("ServiceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody) + + case strings.EqualFold("UnauthorizedException", errorCode): + return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsRestjson1_deserializeOpDeleteV2LoggingLevel struct { +} + +func (*awsRestjson1_deserializeOpDeleteV2LoggingLevel) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDeleteV2LoggingLevel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorDeleteV2LoggingLevel(response, &metadata) + } + output := &DeleteV2LoggingLevelOutput{} + out.Result = output + + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDeleteV2LoggingLevel(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("InternalException", errorCode): + return awsRestjson1_deserializeErrorInternalException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("ServiceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsRestjson1_deserializeOpDeprecateThingType struct { +} + +func (*awsRestjson1_deserializeOpDeprecateThingType) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDeprecateThingType) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorDeprecateThingType(response, &metadata) + } + output := &DeprecateThingTypeOutput{} + out.Result = output + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDeprecateThingType(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("UnauthorizedException", errorCode): + return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsRestjson1_deserializeOpDescribeAccountAuditConfiguration struct { +} + +func (*awsRestjson1_deserializeOpDescribeAccountAuditConfiguration) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDescribeAccountAuditConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorDescribeAccountAuditConfiguration(response, &metadata) + } + output := &DescribeAccountAuditConfigurationOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsRestjson1_deserializeOpDocumentDescribeAccountAuditConfigurationOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDescribeAccountAuditConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -12302,15 +12596,169 @@ func awsRestjson1_deserializeOpErrorDescribeEndpoint(response *smithyhttp.Respon case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - case strings.EqualFold("InvalidRequestException", errorCode): - return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) - + case strings.EqualFold("InvalidRequestException", errorCode): + return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("UnauthorizedException", errorCode): + return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentDescribeEndpointOutput(v **DescribeEndpointOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *DescribeEndpointOutput + if *v == nil { + sv = &DescribeEndpointOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "endpointAddress": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EndpointAddress to be of type string, got %T instead", value) + } + sv.EndpointAddress = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpDescribeEventConfigurations struct { +} + +func (*awsRestjson1_deserializeOpDescribeEventConfigurations) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDescribeEventConfigurations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorDescribeEventConfigurations(response, &metadata) + } + output := &DescribeEventConfigurationsOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsRestjson1_deserializeOpDocumentDescribeEventConfigurationsOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDescribeEventConfigurations(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnauthorizedException", errorCode): - return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -12321,7 +12769,7 @@ func awsRestjson1_deserializeOpErrorDescribeEndpoint(response *smithyhttp.Respon } } -func awsRestjson1_deserializeOpDocumentDescribeEndpointOutput(v **DescribeEndpointOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeEventConfigurationsOutput(v **DescribeEventConfigurationsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -12334,22 +12782,50 @@ func awsRestjson1_deserializeOpDocumentDescribeEndpointOutput(v **DescribeEndpoi return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeEndpointOutput + var sv *DescribeEventConfigurationsOutput if *v == nil { - sv = &DescribeEndpointOutput{} + sv = &DescribeEventConfigurationsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "endpointAddress": + case "creationDate": if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected EndpointAddress to be of type string, got %T instead", value) + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.CreationDate = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected CreationDate to be a JSON Number, got %T instead", value) + + } + } + + case "eventConfigurations": + if err := awsRestjson1_deserializeDocumentEventConfigurations(&sv.EventConfigurations, value); err != nil { + return err + } + + case "lastModifiedDate": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.LastModifiedDate = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected LastModifiedDate to be a JSON Number, got %T instead", value) + } - sv.EndpointAddress = ptr.String(jtv) } default: @@ -12361,14 +12837,14 @@ func awsRestjson1_deserializeOpDocumentDescribeEndpointOutput(v **DescribeEndpoi return nil } -type awsRestjson1_deserializeOpDescribeEventConfigurations struct { +type awsRestjson1_deserializeOpDescribeFleetMetric struct { } -func (*awsRestjson1_deserializeOpDescribeEventConfigurations) ID() string { +func (*awsRestjson1_deserializeOpDescribeFleetMetric) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeEventConfigurations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeFleetMetric) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -12382,9 +12858,9 @@ func (m *awsRestjson1_deserializeOpDescribeEventConfigurations) HandleDeserializ } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeEventConfigurations(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeFleetMetric(response, &metadata) } - output := &DescribeEventConfigurationsOutput{} + output := &DescribeFleetMetricOutput{} out.Result = output var buff [1024]byte @@ -12405,7 +12881,7 @@ func (m *awsRestjson1_deserializeOpDescribeEventConfigurations) HandleDeserializ return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeEventConfigurationsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeFleetMetricOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -12418,7 +12894,7 @@ func (m *awsRestjson1_deserializeOpDescribeEventConfigurations) HandleDeserializ return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeEventConfigurations(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeFleetMetric(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -12462,9 +12938,21 @@ func awsRestjson1_deserializeOpErrorDescribeEventConfigurations(response *smithy case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + case strings.EqualFold("InvalidRequestException", errorCode): + return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnauthorizedException", errorCode): + return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -12475,7 +12963,7 @@ func awsRestjson1_deserializeOpErrorDescribeEventConfigurations(response *smithy } } -func awsRestjson1_deserializeOpDocumentDescribeEventConfigurationsOutput(v **DescribeEventConfigurationsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeFleetMetricOutput(v **DescribeFleetMetricOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -12488,15 +12976,29 @@ func awsRestjson1_deserializeOpDocumentDescribeEventConfigurationsOutput(v **Des return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeEventConfigurationsOutput + var sv *DescribeFleetMetricOutput if *v == nil { - sv = &DescribeEventConfigurationsOutput{} + sv = &DescribeFleetMetricOutput{} } else { sv = *v } for key, value := range shape { switch key { + case "aggregationField": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AggregationField to be of type string, got %T instead", value) + } + sv.AggregationField = ptr.String(jtv) + } + + case "aggregationType": + if err := awsRestjson1_deserializeDocumentAggregationType(&sv.AggregationType, value); err != nil { + return err + } + case "creationDate": if value != nil { switch jtv := value.(type) { @@ -12513,9 +13015,22 @@ func awsRestjson1_deserializeOpDocumentDescribeEventConfigurationsOutput(v **Des } } - case "eventConfigurations": - if err := awsRestjson1_deserializeDocumentEventConfigurations(&sv.EventConfigurations, value); err != nil { - return err + case "description": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FleetMetricDescription to be of type string, got %T instead", value) + } + sv.Description = ptr.String(jtv) + } + + case "indexName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected IndexName to be of type string, got %T instead", value) + } + sv.IndexName = ptr.String(jtv) } case "lastModifiedDate": @@ -12534,6 +13049,77 @@ func awsRestjson1_deserializeOpDocumentDescribeEventConfigurationsOutput(v **Des } } + case "metricArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FleetMetricArn to be of type string, got %T instead", value) + } + sv.MetricArn = ptr.String(jtv) + } + + case "metricName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FleetMetricName to be of type string, got %T instead", value) + } + sv.MetricName = ptr.String(jtv) + } + + case "period": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected FleetMetricPeriod to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Period = ptr.Int32(int32(i64)) + } + + case "queryString": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected QueryString to be of type string, got %T instead", value) + } + sv.QueryString = ptr.String(jtv) + } + + case "queryVersion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected QueryVersion to be of type string, got %T instead", value) + } + sv.QueryVersion = ptr.String(jtv) + } + + case "unit": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FleetMetricUnit to be of type string, got %T instead", value) + } + sv.Unit = types.FleetMetricUnit(jtv) + } + + case "version": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Version to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Version = i64 + } + default: _, _ = key, value @@ -16263,20 +16849,140 @@ func awsRestjson1_deserializeOpErrorEnableTopicRule(response *smithyhttp.Respons } switch { - case strings.EqualFold("ConflictingResourceUpdateException", errorCode): - return awsRestjson1_deserializeErrorConflictingResourceUpdateException(response, errorBody) - - case strings.EqualFold("InternalException", errorCode): - return awsRestjson1_deserializeErrorInternalException(response, errorBody) + case strings.EqualFold("ConflictingResourceUpdateException", errorCode): + return awsRestjson1_deserializeErrorConflictingResourceUpdateException(response, errorBody) + + case strings.EqualFold("InternalException", errorCode): + return awsRestjson1_deserializeErrorInternalException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("ServiceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody) + + case strings.EqualFold("UnauthorizedException", errorCode): + return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsRestjson1_deserializeOpGetBehaviorModelTrainingSummaries struct { +} + +func (*awsRestjson1_deserializeOpGetBehaviorModelTrainingSummaries) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpGetBehaviorModelTrainingSummaries) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorGetBehaviorModelTrainingSummaries(response, &metadata) + } + output := &GetBehaviorModelTrainingSummariesOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsRestjson1_deserializeOpDocumentGetBehaviorModelTrainingSummariesOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorGetBehaviorModelTrainingSummaries(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidRequestException", errorCode): return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) - case strings.EqualFold("ServiceUnavailableException", errorCode): - return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("UnauthorizedException", errorCode): - return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -16288,14 +16994,59 @@ func awsRestjson1_deserializeOpErrorEnableTopicRule(response *smithyhttp.Respons } } -type awsRestjson1_deserializeOpGetBehaviorModelTrainingSummaries struct { +func awsRestjson1_deserializeOpDocumentGetBehaviorModelTrainingSummariesOutput(v **GetBehaviorModelTrainingSummariesOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *GetBehaviorModelTrainingSummariesOutput + if *v == nil { + sv = &GetBehaviorModelTrainingSummariesOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "nextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NextToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + case "summaries": + if err := awsRestjson1_deserializeDocumentBehaviorModelTrainingSummaries(&sv.Summaries, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil } -func (*awsRestjson1_deserializeOpGetBehaviorModelTrainingSummaries) ID() string { +type awsRestjson1_deserializeOpGetBucketsAggregation struct { +} + +func (*awsRestjson1_deserializeOpGetBucketsAggregation) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpGetBehaviorModelTrainingSummaries) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpGetBucketsAggregation) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -16309,9 +17060,9 @@ func (m *awsRestjson1_deserializeOpGetBehaviorModelTrainingSummaries) HandleDese } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorGetBehaviorModelTrainingSummaries(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorGetBucketsAggregation(response, &metadata) } - output := &GetBehaviorModelTrainingSummariesOutput{} + output := &GetBucketsAggregationOutput{} out.Result = output var buff [1024]byte @@ -16332,7 +17083,7 @@ func (m *awsRestjson1_deserializeOpGetBehaviorModelTrainingSummaries) HandleDese return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentGetBehaviorModelTrainingSummariesOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentGetBucketsAggregationOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -16345,7 +17096,7 @@ func (m *awsRestjson1_deserializeOpGetBehaviorModelTrainingSummaries) HandleDese return out, metadata, err } -func awsRestjson1_deserializeOpErrorGetBehaviorModelTrainingSummaries(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorGetBucketsAggregation(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -16386,18 +17137,33 @@ func awsRestjson1_deserializeOpErrorGetBehaviorModelTrainingSummaries(response * } switch { + case strings.EqualFold("IndexNotReadyException", errorCode): + return awsRestjson1_deserializeErrorIndexNotReadyException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + case strings.EqualFold("InvalidAggregationException", errorCode): + return awsRestjson1_deserializeErrorInvalidAggregationException(response, errorBody) + + case strings.EqualFold("InvalidQueryException", errorCode): + return awsRestjson1_deserializeErrorInvalidQueryException(response, errorBody) + case strings.EqualFold("InvalidRequestException", errorCode): return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ServiceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnauthorizedException", errorCode): + return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -16408,7 +17174,7 @@ func awsRestjson1_deserializeOpErrorGetBehaviorModelTrainingSummaries(response * } } -func awsRestjson1_deserializeOpDocumentGetBehaviorModelTrainingSummariesOutput(v **GetBehaviorModelTrainingSummariesOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentGetBucketsAggregationOutput(v **GetBucketsAggregationOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -16421,27 +17187,31 @@ func awsRestjson1_deserializeOpDocumentGetBehaviorModelTrainingSummariesOutput(v return fmt.Errorf("unexpected JSON type %v", value) } - var sv *GetBehaviorModelTrainingSummariesOutput + var sv *GetBucketsAggregationOutput if *v == nil { - sv = &GetBehaviorModelTrainingSummariesOutput{} + sv = &GetBucketsAggregationOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "nextToken": + case "buckets": + if err := awsRestjson1_deserializeDocumentBuckets(&sv.Buckets, value); err != nil { + return err + } + + case "totalCount": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NextToken to be of type string, got %T instead", value) + return fmt.Errorf("expected Count to be json.Number, got %T instead", value) } - sv.NextToken = ptr.String(jtv) - } - - case "summaries": - if err := awsRestjson1_deserializeDocumentBehaviorModelTrainingSummaries(&sv.Summaries, value); err != nil { - return err + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.TotalCount = int32(i64) } default: @@ -21030,7 +21800,169 @@ func awsRestjson1_deserializeOpErrorListCustomMetrics(response *smithyhttp.Respo } } -func awsRestjson1_deserializeOpDocumentListCustomMetricsOutput(v **ListCustomMetricsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListCustomMetricsOutput(v **ListCustomMetricsOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *ListCustomMetricsOutput + if *v == nil { + sv = &ListCustomMetricsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "metricNames": + if err := awsRestjson1_deserializeDocumentMetricNames(&sv.MetricNames, value); err != nil { + return err + } + + case "nextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NextToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpListDetectMitigationActionsExecutions struct { +} + +func (*awsRestjson1_deserializeOpListDetectMitigationActionsExecutions) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpListDetectMitigationActionsExecutions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorListDetectMitigationActionsExecutions(response, &metadata) + } + output := &ListDetectMitigationActionsExecutionsOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsRestjson1_deserializeOpDocumentListDetectMitigationActionsExecutionsOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorListDetectMitigationActionsExecutions(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentListDetectMitigationActionsExecutionsOutput(v **ListDetectMitigationActionsExecutionsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21043,17 +21975,17 @@ func awsRestjson1_deserializeOpDocumentListCustomMetricsOutput(v **ListCustomMet return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListCustomMetricsOutput + var sv *ListDetectMitigationActionsExecutionsOutput if *v == nil { - sv = &ListCustomMetricsOutput{} + sv = &ListDetectMitigationActionsExecutionsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "metricNames": - if err := awsRestjson1_deserializeDocumentMetricNames(&sv.MetricNames, value); err != nil { + case "actionsExecutions": + if err := awsRestjson1_deserializeDocumentDetectMitigationActionExecutionList(&sv.ActionsExecutions, value); err != nil { return err } @@ -21075,14 +22007,14 @@ func awsRestjson1_deserializeOpDocumentListCustomMetricsOutput(v **ListCustomMet return nil } -type awsRestjson1_deserializeOpListDetectMitigationActionsExecutions struct { +type awsRestjson1_deserializeOpListDetectMitigationActionsTasks struct { } -func (*awsRestjson1_deserializeOpListDetectMitigationActionsExecutions) ID() string { +func (*awsRestjson1_deserializeOpListDetectMitigationActionsTasks) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListDetectMitigationActionsExecutions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListDetectMitigationActionsTasks) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -21096,9 +22028,9 @@ func (m *awsRestjson1_deserializeOpListDetectMitigationActionsExecutions) Handle } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListDetectMitigationActionsExecutions(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListDetectMitigationActionsTasks(response, &metadata) } - output := &ListDetectMitigationActionsExecutionsOutput{} + output := &ListDetectMitigationActionsTasksOutput{} out.Result = output var buff [1024]byte @@ -21119,7 +22051,7 @@ func (m *awsRestjson1_deserializeOpListDetectMitigationActionsExecutions) Handle return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListDetectMitigationActionsExecutionsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListDetectMitigationActionsTasksOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -21132,7 +22064,7 @@ func (m *awsRestjson1_deserializeOpListDetectMitigationActionsExecutions) Handle return out, metadata, err } -func awsRestjson1_deserializeOpErrorListDetectMitigationActionsExecutions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListDetectMitigationActionsTasks(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -21192,7 +22124,7 @@ func awsRestjson1_deserializeOpErrorListDetectMitigationActionsExecutions(respon } } -func awsRestjson1_deserializeOpDocumentListDetectMitigationActionsExecutionsOutput(v **ListDetectMitigationActionsExecutionsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListDetectMitigationActionsTasksOutput(v **ListDetectMitigationActionsTasksOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21205,20 +22137,15 @@ func awsRestjson1_deserializeOpDocumentListDetectMitigationActionsExecutionsOutp return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListDetectMitigationActionsExecutionsOutput + var sv *ListDetectMitigationActionsTasksOutput if *v == nil { - sv = &ListDetectMitigationActionsExecutionsOutput{} + sv = &ListDetectMitigationActionsTasksOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "actionsExecutions": - if err := awsRestjson1_deserializeDocumentDetectMitigationActionExecutionList(&sv.ActionsExecutions, value); err != nil { - return err - } - case "nextToken": if value != nil { jtv, ok := value.(string) @@ -21228,6 +22155,11 @@ func awsRestjson1_deserializeOpDocumentListDetectMitigationActionsExecutionsOutp sv.NextToken = ptr.String(jtv) } + case "tasks": + if err := awsRestjson1_deserializeDocumentDetectMitigationActionsTaskSummaryList(&sv.Tasks, value); err != nil { + return err + } + default: _, _ = key, value @@ -21237,14 +22169,14 @@ func awsRestjson1_deserializeOpDocumentListDetectMitigationActionsExecutionsOutp return nil } -type awsRestjson1_deserializeOpListDetectMitigationActionsTasks struct { +type awsRestjson1_deserializeOpListDimensions struct { } -func (*awsRestjson1_deserializeOpListDetectMitigationActionsTasks) ID() string { +func (*awsRestjson1_deserializeOpListDimensions) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListDetectMitigationActionsTasks) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListDimensions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -21258,9 +22190,9 @@ func (m *awsRestjson1_deserializeOpListDetectMitigationActionsTasks) HandleDeser } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListDetectMitigationActionsTasks(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListDimensions(response, &metadata) } - output := &ListDetectMitigationActionsTasksOutput{} + output := &ListDimensionsOutput{} out.Result = output var buff [1024]byte @@ -21281,7 +22213,7 @@ func (m *awsRestjson1_deserializeOpListDetectMitigationActionsTasks) HandleDeser return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListDetectMitigationActionsTasksOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListDimensionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -21294,7 +22226,7 @@ func (m *awsRestjson1_deserializeOpListDetectMitigationActionsTasks) HandleDeser return out, metadata, err } -func awsRestjson1_deserializeOpErrorListDetectMitigationActionsTasks(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListDimensions(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -21354,7 +22286,7 @@ func awsRestjson1_deserializeOpErrorListDetectMitigationActionsTasks(response *s } } -func awsRestjson1_deserializeOpDocumentListDetectMitigationActionsTasksOutput(v **ListDetectMitigationActionsTasksOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListDimensionsOutput(v **ListDimensionsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21367,15 +22299,20 @@ func awsRestjson1_deserializeOpDocumentListDetectMitigationActionsTasksOutput(v return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListDetectMitigationActionsTasksOutput + var sv *ListDimensionsOutput if *v == nil { - sv = &ListDetectMitigationActionsTasksOutput{} + sv = &ListDimensionsOutput{} } else { sv = *v } for key, value := range shape { switch key { + case "dimensionNames": + if err := awsRestjson1_deserializeDocumentDimensionNames(&sv.DimensionNames, value); err != nil { + return err + } + case "nextToken": if value != nil { jtv, ok := value.(string) @@ -21385,11 +22322,6 @@ func awsRestjson1_deserializeOpDocumentListDetectMitigationActionsTasksOutput(v sv.NextToken = ptr.String(jtv) } - case "tasks": - if err := awsRestjson1_deserializeDocumentDetectMitigationActionsTaskSummaryList(&sv.Tasks, value); err != nil { - return err - } - default: _, _ = key, value @@ -21399,14 +22331,14 @@ func awsRestjson1_deserializeOpDocumentListDetectMitigationActionsTasksOutput(v return nil } -type awsRestjson1_deserializeOpListDimensions struct { +type awsRestjson1_deserializeOpListDomainConfigurations struct { } -func (*awsRestjson1_deserializeOpListDimensions) ID() string { +func (*awsRestjson1_deserializeOpListDomainConfigurations) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListDimensions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListDomainConfigurations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -21420,9 +22352,9 @@ func (m *awsRestjson1_deserializeOpListDimensions) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListDimensions(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListDomainConfigurations(response, &metadata) } - output := &ListDimensionsOutput{} + output := &ListDomainConfigurationsOutput{} out.Result = output var buff [1024]byte @@ -21443,7 +22375,7 @@ func (m *awsRestjson1_deserializeOpListDimensions) HandleDeserialize(ctx context return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListDimensionsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListDomainConfigurationsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -21456,7 +22388,7 @@ func (m *awsRestjson1_deserializeOpListDimensions) HandleDeserialize(ctx context return out, metadata, err } -func awsRestjson1_deserializeOpErrorListDimensions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListDomainConfigurations(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -21503,9 +22435,15 @@ func awsRestjson1_deserializeOpErrorListDimensions(response *smithyhttp.Response case strings.EqualFold("InvalidRequestException", errorCode): return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + case strings.EqualFold("ServiceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnauthorizedException", errorCode): + return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -21516,7 +22454,7 @@ func awsRestjson1_deserializeOpErrorListDimensions(response *smithyhttp.Response } } -func awsRestjson1_deserializeOpDocumentListDimensionsOutput(v **ListDimensionsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListDomainConfigurationsOutput(v **ListDomainConfigurationsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21529,27 +22467,27 @@ func awsRestjson1_deserializeOpDocumentListDimensionsOutput(v **ListDimensionsOu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListDimensionsOutput + var sv *ListDomainConfigurationsOutput if *v == nil { - sv = &ListDimensionsOutput{} + sv = &ListDomainConfigurationsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "dimensionNames": - if err := awsRestjson1_deserializeDocumentDimensionNames(&sv.DimensionNames, value); err != nil { + case "domainConfigurations": + if err := awsRestjson1_deserializeDocumentDomainConfigurations(&sv.DomainConfigurations, value); err != nil { return err } - case "nextToken": + case "nextMarker": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected NextToken to be of type string, got %T instead", value) + return fmt.Errorf("expected Marker to be of type string, got %T instead", value) } - sv.NextToken = ptr.String(jtv) + sv.NextMarker = ptr.String(jtv) } default: @@ -21561,14 +22499,14 @@ func awsRestjson1_deserializeOpDocumentListDimensionsOutput(v **ListDimensionsOu return nil } -type awsRestjson1_deserializeOpListDomainConfigurations struct { +type awsRestjson1_deserializeOpListFleetMetrics struct { } -func (*awsRestjson1_deserializeOpListDomainConfigurations) ID() string { +func (*awsRestjson1_deserializeOpListFleetMetrics) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListDomainConfigurations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListFleetMetrics) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -21582,9 +22520,9 @@ func (m *awsRestjson1_deserializeOpListDomainConfigurations) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListDomainConfigurations(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListFleetMetrics(response, &metadata) } - output := &ListDomainConfigurationsOutput{} + output := &ListFleetMetricsOutput{} out.Result = output var buff [1024]byte @@ -21605,7 +22543,7 @@ func (m *awsRestjson1_deserializeOpListDomainConfigurations) HandleDeserialize(c return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListDomainConfigurationsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListFleetMetricsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -21618,7 +22556,7 @@ func (m *awsRestjson1_deserializeOpListDomainConfigurations) HandleDeserialize(c return out, metadata, err } -func awsRestjson1_deserializeOpErrorListDomainConfigurations(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListFleetMetrics(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -21684,7 +22622,7 @@ func awsRestjson1_deserializeOpErrorListDomainConfigurations(response *smithyhtt } } -func awsRestjson1_deserializeOpDocumentListDomainConfigurationsOutput(v **ListDomainConfigurationsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListFleetMetricsOutput(v **ListFleetMetricsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21697,27 +22635,27 @@ func awsRestjson1_deserializeOpDocumentListDomainConfigurationsOutput(v **ListDo return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListDomainConfigurationsOutput + var sv *ListFleetMetricsOutput if *v == nil { - sv = &ListDomainConfigurationsOutput{} + sv = &ListFleetMetricsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "domainConfigurations": - if err := awsRestjson1_deserializeDocumentDomainConfigurations(&sv.DomainConfigurations, value); err != nil { + case "fleetMetrics": + if err := awsRestjson1_deserializeDocumentFleetMetricNameAndArnList(&sv.FleetMetrics, value); err != nil { return err } - case "nextMarker": + case "nextToken": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Marker to be of type string, got %T instead", value) + return fmt.Errorf("expected NextToken to be of type string, got %T instead", value) } - sv.NextMarker = ptr.String(jtv) + sv.NextToken = ptr.String(jtv) } default: @@ -32517,21 +33455,154 @@ func awsRestjson1_deserializeOpErrorUpdateDynamicThingGroup(response *smithyhttp case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - case strings.EqualFold("InvalidQueryException", errorCode): - return awsRestjson1_deserializeErrorInvalidQueryException(response, errorBody) - + case strings.EqualFold("InvalidQueryException", errorCode): + return awsRestjson1_deserializeErrorInvalidQueryException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("VersionConflictException", errorCode): + return awsRestjson1_deserializeErrorVersionConflictException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentUpdateDynamicThingGroupOutput(v **UpdateDynamicThingGroupOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *UpdateDynamicThingGroupOutput + if *v == nil { + sv = &UpdateDynamicThingGroupOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "version": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Version to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Version = i64 + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpUpdateEventConfigurations struct { +} + +func (*awsRestjson1_deserializeOpUpdateEventConfigurations) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpUpdateEventConfigurations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorUpdateEventConfigurations(response, &metadata) + } + output := &UpdateEventConfigurationsOutput{} + out.Result = output + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorUpdateEventConfigurations(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + case strings.EqualFold("InvalidRequestException", errorCode): return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("VersionConflictException", errorCode): - return awsRestjson1_deserializeErrorVersionConflictException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -32542,58 +33613,14 @@ func awsRestjson1_deserializeOpErrorUpdateDynamicThingGroup(response *smithyhttp } } -func awsRestjson1_deserializeOpDocumentUpdateDynamicThingGroupOutput(v **UpdateDynamicThingGroupOutput, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *UpdateDynamicThingGroupOutput - if *v == nil { - sv = &UpdateDynamicThingGroupOutput{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "version": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Version to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.Version = i64 - } - - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -type awsRestjson1_deserializeOpUpdateEventConfigurations struct { +type awsRestjson1_deserializeOpUpdateFleetMetric struct { } -func (*awsRestjson1_deserializeOpUpdateEventConfigurations) ID() string { +func (*awsRestjson1_deserializeOpUpdateFleetMetric) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpUpdateEventConfigurations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpUpdateFleetMetric) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -32607,15 +33634,21 @@ func (m *awsRestjson1_deserializeOpUpdateEventConfigurations) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorUpdateEventConfigurations(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorUpdateFleetMetric(response, &metadata) } - output := &UpdateEventConfigurationsOutput{} + output := &UpdateFleetMetricOutput{} out.Result = output + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), + } + } + return out, metadata, err } -func awsRestjson1_deserializeOpErrorUpdateEventConfigurations(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorUpdateFleetMetric(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -32656,15 +33689,36 @@ func awsRestjson1_deserializeOpErrorUpdateEventConfigurations(response *smithyht } switch { + case strings.EqualFold("IndexNotReadyException", errorCode): + return awsRestjson1_deserializeErrorIndexNotReadyException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + case strings.EqualFold("InvalidAggregationException", errorCode): + return awsRestjson1_deserializeErrorInvalidAggregationException(response, errorBody) + + case strings.EqualFold("InvalidQueryException", errorCode): + return awsRestjson1_deserializeErrorInvalidQueryException(response, errorBody) + case strings.EqualFold("InvalidRequestException", errorCode): return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnauthorizedException", errorCode): + return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) + + case strings.EqualFold("VersionConflictException", errorCode): + return awsRestjson1_deserializeErrorVersionConflictException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -36107,7 +37161,203 @@ func awsRestjson1_deserializeDocumentAdditionalMetricsToRetainList(v *[]string, if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected BehaviorMetric to be of type string, got %T instead", value) + return fmt.Errorf("expected BehaviorMetric to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAdditionalMetricsToRetainV2List(v *[]types.MetricToRetain, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.MetricToRetain + if *v == nil { + cv = []types.MetricToRetain{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.MetricToRetain + destAddr := &col + if err := awsRestjson1_deserializeDocumentMetricToRetain(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAdditionalParameterMap(v *map[string]string, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var mv map[string]string + if *v == nil { + mv = map[string]string{} + } else { + mv = *v + } + + for key, value := range shape { + var parsedVal string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Value to be of type string, got %T instead", value) + } + parsedVal = jtv + } + mv[key] = parsedVal + + } + *v = mv + return nil +} + +func awsRestjson1_deserializeDocumentAddThingsToThingGroupParams(v **types.AddThingsToThingGroupParams, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AddThingsToThingGroupParams + if *v == nil { + sv = &types.AddThingsToThingGroupParams{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "overrideDynamicGroups": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected OverrideDynamicGroups to be of type *bool, got %T instead", value) + } + sv.OverrideDynamicGroups = jtv + } + + case "thingGroupNames": + if err := awsRestjson1_deserializeDocumentThingGroupNames(&sv.ThingGroupNames, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAggregationType(v **types.AggregationType, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AggregationType + if *v == nil { + sv = &types.AggregationType{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AggregationTypeName to be of type string, got %T instead", value) + } + sv.Name = types.AggregationTypeName(jtv) + } + + case "values": + if err := awsRestjson1_deserializeDocumentAggregationTypeValues(&sv.Values, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAggregationTypeValues(v *[]string, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []string + if *v == nil { + cv = []string{} + } else { + cv = *v + } + + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AggregationTypeValue to be of type string, got %T instead", value) } col = jtv } @@ -36118,121 +37368,6 @@ func awsRestjson1_deserializeDocumentAdditionalMetricsToRetainList(v *[]string, return nil } -func awsRestjson1_deserializeDocumentAdditionalMetricsToRetainV2List(v *[]types.MetricToRetain, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var cv []types.MetricToRetain - if *v == nil { - cv = []types.MetricToRetain{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.MetricToRetain - destAddr := &col - if err := awsRestjson1_deserializeDocumentMetricToRetain(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsRestjson1_deserializeDocumentAdditionalParameterMap(v *map[string]string, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var mv map[string]string - if *v == nil { - mv = map[string]string{} - } else { - mv = *v - } - - for key, value := range shape { - var parsedVal string - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Value to be of type string, got %T instead", value) - } - parsedVal = jtv - } - mv[key] = parsedVal - - } - *v = mv - return nil -} - -func awsRestjson1_deserializeDocumentAddThingsToThingGroupParams(v **types.AddThingsToThingGroupParams, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.AddThingsToThingGroupParams - if *v == nil { - sv = &types.AddThingsToThingGroupParams{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "overrideDynamicGroups": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected OverrideDynamicGroups to be of type *bool, got %T instead", value) - } - sv.OverrideDynamicGroups = jtv - } - - case "thingGroupNames": - if err := awsRestjson1_deserializeDocumentThingGroupNames(&sv.ThingGroupNames, value); err != nil { - return err - } - - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - func awsRestjson1_deserializeDocumentAlertTarget(v **types.AlertTarget, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -38878,6 +40013,93 @@ func awsRestjson1_deserializeDocumentBillingGroupProperties(v **types.BillingGro return nil } +func awsRestjson1_deserializeDocumentBucket(v **types.Bucket, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.Bucket + if *v == nil { + sv = &types.Bucket{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "count": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Count to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Count = int32(i64) + } + + case "keyValue": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected BucketKeyValue to be of type string, got %T instead", value) + } + sv.KeyValue = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentBuckets(v *[]types.Bucket, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.Bucket + if *v == nil { + cv = []types.Bucket{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.Bucket + destAddr := &col + if err := awsRestjson1_deserializeDocumentBucket(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentCACertificate(v **types.CACertificate, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -41759,6 +42981,89 @@ func awsRestjson1_deserializeDocumentFirehoseAction(v **types.FirehoseAction, va return nil } +func awsRestjson1_deserializeDocumentFleetMetricNameAndArn(v **types.FleetMetricNameAndArn, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.FleetMetricNameAndArn + if *v == nil { + sv = &types.FleetMetricNameAndArn{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "metricArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FleetMetricArn to be of type string, got %T instead", value) + } + sv.MetricArn = ptr.String(jtv) + } + + case "metricName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FleetMetricName to be of type string, got %T instead", value) + } + sv.MetricName = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentFleetMetricNameAndArnList(v *[]types.FleetMetricNameAndArn, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.FleetMetricNameAndArn + if *v == nil { + cv = []types.FleetMetricNameAndArn{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.FleetMetricNameAndArn + destAddr := &col + if err := awsRestjson1_deserializeDocumentFleetMetricNameAndArn(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentGroupNameAndArn(v **types.GroupNameAndArn, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -50028,6 +51333,15 @@ func awsRestjson1_deserializeDocumentThingConnectivity(v **types.ThingConnectivi sv.Connected = jtv } + case "disconnectReason": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DisconnectReason to be of type string, got %T instead", value) + } + sv.DisconnectReason = ptr.String(jtv) + } + case "timestamp": if value != nil { jtv, ok := value.(json.Number) diff --git a/service/iot/doc.go b/service/iot/doc.go index 1635db228d4..bab9167f6d4 100644 --- a/service/iot/doc.go +++ b/service/iot/doc.go @@ -3,22 +3,22 @@ // Package iot provides the API client, operations, and parameter types for AWS // IoT. // -// AWS IoT AWS IoT provides secure, bi-directional communication between -// Internet-connected devices (such as sensors, actuators, embedded devices, or -// smart appliances) and the AWS cloud. You can discover your custom IoT-Data -// endpoint to communicate with, configure rules for data processing and -// integration with other services, organize resources associated with each device -// (Registry), configure logging, and create and manage policies and credentials to -// authenticate devices. The service endpoints that expose this API are listed in -// AWS IoT Core Endpoints and Quotas +// IoT IoT provides secure, bi-directional communication between Internet-connected +// devices (such as sensors, actuators, embedded devices, or smart appliances) and +// the Amazon Web Services cloud. You can discover your custom IoT-Data endpoint to +// communicate with, configure rules for data processing and integration with other +// services, organize resources associated with each device (Registry), configure +// logging, and create and manage policies and credentials to authenticate devices. +// The service endpoints that expose this API are listed in Amazon Web Services IoT +// Core Endpoints and Quotas // (https://docs.aws.amazon.com/general/latest/gr/iot-core.html). You must use the // endpoint for the region that has the resources you want to access. The service -// name used by AWS Signature Version 4 +// name used by Amazon Web Services Signature Version 4 // (https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) to sign -// the request is: execute-api. For more information about how AWS IoT works, see -// the Developer Guide +// the request is: execute-api. For more information about how IoT works, see the +// Developer Guide // (https://docs.aws.amazon.com/iot/latest/developerguide/aws-iot-how-it-works.html). -// For information about how to use the credentials provider for AWS IoT, see -// Authorizing Direct Calls to AWS Services +// For information about how to use the credentials provider for IoT, see +// Authorizing Direct Calls to Amazon Web Services Services // (https://docs.aws.amazon.com/iot/latest/developerguide/authorizing-direct-aws.html). package iot diff --git a/service/iot/generated.json b/service/iot/generated.json index 2b25154c46a..930e7ff3d2b 100644 --- a/service/iot/generated.json +++ b/service/iot/generated.json @@ -29,6 +29,7 @@ "api_op_CreateDimension.go", "api_op_CreateDomainConfiguration.go", "api_op_CreateDynamicThingGroup.go", + "api_op_CreateFleetMetric.go", "api_op_CreateJob.go", "api_op_CreateJobTemplate.go", "api_op_CreateKeysAndCertificate.go", @@ -58,6 +59,7 @@ "api_op_DeleteDimension.go", "api_op_DeleteDomainConfiguration.go", "api_op_DeleteDynamicThingGroup.go", + "api_op_DeleteFleetMetric.go", "api_op_DeleteJob.go", "api_op_DeleteJobExecution.go", "api_op_DeleteJobTemplate.go", @@ -95,6 +97,7 @@ "api_op_DescribeDomainConfiguration.go", "api_op_DescribeEndpoint.go", "api_op_DescribeEventConfigurations.go", + "api_op_DescribeFleetMetric.go", "api_op_DescribeIndex.go", "api_op_DescribeJob.go", "api_op_DescribeJobExecution.go", @@ -117,6 +120,7 @@ "api_op_DisableTopicRule.go", "api_op_EnableTopicRule.go", "api_op_GetBehaviorModelTrainingSummaries.go", + "api_op_GetBucketsAggregation.go", "api_op_GetCardinality.go", "api_op_GetEffectivePolicies.go", "api_op_GetIndexingConfiguration.go", @@ -148,6 +152,7 @@ "api_op_ListDetectMitigationActionsTasks.go", "api_op_ListDimensions.go", "api_op_ListDomainConfigurations.go", + "api_op_ListFleetMetrics.go", "api_op_ListIndices.go", "api_op_ListJobExecutionsForJob.go", "api_op_ListJobExecutionsForThing.go", @@ -219,6 +224,7 @@ "api_op_UpdateDomainConfiguration.go", "api_op_UpdateDynamicThingGroup.go", "api_op_UpdateEventConfigurations.go", + "api_op_UpdateFleetMetric.go", "api_op_UpdateIndexingConfiguration.go", "api_op_UpdateJob.go", "api_op_UpdateMitigationAction.go", diff --git a/service/iot/serializers.go b/service/iot/serializers.go index af90956f5f4..68b90d50890 100644 --- a/service/iot/serializers.go +++ b/service/iot/serializers.go @@ -1922,6 +1922,131 @@ func awsRestjson1_serializeOpDocumentCreateDynamicThingGroupInput(v *CreateDynam return nil } +type awsRestjson1_serializeOpCreateFleetMetric struct { +} + +func (*awsRestjson1_serializeOpCreateFleetMetric) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpCreateFleetMetric) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*CreateFleetMetricInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/fleet-metric/{metricName}") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "PUT" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsCreateFleetMetricInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentCreateFleetMetricInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsCreateFleetMetricInput(v *CreateFleetMetricInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.MetricName == nil || len(*v.MetricName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member metricName must not be empty")} + } + if v.MetricName != nil { + if err := encoder.SetURI("metricName").String(*v.MetricName); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentCreateFleetMetricInput(v *CreateFleetMetricInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AggregationField != nil { + ok := object.Key("aggregationField") + ok.String(*v.AggregationField) + } + + if v.AggregationType != nil { + ok := object.Key("aggregationType") + if err := awsRestjson1_serializeDocumentAggregationType(v.AggregationType, ok); err != nil { + return err + } + } + + if v.Description != nil { + ok := object.Key("description") + ok.String(*v.Description) + } + + if v.IndexName != nil { + ok := object.Key("indexName") + ok.String(*v.IndexName) + } + + if v.Period != nil { + ok := object.Key("period") + ok.Integer(*v.Period) + } + + if v.QueryString != nil { + ok := object.Key("queryString") + ok.String(*v.QueryString) + } + + if v.QueryVersion != nil { + ok := object.Key("queryVersion") + ok.String(*v.QueryVersion) + } + + if v.Tags != nil { + ok := object.Key("tags") + if err := awsRestjson1_serializeDocumentTagList(v.Tags, ok); err != nil { + return err + } + } + + if len(v.Unit) > 0 { + ok := object.Key("unit") + ok.String(string(v.Unit)) + } + + return nil +} + type awsRestjson1_serializeOpCreateJob struct { } @@ -4365,6 +4490,68 @@ func awsRestjson1_serializeOpHttpBindingsDeleteDynamicThingGroupInput(v *DeleteD return nil } +type awsRestjson1_serializeOpDeleteFleetMetric struct { +} + +func (*awsRestjson1_serializeOpDeleteFleetMetric) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpDeleteFleetMetric) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*DeleteFleetMetricInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/fleet-metric/{metricName}") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "DELETE" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsDeleteFleetMetricInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsDeleteFleetMetricInput(v *DeleteFleetMetricInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.ExpectedVersion != nil { + encoder.SetQuery("expectedVersion").Long(*v.ExpectedVersion) + } + + if v.MetricName == nil || len(*v.MetricName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member metricName must not be empty")} + } + if v.MetricName != nil { + if err := encoder.SetURI("metricName").String(*v.MetricName); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpDeleteJob struct { } @@ -6565,6 +6752,64 @@ func awsRestjson1_serializeOpHttpBindingsDescribeEventConfigurationsInput(v *Des return nil } +type awsRestjson1_serializeOpDescribeFleetMetric struct { +} + +func (*awsRestjson1_serializeOpDescribeFleetMetric) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpDescribeFleetMetric) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*DescribeFleetMetricInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/fleet-metric/{metricName}") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "GET" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsDescribeFleetMetricInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsDescribeFleetMetricInput(v *DescribeFleetMetricInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.MetricName == nil || len(*v.MetricName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member metricName must not be empty")} + } + if v.MetricName != nil { + if err := encoder.SetURI("metricName").String(*v.MetricName); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpDescribeIndex struct { } @@ -7903,6 +8148,96 @@ func awsRestjson1_serializeOpHttpBindingsGetBehaviorModelTrainingSummariesInput( return nil } +type awsRestjson1_serializeOpGetBucketsAggregation struct { +} + +func (*awsRestjson1_serializeOpGetBucketsAggregation) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpGetBucketsAggregation) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*GetBucketsAggregationInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/indices/buckets") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentGetBucketsAggregationInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsGetBucketsAggregationInput(v *GetBucketsAggregationInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + return nil +} + +func awsRestjson1_serializeOpDocumentGetBucketsAggregationInput(v *GetBucketsAggregationInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AggregationField != nil { + ok := object.Key("aggregationField") + ok.String(*v.AggregationField) + } + + if v.BucketsAggregationType != nil { + ok := object.Key("bucketsAggregationType") + if err := awsRestjson1_serializeDocumentBucketsAggregationType(v.BucketsAggregationType, ok); err != nil { + return err + } + } + + if v.IndexName != nil { + ok := object.Key("indexName") + ok.String(*v.IndexName) + } + + if v.QueryString != nil { + ok := object.Key("queryString") + ok.String(*v.QueryString) + } + + if v.QueryVersion != nil { + ok := object.Key("queryVersion") + ok.String(*v.QueryVersion) + } + + return nil +} + type awsRestjson1_serializeOpGetCardinality struct { } @@ -9969,6 +10304,63 @@ func awsRestjson1_serializeOpHttpBindingsListDomainConfigurationsInput(v *ListDo return nil } +type awsRestjson1_serializeOpListFleetMetrics struct { +} + +func (*awsRestjson1_serializeOpListFleetMetrics) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpListFleetMetrics) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*ListFleetMetricsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/fleet-metrics") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "GET" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsListFleetMetricsInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsListFleetMetricsInput(v *ListFleetMetricsInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.MaxResults != nil { + encoder.SetQuery("maxResults").Integer(*v.MaxResults) + } + + if v.NextToken != nil { + encoder.SetQuery("nextToken").String(*v.NextToken) + } + + return nil +} + type awsRestjson1_serializeOpListIndices struct { } @@ -15184,6 +15576,129 @@ func awsRestjson1_serializeOpDocumentUpdateEventConfigurationsInput(v *UpdateEve return nil } +type awsRestjson1_serializeOpUpdateFleetMetric struct { +} + +func (*awsRestjson1_serializeOpUpdateFleetMetric) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpUpdateFleetMetric) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*UpdateFleetMetricInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/fleet-metric/{metricName}") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "PATCH" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsUpdateFleetMetricInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentUpdateFleetMetricInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsUpdateFleetMetricInput(v *UpdateFleetMetricInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.MetricName == nil || len(*v.MetricName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member metricName must not be empty")} + } + if v.MetricName != nil { + if err := encoder.SetURI("metricName").String(*v.MetricName); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentUpdateFleetMetricInput(v *UpdateFleetMetricInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AggregationField != nil { + ok := object.Key("aggregationField") + ok.String(*v.AggregationField) + } + + if v.AggregationType != nil { + ok := object.Key("aggregationType") + if err := awsRestjson1_serializeDocumentAggregationType(v.AggregationType, ok); err != nil { + return err + } + } + + if v.Description != nil { + ok := object.Key("description") + ok.String(*v.Description) + } + + if v.ExpectedVersion != nil { + ok := object.Key("expectedVersion") + ok.Long(*v.ExpectedVersion) + } + + if v.IndexName != nil { + ok := object.Key("indexName") + ok.String(*v.IndexName) + } + + if v.Period != nil { + ok := object.Key("period") + ok.Integer(*v.Period) + } + + if v.QueryString != nil { + ok := object.Key("queryString") + ok.String(*v.QueryString) + } + + if v.QueryVersion != nil { + ok := object.Key("queryVersion") + ok.String(*v.QueryVersion) + } + + if len(v.Unit) > 0 { + ok := object.Key("unit") + ok.String(string(v.Unit)) + } + + return nil +} + type awsRestjson1_serializeOpUpdateIndexingConfiguration struct { } @@ -16679,6 +17194,36 @@ func awsRestjson1_serializeDocumentAddThingsToThingGroupParams(v *types.AddThing return nil } +func awsRestjson1_serializeDocumentAggregationType(v *types.AggregationType, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.Name) > 0 { + ok := object.Key("name") + ok.String(string(v.Name)) + } + + if v.Values != nil { + ok := object.Key("values") + if err := awsRestjson1_serializeDocumentAggregationTypeValues(v.Values, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentAggregationTypeValues(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + func awsRestjson1_serializeDocumentAlertTarget(v *types.AlertTarget, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -17277,6 +17822,20 @@ func awsRestjson1_serializeDocumentBillingGroupProperties(v *types.BillingGroupP return nil } +func awsRestjson1_serializeDocumentBucketsAggregationType(v *types.BucketsAggregationType, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.TermsAggregation != nil { + ok := object.Key("termsAggregation") + if err := awsRestjson1_serializeDocumentTermsAggregation(v.TermsAggregation, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentCidrs(v []string, value smithyjson.Value) error { array := value.Array() defer array.Close() @@ -19153,6 +19712,18 @@ func awsRestjson1_serializeDocumentTargetViolationIdsForDetectMitigationActions( return nil } +func awsRestjson1_serializeDocumentTermsAggregation(v *types.TermsAggregation, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.MaxBuckets != 0 { + ok := object.Key("maxBuckets") + ok.Integer(v.MaxBuckets) + } + + return nil +} + func awsRestjson1_serializeDocumentThingGroupIndexingConfiguration(v *types.ThingGroupIndexingConfiguration, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/iot/types/enums.go b/service/iot/types/enums.go index 23a67440579..e6ba4925669 100644 --- a/service/iot/types/enums.go +++ b/service/iot/types/enums.go @@ -40,6 +40,26 @@ func (ActionType) Values() []ActionType { } } +type AggregationTypeName string + +// Enum values for AggregationTypeName +const ( + AggregationTypeNameStatistics AggregationTypeName = "Statistics" + AggregationTypeNamePercentiles AggregationTypeName = "Percentiles" + AggregationTypeNameCardinality AggregationTypeName = "Cardinality" +) + +// Values returns all known values for AggregationTypeName. Note that this can be +// expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (AggregationTypeName) Values() []AggregationTypeName { + return []AggregationTypeName{ + "Statistics", + "Percentiles", + "Cardinality", + } +} + type AlertTargetType string // Enum values for AlertTargetType @@ -789,6 +809,74 @@ func (FieldType) Values() []FieldType { } } +type FleetMetricUnit string + +// Enum values for FleetMetricUnit +const ( + FleetMetricUnitSeconds FleetMetricUnit = "Seconds" + FleetMetricUnitMicroseconds FleetMetricUnit = "Microseconds" + FleetMetricUnitMilliseconds FleetMetricUnit = "Milliseconds" + FleetMetricUnitBytes FleetMetricUnit = "Bytes" + FleetMetricUnitKilobytes FleetMetricUnit = "Kilobytes" + FleetMetricUnitMegabytes FleetMetricUnit = "Megabytes" + FleetMetricUnitGigabytes FleetMetricUnit = "Gigabytes" + FleetMetricUnitTerabytes FleetMetricUnit = "Terabytes" + FleetMetricUnitBits FleetMetricUnit = "Bits" + FleetMetricUnitKilobits FleetMetricUnit = "Kilobits" + FleetMetricUnitMegabits FleetMetricUnit = "Megabits" + FleetMetricUnitGigabits FleetMetricUnit = "Gigabits" + FleetMetricUnitTerabits FleetMetricUnit = "Terabits" + FleetMetricUnitPercent FleetMetricUnit = "Percent" + FleetMetricUnitCount FleetMetricUnit = "Count" + FleetMetricUnitBytesSecond FleetMetricUnit = "Bytes/Second" + FleetMetricUnitKilobytesSecond FleetMetricUnit = "Kilobytes/Second" + FleetMetricUnitMegabytesSecond FleetMetricUnit = "Megabytes/Second" + FleetMetricUnitGigabytesSecond FleetMetricUnit = "Gigabytes/Second" + FleetMetricUnitTerabytesSecond FleetMetricUnit = "Terabytes/Second" + FleetMetricUnitBitsSecond FleetMetricUnit = "Bits/Second" + FleetMetricUnitKilobitsSecond FleetMetricUnit = "Kilobits/Second" + FleetMetricUnitMegabitsSecond FleetMetricUnit = "Megabits/Second" + FleetMetricUnitGigabitsSecond FleetMetricUnit = "Gigabits/Second" + FleetMetricUnitTerabitsSecond FleetMetricUnit = "Terabits/Second" + FleetMetricUnitCountSecond FleetMetricUnit = "Count/Second" + FleetMetricUnitNone FleetMetricUnit = "None" +) + +// Values returns all known values for FleetMetricUnit. Note that this can be +// expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (FleetMetricUnit) Values() []FleetMetricUnit { + return []FleetMetricUnit{ + "Seconds", + "Microseconds", + "Milliseconds", + "Bytes", + "Kilobytes", + "Megabytes", + "Gigabytes", + "Terabytes", + "Bits", + "Kilobits", + "Megabits", + "Gigabits", + "Terabits", + "Percent", + "Count", + "Bytes/Second", + "Kilobytes/Second", + "Megabytes/Second", + "Gigabytes/Second", + "Terabytes/Second", + "Bits/Second", + "Kilobits/Second", + "Megabits/Second", + "Gigabits/Second", + "Terabits/Second", + "Count/Second", + "None", + } +} + type IndexStatus string // Enum values for IndexStatus diff --git a/service/iot/types/types.go b/service/iot/types/types.go index a3e4b7955b4..307f925c8ad 100644 --- a/service/iot/types/types.go +++ b/service/iot/types/types.go @@ -38,8 +38,8 @@ type AbortCriteria struct { MinNumberOfExecutedThings *int32 // The minimum percentage of job execution failures that must occur to initiate the - // job abort. AWS IoT supports up to two digits after the decimal (for example, - // 10.9 and 10.99, but not 10.999). + // job abort. Amazon Web Services IoT Core supports up to two digits after the + // decimal (for example, 10.9 and 10.99, but not 10.999). // // This member is required. ThresholdPercentage *float64 @@ -76,14 +76,14 @@ type Action struct { // Send data to an HTTPS endpoint. Http *HttpAction - // Sends message data to an AWS IoT Analytics channel. + // Sends message data to an IoT Analytics channel. IotAnalytics *IotAnalyticsAction - // Sends an input to an AWS IoT Events detector. + // Sends an input to an IoT Events detector. IotEvents *IotEventsAction - // Sends data from the MQTT message that triggered the rule to AWS IoT SiteWise - // asset properties. + // Sends data from the MQTT message that triggered the rule to IoT SiteWise asset + // properties. IotSiteWise *IotSiteWiseAction // Send messages to an Amazon Managed Streaming for Apache Kafka (Amazon MSK) or @@ -171,6 +171,20 @@ type AddThingsToThingGroupParams struct { noSmithyDocumentSerde } +// The type of aggregation queries. +type AggregationType struct { + + // The name of the aggregation type. + // + // This member is required. + Name AggregationTypeName + + // A list of the values of aggregation types. + Values []string + + noSmithyDocumentSerde +} + // A structure containing the alert target ARN and the role ARN. type AlertTarget struct { @@ -559,8 +573,7 @@ type AuthorizerDescription struct { // The UNIX timestamp of when the authorizer was last updated. LastModifiedDate *time.Time - // Specifies whether AWS IoT validates the token signature in an authorization - // request. + // Specifies whether IoT validates the token signature in an authorization request. SigningDisabled *bool // The status of the authorizer. @@ -642,8 +655,8 @@ type AwsJobAbortCriteria struct { MinNumberOfExecutedThings *int32 // The minimum percentage of job execution failures that must occur to initiate the - // job abort. AWS IoT supports up to two digits after the decimal (for example, - // 10.9 and 10.99, but not 10.999). + // job abort. Amazon Web Services IoT Core supports up to two digits after the + // decimal (for example, 10.9 and 10.99, but not 10.999). // // This member is required. ThresholdPercentage *float64 @@ -680,8 +693,9 @@ type AwsJobExponentialRolloutRate struct { // This member is required. IncrementFactor float64 - // The criteria to initiate the increase in rate of rollout for a job. AWS IoT - // supports up to one digit after the decimal (for example, 1.5, but not 1.55). + // The criteria to initiate the increase in rate of rollout for a job. Amazon Web + // Services IoT Core supports up to one digit after the decimal (for example, 1.5, + // but not 1.55). // // This member is required. RateIncreaseCriteria *AwsJobRateIncreaseCriteria @@ -850,6 +864,28 @@ type BillingGroupProperties struct { noSmithyDocumentSerde } +// A count of documents that meets a specific aggregation criteria. +type Bucket struct { + + // The number of documents that have the value counted for the particular bucket. + Count int32 + + // The value counted for the particular bucket. + KeyValue *string + + noSmithyDocumentSerde +} + +// The type of bucketed aggregation performed. +type BucketsAggregationType struct { + + // Performs an aggregation that will return a list of buckets. The list of buckets + // is a ranked list of the number of occurrences of an aggregation field value. + TermsAggregation *TermsAggregation + + noSmithyDocumentSerde +} + // A CA certificate. type CACertificate struct { @@ -962,10 +998,11 @@ type CertificateDescription struct { // The date and time the certificate was last modified. LastModifiedDate *time.Time - // The ID of the AWS account that owns the certificate. + // The ID of the Amazon Web Services account that owns the certificate. OwnedBy *string - // The ID of the AWS account of the previous owner of the certificate. + // The ID of the Amazon Web Services account of the previous owner of the + // certificate. PreviousOwnedBy *string // The status of the certificate. @@ -1259,7 +1296,7 @@ type DetectMitigationActionsTaskTarget struct { // The summary of a domain configuration. A domain configuration specifies custom // IoT-specific information about a domain. A domain configuration can be -// associated with an AWS-managed domain (for example, +// associated with an Amazon Web Services-managed domain (for example, // dbc123defghijk.iot.us-west-2.amazonaws.com), a customer managed domain, or a // default endpoint. // @@ -1403,7 +1440,8 @@ type ElasticsearchAction struct { noSmithyDocumentSerde } -// Parameters used when defining a mitigation action that enable AWS IoT logging. +// Parameters used when defining a mitigation action that enable Amazon Web +// Services IoT Core logging. type EnableIoTLoggingParams struct { // Specifies the type of information to be logged. @@ -1450,8 +1488,9 @@ type ExponentialRolloutRate struct { // This member is required. BaseRatePerMinute *int32 - // The exponential factor to increase the rate of rollout for a job. AWS IoT - // supports up to one digit after the decimal (for example, 1.5, but not 1.55). + // The exponential factor to increase the rate of rollout for a job. Amazon Web + // Services IoT Core supports up to one digit after the decimal (for example, 1.5, + // but not 1.55). // // This member is required. IncrementFactor float64 @@ -1470,7 +1509,7 @@ type Field struct { // The name of the field. Name *string - // The datatype of the field. + // The data type of the field. Type FieldType noSmithyDocumentSerde @@ -1518,6 +1557,18 @@ type FirehoseAction struct { noSmithyDocumentSerde } +// The name and ARN of a fleet metric. +type FleetMetricNameAndArn struct { + + // The fleet metric ARN. + MetricArn *string + + // The fleet metric name. + MetricName *string + + noSmithyDocumentSerde +} + // The name and ARN of a group. type GroupNameAndArn struct { @@ -1543,12 +1594,12 @@ type HttpAction struct { // The authentication method to use when sending data to an HTTPS endpoint. Auth *HttpAuthorization - // The URL to which AWS IoT sends a confirmation message. The value of the - // confirmation URL must be a prefix of the endpoint URL. If you do not specify a - // confirmation URL AWS IoT uses the endpoint URL as the confirmation URL. If you - // use substitution templates in the confirmationUrl, you must create and enable - // topic rule destinations that match each possible value of the substitution - // template before traffic is allowed to your endpoint URL. + // The URL to which IoT sends a confirmation message. The value of the confirmation + // URL must be a prefix of the endpoint URL. If you do not specify a confirmation + // URL IoT uses the endpoint URL as the confirmation URL. If you use substitution + // templates in the confirmationUrl, you must create and enable topic rule + // destinations that match each possible value of the substitution template before + // traffic is allowed to your endpoint URL. ConfirmationUrl *string // The HTTP headers to send with the message data. @@ -1599,8 +1650,8 @@ type HttpContext struct { // HTTP URL destination configuration used by the topic rule's HTTP action. type HttpUrlDestinationConfiguration struct { - // The URL AWS IoT uses to confirm ownership of or access to the topic rule - // destination URL. + // The URL IoT uses to confirm ownership of or access to the topic rule destination + // URL. // // This member is required. ConfirmationUrl *string @@ -1638,14 +1689,14 @@ type ImplicitDeny struct { noSmithyDocumentSerde } -// Sends message data to an AWS IoT Analytics channel. +// Sends message data to an IoT Analytics channel. type IotAnalyticsAction struct { // Whether to process the action as a batch. The default value is false. When // batchMode is true and the rule SQL statement evaluates to an Array, each Array // element is delivered as a separate message when passed by BatchPutMessage // (https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_BatchPutMessage.html) - // to the AWS IoT Analytics channel. The resulting array can't have more than 100 + // to the IoT Analytics channel. The resulting array can't have more than 100 // messages. BatchMode *bool @@ -1663,16 +1714,16 @@ type IotAnalyticsAction struct { noSmithyDocumentSerde } -// Sends an input to an AWS IoT Events detector. +// Sends an input to an IoT Events detector. type IotEventsAction struct { - // The name of the AWS IoT Events input. + // The name of the IoT Events input. // // This member is required. InputName *string - // The ARN of the role that grants AWS IoT permission to send an input to an AWS - // IoT Events detector. ("Action":"iotevents:BatchPutMessage"). + // The ARN of the role that grants IoT permission to send an input to an IoT Events + // detector. ("Action":"iotevents:BatchPutMessage"). // // This member is required. RoleArn *string @@ -1680,8 +1731,7 @@ type IotEventsAction struct { // Whether to process the event actions as a batch. The default value is false. // When batchMode is true, you can't specify a messageId. When batchMode is true // and the rule SQL statement evaluates to an Array, each Array element is treated - // as a separate message when it's sent to AWS IoT Events by calling - // BatchPutMessage + // as a separate message when it's sent to IoT Events by calling BatchPutMessage // (https://docs.aws.amazon.com/iotevents/latest/apireference/API_iotevents-data_BatchPutMessage.html). // The resulting array can't have more than 10 messages. BatchMode *bool @@ -1689,14 +1739,14 @@ type IotEventsAction struct { // The ID of the message. The default messageId is a new UUID value. When batchMode // is true, you can't specify a messageId--a new UUID value will be assigned. // Assign a value to this property to ensure that only one input (message) with a - // given messageId will be processed by an AWS IoT Events detector. + // given messageId will be processed by an IoT Events detector. MessageId *string noSmithyDocumentSerde } // Describes an action to send data from an MQTT message that triggered the rule to -// AWS IoT SiteWise asset properties. +// IoT SiteWise asset properties. type IotSiteWiseAction struct { // A list of asset property value entries. @@ -1704,9 +1754,9 @@ type IotSiteWiseAction struct { // This member is required. PutAssetPropertyValueEntries []PutAssetPropertyValueEntry - // The ARN of the role that grants AWS IoT permission to send an asset property - // value to AWS IoTSiteWise. ("Action": "iotsitewise:BatchPutAssetPropertyValue"). - // The trust policy can restrict access to specific asset hierarchy paths. + // The ARN of the role that grants IoT permission to send an asset property value + // to IoT SiteWise. ("Action": "iotsitewise:BatchPutAssetPropertyValue"). The trust + // policy can restrict access to specific asset hierarchy paths. // // This member is required. RoleArn *string @@ -1755,8 +1805,8 @@ type Job struct { LastUpdatedAt *time.Time // The namespace used to indicate that a job is a customer-managed job. When you - // specify a value for this parameter, AWS IoT Core sends jobs notifications to - // MQTT topics that contain the value in the following format. + // specify a value for this parameter, Amazon Web Services IoT Core sends jobs + // notifications to MQTT topics that contain the value in the following format. // $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/ The // namespaceId feature is in public preview. NamespaceId *string @@ -2224,8 +2274,8 @@ type MitigationActionParams struct { // certificate to one or more specified thing groups, typically for quarantine. AddThingsToThingGroupParams *AddThingsToThingGroupParams - // Parameters to define a mitigation action that enables AWS IoT logging at a - // specified level of detail. + // Parameters to define a mitigation action that enables Amazon Web Services IoT + // Core logging at a specified level of detail. EnableIoTLoggingParams *EnableIoTLoggingParams // Parameters to define a mitigation action that publishes findings to Amazon @@ -2309,10 +2359,10 @@ type OTAUpdateInfo struct { // A collection of name/value pairs AdditionalParameters map[string]string - // The AWS IoT job ARN associated with the OTA update. + // The IoT job ARN associated with the OTA update. AwsIotJobArn *string - // The AWS IoT job ID associated with the OTA update. + // The IoT job ID associated with the OTA update. AwsIotJobId *string // Configuration for the rollout of OTA updates. @@ -2398,7 +2448,7 @@ type OutgoingCertificate struct { // The transfer message. TransferMessage *string - // The AWS account to which the transfer was made. + // The Amazon Web Services account to which the transfer was made. TransferredTo *string noSmithyDocumentSerde @@ -2416,7 +2466,7 @@ type PercentPair struct { noSmithyDocumentSerde } -// Describes an AWS IoT policy. +// Describes an IoT policy. type Policy struct { // The policy ARN. @@ -2549,7 +2599,7 @@ type PutAssetPropertyValueEntry struct { // This member is required. PropertyValues []AssetPropertyValue - // The ID of the AWS IoT SiteWise asset. You must specify either a propertyAlias or + // The ID of the IoT SiteWise asset. You must specify either a propertyAlias or // both an aliasId and a propertyId. Accepts substitution templates. AssetId *string @@ -3072,7 +3122,7 @@ type StreamInfo struct { // The date when the stream was last updated. LastUpdatedAt *time.Time - // An IAM role AWS IoT assumes to access your S3 files. + // An IAM role IoT assumes to access your S3 files. RoleArn *string // The stream ARN. @@ -3172,6 +3222,16 @@ type TaskStatisticsForAuditCheck struct { noSmithyDocumentSerde } +// Performs an aggregation that will return a list of buckets. The list of buckets +// is a ranked list of the number of occurrences of an aggregation field value. +type TermsAggregation struct { + + // The number of buckets to return in the response. Default to 10. + MaxBuckets int32 + + noSmithyDocumentSerde +} + // The properties of the thing, including thing name, thing type name, and a list // of thing attributes. type ThingAttribute struct { @@ -3197,12 +3257,15 @@ type ThingAttribute struct { // The connectivity status of the thing. type ThingConnectivity struct { - // True if the thing is connected to the AWS IoT service; false if it is not - // connected. + // True if the thing is connected to the Amazon Web Services IoT Core service; + // false if it is not connected. Connected bool + // The reason why the client is disconnected. + DisconnectReason *string + // The epoch time (in milliseconds) when the thing last connected or disconnected. - // If the thing has been disconnected for more than a few weeks, the time value + // If the thing has been disconnected for approximately an hour, the time value // might be missing. Timestamp *int64 @@ -3215,7 +3278,8 @@ type ThingDocument struct { // The attributes. Attributes map[string]string - // Indicates whether the thing is connected to the AWS IoT service. + // Indicates whether the thing is connected to the Amazon Web Services IoT Core + // service. Connectivity *ThingConnectivity // The shadow. @@ -3646,10 +3710,10 @@ type TopicRulePayload struct { // This member is required. Actions []Action - // The SQL statement used to query the topic. For more information, see AWS IoT SQL + // The SQL statement used to query the topic. For more information, see IoT SQL // Reference // (https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-reference.html) - // in the AWS IoT Developer Guide. + // in the IoT Developer Guide. // // This member is required. Sql *string @@ -3669,7 +3733,7 @@ type TopicRulePayload struct { noSmithyDocumentSerde } -// Data used to transfer a certificate to an AWS account. +// Data used to transfer a certificate to an Amazon Web Services account. type TransferData struct { // The date the transfer was accepted. diff --git a/service/iot/validators.go b/service/iot/validators.go index 9e44c89c4d4..c44b6457741 100644 --- a/service/iot/validators.go +++ b/service/iot/validators.go @@ -430,6 +430,26 @@ func (m *validateOpCreateDynamicThingGroup) HandleInitialize(ctx context.Context return next.HandleInitialize(ctx, in) } +type validateOpCreateFleetMetric struct { +} + +func (*validateOpCreateFleetMetric) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateFleetMetric) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateFleetMetricInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateFleetMetricInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpCreateJob struct { } @@ -970,6 +990,26 @@ func (m *validateOpDeleteDynamicThingGroup) HandleInitialize(ctx context.Context return next.HandleInitialize(ctx, in) } +type validateOpDeleteFleetMetric struct { +} + +func (*validateOpDeleteFleetMetric) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeleteFleetMetric) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeleteFleetMetricInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeleteFleetMetricInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDeleteJobExecution struct { } @@ -1610,6 +1650,26 @@ func (m *validateOpDescribeDomainConfiguration) HandleInitialize(ctx context.Con return next.HandleInitialize(ctx, in) } +type validateOpDescribeFleetMetric struct { +} + +func (*validateOpDescribeFleetMetric) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDescribeFleetMetric) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DescribeFleetMetricInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDescribeFleetMetricInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDescribeIndex struct { } @@ -2030,6 +2090,26 @@ func (m *validateOpEnableTopicRule) HandleInitialize(ctx context.Context, in mid return next.HandleInitialize(ctx, in) } +type validateOpGetBucketsAggregation struct { +} + +func (*validateOpGetBucketsAggregation) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpGetBucketsAggregation) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*GetBucketsAggregationInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpGetBucketsAggregationInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpGetCardinality struct { } @@ -3270,6 +3350,26 @@ func (m *validateOpUpdateDynamicThingGroup) HandleInitialize(ctx context.Context return next.HandleInitialize(ctx, in) } +type validateOpUpdateFleetMetric struct { +} + +func (*validateOpUpdateFleetMetric) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUpdateFleetMetric) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UpdateFleetMetricInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUpdateFleetMetricInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpUpdateIndexingConfiguration struct { } @@ -3594,6 +3694,10 @@ func addOpCreateDynamicThingGroupValidationMiddleware(stack *middleware.Stack) e return stack.Initialize.Add(&validateOpCreateDynamicThingGroup{}, middleware.After) } +func addOpCreateFleetMetricValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateFleetMetric{}, middleware.After) +} + func addOpCreateJobValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateJob{}, middleware.After) } @@ -3702,6 +3806,10 @@ func addOpDeleteDynamicThingGroupValidationMiddleware(stack *middleware.Stack) e return stack.Initialize.Add(&validateOpDeleteDynamicThingGroup{}, middleware.After) } +func addOpDeleteFleetMetricValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeleteFleetMetric{}, middleware.After) +} + func addOpDeleteJobExecutionValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteJobExecution{}, middleware.After) } @@ -3830,6 +3938,10 @@ func addOpDescribeDomainConfigurationValidationMiddleware(stack *middleware.Stac return stack.Initialize.Add(&validateOpDescribeDomainConfiguration{}, middleware.After) } +func addOpDescribeFleetMetricValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDescribeFleetMetric{}, middleware.After) +} + func addOpDescribeIndexValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDescribeIndex{}, middleware.After) } @@ -3914,6 +4026,10 @@ func addOpEnableTopicRuleValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpEnableTopicRule{}, middleware.After) } +func addOpGetBucketsAggregationValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpGetBucketsAggregation{}, middleware.After) +} + func addOpGetCardinalityValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpGetCardinality{}, middleware.After) } @@ -4162,6 +4278,10 @@ func addOpUpdateDynamicThingGroupValidationMiddleware(stack *middleware.Stack) e return stack.Initialize.Add(&validateOpUpdateDynamicThingGroup{}, middleware.After) } +func addOpUpdateFleetMetricValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUpdateFleetMetric{}, middleware.After) +} + func addOpUpdateIndexingConfigurationValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUpdateIndexingConfiguration{}, middleware.After) } @@ -4431,6 +4551,21 @@ func validateAddThingsToThingGroupParams(v *types.AddThingsToThingGroupParams) e } } +func validateAggregationType(v *types.AggregationType) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "AggregationType"} + if len(v.Name) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateAlertTarget(v *types.AlertTarget) error { if v == nil { return nil @@ -6112,6 +6247,42 @@ func validateOpCreateDynamicThingGroupInput(v *CreateDynamicThingGroupInput) err } } +func validateOpCreateFleetMetricInput(v *CreateFleetMetricInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateFleetMetricInput"} + if v.MetricName == nil { + invalidParams.Add(smithy.NewErrParamRequired("MetricName")) + } + if v.QueryString == nil { + invalidParams.Add(smithy.NewErrParamRequired("QueryString")) + } + if v.AggregationType == nil { + invalidParams.Add(smithy.NewErrParamRequired("AggregationType")) + } else if v.AggregationType != nil { + if err := validateAggregationType(v.AggregationType); err != nil { + invalidParams.AddNested("AggregationType", err.(smithy.InvalidParamsError)) + } + } + if v.Period == nil { + invalidParams.Add(smithy.NewErrParamRequired("Period")) + } + if v.AggregationField == nil { + invalidParams.Add(smithy.NewErrParamRequired("AggregationField")) + } + if v.Tags != nil { + if err := validateTagList(v.Tags); err != nil { + invalidParams.AddNested("Tags", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpCreateJobInput(v *CreateJobInput) error { if v == nil { return nil @@ -6696,6 +6867,21 @@ func validateOpDeleteDynamicThingGroupInput(v *DeleteDynamicThingGroupInput) err } } +func validateOpDeleteFleetMetricInput(v *DeleteFleetMetricInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteFleetMetricInput"} + if v.MetricName == nil { + invalidParams.Add(smithy.NewErrParamRequired("MetricName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDeleteJobExecutionInput(v *DeleteJobExecutionInput) error { if v == nil { return nil @@ -7194,6 +7380,21 @@ func validateOpDescribeDomainConfigurationInput(v *DescribeDomainConfigurationIn } } +func validateOpDescribeFleetMetricInput(v *DescribeFleetMetricInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DescribeFleetMetricInput"} + if v.MetricName == nil { + invalidParams.Add(smithy.NewErrParamRequired("MetricName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDescribeIndexInput(v *DescribeIndexInput) error { if v == nil { return nil @@ -7527,6 +7728,27 @@ func validateOpEnableTopicRuleInput(v *EnableTopicRuleInput) error { } } +func validateOpGetBucketsAggregationInput(v *GetBucketsAggregationInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GetBucketsAggregationInput"} + if v.QueryString == nil { + invalidParams.Add(smithy.NewErrParamRequired("QueryString")) + } + if v.AggregationField == nil { + invalidParams.Add(smithy.NewErrParamRequired("AggregationField")) + } + if v.BucketsAggregationType == nil { + invalidParams.Add(smithy.NewErrParamRequired("BucketsAggregationType")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpGetCardinalityInput(v *GetCardinalityInput) error { if v == nil { return nil @@ -8574,6 +8796,29 @@ func validateOpUpdateDynamicThingGroupInput(v *UpdateDynamicThingGroupInput) err } } +func validateOpUpdateFleetMetricInput(v *UpdateFleetMetricInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdateFleetMetricInput"} + if v.MetricName == nil { + invalidParams.Add(smithy.NewErrParamRequired("MetricName")) + } + if v.AggregationType != nil { + if err := validateAggregationType(v.AggregationType); err != nil { + invalidParams.AddNested("AggregationType", err.(smithy.InvalidParamsError)) + } + } + if v.IndexName == nil { + invalidParams.Add(smithy.NewErrParamRequired("IndexName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpUpdateIndexingConfigurationInput(v *UpdateIndexingConfigurationInput) error { if v == nil { return nil diff --git a/service/iotjobsdataplane/internal/endpoints/endpoints.go b/service/iotjobsdataplane/internal/endpoints/endpoints.go index 24a2db37bae..1918c981e13 100644 --- a/service/iotjobsdataplane/internal/endpoints/endpoints.go +++ b/service/iotjobsdataplane/internal/endpoints/endpoints.go @@ -62,6 +62,56 @@ var defaultPartitions = endpoints.Partitions{ }, RegionRegex: partitionRegexp.Aws, IsRegionalized: true, + Endpoints: endpoints.Endpoints{ + "ap-east-1": endpoints.Endpoint{}, + "ap-northeast-1": endpoints.Endpoint{}, + "ap-northeast-2": endpoints.Endpoint{}, + "ap-south-1": endpoints.Endpoint{}, + "ap-southeast-1": endpoints.Endpoint{}, + "ap-southeast-2": endpoints.Endpoint{}, + "ca-central-1": endpoints.Endpoint{}, + "eu-central-1": endpoints.Endpoint{}, + "eu-north-1": endpoints.Endpoint{}, + "eu-west-1": endpoints.Endpoint{}, + "eu-west-2": endpoints.Endpoint{}, + "eu-west-3": endpoints.Endpoint{}, + "fips-ca-central-1": endpoints.Endpoint{ + Hostname: "data.jobs.iot-fips.ca-central-1.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "ca-central-1", + }, + }, + "fips-us-east-1": endpoints.Endpoint{ + Hostname: "data.jobs.iot-fips.us-east-1.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoints.Endpoint{ + Hostname: "data.jobs.iot-fips.us-east-2.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoints.Endpoint{ + Hostname: "data.jobs.iot-fips.us-west-1.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoints.Endpoint{ + Hostname: "data.jobs.iot-fips.us-west-2.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoints.Endpoint{}, + "sa-east-1": endpoints.Endpoint{}, + "us-east-1": endpoints.Endpoint{}, + "us-east-2": endpoints.Endpoint{}, + "us-west-1": endpoints.Endpoint{}, + "us-west-2": endpoints.Endpoint{}, + }, }, { ID: "aws-cn", @@ -72,6 +122,10 @@ var defaultPartitions = endpoints.Partitions{ }, RegionRegex: partitionRegexp.AwsCn, IsRegionalized: true, + Endpoints: endpoints.Endpoints{ + "cn-north-1": endpoints.Endpoint{}, + "cn-northwest-1": endpoints.Endpoint{}, + }, }, { ID: "aws-iso", @@ -102,5 +156,21 @@ var defaultPartitions = endpoints.Partitions{ }, RegionRegex: partitionRegexp.AwsUsGov, IsRegionalized: true, + Endpoints: endpoints.Endpoints{ + "fips-us-gov-east-1": endpoints.Endpoint{ + Hostname: "data.jobs.iot-fips.us-gov-east-1.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "us-gov-east-1", + }, + }, + "fips-us-gov-west-1": endpoints.Endpoint{ + Hostname: "data.jobs.iot-fips.us-gov-west-1.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "us-gov-west-1", + }, + }, + "us-gov-east-1": endpoints.Endpoint{}, + "us-gov-west-1": endpoints.Endpoint{}, + }, }, } diff --git a/service/ivs/internal/endpoints/endpoints.go b/service/ivs/internal/endpoints/endpoints.go index 58e02022c33..e17ecb83889 100644 --- a/service/ivs/internal/endpoints/endpoints.go +++ b/service/ivs/internal/endpoints/endpoints.go @@ -62,6 +62,11 @@ var defaultPartitions = endpoints.Partitions{ }, RegionRegex: partitionRegexp.Aws, IsRegionalized: true, + Endpoints: endpoints.Endpoints{ + "eu-west-1": endpoints.Endpoint{}, + "us-east-1": endpoints.Endpoint{}, + "us-west-2": endpoints.Endpoint{}, + }, }, { ID: "aws-cn", diff --git a/service/kms/api_op_CancelKeyDeletion.go b/service/kms/api_op_CancelKeyDeletion.go index 023c4fa34e3..00313c8084f 100644 --- a/service/kms/api_op_CancelKeyDeletion.go +++ b/service/kms/api_op_CancelKeyDeletion.go @@ -10,18 +10,18 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Cancels the deletion of a customer master key (CMK). When this operation -// succeeds, the key state of the CMK is Disabled. To enable the CMK, use -// EnableKey. For more information about scheduling and canceling deletion of a -// CMK, see Deleting Customer Master Keys +// Cancels the deletion of a KMS key. When this operation succeeds, the key state +// of the KMS key is Disabled. To enable the KMS key, use EnableKey. For more +// information about scheduling and canceling deletion of a KMS key, see Deleting +// KMS keys // (https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html) in -// the AWS Key Management Service Developer Guide. The CMK that you use for this +// the Key Management Service Developer Guide. The KMS key that you use for this // operation must be in a compatible key state. For details, see Key state: Effect -// on your CMK +// on your KMS key // (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the -// AWS Key Management Service Developer Guide. Cross-account use: No. You cannot -// perform this operation on a CMK in a different AWS account. Required -// permissions: kms:CancelKeyDeletion +// Key Management Service Developer Guide. Cross-account use: No. You cannot +// perform this operation on a KMS key in a different Amazon Web Services account. +// Required permissions: kms:CancelKeyDeletion // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (key policy) Related operations: ScheduleKeyDeletion func (c *Client) CancelKeyDeletion(ctx context.Context, params *CancelKeyDeletionInput, optFns ...func(*Options)) (*CancelKeyDeletionOutput, error) { @@ -41,8 +41,8 @@ func (c *Client) CancelKeyDeletion(ctx context.Context, params *CancelKeyDeletio type CancelKeyDeletionInput struct { - // Identifies the customer master key (CMK) whose deletion is being canceled. - // Specify the key ID or key ARN of the CMK. For example: + // Identifies the KMS key whose deletion is being canceled. Specify the key ID or + // key ARN of the KMS key. For example: // // * Key ID: // 1234abcd-12ab-34cd-56ef-1234567890ab @@ -51,7 +51,7 @@ type CancelKeyDeletionInput struct { // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab // // To - // get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. + // get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. // // This member is required. KeyId *string @@ -63,7 +63,7 @@ type CancelKeyDeletionOutput struct { // The Amazon Resource Name (key ARN // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN)) - // of the CMK whose deletion is canceled. + // of the KMS key whose deletion is canceled. KeyId *string // Metadata pertaining to the operation's result. diff --git a/service/kms/api_op_ConnectCustomKeyStore.go b/service/kms/api_op_ConnectCustomKeyStore.go index 21f4dcfa620..b130992137c 100644 --- a/service/kms/api_op_ConnectCustomKeyStore.go +++ b/service/kms/api_op_ConnectCustomKeyStore.go @@ -12,40 +12,38 @@ import ( // Connects or reconnects a custom key store // (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html) -// to its associated AWS CloudHSM cluster. The custom key store must be connected -// before you can create customer master keys (CMKs) in the key store or use the -// CMKs it contains. You can disconnect and reconnect a custom key store at any -// time. To connect a custom key store, its associated AWS CloudHSM cluster must -// have at least one active HSM. To get the number of active HSMs in a cluster, use -// the DescribeClusters +// to its associated CloudHSM cluster. The custom key store must be connected +// before you can create KMS keys in the key store or use the KMS keys it contains. +// You can disconnect and reconnect a custom key store at any time. To connect a +// custom key store, its associated CloudHSM cluster must have at least one active +// HSM. To get the number of active HSMs in a cluster, use the DescribeClusters // (https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html) // operation. To add HSMs to the cluster, use the CreateHsm // (https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_CreateHsm.html) // operation. Also, the kmsuser crypto user // (https://docs.aws.amazon.com/kms/latest/developerguide/key-store-concepts.html#concept-kmsuser) -// (CU) must not be logged into the cluster. This prevents AWS KMS from using this +// (CU) must not be logged into the cluster. This prevents KMS from using this // account to log in. The connection process can take an extended amount of time to // complete; up to 20 minutes. This operation starts the connection process, but it // does not wait for it to complete. When it succeeds, this operation quickly // returns an HTTP 200 response and a JSON object with no properties. However, this // response does not indicate that the custom key store is connected. To get the // connection state of the custom key store, use the DescribeCustomKeyStores -// operation. During the connection process, AWS KMS finds the AWS CloudHSM cluster -// that is associated with the custom key store, creates the connection -// infrastructure, connects to the cluster, logs into the AWS CloudHSM client as -// the kmsuser CU, and rotates its password. The ConnectCustomKeyStore operation -// might fail for various reasons. To find the reason, use the -// DescribeCustomKeyStores operation and see the ConnectionErrorCode in the -// response. For help interpreting the ConnectionErrorCode, see -// CustomKeyStoresListEntry. To fix the failure, use the DisconnectCustomKeyStore -// operation to disconnect the custom key store, correct the error, use the -// UpdateCustomKeyStore operation if necessary, and then use ConnectCustomKeyStore -// again. If you are having trouble connecting or disconnecting a custom key store, -// see Troubleshooting a Custom Key Store +// operation. During the connection process, KMS finds the CloudHSM cluster that is +// associated with the custom key store, creates the connection infrastructure, +// connects to the cluster, logs into the CloudHSM client as the kmsuser CU, and +// rotates its password. The ConnectCustomKeyStore operation might fail for various +// reasons. To find the reason, use the DescribeCustomKeyStores operation and see +// the ConnectionErrorCode in the response. For help interpreting the +// ConnectionErrorCode, see CustomKeyStoresListEntry. To fix the failure, use the +// DisconnectCustomKeyStore operation to disconnect the custom key store, correct +// the error, use the UpdateCustomKeyStore operation if necessary, and then use +// ConnectCustomKeyStore again. If you are having trouble connecting or +// disconnecting a custom key store, see Troubleshooting a Custom Key Store // (https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html) in the -// AWS Key Management Service Developer Guide. Cross-account use: No. You cannot -// perform this operation on a custom key store in a different AWS account. -// Required permissions: kms:ConnectCustomKeyStore +// Key Management Service Developer Guide. Cross-account use: No. You cannot +// perform this operation on a custom key store in a different Amazon Web Services +// account. Required permissions: kms:ConnectCustomKeyStore // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (IAM policy) Related operations // diff --git a/service/kms/api_op_CreateAlias.go b/service/kms/api_op_CreateAlias.go index 93eed6d61bd..942b1732c8b 100644 --- a/service/kms/api_op_CreateAlias.go +++ b/service/kms/api_op_CreateAlias.go @@ -10,31 +10,30 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a friendly name for a customer master key (CMK). Adding, deleting, or -// updating an alias can allow or deny permission to the CMK. For details, see -// Using ABAC in AWS KMS -// (https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in the AWS Key -// Management Service Developer Guide. You can use an alias to identify a CMK in -// the AWS KMS console, in the DescribeKey operation and in cryptographic -// operations +// Creates a friendly name for a KMS key. Adding, deleting, or updating an alias +// can allow or deny permission to the KMS key. For details, see Using ABAC in KMS +// (https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in the Key +// Management Service Developer Guide. You can use an alias to identify a KMS key +// in the KMS console, in the DescribeKey operation and in cryptographic operations // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations), -// such as Encrypt and GenerateDataKey. You can also change the CMK that's +// such as Encrypt and GenerateDataKey. You can also change the KMS key that's // associated with the alias (UpdateAlias) or delete the alias (DeleteAlias) at any -// time. These operations don't affect the underlying CMK. You can associate the -// alias with any customer managed CMK in the same AWS Region. Each alias is -// associated with only one CMK at a time, but a CMK can have multiple aliases. A -// valid CMK is required. You can't create an alias without a CMK. The alias must -// be unique in the account and Region, but you can have aliases with the same name -// in different Regions. For detailed information about aliases, see Using aliases +// time. These operations don't affect the underlying KMS key. You can associate +// the alias with any customer managed key in the same Amazon Web Services Region. +// Each alias is associated with only one KMS key at a time, but a KMS key can have +// multiple aliases. A valid KMS key is required. You can't create an alias without +// a KMS key. The alias must be unique in the account and Region, but you can have +// aliases with the same name in different Regions. For detailed information about +// aliases, see Using aliases // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html) in the -// AWS Key Management Service Developer Guide. This operation does not return a +// Key Management Service Developer Guide. This operation does not return a // response. To get the alias that you created, use the ListAliases operation. The -// CMK that you use for this operation must be in a compatible key state. For -// details, see Key state: Effect on your CMK +// KMS key that you use for this operation must be in a compatible key state. For +// details, see Key state: Effect on your KMS key // (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the -// AWS Key Management Service Developer Guide. Cross-account use: No. You cannot -// perform this operation on an alias in a different AWS account. Required -// permissions +// Key Management Service Developer Guide. Cross-account use: No. You cannot +// perform this operation on an alias in a different Amazon Web Services account. +// Required permissions // // * kms:CreateAlias // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) @@ -42,11 +41,11 @@ import ( // // * kms:CreateAlias // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) -// on the CMK (key policy). +// on the KMS key (key policy). // // For details, see Controlling access to aliases // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html#alias-access) -// in the AWS Key Management Service Developer Guide. Related operations: +// in the Key Management Service Developer Guide. Related operations: // // * // DeleteAlias @@ -75,20 +74,20 @@ type CreateAliasInput struct { // such as alias/ExampleAlias. The AliasName value must be string of 1-256 // characters. It can contain only alphanumeric characters, forward slashes (/), // underscores (_), and dashes (-). The alias name cannot begin with alias/aws/. - // The alias/aws/ prefix is reserved for AWS managed CMKs + // The alias/aws/ prefix is reserved for Amazon Web Services managed keys // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk). // // This member is required. AliasName *string - // Associates the alias with the specified customer managed CMK + // Associates the alias with the specified customer managed key // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk). - // The CMK must be in the same AWS Region. A valid CMK ID is required. If you - // supply a null or empty string value, this operation returns an error. For help - // finding the key ID and ARN, see Finding the Key ID and ARN + // The KMS key must be in the same Amazon Web Services Region. A valid key ID is + // required. If you supply a null or empty string value, this operation returns an + // error. For help finding the key ID and ARN, see Finding the Key ID and ARN // (https://docs.aws.amazon.com/kms/latest/developerguide/viewing-keys.html#find-cmk-id-arn) - // in the AWS Key Management Service Developer Guide. Specify the key ID or key ARN - // of the CMK. For example: + // in the Key Management Service Developer Guide . Specify the key ID or key ARN of + // the KMS key. For example: // // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab // @@ -97,7 +96,7 @@ type CreateAliasInput struct { // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab // // To - // get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. + // get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. // // This member is required. TargetKeyId *string diff --git a/service/kms/api_op_CreateCustomKeyStore.go b/service/kms/api_op_CreateCustomKeyStore.go index ea1a53941d3..00ab0984166 100644 --- a/service/kms/api_op_CreateCustomKeyStore.go +++ b/service/kms/api_op_CreateCustomKeyStore.go @@ -12,27 +12,27 @@ import ( // Creates a custom key store // (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html) -// that is associated with an AWS CloudHSM cluster +// that is associated with an CloudHSM cluster // (https://docs.aws.amazon.com/cloudhsm/latest/userguide/clusters.html) that you // own and manage. This operation is part of the Custom Key Store feature // (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html) -// feature in AWS KMS, which combines the convenience and extensive integration of -// AWS KMS with the isolation and control of a single-tenant key store. Before you -// create the custom key store, you must assemble the required elements, including -// an AWS CloudHSM cluster that fulfills the requirements for a custom key store. -// For details about the required elements, see Assemble the Prerequisites +// feature in KMS, which combines the convenience and extensive integration of KMS +// with the isolation and control of a single-tenant key store. Before you create +// the custom key store, you must assemble the required elements, including an +// CloudHSM cluster that fulfills the requirements for a custom key store. For +// details about the required elements, see Assemble the Prerequisites // (https://docs.aws.amazon.com/kms/latest/developerguide/create-keystore.html#before-keystore) -// in the AWS Key Management Service Developer Guide. When the operation completes +// in the Key Management Service Developer Guide. When the operation completes // successfully, it returns the ID of the new custom key store. Before you can use // your new custom key store, you need to use the ConnectCustomKeyStore operation -// to connect the new key store to its AWS CloudHSM cluster. Even if you are not -// going to use your custom key store immediately, you might want to connect it to -// verify that all settings are correct and then disconnect it until you are ready -// to use it. For help with failures, see Troubleshooting a Custom Key Store +// to connect the new key store to its CloudHSM cluster. Even if you are not going +// to use your custom key store immediately, you might want to connect it to verify +// that all settings are correct and then disconnect it until you are ready to use +// it. For help with failures, see Troubleshooting a Custom Key Store // (https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html) in the -// AWS Key Management Service Developer Guide. Cross-account use: No. You cannot -// perform this operation on a custom key store in a different AWS account. -// Required permissions: kms:CreateCustomKeyStore +// Key Management Service Developer Guide. Cross-account use: No. You cannot +// perform this operation on a custom key store in a different Amazon Web Services +// account. Required permissions: kms:CreateCustomKeyStore // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (IAM policy). Related operations: // @@ -64,9 +64,9 @@ func (c *Client) CreateCustomKeyStore(ctx context.Context, params *CreateCustomK type CreateCustomKeyStoreInput struct { - // Identifies the AWS CloudHSM cluster for the custom key store. Enter the cluster - // ID of any active AWS CloudHSM cluster that is not already associated with a - // custom key store. To find the cluster ID, use the DescribeClusters + // Identifies the CloudHSM cluster for the custom key store. Enter the cluster ID + // of any active CloudHSM cluster that is not already associated with a custom key + // store. To find the cluster ID, use the DescribeClusters // (https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html) // operation. // @@ -74,18 +74,17 @@ type CreateCustomKeyStoreInput struct { CloudHsmClusterId *string // Specifies a friendly name for the custom key store. The name must be unique in - // your AWS account. + // your Amazon Web Services account. // // This member is required. CustomKeyStoreName *string // Enter the password of the kmsuser crypto user (CU) account // (https://docs.aws.amazon.com/kms/latest/developerguide/key-store-concepts.html#concept-kmsuser) - // in the specified AWS CloudHSM cluster. AWS KMS logs into the cluster as this - // user to manage key material on your behalf. The password must be a string of 7 - // to 32 characters. Its value is case sensitive. This parameter tells AWS KMS the - // kmsuser account password; it does not change the password in the AWS CloudHSM - // cluster. + // in the specified CloudHSM cluster. KMS logs into the cluster as this user to + // manage key material on your behalf. The password must be a string of 7 to 32 + // characters. Its value is case sensitive. This parameter tells KMS the kmsuser + // account password; it does not change the password in the CloudHSM cluster. // // This member is required. KeyStorePassword *string diff --git a/service/kms/api_op_CreateGrant.go b/service/kms/api_op_CreateGrant.go index 1df397ee940..cbf5a67471b 100644 --- a/service/kms/api_op_CreateGrant.go +++ b/service/kms/api_op_CreateGrant.go @@ -11,48 +11,43 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Adds a grant to a customer master key (CMK). A grant is a policy instrument that -// allows AWS principals to use AWS KMS customer master keys (CMKs) in -// cryptographic operations. It also can allow them to view a CMK (DescribeKey) and -// create and manage grants. When authorizing access to a CMK, grants are -// considered along with key policies and IAM policies. Grants are often used for -// temporary permissions because you can create one, use its permissions, and -// delete it without changing your key policies or IAM policies. For detailed -// information about grants, including grant terminology, see Using grants -// (https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) in the AWS -// Key Management Service Developer Guide . For examples of working with grants in +// Adds a grant to a KMS key. A grant is a policy instrument that allows Amazon Web +// Services principals to use KMS keys in cryptographic operations. It also can +// allow them to view a KMS key (DescribeKey) and create and manage grants. When +// authorizing access to a KMS key, grants are considered along with key policies +// and IAM policies. Grants are often used for temporary permissions because you +// can create one, use its permissions, and delete it without changing your key +// policies or IAM policies. For detailed information about grants, including grant +// terminology, see Using grants +// (https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) in the Key +// Management Service Developer Guide . For examples of working with grants in // several programming languages, see Programming grants // (https://docs.aws.amazon.com/kms/latest/developerguide/programming-grants.html). // The CreateGrant operation returns a GrantToken and a GrantId. // // * When you // create, retire, or revoke a grant, there might be a brief delay, usually less -// than five minutes, until the grant is available throughout AWS KMS. This state -// is known as eventual consistency. Once the grant has achieved eventual -// consistency, the grantee principal can use the permissions in the grant without -// identifying the grant. However, to use the permissions in the grant immediately, -// use the GrantToken that CreateGrant returns. For details, see Using a grant -// token -// (https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html) -// in the AWS Key Management Service Developer Guide . +// than five minutes, until the grant is available throughout KMS. This state is +// known as eventual consistency. Once the grant has achieved eventual consistency, +// the grantee principal can use the permissions in the grant without identifying +// the grant. However, to use the permissions in the grant immediately, use the +// GrantToken that CreateGrant returns. For details, see Using a grant token +// (https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token) +// in the Key Management Service Developer Guide . // // * The CreateGrant operation // also returns a GrantId. You can use the GrantId and a key identifier to identify // the grant in the RetireGrant and RevokeGrant operations. To find the grant ID, // use the ListGrants or ListRetirableGrants operations. // -// For information about -// symmetric and asymmetric CMKs, see Using Symmetric and Asymmetric CMKs -// (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) -// in the AWS Key Management Service Developer Guide. For more information about -// grants, see Grants -// (https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) in the AWS -// Key Management Service Developer Guide . The CMK that you use for this operation -// must be in a compatible key state. For details, see Key state: Effect on your -// CMK (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in -// the AWS Key Management Service Developer Guide. Cross-account use: Yes. To -// perform this operation on a CMK in a different AWS account, specify the key ARN -// in the value of the KeyId parameter. Required permissions: kms:CreateGrant +// The KMS key that you use +// for this operation must be in a compatible key state. For details, see Key +// state: Effect on your KMS key +// (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the +// Key Management Service Developer Guide. Cross-account use: Yes. To perform this +// operation on a KMS key in a different Amazon Web Services account, specify the +// key ARN in the value of the KeyId parameter. Required permissions: +// kms:CreateGrant // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (key policy) Related operations: // @@ -84,19 +79,19 @@ type CreateGrantInput struct { // The identity that gets the permissions specified in the grant. To specify the // principal, use the Amazon Resource Name (ARN) // (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of - // an AWS principal. Valid AWS principals include AWS accounts (root), IAM users, - // IAM roles, federated users, and assumed role users. For examples of the ARN - // syntax to use for specifying a principal, see AWS Identity and Access Management - // (IAM) + // an Amazon Web Services principal. Valid Amazon Web Services principals include + // Amazon Web Services accounts (root), IAM users, IAM roles, federated users, and + // assumed role users. For examples of the ARN syntax to use for specifying a + // principal, see Amazon Web Services Identity and Access Management (IAM) // (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-iam) - // in the Example ARNs section of the AWS General Reference. + // in the Example ARNs section of the Amazon Web Services General Reference. // // This member is required. GranteePrincipal *string - // Identifies the customer master key (CMK) for the grant. The grant gives - // principals permission to use this CMK. Specify the key ID or key ARN of the CMK. - // To specify a CMK in a different AWS account, you must use the key ARN. For + // Identifies the KMS key for the grant. The grant gives principals permission to + // use this KMS key. Specify the key ID or key ARN of the KMS key. To specify a KMS + // key in a different Amazon Web Services account, you must use the key ARN. For // example: // // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab @@ -105,48 +100,48 @@ type CreateGrantInput struct { // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab // // To - // get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. + // get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. // // This member is required. KeyId *string // A list of operations that the grant permits. The operation must be supported on - // the CMK. For example, you cannot create a grant for a symmetric CMK that allows - // the Sign operation, or a grant for an asymmetric CMK that allows the - // GenerateDataKey operation. If you try, AWS KMS returns a ValidationError - // exception. For details, see Grant operations + // the KMS key. For example, you cannot create a grant for a symmetric KMS key that + // allows the Sign operation, or a grant for an asymmetric KMS key that allows the + // GenerateDataKey operation. If you try, KMS returns a ValidationError exception. + // For details, see Grant operations // (https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations) - // in the AWS Key Management Service Developer Guide. + // in the Key Management Service Developer Guide. // // This member is required. Operations []types.GrantOperation - // Specifies a grant constraint. AWS KMS supports the EncryptionContextEquals and + // Specifies a grant constraint. KMS supports the EncryptionContextEquals and // EncryptionContextSubset grant constraints. Each constraint value can include up // to 8 encryption context pairs. The encryption context value in each constraint - // cannot exceed 384 characters. These grant constraints allow a cryptographic - // operation - // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations) - // only when the encryption context in the request matches + // cannot exceed 384 characters. These grant constraints allow the permissions in + // the grant only when the encryption context in the request matches // (EncryptionContextEquals) or includes (EncryptionContextSubset) the encryption - // context specified in this structure. For more information about encryption - // context, see Encryption Context - // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) - // in the AWS Key Management Service Developer Guide . For information about grant - // constraints, see Using grant constraints + // context specified in this structure. For information about grant constraints, + // see Using grant constraints // (https://docs.aws.amazon.com/kms/latest/developerguide/create-grant-overview.html#grant-constraints) - // in the AWS Key Management Service Developer Guide. The encryption context grant + // in the Key Management Service Developer Guide. For more information about + // encryption context, see Encryption Context + // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) + // in the Key Management Service Developer Guide . The encryption context grant // constraints are supported only on operations that include an encryption context. // You cannot use an encryption context grant constraint for cryptographic - // operations with asymmetric CMKs or for management operations, such as + // operations with asymmetric KMS keys or for management operations, such as // DescribeKey or RetireGrant. Constraints *types.GrantConstraints // A list of grant tokens. Use a grant token when your permission to call this // operation comes from a new grant that has not yet achieved eventual consistency. // For more information, see Grant token - // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token) - // in the AWS Key Management Service Developer Guide. + // (https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) + // and Using a grant token + // (https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token) + // in the Key Management Service Developer Guide. GrantTokens []string // A friendly name for the grant. Use this value to prevent the unintended creation @@ -161,14 +156,20 @@ type CreateGrantInput struct { // used interchangeably. Name *string - // The principal that is given permission to retire the grant by using RetireGrant - // operation. To specify the principal, use the Amazon Resource Name (ARN) + // The principal that has permission to use the RetireGrant operation to retire the + // grant. To specify the principal, use the Amazon Resource Name (ARN) // (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of - // an AWS principal. Valid AWS principals include AWS accounts (root), IAM users, - // federated users, and assumed role users. For examples of the ARN syntax to use - // for specifying a principal, see AWS Identity and Access Management (IAM) + // an Amazon Web Services principal. Valid Amazon Web Services principals include + // Amazon Web Services accounts (root), IAM users, federated users, and assumed + // role users. For examples of the ARN syntax to use for specifying a principal, + // see Amazon Web Services Identity and Access Management (IAM) // (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-iam) - // in the Example ARNs section of the AWS General Reference. + // in the Example ARNs section of the Amazon Web Services General Reference. The + // grant determines the retiring principal. Other principals might have permission + // to retire the grant or revoke the grant. For details, see RevokeGrant and + // Retiring and revoking grants + // (https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#grant-delete) + // in the Key Management Service Developer Guide. RetiringPrincipal *string noSmithyDocumentSerde @@ -183,8 +184,10 @@ type CreateGrantOutput struct { // The grant token. Use a grant token when your permission to call this operation // comes from a new grant that has not yet achieved eventual consistency. For more // information, see Grant token - // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token) - // in the AWS Key Management Service Developer Guide. + // (https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) + // and Using a grant token + // (https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token) + // in the Key Management Service Developer Guide. GrantToken *string // Metadata pertaining to the operation's result. diff --git a/service/kms/api_op_CreateKey.go b/service/kms/api_op_CreateKey.go index 693ba79282b..a6485d4d103 100644 --- a/service/kms/api_op_CreateKey.go +++ b/service/kms/api_op_CreateKey.go @@ -11,90 +11,94 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a unique customer managed customer master key -// (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master-keys) -// (CMK) in your AWS account and Region. You can use the CreateKey operation to -// create symmetric or asymmetric CMKs. +// Creates a unique customer managed KMS key +// (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms-keys) +// in your Amazon Web Services account and Region. KMS is replacing the term +// customer master key (CMK) with KMS key and KMS key. The concept has not changed. +// To prevent breaking changes, KMS is keeping some variations of this term. You +// can use the CreateKey operation to create symmetric or asymmetric KMS keys. // -// * Symmetric CMKs contain a 256-bit -// symmetric key that never leaves AWS KMS unencrypted. To use the CMK, you must -// call AWS KMS. You can use a symmetric CMK to encrypt and decrypt small amounts -// of data, but they are typically used to generate data keys +// * +// Symmetric KMS keys contain a 256-bit symmetric key that never leaves KMS +// unencrypted. To use the KMS key, you must call KMS. You can use a symmetric KMS +// key to encrypt and decrypt small amounts of data, but they are typically used to +// generate data keys // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys) // and data keys pairs // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-key-pairs). // For details, see GenerateDataKey and GenerateDataKeyPair. // -// * Asymmetric CMKs can -// contain an RSA key pair or an Elliptic Curve (ECC) key pair. The private key in -// an asymmetric CMK never leaves AWS KMS unencrypted. However, you can use the +// * Asymmetric KMS keys +// can contain an RSA key pair or an Elliptic Curve (ECC) key pair. The private key +// in an asymmetric KMS key never leaves KMS unencrypted. However, you can use the // GetPublicKey operation to download the public key so it can be used outside of -// AWS KMS. CMKs with RSA key pairs can be used to encrypt or decrypt data or sign -// and verify messages (but not both). CMKs with ECC key pairs can be used only to -// sign and verify messages. +// KMS. KMS keys with RSA key pairs can be used to encrypt or decrypt data or sign +// and verify messages (but not both). KMS keys with ECC key pairs can be used only +// to sign and verify messages. // -// For information about symmetric and asymmetric CMKs, -// see Using Symmetric and Asymmetric CMKs +// For information about symmetric and asymmetric KMS +// keys, see Using Symmetric and Asymmetric KMS keys // (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) -// in the AWS Key Management Service Developer Guide. To create different types of -// CMKs, use the following guidance: Asymmetric CMKs To create an asymmetric CMK, -// use the CustomerMasterKeySpec parameter to specify the type of key material in -// the CMK. Then, use the KeyUsage parameter to determine whether the CMK will be -// used to encrypt and decrypt or sign and verify. You can't change these -// properties after the CMK is created. Symmetric CMKs When creating a symmetric -// CMK, you don't need to specify the CustomerMasterKeySpec or KeyUsage parameters. -// The default value for CustomerMasterKeySpec, SYMMETRIC_DEFAULT, and the default -// value for KeyUsage, ENCRYPT_DECRYPT, are the only valid values for symmetric -// CMKs. Multi-Region primary keys Imported key material To create a multi-Region -// primary key in the local AWS Region, use the MultiRegion parameter with a value -// of True. To create a multi-Region replica key, that is, a CMK with the same key -// ID and key material as a primary key, but in a different AWS Region, use the -// ReplicateKey operation. To change a replica key to a primary key, and its -// primary key to a replica key, use the UpdatePrimaryRegion operation. This -// operation supports multi-Region keys, an AWS KMS feature that lets you create -// multiple interoperable CMKs in different AWS Regions. Because these CMKs have -// the same key ID, key material, and other metadata, you can use them to encrypt -// data in one AWS Region and decrypt it in a different AWS Region without making a -// cross-Region call or exposing the plaintext data. For more information about +// in the Key Management Service Developer Guide. To create different types of KMS +// keys, use the following guidance: Asymmetric KMS keys To create an asymmetric +// KMS key, use the KeySpec parameter to specify the type of key material in the +// KMS key. Then, use the KeyUsage parameter to determine whether the KMS key will +// be used to encrypt and decrypt or sign and verify. You can't change these +// properties after the KMS key is created. Symmetric KMS keys When creating a +// symmetric KMS key, you don't need to specify the KeySpec or KeyUsage parameters. +// The default value for KeySpec, SYMMETRIC_DEFAULT, and the default value for +// KeyUsage, ENCRYPT_DECRYPT, are the only valid values for symmetric KMS keys. +// Multi-Region primary keys Imported key material To create a multi-Region primary +// key in the local Amazon Web Services Region, use the MultiRegion parameter with +// a value of True. To create a multi-Region replica key, that is, a KMS key with +// the same key ID and key material as a primary key, but in a different Amazon Web +// Services Region, use the ReplicateKey operation. To change a replica key to a +// primary key, and its primary key to a replica key, use the UpdatePrimaryRegion +// operation. This operation supports multi-Region keys, an KMS feature that lets +// you create multiple interoperable KMS keys in different Amazon Web Services +// Regions. Because these KMS keys have the same key ID, key material, and other +// metadata, you can use them interchangeably to encrypt data in one Amazon Web +// Services Region and decrypt it in a different Amazon Web Services Region without +// re-encrypting the data or making a cross-Region call. For more information about // multi-Region keys, see Using multi-Region keys // (https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) -// in the AWS Key Management Service Developer Guide. You can create symmetric and +// in the Key Management Service Developer Guide. You can create symmetric and // asymmetric multi-Region keys and multi-Region keys with imported key material. // You cannot create multi-Region keys in a custom key store. To import your own -// key material, begin by creating a symmetric CMK with no key material. To do +// key material, begin by creating a symmetric KMS key with no key material. To do // this, use the Origin parameter of CreateKey with a value of EXTERNAL. Next, use // GetParametersForImport operation to get a public key and import token, and use // the public key to encrypt your key material. Then, use ImportKeyMaterial with // your import token to import the key material. For step-by-step instructions, see // Importing Key Material // (https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) in -// the AWS Key Management Service Developer Guide . You cannot import the key -// material into an asymmetric CMK. To create a multi-Region primary key with -// imported key material, use the Origin parameter of CreateKey with a value of -// EXTERNAL and the MultiRegion parameter with a value of True. To create replicas -// of the multi-Region primary key, use the ReplicateKey operation. For more -// information about multi-Region keys, see Using multi-Region keys +// the Key Management Service Developer Guide . You cannot import the key material +// into an asymmetric KMS key. To create a multi-Region primary key with imported +// key material, use the Origin parameter of CreateKey with a value of EXTERNAL and +// the MultiRegion parameter with a value of True. To create replicas of the +// multi-Region primary key, use the ReplicateKey operation. For more information +// about multi-Region keys, see Using multi-Region keys // (https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) -// in the AWS Key Management Service Developer Guide. Custom key store To create a -// symmetric CMK in a custom key store +// in the Key Management Service Developer Guide. Custom key store To create a +// symmetric KMS key in a custom key store // (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html), // use the CustomKeyStoreId parameter to specify the custom key store. You must -// also use the Origin parameter with a value of AWS_CLOUDHSM. The AWS CloudHSM -// cluster that is associated with the custom key store must have at least two -// active HSMs in different Availability Zones in the AWS Region. You cannot create -// an asymmetric CMK or a multi-Region CMK in a custom key store. For information -// about custom key stores in AWS KMS see Using Custom Key Stores +// also use the Origin parameter with a value of AWS_CLOUDHSM. The CloudHSM cluster +// that is associated with the custom key store must have at least two active HSMs +// in different Availability Zones in the Amazon Web Services Region. You cannot +// create an asymmetric KMS key in a custom key store. For information about custom +// key stores in KMS see Using Custom Key Stores // (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html) -// in the AWS Key Management Service Developer Guide . Cross-account use: No. You -// cannot use this operation to create a CMK in a different AWS account. Required -// permissions: kms:CreateKey +// in the Key Management Service Developer Guide . Cross-account use: No. You +// cannot use this operation to create a KMS key in a different Amazon Web Services +// account. Required permissions: kms:CreateKey // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (IAM policy). To use the Tags parameter, kms:TagResource // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (IAM policy). For examples and information about related permissions, see Allow -// a user to create CMKs +// a user to create KMS keys // (https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html#iam-policy-example-create-key) -// in the AWS Key Management Service Developer Guide. Related operations: +// in the Key Management Service Developer Guide. Related operations: // // * // DescribeKey @@ -120,62 +124,78 @@ func (c *Client) CreateKey(ctx context.Context, params *CreateKeyInput, optFns . type CreateKeyInput struct { // A flag to indicate whether to bypass the key policy lockout safety check. - // Setting this value to true increases the risk that the CMK becomes unmanageable. - // Do not set this value to true indiscriminately. For more information, refer to - // the scenario in the Default Key Policy + // Setting this value to true increases the risk that the KMS key becomes + // unmanageable. Do not set this value to true indiscriminately. For more + // information, refer to the scenario in the Default Key Policy // (https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam) - // section in the AWS Key Management Service Developer Guide . Use this parameter - // only when you include a policy in the request and you intend to prevent the - // principal that is making the request from making a subsequent PutKeyPolicy - // request on the CMK. The default value is false. + // section in the Key Management Service Developer Guide . Use this parameter only + // when you include a policy in the request and you intend to prevent the principal + // that is making the request from making a subsequent PutKeyPolicy request on the + // KMS key. The default value is false. BypassPolicyLockoutSafetyCheck bool - // Creates the CMK in the specified custom key store + // Creates the KMS key in the specified custom key store // (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html) - // and the key material in its associated AWS CloudHSM cluster. To create a CMK in + // and the key material in its associated CloudHSM cluster. To create a KMS key in // a custom key store, you must also specify the Origin parameter with a value of - // AWS_CLOUDHSM. The AWS CloudHSM cluster that is associated with the custom key - // store must have at least two active HSMs, each in a different Availability Zone - // in the Region. This parameter is valid only for symmetric CMKs and regional - // CMKs. You cannot create an asymmetric CMK or a multi-Region CMK in a custom key - // store. To find the ID of a custom key store, use the DescribeCustomKeyStores - // operation. The response includes the custom key store ID and the ID of the AWS + // AWS_CLOUDHSM. The CloudHSM cluster that is associated with the custom key store + // must have at least two active HSMs, each in a different Availability Zone in the + // Region. This parameter is valid only for symmetric KMS keys and regional KMS + // keys. You cannot create an asymmetric KMS key or a multi-Region key in a custom + // key store. To find the ID of a custom key store, use the DescribeCustomKeyStores + // operation. The response includes the custom key store ID and the ID of the // CloudHSM cluster. This operation is part of the Custom Key Store feature // (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html) - // feature in AWS KMS, which combines the convenience and extensive integration of - // AWS KMS with the isolation and control of a single-tenant key store. + // feature in KMS, which combines the convenience and extensive integration of KMS + // with the isolation and control of a single-tenant key store. CustomKeyStoreId *string - // Specifies the type of CMK to create. The default value, SYMMETRIC_DEFAULT, - // creates a CMK with a 256-bit symmetric key for encryption and decryption. For - // help choosing a key spec for your CMK, see How to Choose Your CMK Configuration + // Instead, use the KeySpec parameter. The KeySpec and CustomerMasterKeySpec + // parameters work the same way. Only the names differ. We recommend that you use + // KeySpec parameter in your code. However, to avoid breaking changes, KMS will + // support both parameters. + // + // Deprecated: This parameter has been deprecated. Instead, use the KeySpec + // parameter. + CustomerMasterKeySpec types.CustomerMasterKeySpec + + // A description of the KMS key. Use a description that helps you decide whether + // the KMS key is appropriate for a task. The default value is an empty string (no + // description). To set or change the description after the key is created, use + // UpdateKeyDescription. + Description *string + + // Specifies the type of KMS key to create. The default value, SYMMETRIC_DEFAULT, + // creates a KMS key with a 256-bit symmetric key for encryption and decryption. + // For help choosing a key spec for your KMS key, see How to Choose Your KMS key + // Configuration // (https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose.html) - // in the AWS Key Management Service Developer Guide. The CustomerMasterKeySpec - // determines whether the CMK contains a symmetric key or an asymmetric key pair. - // It also determines the encryption algorithms or signing algorithms that the CMK - // supports. You can't change the CustomerMasterKeySpec after the CMK is created. - // To further restrict the algorithms that can be used with the CMK, use a - // condition key in its key policy or IAM policy. For more information, see + // in the Key Management Service Developer Guide . The KeySpec determines whether + // the KMS key contains a symmetric key or an asymmetric key pair. It also + // determines the encryption algorithms or signing algorithms that the KMS key + // supports. You can't change the KeySpec after the KMS key is created. To further + // restrict the algorithms that can be used with the KMS key, use a condition key + // in its key policy or IAM policy. For more information, see // kms:EncryptionAlgorithm // (https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-algorithm) // or kms:Signing Algorithm // (https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-signing-algorithm) - // in the AWS Key Management Service Developer Guide. AWS services that are - // integrated with AWS KMS - // (http://aws.amazon.com/kms/features/#AWS_Service_Integration) use symmetric CMKs - // to protect your data. These services do not support asymmetric CMKs. For help - // determining whether a CMK is symmetric or asymmetric, see Identifying Symmetric - // and Asymmetric CMKs + // in the Key Management Service Developer Guide . Amazon Web Services services + // that are integrated with KMS + // (http://aws.amazon.com/kms/features/#AWS_Service_Integration) use symmetric KMS + // keys to protect your data. These services do not support asymmetric KMS keys. + // For help determining whether a KMS key is symmetric or asymmetric, see + // Identifying Symmetric and Asymmetric KMS keys // (https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html) in - // the AWS Key Management Service Developer Guide. AWS KMS supports the following - // key specs for CMKs: + // the Key Management Service Developer Guide. KMS supports the following key specs + // for KMS keys: // // * Symmetric key (default) // - // * SYMMETRIC_DEFAULT - // (AES-256-GCM) + // * SYMMETRIC_DEFAULT (AES-256-GCM) // - // * Asymmetric RSA key pairs + // * + // Asymmetric RSA key pairs // // * RSA_2048 // @@ -183,124 +203,121 @@ type CreateKeyInput struct { // // * RSA_4096 // - // * - // Asymmetric NIST-recommended elliptic curve key pairs + // * Asymmetric + // NIST-recommended elliptic curve key pairs // - // * ECC_NIST_P256 - // (secp256r1) + // * ECC_NIST_P256 (secp256r1) // - // * ECC_NIST_P384 (secp384r1) + // * + // ECC_NIST_P384 (secp384r1) // // * ECC_NIST_P521 (secp521r1) // - // * Other - // asymmetric elliptic curve key pairs + // * Other asymmetric + // elliptic curve key pairs // - // * ECC_SECG_P256K1 (secp256k1), commonly - // used for cryptocurrencies. - CustomerMasterKeySpec types.CustomerMasterKeySpec - - // A description of the CMK. Use a description that helps you decide whether the - // CMK is appropriate for a task. The default value is an empty string (no - // description). - Description *string + // * ECC_SECG_P256K1 (secp256k1), commonly used for + // cryptocurrencies. + KeySpec types.KeySpec // Determines the cryptographic operations // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations) - // for which you can use the CMK. The default value is ENCRYPT_DECRYPT. This - // parameter is required only for asymmetric CMKs. You can't change the KeyUsage - // value after the CMK is created. Select only one valid value. + // for which you can use the KMS key. The default value is ENCRYPT_DECRYPT. This + // parameter is required only for asymmetric KMS keys. You can't change the + // KeyUsage value after the KMS key is created. Select only one valid value. // - // * For symmetric - // CMKs, omit the parameter or specify ENCRYPT_DECRYPT. + // * For + // symmetric KMS keys, omit the parameter or specify ENCRYPT_DECRYPT. // - // * For asymmetric CMKs with - // RSA key material, specify ENCRYPT_DECRYPT or SIGN_VERIFY. + // * For + // asymmetric KMS keys with RSA key material, specify ENCRYPT_DECRYPT or + // SIGN_VERIFY. // - // * For asymmetric CMKs - // with ECC key material, specify SIGN_VERIFY. + // * For asymmetric KMS keys with ECC key material, specify + // SIGN_VERIFY. KeyUsage types.KeyUsageType - // Creates a multi-Region primary key that you can replicate into other AWS - // Regions. You cannot change this value after you create the CMK. For a - // multi-Region key, set this parameter to True. For a single-Region CMK, omit this - // parameter or set it to False. The default value is False. This operation - // supports multi-Region keys, an AWS KMS feature that lets you create multiple - // interoperable CMKs in different AWS Regions. Because these CMKs have the same - // key ID, key material, and other metadata, you can use them to encrypt data in - // one AWS Region and decrypt it in a different AWS Region without making a - // cross-Region call or exposing the plaintext data. For more information about + // Creates a multi-Region primary key that you can replicate into other Amazon Web + // Services Regions. You cannot change this value after you create the KMS key. For + // a multi-Region key, set this parameter to True. For a single-Region KMS key, + // omit this parameter or set it to False. The default value is False. This + // operation supports multi-Region keys, an KMS feature that lets you create + // multiple interoperable KMS keys in different Amazon Web Services Regions. + // Because these KMS keys have the same key ID, key material, and other metadata, + // you can use them interchangeably to encrypt data in one Amazon Web Services + // Region and decrypt it in a different Amazon Web Services Region without + // re-encrypting the data or making a cross-Region call. For more information about // multi-Region keys, see Using multi-Region keys // (https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) - // in the AWS Key Management Service Developer Guide. This value creates a primary - // key, not a replica. To create a replica key, use the ReplicateKey operation. You - // can create a symmetric or asymmetric multi-Region CMK, and you can create a - // multi-Region CMK with imported key material. However, you cannot create a - // multi-Region CMK in a custom key store. + // in the Key Management Service Developer Guide. This value creates a primary key, + // not a replica. To create a replica key, use the ReplicateKey operation. You can + // create a symmetric or asymmetric multi-Region key, and you can create a + // multi-Region key with imported key material. However, you cannot create a + // multi-Region key in a custom key store. MultiRegion *bool - // The source of the key material for the CMK. You cannot change the origin after - // you create the CMK. The default is AWS_KMS, which means that AWS KMS creates the - // key material. To create a CMK with no key material (for imported key material), - // set the value to EXTERNAL. For more information about importing key material - // into AWS KMS, see Importing Key Material + // The source of the key material for the KMS key. You cannot change the origin + // after you create the KMS key. The default is AWS_KMS, which means that KMS + // creates the key material. To create a KMS key with no key material (for imported + // key material), set the value to EXTERNAL. For more information about importing + // key material into KMS, see Importing Key Material // (https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) in - // the AWS Key Management Service Developer Guide. This value is valid only for - // symmetric CMKs. To create a CMK in an AWS KMS custom key store + // the Key Management Service Developer Guide. This value is valid only for + // symmetric KMS keys. To create a KMS key in an KMS custom key store // (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html) - // and create its key material in the associated AWS CloudHSM cluster, set this - // value to AWS_CLOUDHSM. You must also use the CustomKeyStoreId parameter to - // identify the custom key store. This value is valid only for symmetric CMKs. + // and create its key material in the associated CloudHSM cluster, set this value + // to AWS_CLOUDHSM. You must also use the CustomKeyStoreId parameter to identify + // the custom key store. This value is valid only for symmetric KMS keys. Origin types.OriginType - // The key policy to attach to the CMK. If you provide a key policy, it must meet - // the following criteria: + // The key policy to attach to the KMS key. If you provide a key policy, it must + // meet the following criteria: // - // * If you don't set BypassPolicyLockoutSafetyCheck to - // true, the key policy must allow the principal that is making the CreateKey - // request to make a subsequent PutKeyPolicy request on the CMK. This reduces the - // risk that the CMK becomes unmanageable. For more information, refer to the - // scenario in the Default Key Policy + // * If you don't set BypassPolicyLockoutSafetyCheck + // to true, the key policy must allow the principal that is making the CreateKey + // request to make a subsequent PutKeyPolicy request on the KMS key. This reduces + // the risk that the KMS key becomes unmanageable. For more information, refer to + // the scenario in the Default Key Policy // (https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam) - // section of the AWS Key Management Service Developer Guide . + // section of the Key Management Service Developer Guide . // - // * Each statement in - // the key policy must contain one or more principals. The principals in the key - // policy must exist and be visible to AWS KMS. When you create a new AWS principal - // (for example, an IAM user or role), you might need to enforce a delay before - // including the new principal in a key policy because the new principal might not - // be immediately visible to AWS KMS. For more information, see Changes that I make - // are not always immediately visible + // * Each statement in the + // key policy must contain one or more principals. The principals in the key policy + // must exist and be visible to KMS. When you create a new Amazon Web Services + // principal (for example, an IAM user or role), you might need to enforce a delay + // before including the new principal in a key policy because the new principal + // might not be immediately visible to KMS. For more information, see Changes that + // I make are not always immediately visible // (https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency) - // in the AWS Identity and Access Management User Guide. + // in the Amazon Web Services Identity and Access Management User Guide. // - // If you do not provide a - // key policy, AWS KMS attaches a default key policy to the CMK. For more - // information, see Default Key Policy + // If you do + // not provide a key policy, KMS attaches a default key policy to the KMS key. For + // more information, see Default Key Policy // (https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default) - // in the AWS Key Management Service Developer Guide. The key policy size quota is - // 32 kilobytes (32768 bytes). For help writing and formatting a JSON policy - // document, see the IAM JSON Policy Reference + // in the Key Management Service Developer Guide. The key policy size quota is 32 + // kilobytes (32768 bytes). For help writing and formatting a JSON policy document, + // see the IAM JSON Policy Reference // (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) in - // the IAM User Guide . + // the Identity and Access Management User Guide . Policy *string - // Assigns one or more tags to the CMK. Use this parameter to tag the CMK when it - // is created. To tag an existing CMK, use the TagResource operation. Tagging or - // untagging a CMK can allow or deny permission to the CMK. For details, see Using - // ABAC in AWS KMS - // (https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in the AWS Key + // Assigns one or more tags to the KMS key. Use this parameter to tag the KMS key + // when it is created. To tag an existing KMS key, use the TagResource operation. + // Tagging or untagging a KMS key can allow or deny permission to the KMS key. For + // details, see Using ABAC in KMS + // (https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in the Key // Management Service Developer Guide. To use this parameter, you must have // kms:TagResource // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // permission in an IAM policy. Each tag consists of a tag key and a tag value. // Both the tag key and the tag value are required, but the tag value can be an - // empty (null) string. You cannot have more than one tag on a CMK with the same - // tag key. If you specify an existing tag key with a different tag value, AWS KMS - // replaces the current tag value with the specified one. When you assign tags to - // an AWS resource, AWS generates a cost allocation report with usage and costs - // aggregated by tags. Tags can also be used to control access to a CMK. For - // details, see Tagging Keys + // empty (null) string. You cannot have more than one tag on a KMS key with the + // same tag key. If you specify an existing tag key with a different tag value, KMS + // replaces the current tag value with the specified one. When you add tags to an + // Amazon Web Services resource, Amazon Web Services generates a cost allocation + // report with usage and costs aggregated by tags. Tags can also be used to control + // access to a KMS key. For details, see Tagging Keys // (https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html). Tags []types.Tag @@ -309,7 +326,7 @@ type CreateKeyInput struct { type CreateKeyOutput struct { - // Metadata associated with the CMK. + // Metadata associated with the KMS key. KeyMetadata *types.KeyMetadata // Metadata pertaining to the operation's result. diff --git a/service/kms/api_op_Decrypt.go b/service/kms/api_op_Decrypt.go index 6dc2bfb0a62..c8c7c58095c 100644 --- a/service/kms/api_op_Decrypt.go +++ b/service/kms/api_op_Decrypt.go @@ -11,59 +11,66 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Decrypts ciphertext that was encrypted by a AWS KMS customer master key (CMK) -// using any of the following operations: +// Decrypts ciphertext that was encrypted by a KMS key using any of the following +// operations: // // * Encrypt // // * GenerateDataKey // -// * -// GenerateDataKeyPair -// -// * GenerateDataKeyWithoutPlaintext +// * GenerateDataKeyPair // // * -// GenerateDataKeyPairWithoutPlaintext +// GenerateDataKeyWithoutPlaintext // -// You can use this operation to decrypt -// ciphertext that was encrypted under a symmetric or asymmetric CMK. When the CMK -// is asymmetric, you must specify the CMK and the encryption algorithm that was -// used to encrypt the ciphertext. For information about symmetric and asymmetric -// CMKs, see Using Symmetric and Asymmetric CMKs +// * GenerateDataKeyPairWithoutPlaintext +// +// You can +// use this operation to decrypt ciphertext that was encrypted under a symmetric or +// asymmetric KMS key. When the KMS key is asymmetric, you must specify the KMS key +// and the encryption algorithm that was used to encrypt the ciphertext. For +// information about symmetric and asymmetric KMS keys, see Using Symmetric and +// Asymmetric KMS keys // (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) -// in the AWS Key Management Service Developer Guide. The Decrypt operation also -// decrypts ciphertext that was encrypted outside of AWS KMS by the public key in -// an AWS KMS asymmetric CMK. However, it cannot decrypt ciphertext produced by -// other libraries, such as the AWS Encryption SDK +// in the Key Management Service Developer Guide. The Decrypt operation also +// decrypts ciphertext that was encrypted outside of KMS by the public key in an +// KMS asymmetric KMS key. However, it cannot decrypt ciphertext produced by other +// libraries, such as the Amazon Web Services Encryption SDK // (https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/) or Amazon // S3 client-side encryption // (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html). -// These libraries return a ciphertext format that is incompatible with AWS KMS. If -// the ciphertext was encrypted under a symmetric CMK, the KeyId parameter is -// optional. AWS KMS can get this information from metadata that it adds to the +// These libraries return a ciphertext format that is incompatible with KMS. If the +// ciphertext was encrypted under a symmetric KMS key, the KeyId parameter is +// optional. KMS can get this information from metadata that it adds to the // symmetric ciphertext blob. This feature adds durability to your implementation // by ensuring that authorized users can decrypt ciphertext decades after it was -// encrypted, even if they've lost track of the CMK ID. However, specifying the CMK -// is always recommended as a best practice. When you use the KeyId parameter to -// specify a CMK, AWS KMS only uses the CMK you specify. If the ciphertext was -// encrypted under a different CMK, the Decrypt operation fails. This practice -// ensures that you use the CMK that you intend. Whenever possible, use key -// policies to give users permission to call the Decrypt operation on a particular -// CMK, instead of using IAM policies. Otherwise, you might create an IAM user -// policy that gives the user Decrypt permission on all CMKs. This user could -// decrypt ciphertext that was encrypted by CMKs in other accounts if the key -// policy for the cross-account CMK permits it. If you must use an IAM policy for -// Decrypt permissions, limit the user to particular CMKs or particular trusted -// accounts. For details, see Best practices for IAM policies +// encrypted, even if they've lost track of the key ID. However, specifying the KMS +// key is always recommended as a best practice. When you use the KeyId parameter +// to specify a KMS key, KMS only uses the KMS key you specify. If the ciphertext +// was encrypted under a different KMS key, the Decrypt operation fails. This +// practice ensures that you use the KMS key that you intend. Whenever possible, +// use key policies to give users permission to call the Decrypt operation on a +// particular KMS key, instead of using IAM policies. Otherwise, you might create +// an IAM user policy that gives the user Decrypt permission on all KMS keys. This +// user could decrypt ciphertext that was encrypted by KMS keys in other accounts +// if the key policy for the cross-account KMS key permits it. If you must use an +// IAM policy for Decrypt permissions, limit the user to particular KMS keys or +// particular trusted accounts. For details, see Best practices for IAM policies // (https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html#iam-policies-best-practices) -// in the AWS Key Management Service Developer Guide. The CMK that you use for this +// in the Key Management Service Developer Guide. Applications in Amazon Web +// Services Nitro Enclaves can call this operation by using the Amazon Web Services +// Nitro Enclaves Development Kit +// (https://github.com/aws/aws-nitro-enclaves-sdk-c). For information about the +// supporting parameters, see How Amazon Web Services Nitro Enclaves use KMS +// (https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html) +// in the Key Management Service Developer Guide. The KMS key that you use for this // operation must be in a compatible key state. For details, see Key state: Effect -// on your CMK +// on your KMS key // (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the -// AWS Key Management Service Developer Guide. Cross-account use: Yes. You can -// decrypt a ciphertext using a CMK in a different AWS account. Required -// permissions: kms:Decrypt +// Key Management Service Developer Guide. Cross-account use: Yes. To perform this +// operation with a KMS key in a different Amazon Web Services account, specify the +// key ARN or alias ARN in the value of the KeyId parameter. Required permissions: +// kms:Decrypt // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (key policy) Related operations: // @@ -100,46 +107,46 @@ type DecryptInput struct { // Specifies the encryption algorithm that will be used to decrypt the ciphertext. // Specify the same algorithm that was used to encrypt the data. If you specify a // different algorithm, the Decrypt operation fails. This parameter is required - // only when the ciphertext was encrypted under an asymmetric CMK. The default + // only when the ciphertext was encrypted under an asymmetric KMS key. The default // value, SYMMETRIC_DEFAULT, represents the only supported algorithm that is valid - // for symmetric CMKs. + // for symmetric KMS keys. EncryptionAlgorithm types.EncryptionAlgorithmSpec // Specifies the encryption context to use when decrypting the data. An encryption // context is valid only for cryptographic operations // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations) - // with a symmetric CMK. The standard asymmetric encryption algorithms that AWS KMS + // with a symmetric KMS key. The standard asymmetric encryption algorithms that KMS // uses do not support an encryption context. An encryption context is a collection // of non-secret key-value pairs that represents additional authenticated data. // When you use an encryption context to encrypt data, you must specify the same // (an exact case-sensitive match) encryption context to decrypt the data. An - // encryption context is optional when encrypting with a symmetric CMK, but it is - // highly recommended. For more information, see Encryption Context + // encryption context is optional when encrypting with a symmetric KMS key, but it + // is highly recommended. For more information, see Encryption Context // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) - // in the AWS Key Management Service Developer Guide. + // in the Key Management Service Developer Guide. EncryptionContext map[string]string // A list of grant tokens. Use a grant token when your permission to call this - // operation comes from a newly created grant that has not yet achieved eventual - // consistency. Use a grant token when your permission to call this operation comes - // from a new grant that has not yet achieved eventual consistency. For more - // information, see Grant token - // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token) - // in the AWS Key Management Service Developer Guide. + // operation comes from a new grant that has not yet achieved eventual consistency. + // For more information, see Grant token + // (https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) + // and Using a grant token + // (https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token) + // in the Key Management Service Developer Guide. GrantTokens []string - // Specifies the customer master key (CMK) that AWS KMS uses to decrypt the - // ciphertext. Enter a key ID of the CMK that was used to encrypt the ciphertext. - // This parameter is required only when the ciphertext was encrypted under an - // asymmetric CMK. If you used a symmetric CMK, AWS KMS can get the CMK from - // metadata that it adds to the symmetric ciphertext blob. However, it is always - // recommended as a best practice. This practice ensures that you use the CMK that - // you intend. To specify a CMK, use its key ID, key ARN, alias name, or alias ARN. - // When using an alias name, prefix it with "alias/". To specify a CMK in a - // different AWS account, you must use the key ARN or alias ARN. For example: + // Specifies the KMS key that KMS uses to decrypt the ciphertext. Enter a key ID of + // the KMS key that was used to encrypt the ciphertext. This parameter is required + // only when the ciphertext was encrypted under an asymmetric KMS key. If you used + // a symmetric KMS key, KMS can get the KMS key from metadata that it adds to the + // symmetric ciphertext blob. However, it is always recommended as a best practice. + // This practice ensures that you use the KMS key that you intend. To specify a KMS + // key, use its key ID, key ARN, alias name, or alias ARN. When using an alias + // name, prefix it with "alias/". To specify a KMS key in a different Amazon Web + // Services account, you must use the key ARN or alias ARN. For example: // - // * - // Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab + // * Key ID: + // 1234abcd-12ab-34cd-56ef-1234567890ab // // * Key ARN: // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab @@ -151,8 +158,8 @@ type DecryptInput struct { // arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias // // To get the key ID and key - // ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, - // use ListAliases. + // ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias + // ARN, use ListAliases. KeyId *string noSmithyDocumentSerde @@ -165,11 +172,11 @@ type DecryptOutput struct { // The Amazon Resource Name (key ARN // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN)) - // of the CMK that was used to decrypt the ciphertext. + // of the KMS key that was used to decrypt the ciphertext. KeyId *string - // Decrypted plaintext data. When you use the HTTP API or the AWS CLI, the value is - // Base64-encoded. Otherwise, it is not Base64-encoded. + // Decrypted plaintext data. When you use the HTTP API or the Amazon Web Services + // CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded. Plaintext []byte // Metadata pertaining to the operation's result. diff --git a/service/kms/api_op_DeleteAlias.go b/service/kms/api_op_DeleteAlias.go index 449279a747d..a37bc901623 100644 --- a/service/kms/api_op_DeleteAlias.go +++ b/service/kms/api_op_DeleteAlias.go @@ -11,17 +11,17 @@ import ( ) // Deletes the specified alias. Adding, deleting, or updating an alias can allow or -// deny permission to the CMK. For details, see Using ABAC in AWS KMS -// (https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in the AWS Key -// Management Service Developer Guide. Because an alias is not a property of a CMK, -// you can delete and change the aliases of a CMK without affecting the CMK. Also, -// aliases do not appear in the response from the DescribeKey operation. To get the -// aliases of all CMKs, use the ListAliases operation. Each CMK can have multiple -// aliases. To change the alias of a CMK, use DeleteAlias to delete the current -// alias and CreateAlias to create a new alias. To associate an existing alias with -// a different customer master key (CMK), call UpdateAlias. Cross-account use: No. -// You cannot perform this operation on an alias in a different AWS account. -// Required permissions +// deny permission to the KMS key. For details, see Using ABAC in KMS +// (https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in the Key +// Management Service Developer Guide. Because an alias is not a property of a KMS +// key, you can delete and change the aliases of a KMS key without affecting the +// KMS key. Also, aliases do not appear in the response from the DescribeKey +// operation. To get the aliases of all KMS keys, use the ListAliases operation. +// Each KMS key can have multiple aliases. To change the alias of a KMS key, use +// DeleteAlias to delete the current alias and CreateAlias to create a new alias. +// To associate an existing alias with a different KMS key, call UpdateAlias. +// Cross-account use: No. You cannot perform this operation on an alias in a +// different Amazon Web Services account. Required permissions // // * kms:DeleteAlias // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) @@ -29,11 +29,11 @@ import ( // // * kms:DeleteAlias // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) -// on the CMK (key policy). +// on the KMS key (key policy). // // For details, see Controlling access to aliases // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html#alias-access) -// in the AWS Key Management Service Developer Guide. Related operations: +// in the Key Management Service Developer Guide. Related operations: // // * // CreateAlias diff --git a/service/kms/api_op_DeleteCustomKeyStore.go b/service/kms/api_op_DeleteCustomKeyStore.go index 9dd7daca99c..d796b985b92 100644 --- a/service/kms/api_op_DeleteCustomKeyStore.go +++ b/service/kms/api_op_DeleteCustomKeyStore.go @@ -12,32 +12,32 @@ import ( // Deletes a custom key store // (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html). -// This operation does not delete the AWS CloudHSM cluster that is associated with -// the custom key store, or affect any users or keys in the cluster. The custom key -// store that you delete cannot contain any AWS KMS customer master keys (CMKs) -// (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys). +// This operation does not delete the CloudHSM cluster that is associated with the +// custom key store, or affect any users or keys in the cluster. The custom key +// store that you delete cannot contain any KMS KMS keys +// (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys). // Before deleting the key store, verify that you will never need to use any of the -// CMKs in the key store for any cryptographic operations +// KMS keys in the key store for any cryptographic operations // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations). -// Then, use ScheduleKeyDeletion to delete the AWS KMS customer master keys (CMKs) -// from the key store. When the scheduled waiting period expires, the -// ScheduleKeyDeletion operation deletes the CMKs. Then it makes a best effort to -// delete the key material from the associated cluster. However, you might need to -// manually delete the orphaned key material +// Then, use ScheduleKeyDeletion to delete the KMS keys from the key store. When +// the scheduled waiting period expires, the ScheduleKeyDeletion operation deletes +// the KMS keys. Then it makes a best effort to delete the key material from the +// associated cluster. However, you might need to manually delete the orphaned key +// material // (https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-orphaned-key) -// from the cluster and its backups. After all CMKs are deleted from AWS KMS, use -// DisconnectCustomKeyStore to disconnect the key store from AWS KMS. Then, you can +// from the cluster and its backups. After all KMS keys are deleted from KMS, use +// DisconnectCustomKeyStore to disconnect the key store from KMS. Then, you can // delete the custom key store. Instead of deleting the custom key store, consider -// using DisconnectCustomKeyStore to disconnect it from AWS KMS. While the key -// store is disconnected, you cannot create or use the CMKs in the key store. But, -// you do not need to delete CMKs and you can reconnect a disconnected custom key +// using DisconnectCustomKeyStore to disconnect it from KMS. While the key store is +// disconnected, you cannot create or use the KMS keys in the key store. But, you +// do not need to delete KMS keys and you can reconnect a disconnected custom key // store at any time. If the operation succeeds, it returns a JSON object with no // properties. This operation is part of the Custom Key Store feature // (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html) -// feature in AWS KMS, which combines the convenience and extensive integration of -// AWS KMS with the isolation and control of a single-tenant key store. -// Cross-account use: No. You cannot perform this operation on a custom key store -// in a different AWS account. Required permissions: kms:DeleteCustomKeyStore +// feature in KMS, which combines the convenience and extensive integration of KMS +// with the isolation and control of a single-tenant key store. Cross-account use: +// No. You cannot perform this operation on a custom key store in a different +// Amazon Web Services account. Required permissions: kms:DeleteCustomKeyStore // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (IAM policy) Related operations: // diff --git a/service/kms/api_op_DeleteImportedKeyMaterial.go b/service/kms/api_op_DeleteImportedKeyMaterial.go index e51877672b1..63bdc9ae1ba 100644 --- a/service/kms/api_op_DeleteImportedKeyMaterial.go +++ b/service/kms/api_op_DeleteImportedKeyMaterial.go @@ -11,19 +11,19 @@ import ( ) // Deletes key material that you previously imported. This operation makes the -// specified customer master key (CMK) unusable. For more information about -// importing key material into AWS KMS, see Importing Key Material +// specified KMS key unusable. For more information about importing key material +// into KMS, see Importing Key Material // (https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) in -// the AWS Key Management Service Developer Guide. When the specified CMK is in the -// PendingDeletion state, this operation does not change the CMK's state. -// Otherwise, it changes the CMK's state to PendingImport. After you delete key +// the Key Management Service Developer Guide. When the specified KMS key is in the +// PendingDeletion state, this operation does not change the KMS key's state. +// Otherwise, it changes the KMS key's state to PendingImport. After you delete key // material, you can use ImportKeyMaterial to reimport the same key material into -// the CMK. The CMK that you use for this operation must be in a compatible key -// state. For details, see Key state: Effect on your CMK +// the KMS key. The KMS key that you use for this operation must be in a compatible +// key state. For details, see Key state: Effect on your KMS key // (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the -// AWS Key Management Service Developer Guide. Cross-account use: No. You cannot -// perform this operation on a CMK in a different AWS account. Required -// permissions: kms:DeleteImportedKeyMaterial +// Key Management Service Developer Guide. Cross-account use: No. You cannot +// perform this operation on a KMS key in a different Amazon Web Services account. +// Required permissions: kms:DeleteImportedKeyMaterial // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (key policy) Related operations: // @@ -47,9 +47,9 @@ func (c *Client) DeleteImportedKeyMaterial(ctx context.Context, params *DeleteIm type DeleteImportedKeyMaterialInput struct { - // Identifies the CMK from which you are deleting imported key material. The Origin - // of the CMK must be EXTERNAL. Specify the key ID or key ARN of the CMK. For - // example: + // Identifies the KMS key from which you are deleting imported key material. The + // Origin of the KMS key must be EXTERNAL. Specify the key ID or key ARN of the KMS + // key. For example: // // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab // @@ -57,7 +57,7 @@ type DeleteImportedKeyMaterialInput struct { // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab // // To - // get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. + // get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. // // This member is required. KeyId *string diff --git a/service/kms/api_op_DescribeCustomKeyStores.go b/service/kms/api_op_DescribeCustomKeyStores.go index e3ce092659e..58f0bfec848 100644 --- a/service/kms/api_op_DescribeCustomKeyStores.go +++ b/service/kms/api_op_DescribeCustomKeyStores.go @@ -16,26 +16,26 @@ import ( // in the account and Region. This operation is part of the Custom Key Store // feature // (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html) -// feature in AWS KMS, which combines the convenience and extensive integration of -// AWS KMS with the isolation and control of a single-tenant key store. By default, -// this operation returns information about all custom key stores in the account -// and Region. To get only information about a particular custom key store, use -// either the CustomKeyStoreName or CustomKeyStoreId parameter (but not both). To -// determine whether the custom key store is connected to its AWS CloudHSM cluster, -// use the ConnectionState element in the response. If an attempt to connect the -// custom key store failed, the ConnectionState value is FAILED and the +// feature in KMS, which combines the convenience and extensive integration of KMS +// with the isolation and control of a single-tenant key store. By default, this +// operation returns information about all custom key stores in the account and +// Region. To get only information about a particular custom key store, use either +// the CustomKeyStoreName or CustomKeyStoreId parameter (but not both). To +// determine whether the custom key store is connected to its CloudHSM cluster, use +// the ConnectionState element in the response. If an attempt to connect the custom +// key store failed, the ConnectionState value is FAILED and the // ConnectionErrorCode element in the response indicates the cause of the failure. // For help interpreting the ConnectionErrorCode, see CustomKeyStoresListEntry. // Custom key stores have a DISCONNECTED connection state if the key store has // never been connected or you use the DisconnectCustomKeyStore operation to // disconnect it. If your custom key store state is CONNECTED but you are having -// trouble using it, make sure that its associated AWS CloudHSM cluster is active -// and contains the minimum number of HSMs required for the operation, if any. For -// help repairing your custom key store, see the Troubleshooting Custom Key Stores +// trouble using it, make sure that its associated CloudHSM cluster is active and +// contains the minimum number of HSMs required for the operation, if any. For help +// repairing your custom key store, see the Troubleshooting Custom Key Stores // (https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html) topic -// in the AWS Key Management Service Developer Guide. Cross-account use: No. You -// cannot perform this operation on a custom key store in a different AWS account. -// Required permissions: kms:DescribeCustomKeyStores +// in the Key Management Service Developer Guide. Cross-account use: No. You cannot +// perform this operation on a custom key store in a different Amazon Web Services +// account. Required permissions: kms:DescribeCustomKeyStores // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (IAM policy) Related operations: // @@ -82,8 +82,8 @@ type DescribeCustomKeyStoresInput struct { CustomKeyStoreName *string // Use this parameter to specify the maximum number of items to return. When this - // value is present, AWS KMS does not return more than the specified number of - // items, but it might return fewer. + // value is present, KMS does not return more than the specified number of items, + // but it might return fewer. Limit *int32 // Use this parameter in a subsequent request after you receive a response with diff --git a/service/kms/api_op_DescribeKey.go b/service/kms/api_op_DescribeKey.go index c6602c3ac4a..c1095359c0d 100644 --- a/service/kms/api_op_DescribeKey.go +++ b/service/kms/api_op_DescribeKey.go @@ -11,45 +11,48 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Provides detailed information about a customer master key (CMK). You can run -// DescribeKey on a customer managed CMK +// Provides detailed information about a KMS key. You can run DescribeKey on a +// customer managed key // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) -// or an AWS managed CMK +// or an Amazon Web Services managed key // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk). // This detailed information includes the key ARN, creation date (and deletion // date, if applicable), the key state, and the origin and expiration date (if any) -// of the key material. For CMKs in custom key stores, it includes information -// about the custom key store, such as the key store ID and the AWS CloudHSM -// cluster ID. It includes fields, like KeySpec, that help you distinguish -// symmetric from asymmetric CMKs. It also provides information that is -// particularly important to asymmetric CMKs, such as the key usage (encryption or -// signing) and the encryption algorithms or signing algorithms that the CMK -// supports. DescribeKey does not return the following information: +// of the key material. It includes fields, like KeySpec, that help you distinguish +// symmetric from asymmetric KMS keys. It also provides information that is +// particularly important to asymmetric keys, such as the key usage (encryption or +// signing) and the encryption algorithms or signing algorithms that the KMS key +// supports. For KMS keys in custom key stores, it includes information about the +// custom key store, such as the key store ID and the CloudHSM cluster ID. For +// multi-Region keys, it displays the primary key and all related replica keys. +// DescribeKey does not return the following information: // -// * Aliases -// associated with the CMK. To get this information, use ListAliases. +// * Aliases associated +// with the KMS key. To get this information, use ListAliases. // -// * Whether -// automatic key rotation is enabled on the CMK. To get this information, use -// GetKeyRotationStatus. Also, some key states prevent a CMK from being +// * Whether automatic +// key rotation is enabled on the KMS key. To get this information, use +// GetKeyRotationStatus. Also, some key states prevent a KMS key from being // automatically rotated. For details, see How Automatic Key Rotation Works // (https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotate-keys-how-it-works) -// in AWS Key Management Service Developer Guide. +// in Key Management Service Developer Guide. // -// * Tags on the CMK. To get this +// * Tags on the KMS key. To get this // information, use ListResourceTags. // -// * Key policies and grants on the CMK. To get -// this information, use GetKeyPolicy and ListGrants. +// * Key policies and grants on the KMS key. To +// get this information, use GetKeyPolicy and ListGrants. // -// If you call the DescribeKey -// operation on a predefined AWS alias, that is, an AWS alias with no key ID, AWS -// KMS creates an AWS managed CMK -// (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys). -// Then, it associates the alias with the new CMK, and returns the KeyId and Arn of -// the new CMK in the response. Cross-account use: Yes. To perform this operation -// with a CMK in a different AWS account, specify the key ARN or alias ARN in the -// value of the KeyId parameter. Required permissions: kms:DescribeKey +// If you call the +// DescribeKey operation on a predefined Amazon Web Services alias, that is, an +// Amazon Web Services alias with no key ID, KMS creates an Amazon Web Services +// managed key +// (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk). +// Then, it associates the alias with the new KMS key, and returns the KeyId and +// Arn of the new KMS key in the response. Cross-account use: Yes. To perform this +// operation with a KMS key in a different Amazon Web Services account, specify the +// key ARN or alias ARN in the value of the KeyId parameter. Required permissions: +// kms:DescribeKey // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (key policy) Related operations: // @@ -84,19 +87,19 @@ func (c *Client) DescribeKey(ctx context.Context, params *DescribeKeyInput, optF type DescribeKeyInput struct { - // Describes the specified customer master key (CMK). If you specify a predefined - // AWS alias (an AWS alias with no key ID), KMS associates the alias with an AWS - // managed CMK - // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys) - // and returns its KeyId and Arn in the response. To specify a CMK, use its key ID, - // key ARN, alias name, or alias ARN. When using an alias name, prefix it with - // "alias/". To specify a CMK in a different AWS account, you must use the key ARN - // or alias ARN. For example: + // Describes the specified KMS key. If you specify a predefined Amazon Web Services + // alias (an Amazon Web Services alias with no key ID), KMS associates the alias + // with an Amazon Web Services managed key + // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html##aws-managed-cmk) + // and returns its KeyId and Arn in the response. To specify a KMS key, use its key + // ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with + // "alias/". To specify a KMS key in a different Amazon Web Services account, you + // must use the key ARN or alias ARN. For example: // - // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab + // * Key ID: + // 1234abcd-12ab-34cd-56ef-1234567890ab // - // * - // Key ARN: + // * Key ARN: // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab // // * @@ -106,8 +109,8 @@ type DescribeKeyInput struct { // arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias // // To get the key ID and key - // ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, - // use ListAliases. + // ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias + // ARN, use ListAliases. // // This member is required. KeyId *string @@ -115,8 +118,10 @@ type DescribeKeyInput struct { // A list of grant tokens. Use a grant token when your permission to call this // operation comes from a new grant that has not yet achieved eventual consistency. // For more information, see Grant token - // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token) - // in the AWS Key Management Service Developer Guide. + // (https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) + // and Using a grant token + // (https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token) + // in the Key Management Service Developer Guide. GrantTokens []string noSmithyDocumentSerde diff --git a/service/kms/api_op_DisableKey.go b/service/kms/api_op_DisableKey.go index 511f0340517..81a9e961bf2 100644 --- a/service/kms/api_op_DisableKey.go +++ b/service/kms/api_op_DisableKey.go @@ -10,19 +10,19 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Sets the state of a customer master key (CMK) to disabled. This change -// temporarily prevents use of the CMK for cryptographic operations +// Sets the state of a KMS key to disabled. This change temporarily prevents use of +// the KMS key for cryptographic operations // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations). -// For more information about how key state affects the use of a CMK, see Key -// state: Effect on your CMK +// For more information about how key state affects the use of a KMS key, see Key +// state: Effect on your KMS key // (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the -// AWS Key Management Service Developer Guide . The CMK that you use for this +// Key Management Service Developer Guide . The KMS key that you use for this // operation must be in a compatible key state. For details, see Key state: Effect -// on your CMK +// on your KMS key // (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the -// AWS Key Management Service Developer Guide. Cross-account use: No. You cannot -// perform this operation on a CMK in a different AWS account. Required -// permissions: kms:DisableKey +// Key Management Service Developer Guide. Cross-account use: No. You cannot +// perform this operation on a KMS key in a different Amazon Web Services account. +// Required permissions: kms:DisableKey // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (key policy) Related operations: EnableKey func (c *Client) DisableKey(ctx context.Context, params *DisableKeyInput, optFns ...func(*Options)) (*DisableKeyOutput, error) { @@ -42,17 +42,16 @@ func (c *Client) DisableKey(ctx context.Context, params *DisableKeyInput, optFns type DisableKeyInput struct { - // Identifies the customer master key (CMK) to disable. Specify the key ID or key - // ARN of the CMK. For example: + // Identifies the KMS key to disable. Specify the key ID or key ARN of the KMS key. + // For example: // // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab // - // * - // Key ARN: + // * Key ARN: // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab // // To - // get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. + // get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. // // This member is required. KeyId *string diff --git a/service/kms/api_op_DisableKeyRotation.go b/service/kms/api_op_DisableKeyRotation.go index 63ce6bb8431..a3dc881a15c 100644 --- a/service/kms/api_op_DisableKeyRotation.go +++ b/service/kms/api_op_DisableKeyRotation.go @@ -12,21 +12,21 @@ import ( // Disables automatic rotation of the key material // (https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html) for the -// specified symmetric customer master key (CMK). You cannot enable automatic -// rotation of asymmetric CMKs +// specified symmetric KMS key. You cannot enable automatic rotation of asymmetric +// KMS keys // (https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html#asymmetric-cmks), -// CMKs with imported key material +// KMS keys with imported key material // (https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html), or -// CMKs in a custom key store +// KMS keys in a custom key store // (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html). // To enable or disable automatic rotation of a set of related multi-Region keys // (https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html#mrk-replica-key), -// set the property on the primary key. The CMK that you use for this operation +// set the property on the primary key. The KMS key that you use for this operation // must be in a compatible key state. For details, see Key state: Effect on your -// CMK (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in -// the AWS Key Management Service Developer Guide. Cross-account use: No. You -// cannot perform this operation on a CMK in a different AWS account. Required -// permissions: kms:DisableKeyRotation +// KMS key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) +// in the Key Management Service Developer Guide. Cross-account use: No. You cannot +// perform this operation on a KMS key in a different Amazon Web Services account. +// Required permissions: kms:DisableKeyRotation // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (key policy) Related operations: // @@ -50,14 +50,14 @@ func (c *Client) DisableKeyRotation(ctx context.Context, params *DisableKeyRotat type DisableKeyRotationInput struct { - // Identifies a symmetric customer master key (CMK). You cannot enable or disable - // automatic rotation of asymmetric CMKs + // Identifies a symmetric KMS key. You cannot enable or disable automatic rotation + // of asymmetric KMS keys // (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html#asymmetric-cmks), - // CMKs with imported key material + // KMS keys with imported key material // (https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html), or - // CMKs in a custom key store + // KMS keys in a custom key store // (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html). - // Specify the key ID or key ARN of the CMK. For example: + // Specify the key ID or key ARN of the KMS key. For example: // // * Key ID: // 1234abcd-12ab-34cd-56ef-1234567890ab @@ -66,7 +66,7 @@ type DisableKeyRotationInput struct { // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab // // To - // get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. + // get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. // // This member is required. KeyId *string diff --git a/service/kms/api_op_DisconnectCustomKeyStore.go b/service/kms/api_op_DisconnectCustomKeyStore.go index d58127a7783..a4603621bd2 100644 --- a/service/kms/api_op_DisconnectCustomKeyStore.go +++ b/service/kms/api_op_DisconnectCustomKeyStore.go @@ -12,12 +12,12 @@ import ( // Disconnects the custom key store // (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html) -// from its associated AWS CloudHSM cluster. While a custom key store is -// disconnected, you can manage the custom key store and its customer master keys -// (CMKs), but you cannot create or use CMKs in the custom key store. You can -// reconnect the custom key store at any time. While a custom key store is -// disconnected, all attempts to create customer master keys (CMKs) in the custom -// key store or to use existing CMKs in cryptographic operations +// from its associated CloudHSM cluster. While a custom key store is disconnected, +// you can manage the custom key store and its KMS keys, but you cannot create or +// use KMS keys in the custom key store. You can reconnect the custom key store at +// any time. While a custom key store is disconnected, all attempts to create KMS +// keys in the custom key store or to use existing KMS keys in cryptographic +// operations // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations) // will fail. This action can prevent users from storing and accessing sensitive // data. To find the connection state of a custom key store, use the @@ -26,10 +26,10 @@ import ( // object with no properties. This operation is part of the Custom Key Store // feature // (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html) -// feature in AWS KMS, which combines the convenience and extensive integration of -// AWS KMS with the isolation and control of a single-tenant key store. -// Cross-account use: No. You cannot perform this operation on a custom key store -// in a different AWS account. Required permissions: kms:DisconnectCustomKeyStore +// feature in KMS, which combines the convenience and extensive integration of KMS +// with the isolation and control of a single-tenant key store. Cross-account use: +// No. You cannot perform this operation on a custom key store in a different +// Amazon Web Services account. Required permissions: kms:DisconnectCustomKeyStore // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (IAM policy) Related operations: // diff --git a/service/kms/api_op_EnableKey.go b/service/kms/api_op_EnableKey.go index fe138e29491..f36310d2a68 100644 --- a/service/kms/api_op_EnableKey.go +++ b/service/kms/api_op_EnableKey.go @@ -10,15 +10,15 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Sets the key state of a customer master key (CMK) to enabled. This allows you to -// use the CMK for cryptographic operations +// Sets the key state of a KMS key to enabled. This allows you to use the KMS key +// for cryptographic operations // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations). -// The CMK that you use for this operation must be in a compatible key state. For -// details, see Key state: Effect on your CMK +// The KMS key that you use for this operation must be in a compatible key state. +// For details, see Key state: Effect on your KMS key // (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the -// AWS Key Management Service Developer Guide. Cross-account use: No. You cannot -// perform this operation on a CMK in a different AWS account. Required -// permissions: kms:EnableKey +// Key Management Service Developer Guide. Cross-account use: No. You cannot +// perform this operation on a KMS key in a different Amazon Web Services account. +// Required permissions: kms:EnableKey // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (key policy) Related operations: DisableKey func (c *Client) EnableKey(ctx context.Context, params *EnableKeyInput, optFns ...func(*Options)) (*EnableKeyOutput, error) { @@ -38,17 +38,16 @@ func (c *Client) EnableKey(ctx context.Context, params *EnableKeyInput, optFns . type EnableKeyInput struct { - // Identifies the customer master key (CMK) to enable. Specify the key ID or key - // ARN of the CMK. For example: + // Identifies the KMS key to enable. Specify the key ID or key ARN of the KMS key. + // For example: // // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab // - // * - // Key ARN: + // * Key ARN: // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab // // To - // get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. + // get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. // // This member is required. KeyId *string diff --git a/service/kms/api_op_EnableKeyRotation.go b/service/kms/api_op_EnableKeyRotation.go index faf7085af5a..3095ba1fd18 100644 --- a/service/kms/api_op_EnableKeyRotation.go +++ b/service/kms/api_op_EnableKeyRotation.go @@ -12,21 +12,21 @@ import ( // Enables automatic rotation of the key material // (https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html) for the -// specified symmetric customer master key (CMK). You cannot enable automatic -// rotation of asymmetric CMKs +// specified symmetric KMS key. You cannot enable automatic rotation of asymmetric +// KMS keys // (https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html#asymmetric-cmks), -// CMKs with imported key material +// KMS keys with imported key material // (https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html), or -// CMKs in a custom key store +// KMS keys in a custom key store // (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html). // To enable or disable automatic rotation of a set of related multi-Region keys // (https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html#mrk-replica-key), -// set the property on the primary key. The CMK that you use for this operation +// set the property on the primary key. The KMS key that you use for this operation // must be in a compatible key state. For details, see Key state: Effect on your -// CMK (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in -// the AWS Key Management Service Developer Guide. Cross-account use: No. You -// cannot perform this operation on a CMK in a different AWS account. Required -// permissions: kms:EnableKeyRotation +// KMS key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) +// in the Key Management Service Developer Guide. Cross-account use: No. You cannot +// perform this operation on a KMS key in a different Amazon Web Services account. +// Required permissions: kms:EnableKeyRotation // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (key policy) Related operations: // @@ -50,17 +50,17 @@ func (c *Client) EnableKeyRotation(ctx context.Context, params *EnableKeyRotatio type EnableKeyRotationInput struct { - // Identifies a symmetric customer master key (CMK). You cannot enable automatic - // rotation of asymmetric CMKs + // Identifies a symmetric KMS key. You cannot enable automatic rotation of + // asymmetric KMS keys // (https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html#asymmetric-cmks), - // CMKs with imported key material + // KMS keys with imported key material // (https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html), or - // CMKs in a custom key store + // KMS keys in a custom key store // (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html). // To enable or disable automatic rotation of a set of related multi-Region keys // (https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html#mrk-replica-key), - // set the property on the primary key. Specify the key ID or key ARN of the CMK. - // For example: + // set the property on the primary key. Specify the key ID or key ARN of the KMS + // key. For example: // // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab // @@ -68,7 +68,7 @@ type EnableKeyRotationInput struct { // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab // // To - // get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. + // get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. // // This member is required. KeyId *string diff --git a/service/kms/api_op_Encrypt.go b/service/kms/api_op_Encrypt.go index cdae6bdfd47..7bc3ac114f0 100644 --- a/service/kms/api_op_Encrypt.go +++ b/service/kms/api_op_Encrypt.go @@ -11,79 +11,82 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Encrypts plaintext into ciphertext by using a customer master key (CMK). The -// Encrypt operation has two primary use cases: +// Encrypts plaintext into ciphertext by using a KMS key. The Encrypt operation has +// two primary use cases: // -// * You can encrypt small amounts of -// arbitrary data, such as a personal identifier or database password, or other -// sensitive information. +// * You can encrypt small amounts of arbitrary data, such +// as a personal identifier or database password, or other sensitive +// information. // -// * You can use the Encrypt operation to move encrypted -// data from one AWS Region to another. For example, in Region A, generate a data -// key and use the plaintext key to encrypt your data. Then, in Region A, use the -// Encrypt operation to encrypt the plaintext data key under a CMK in Region B. -// Now, you can move the encrypted data and the encrypted data key to Region B. -// When necessary, you can decrypt the encrypted data key and the encrypted data -// entirely within in Region B. +// * You can use the Encrypt operation to move encrypted data from +// one Amazon Web Services Region to another. For example, in Region A, generate a +// data key and use the plaintext key to encrypt your data. Then, in Region A, use +// the Encrypt operation to encrypt the plaintext data key under a KMS key in +// Region B. Now, you can move the encrypted data and the encrypted data key to +// Region B. When necessary, you can decrypt the encrypted data key and the +// encrypted data entirely within in Region B. // -// You don't need to use the Encrypt operation to -// encrypt a data key. The GenerateDataKey and GenerateDataKeyPair operations -// return a plaintext data key and an encrypted copy of that data key. When you -// encrypt data, you must specify a symmetric or asymmetric CMK to use in the -// encryption operation. The CMK must have a KeyUsage value of ENCRYPT_DECRYPT. To -// find the KeyUsage of a CMK, use the DescribeKey operation. If you use a -// symmetric CMK, you can use an encryption context to add additional security to -// your encryption operation. If you specify an EncryptionContext when encrypting -// data, you must specify the same encryption context (a case-sensitive exact -// match) when decrypting the data. Otherwise, the request to decrypt fails with an -// InvalidCiphertextException. For more information, see Encryption Context +// You don't need to use the Encrypt +// operation to encrypt a data key. The GenerateDataKey and GenerateDataKeyPair +// operations return a plaintext data key and an encrypted copy of that data key. +// When you encrypt data, you must specify a symmetric or asymmetric KMS key to use +// in the encryption operation. The KMS key must have a KeyUsage value of +// ENCRYPT_DECRYPT. To find the KeyUsage of a KMS key, use the DescribeKey +// operation. If you use a symmetric KMS key, you can use an encryption context to +// add additional security to your encryption operation. If you specify an +// EncryptionContext when encrypting data, you must specify the same encryption +// context (a case-sensitive exact match) when decrypting the data. Otherwise, the +// request to decrypt fails with an InvalidCiphertextException. For more +// information, see Encryption Context // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) -// in the AWS Key Management Service Developer Guide. If you specify an asymmetric -// CMK, you must also specify the encryption algorithm. The algorithm must be -// compatible with the CMK type. When you use an asymmetric CMK to encrypt or -// reencrypt data, be sure to record the CMK and encryption algorithm that you -// choose. You will be required to provide the same CMK and encryption algorithm -// when you decrypt the data. If the CMK and algorithm do not match the values used -// to encrypt the data, the decrypt operation fails. You are not required to supply -// the CMK ID and encryption algorithm when you decrypt with symmetric CMKs because -// AWS KMS stores this information in the ciphertext blob. AWS KMS cannot store -// metadata in ciphertext generated with asymmetric keys. The standard format for -// asymmetric key ciphertext does not include configurable fields. The maximum size -// of the data that you can encrypt varies with the type of CMK and the encryption -// algorithm that you choose. +// in the Key Management Service Developer Guide. If you specify an asymmetric KMS +// key, you must also specify the encryption algorithm. The algorithm must be +// compatible with the KMS key type. When you use an asymmetric KMS key to encrypt +// or reencrypt data, be sure to record the KMS key and encryption algorithm that +// you choose. You will be required to provide the same KMS key and encryption +// algorithm when you decrypt the data. If the KMS key and algorithm do not match +// the values used to encrypt the data, the decrypt operation fails. You are not +// required to supply the key ID and encryption algorithm when you decrypt with +// symmetric KMS keys because KMS stores this information in the ciphertext blob. +// KMS cannot store metadata in ciphertext generated with asymmetric keys. The +// standard format for asymmetric key ciphertext does not include configurable +// fields. The maximum size of the data that you can encrypt varies with the type +// of KMS key and the encryption algorithm that you choose. // -// * Symmetric CMKs +// * Symmetric KMS +// keys // // * SYMMETRIC_DEFAULT: 4096 bytes // -// * -// RSA_2048 +// * RSA_2048 // -// * RSAES_OAEP_SHA_1: 214 bytes +// * RSAES_OAEP_SHA_1: 214 +// bytes // // * RSAES_OAEP_SHA_256: 190 bytes // -// * -// RSA_3072 +// * RSA_3072 // -// * RSAES_OAEP_SHA_1: 342 bytes +// * RSAES_OAEP_SHA_1: 342 +// bytes // // * RSAES_OAEP_SHA_256: 318 bytes // -// * -// RSA_4096 +// * RSA_4096 // -// * RSAES_OAEP_SHA_1: 470 bytes +// * RSAES_OAEP_SHA_1: 470 +// bytes // // * RSAES_OAEP_SHA_256: 446 bytes // -// The -// CMK that you use for this operation must be in a compatible key state. For -// details, see Key state: Effect on your CMK +// The KMS key that you use for this +// operation must be in a compatible key state. For details, see Key state: Effect +// on your KMS key // (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the -// AWS Key Management Service Developer Guide. Cross-account use: Yes. To perform -// this operation with a CMK in a different AWS account, specify the key ARN or -// alias ARN in the value of the KeyId parameter. Required permissions: kms:Encrypt +// Key Management Service Developer Guide. Cross-account use: Yes. To perform this +// operation with a KMS key in a different Amazon Web Services account, specify the +// key ARN or alias ARN in the value of the KeyId parameter. Required permissions: +// kms:Encrypt // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (key policy) Related operations: // @@ -110,9 +113,9 @@ func (c *Client) Encrypt(ctx context.Context, params *EncryptInput, optFns ...fu type EncryptInput struct { - // Identifies the customer master key (CMK) to use in the encryption operation. To - // specify a CMK, use its key ID, key ARN, alias name, or alias ARN. When using an - // alias name, prefix it with "alias/". To specify a CMK in a different AWS + // Identifies the KMS key to use in the encryption operation. To specify a KMS key, + // use its key ID, key ARN, alias name, or alias ARN. When using an alias name, + // prefix it with "alias/". To specify a KMS key in a different Amazon Web Services // account, you must use the key ARN or alias ARN. For example: // // * Key ID: @@ -128,8 +131,8 @@ type EncryptInput struct { // arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias // // To get the key ID and key - // ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, - // use ListAliases. + // ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias + // ARN, use ListAliases. // // This member is required. KeyId *string @@ -139,32 +142,34 @@ type EncryptInput struct { // This member is required. Plaintext []byte - // Specifies the encryption algorithm that AWS KMS will use to encrypt the - // plaintext message. The algorithm must be compatible with the CMK that you - // specify. This parameter is required only for asymmetric CMKs. The default value, - // SYMMETRIC_DEFAULT, is the algorithm used for symmetric CMKs. If you are using an - // asymmetric CMK, we recommend RSAES_OAEP_SHA_256. + // Specifies the encryption algorithm that KMS will use to encrypt the plaintext + // message. The algorithm must be compatible with the KMS key that you specify. + // This parameter is required only for asymmetric KMS keys. The default value, + // SYMMETRIC_DEFAULT, is the algorithm used for symmetric KMS keys. If you are + // using an asymmetric KMS key, we recommend RSAES_OAEP_SHA_256. EncryptionAlgorithm types.EncryptionAlgorithmSpec // Specifies the encryption context that will be used to encrypt the data. An // encryption context is valid only for cryptographic operations // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations) - // with a symmetric CMK. The standard asymmetric encryption algorithms that AWS KMS + // with a symmetric KMS key. The standard asymmetric encryption algorithms that KMS // uses do not support an encryption context. An encryption context is a collection // of non-secret key-value pairs that represents additional authenticated data. // When you use an encryption context to encrypt data, you must specify the same // (an exact case-sensitive match) encryption context to decrypt the data. An - // encryption context is optional when encrypting with a symmetric CMK, but it is - // highly recommended. For more information, see Encryption Context + // encryption context is optional when encrypting with a symmetric KMS key, but it + // is highly recommended. For more information, see Encryption Context // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) - // in the AWS Key Management Service Developer Guide. + // in the Key Management Service Developer Guide. EncryptionContext map[string]string // A list of grant tokens. Use a grant token when your permission to call this // operation comes from a new grant that has not yet achieved eventual consistency. // For more information, see Grant token - // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token) - // in the AWS Key Management Service Developer Guide. + // (https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) + // and Using a grant token + // (https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token) + // in the Key Management Service Developer Guide. GrantTokens []string noSmithyDocumentSerde @@ -172,8 +177,8 @@ type EncryptInput struct { type EncryptOutput struct { - // The encrypted plaintext. When you use the HTTP API or the AWS CLI, the value is - // Base64-encoded. Otherwise, it is not Base64-encoded. + // The encrypted plaintext. When you use the HTTP API or the Amazon Web Services + // CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded. CiphertextBlob []byte // The encryption algorithm that was used to encrypt the plaintext. @@ -181,7 +186,7 @@ type EncryptOutput struct { // The Amazon Resource Name (key ARN // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN)) - // of the CMK that was used to encrypt the plaintext. + // of the KMS key that was used to encrypt the plaintext. KeyId *string // Metadata pertaining to the operation's result. diff --git a/service/kms/api_op_GenerateDataKey.go b/service/kms/api_op_GenerateDataKey.go index 5f99ed7c354..8300018d9bc 100644 --- a/service/kms/api_op_GenerateDataKey.go +++ b/service/kms/api_op_GenerateDataKey.go @@ -13,15 +13,15 @@ import ( // Generates a unique symmetric data key for client-side encryption. This operation // returns a plaintext copy of the data key and a copy that is encrypted under a -// customer master key (CMK) that you specify. You can use the plaintext key to -// encrypt your data outside of AWS KMS and store the encrypted data key with the -// encrypted data. GenerateDataKey returns a unique data key for each request. The -// bytes in the plaintext key are not related to the caller or the CMK. To generate -// a data key, specify the symmetric CMK that will be used to encrypt the data key. -// You cannot use an asymmetric CMK to generate data keys. To get the type of your -// CMK, use the DescribeKey operation. You must also specify the length of the data -// key. Use either the KeySpec or NumberOfBytes parameters (but not both). For -// 128-bit and 256-bit data keys, use the KeySpec parameter. To get only an +// KMS key that you specify. You can use the plaintext key to encrypt your data +// outside of KMS and store the encrypted data key with the encrypted data. +// GenerateDataKey returns a unique data key for each request. The bytes in the +// plaintext key are not related to the caller or the KMS key. To generate a data +// key, specify the symmetric KMS key that will be used to encrypt the data key. +// You cannot use an asymmetric KMS key to generate data keys. To get the type of +// your KMS key, use the DescribeKey operation. You must also specify the length of +// the data key. Use either the KeySpec or NumberOfBytes parameters (but not both). +// For 128-bit and 256-bit data keys, use the KeySpec parameter. To get only an // encrypted copy of the data key, use GenerateDataKeyWithoutPlaintext. To generate // an asymmetric data key pair, use the GenerateDataKeyPair or // GenerateDataKeyPairWithoutPlaintext operation. To get a cryptographically secure @@ -32,45 +32,50 @@ import ( // the request to decrypt fails with an InvalidCiphertextException. For more // information, see Encryption Context // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) -// in the AWS Key Management Service Developer Guide. The CMK that you use for this +// in the Key Management Service Developer Guide. Applications in Amazon Web +// Services Nitro Enclaves can call this operation by using the Amazon Web Services +// Nitro Enclaves Development Kit +// (https://github.com/aws/aws-nitro-enclaves-sdk-c). For information about the +// supporting parameters, see How Amazon Web Services Nitro Enclaves use KMS +// (https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html) +// in the Key Management Service Developer Guide. The KMS key that you use for this // operation must be in a compatible key state. For details, see Key state: Effect -// on your CMK +// on your KMS key // (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the -// AWS Key Management Service Developer Guide. How to use your data key We -// recommend that you use the following pattern to encrypt data locally in your -// application. You can write your own code or use a client-side encryption -// library, such as the AWS Encryption SDK +// Key Management Service Developer Guide. How to use your data key We recommend +// that you use the following pattern to encrypt data locally in your application. +// You can write your own code or use a client-side encryption library, such as the +// Amazon Web Services Encryption SDK // (https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/), the Amazon // DynamoDB Encryption Client // (https://docs.aws.amazon.com/dynamodb-encryption-client/latest/devguide/), or // Amazon S3 client-side encryption // (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html) -// to do these tasks for you. To encrypt data outside of AWS KMS: +// to do these tasks for you. To encrypt data outside of KMS: // // * Use the // GenerateDataKey operation to get a data key. // // * Use the plaintext data key (in -// the Plaintext field of the response) to encrypt your data outside of AWS KMS. -// Then erase the plaintext data key from memory. +// the Plaintext field of the response) to encrypt your data outside of KMS. Then +// erase the plaintext data key from memory. // -// * Store the encrypted data key -// (in the CiphertextBlob field of the response) with the encrypted data. +// * Store the encrypted data key (in +// the CiphertextBlob field of the response) with the encrypted data. // -// To -// decrypt data outside of AWS KMS: +// To decrypt +// data outside of KMS: // -// * Use the Decrypt operation to decrypt the -// encrypted data key. The operation returns a plaintext copy of the data key. +// * Use the Decrypt operation to decrypt the encrypted data +// key. The operation returns a plaintext copy of the data key. // -// * -// Use the plaintext data key to decrypt data outside of AWS KMS, then erase the -// plaintext data key from memory. +// * Use the +// plaintext data key to decrypt data outside of KMS, then erase the plaintext data +// key from memory. // -// Cross-account use: Yes. To perform this -// operation with a CMK in a different AWS account, specify the key ARN or alias -// ARN in the value of the KeyId parameter. Required permissions: -// kms:GenerateDataKey +// Cross-account use: Yes. To perform this operation with a KMS +// key in a different Amazon Web Services account, specify the key ARN or alias ARN +// in the value of the KeyId parameter. Required permissions: kms:GenerateDataKey // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (key policy) Related operations: // @@ -101,10 +106,10 @@ func (c *Client) GenerateDataKey(ctx context.Context, params *GenerateDataKeyInp type GenerateDataKeyInput struct { - // Identifies the symmetric CMK that encrypts the data key. To specify a CMK, use - // its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix - // it with "alias/". To specify a CMK in a different AWS account, you must use the - // key ARN or alias ARN. For example: + // Identifies the symmetric KMS key that encrypts the data key. To specify a KMS + // key, use its key ID, key ARN, alias name, or alias ARN. When using an alias + // name, prefix it with "alias/". To specify a KMS key in a different Amazon Web + // Services account, you must use the key ARN or alias ARN. For example: // // * Key ID: // 1234abcd-12ab-34cd-56ef-1234567890ab @@ -119,8 +124,8 @@ type GenerateDataKeyInput struct { // arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias // // To get the key ID and key - // ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, - // use ListAliases. + // ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias + // ARN, use ListAliases. // // This member is required. KeyId *string @@ -130,17 +135,19 @@ type GenerateDataKeyInput struct { // represents additional authenticated data. When you use an encryption context to // encrypt data, you must specify the same (an exact case-sensitive match) // encryption context to decrypt the data. An encryption context is optional when - // encrypting with a symmetric CMK, but it is highly recommended. For more + // encrypting with a symmetric KMS key, but it is highly recommended. For more // information, see Encryption Context // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) - // in the AWS Key Management Service Developer Guide. + // in the Key Management Service Developer Guide. EncryptionContext map[string]string // A list of grant tokens. Use a grant token when your permission to call this // operation comes from a new grant that has not yet achieved eventual consistency. // For more information, see Grant token - // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token) - // in the AWS Key Management Service Developer Guide. + // (https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) + // and Using a grant token + // (https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token) + // in the Key Management Service Developer Guide. GrantTokens []string // Specifies the length of the data key. Use AES_128 to generate a 128-bit @@ -161,19 +168,19 @@ type GenerateDataKeyInput struct { type GenerateDataKeyOutput struct { - // The encrypted copy of the data key. When you use the HTTP API or the AWS CLI, - // the value is Base64-encoded. Otherwise, it is not Base64-encoded. + // The encrypted copy of the data key. When you use the HTTP API or the Amazon Web + // Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded. CiphertextBlob []byte // The Amazon Resource Name (key ARN // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN)) - // of the CMK that encrypted the data key. + // of the KMS key that encrypted the data key. KeyId *string - // The plaintext data key. When you use the HTTP API or the AWS CLI, the value is - // Base64-encoded. Otherwise, it is not Base64-encoded. Use this data key to - // encrypt your data outside of KMS. Then, remove it from memory as soon as - // possible. + // The plaintext data key. When you use the HTTP API or the Amazon Web Services + // CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded. Use this + // data key to encrypt your data outside of KMS. Then, remove it from memory as + // soon as possible. Plaintext []byte // Metadata pertaining to the operation's result. diff --git a/service/kms/api_op_GenerateDataKeyPair.go b/service/kms/api_op_GenerateDataKeyPair.go index 7793df6fb56..9d60d894de3 100644 --- a/service/kms/api_op_GenerateDataKeyPair.go +++ b/service/kms/api_op_GenerateDataKeyPair.go @@ -13,38 +13,45 @@ import ( // Generates a unique asymmetric data key pair. The GenerateDataKeyPair operation // returns a plaintext public key, a plaintext private key, and a copy of the -// private key that is encrypted under the symmetric CMK you specify. You can use -// the data key pair to perform asymmetric cryptography outside of AWS KMS. -// GenerateDataKeyPair returns a unique data key pair for each request. The bytes -// in the keys are not related to the caller or the CMK that is used to encrypt the -// private key. You can use the public key that GenerateDataKeyPair returns to -// encrypt data or verify a signature outside of AWS KMS. Then, store the encrypted -// private key with the data. When you are ready to decrypt data or sign a message, -// you can use the Decrypt operation to decrypt the encrypted private key. To -// generate a data key pair, you must specify a symmetric customer master key (CMK) -// to encrypt the private key in a data key pair. You cannot use an asymmetric CMK -// or a CMK in a custom key store. To get the type and origin of your CMK, use the -// DescribeKey operation. If you are using the data key pair to encrypt data, or -// for any operation where you don't immediately need a private key, consider using -// the GenerateDataKeyPairWithoutPlaintext operation. +// private key that is encrypted under the symmetric KMS key you specify. You can +// use the data key pair to perform asymmetric cryptography and implement digital +// signatures outside of KMS. You can use the public key that GenerateDataKeyPair +// returns to encrypt data or verify a signature outside of KMS. Then, store the +// encrypted private key with the data. When you are ready to decrypt data or sign +// a message, you can use the Decrypt operation to decrypt the encrypted private +// key. To generate a data key pair, you must specify a symmetric KMS key to +// encrypt the private key in a data key pair. You cannot use an asymmetric KMS key +// or a KMS key in a custom key store. To get the type and origin of your KMS key, +// use the DescribeKey operation. Use the KeyPairSpec parameter to choose an RSA or +// Elliptic Curve (ECC) data key pair. KMS recommends that your use ECC key pairs +// for signing, and use RSA key pairs for either encryption or signing, but not +// both. However, KMS cannot enforce any restrictions on the use of data key pairs +// outside of KMS. If you are using the data key pair to encrypt data, or for any +// operation where you don't immediately need a private key, consider using the +// GenerateDataKeyPairWithoutPlaintext operation. // GenerateDataKeyPairWithoutPlaintext returns a plaintext public key and an // encrypted private key, but omits the plaintext private key that you need only to // decrypt ciphertext or sign a message. Later, when you need to decrypt the data // or sign a message, use the Decrypt operation to decrypt the encrypted private -// key in the data key pair. You can use the optional encryption context to add -// additional security to the encryption operation. If you specify an -// EncryptionContext, you must specify the same encryption context (a -// case-sensitive exact match) when decrypting the encrypted data key. Otherwise, -// the request to decrypt fails with an InvalidCiphertextException. For more -// information, see Encryption Context +// key in the data key pair. GenerateDataKeyPair returns a unique data key pair for +// each request. The bytes in the keys are not related to the caller or the KMS key +// that is used to encrypt the private key. The public key is a DER-encoded X.509 +// SubjectPublicKeyInfo, as specified in RFC 5280 +// (https://tools.ietf.org/html/rfc5280). The private key is a DER-encoded PKCS8 +// PrivateKeyInfo, as specified in RFC 5958 (https://tools.ietf.org/html/rfc5958). +// You can use the optional encryption context to add additional security to the +// encryption operation. If you specify an EncryptionContext, you must specify the +// same encryption context (a case-sensitive exact match) when decrypting the +// encrypted data key. Otherwise, the request to decrypt fails with an +// InvalidCiphertextException. For more information, see Encryption Context // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) -// in the AWS Key Management Service Developer Guide. The CMK that you use for this +// in the Key Management Service Developer Guide. The KMS key that you use for this // operation must be in a compatible key state. For details, see Key state: Effect -// on your CMK +// on your KMS key // (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the -// AWS Key Management Service Developer Guide. Cross-account use: Yes. To perform -// this operation with a CMK in a different AWS account, specify the key ARN or -// alias ARN in the value of the KeyId parameter. Required permissions: +// Key Management Service Developer Guide. Cross-account use: Yes. To perform this +// operation with a KMS key in a different Amazon Web Services account, specify the +// key ARN or alias ARN in the value of the KeyId parameter. Required permissions: // kms:GenerateDataKeyPair // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (key policy) Related operations: @@ -76,15 +83,15 @@ func (c *Client) GenerateDataKeyPair(ctx context.Context, params *GenerateDataKe type GenerateDataKeyPairInput struct { - // Specifies the symmetric CMK that encrypts the private key in the data key pair. - // You cannot specify an asymmetric CMK or a CMK in a custom key store. To get the - // type and origin of your CMK, use the DescribeKey operation. To specify a CMK, - // use its key ID, key ARN, alias name, or alias ARN. When using an alias name, - // prefix it with "alias/". To specify a CMK in a different AWS account, you must - // use the key ARN or alias ARN. For example: + // Specifies the symmetric KMS key that encrypts the private key in the data key + // pair. You cannot specify an asymmetric KMS key or a KMS key in a custom key + // store. To get the type and origin of your KMS key, use the DescribeKey + // operation. To specify a KMS key, use its key ID, key ARN, alias name, or alias + // ARN. When using an alias name, prefix it with "alias/". To specify a KMS key in + // a different Amazon Web Services account, you must use the key ARN or alias ARN. + // For example: // - // * Key ID: - // 1234abcd-12ab-34cd-56ef-1234567890ab + // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab // // * Key ARN: // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab @@ -96,16 +103,17 @@ type GenerateDataKeyPairInput struct { // arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias // // To get the key ID and key - // ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, - // use ListAliases. + // ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias + // ARN, use ListAliases. // // This member is required. KeyId *string - // Determines the type of data key pair that is generated. The AWS KMS rule that - // restricts the use of asymmetric RSA CMKs to encrypt and decrypt or to sign and - // verify (but not both), and the rule that permits you to use ECC CMKs only to - // sign and verify, are not effective outside of AWS KMS. + // Determines the type of data key pair that is generated. The KMS rule that + // restricts the use of asymmetric RSA KMS keys to encrypt and decrypt or to sign + // and verify (but not both), and the rule that permits you to use ECC KMS keys + // only to sign and verify, are not effective on data key pairs, which are used + // outside of KMS. // // This member is required. KeyPairSpec types.DataKeyPairSpec @@ -115,17 +123,19 @@ type GenerateDataKeyPairInput struct { // key-value pairs that represents additional authenticated data. When you use an // encryption context to encrypt data, you must specify the same (an exact // case-sensitive match) encryption context to decrypt the data. An encryption - // context is optional when encrypting with a symmetric CMK, but it is highly + // context is optional when encrypting with a symmetric KMS key, but it is highly // recommended. For more information, see Encryption Context // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) - // in the AWS Key Management Service Developer Guide. + // in the Key Management Service Developer Guide. EncryptionContext map[string]string // A list of grant tokens. Use a grant token when your permission to call this // operation comes from a new grant that has not yet achieved eventual consistency. // For more information, see Grant token - // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token) - // in the AWS Key Management Service Developer Guide. + // (https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) + // and Using a grant token + // (https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token) + // in the Key Management Service Developer Guide. GrantTokens []string noSmithyDocumentSerde @@ -135,18 +145,20 @@ type GenerateDataKeyPairOutput struct { // The Amazon Resource Name (key ARN // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN)) - // of the CMK that encrypted the private key. + // of the KMS key that encrypted the private key. KeyId *string // The type of data key pair that was generated. KeyPairSpec types.DataKeyPairSpec - // The encrypted copy of the private key. When you use the HTTP API or the AWS CLI, - // the value is Base64-encoded. Otherwise, it is not Base64-encoded. + // The encrypted copy of the private key. When you use the HTTP API or the Amazon + // Web Services CLI, the value is Base64-encoded. Otherwise, it is not + // Base64-encoded. PrivateKeyCiphertextBlob []byte - // The plaintext copy of the private key. When you use the HTTP API or the AWS CLI, - // the value is Base64-encoded. Otherwise, it is not Base64-encoded. + // The plaintext copy of the private key. When you use the HTTP API or the Amazon + // Web Services CLI, the value is Base64-encoded. Otherwise, it is not + // Base64-encoded. PrivateKeyPlaintext []byte // The public key (in plaintext). diff --git a/service/kms/api_op_GenerateDataKeyPairWithoutPlaintext.go b/service/kms/api_op_GenerateDataKeyPairWithoutPlaintext.go index 44ad2f13f41..74332cb8733 100644 --- a/service/kms/api_op_GenerateDataKeyPairWithoutPlaintext.go +++ b/service/kms/api_op_GenerateDataKeyPairWithoutPlaintext.go @@ -13,32 +13,37 @@ import ( // Generates a unique asymmetric data key pair. The // GenerateDataKeyPairWithoutPlaintext operation returns a plaintext public key and -// a copy of the private key that is encrypted under the symmetric CMK you specify. -// Unlike GenerateDataKeyPair, this operation does not return a plaintext private -// key. To generate a data key pair, you must specify a symmetric customer master -// key (CMK) to encrypt the private key in the data key pair. You cannot use an -// asymmetric CMK or a CMK in a custom key store. To get the type and origin of -// your CMK, use the KeySpec field in the DescribeKey response. You can use the -// public key that GenerateDataKeyPairWithoutPlaintext returns to encrypt data or -// verify a signature outside of AWS KMS. Then, store the encrypted private key -// with the data. When you are ready to decrypt data or sign a message, you can use -// the Decrypt operation to decrypt the encrypted private key. -// GenerateDataKeyPairWithoutPlaintext returns a unique data key pair for each -// request. The bytes in the key are not related to the caller or CMK that is used -// to encrypt the private key. You can use the optional encryption context to add -// additional security to the encryption operation. If you specify an -// EncryptionContext, you must specify the same encryption context (a +// a copy of the private key that is encrypted under the symmetric KMS key you +// specify. Unlike GenerateDataKeyPair, this operation does not return a plaintext +// private key. You can use the public key that GenerateDataKeyPairWithoutPlaintext +// returns to encrypt data or verify a signature outside of KMS. Then, store the +// encrypted private key with the data. When you are ready to decrypt data or sign +// a message, you can use the Decrypt operation to decrypt the encrypted private +// key. To generate a data key pair, you must specify a symmetric KMS key to +// encrypt the private key in a data key pair. You cannot use an asymmetric KMS key +// or a KMS key in a custom key store. To get the type and origin of your KMS key, +// use the DescribeKey operation. Use the KeyPairSpec parameter to choose an RSA or +// Elliptic Curve (ECC) data key pair. KMS recommends that your use ECC key pairs +// for signing, and use RSA key pairs for either encryption or signing, but not +// both. However, KMS cannot enforce any restrictions on the use of data key pairs +// outside of KMS. GenerateDataKeyPairWithoutPlaintext returns a unique data key +// pair for each request. The bytes in the key are not related to the caller or KMS +// key that is used to encrypt the private key. The public key is a DER-encoded +// X.509 SubjectPublicKeyInfo, as specified in RFC 5280 +// (https://tools.ietf.org/html/rfc5280). You can use the optional encryption +// context to add additional security to the encryption operation. If you specify +// an EncryptionContext, you must specify the same encryption context (a // case-sensitive exact match) when decrypting the encrypted data key. Otherwise, // the request to decrypt fails with an InvalidCiphertextException. For more // information, see Encryption Context // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) -// in the AWS Key Management Service Developer Guide. The CMK that you use for this +// in the Key Management Service Developer Guide. The KMS key that you use for this // operation must be in a compatible key state. For details, see Key state: Effect -// on your CMK +// on your KMS key // (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the -// AWS Key Management Service Developer Guide. Cross-account use: Yes. To perform -// this operation with a CMK in a different AWS account, specify the key ARN or -// alias ARN in the value of the KeyId parameter. Required permissions: +// Key Management Service Developer Guide. Cross-account use: Yes. To perform this +// operation with a KMS key in a different Amazon Web Services account, specify the +// key ARN or alias ARN in the value of the KeyId parameter. Required permissions: // kms:GenerateDataKeyPairWithoutPlaintext // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (key policy) Related operations: @@ -70,15 +75,16 @@ func (c *Client) GenerateDataKeyPairWithoutPlaintext(ctx context.Context, params type GenerateDataKeyPairWithoutPlaintextInput struct { - // Specifies the CMK that encrypts the private key in the data key pair. You must - // specify a symmetric CMK. You cannot use an asymmetric CMK or a CMK in a custom - // key store. To get the type and origin of your CMK, use the DescribeKey - // operation. To specify a CMK, use its key ID, key ARN, alias name, or alias ARN. - // When using an alias name, prefix it with "alias/". To specify a CMK in a - // different AWS account, you must use the key ARN or alias ARN. For example: + // Specifies the KMS key that encrypts the private key in the data key pair. You + // must specify a symmetric KMS key. You cannot use an asymmetric KMS key or a KMS + // key in a custom key store. To get the type and origin of your KMS key, use the + // DescribeKey operation. To specify a KMS key, use its key ID, key ARN, alias + // name, or alias ARN. When using an alias name, prefix it with "alias/". To + // specify a KMS key in a different Amazon Web Services account, you must use the + // key ARN or alias ARN. For example: // - // * - // Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab + // * Key ID: + // 1234abcd-12ab-34cd-56ef-1234567890ab // // * Key ARN: // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab @@ -90,16 +96,17 @@ type GenerateDataKeyPairWithoutPlaintextInput struct { // arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias // // To get the key ID and key - // ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, - // use ListAliases. + // ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias + // ARN, use ListAliases. // // This member is required. KeyId *string - // Determines the type of data key pair that is generated. The AWS KMS rule that - // restricts the use of asymmetric RSA CMKs to encrypt and decrypt or to sign and - // verify (but not both), and the rule that permits you to use ECC CMKs only to - // sign and verify, are not effective outside of AWS KMS. + // Determines the type of data key pair that is generated. The KMS rule that + // restricts the use of asymmetric RSA KMS keys to encrypt and decrypt or to sign + // and verify (but not both), and the rule that permits you to use ECC KMS keys + // only to sign and verify, are not effective on data key pairs, which are used + // outside of KMS. // // This member is required. KeyPairSpec types.DataKeyPairSpec @@ -109,17 +116,19 @@ type GenerateDataKeyPairWithoutPlaintextInput struct { // key-value pairs that represents additional authenticated data. When you use an // encryption context to encrypt data, you must specify the same (an exact // case-sensitive match) encryption context to decrypt the data. An encryption - // context is optional when encrypting with a symmetric CMK, but it is highly + // context is optional when encrypting with a symmetric KMS key, but it is highly // recommended. For more information, see Encryption Context // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) - // in the AWS Key Management Service Developer Guide. + // in the Key Management Service Developer Guide. EncryptionContext map[string]string // A list of grant tokens. Use a grant token when your permission to call this // operation comes from a new grant that has not yet achieved eventual consistency. // For more information, see Grant token - // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token) - // in the AWS Key Management Service Developer Guide. + // (https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) + // and Using a grant token + // (https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token) + // in the Key Management Service Developer Guide. GrantTokens []string noSmithyDocumentSerde @@ -129,14 +138,15 @@ type GenerateDataKeyPairWithoutPlaintextOutput struct { // The Amazon Resource Name (key ARN // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN)) - // of the CMK that encrypted the private key. + // of the KMS key that encrypted the private key. KeyId *string // The type of data key pair that was generated. KeyPairSpec types.DataKeyPairSpec - // The encrypted copy of the private key. When you use the HTTP API or the AWS CLI, - // the value is Base64-encoded. Otherwise, it is not Base64-encoded. + // The encrypted copy of the private key. When you use the HTTP API or the Amazon + // Web Services CLI, the value is Base64-encoded. Otherwise, it is not + // Base64-encoded. PrivateKeyCiphertextBlob []byte // The public key (in plaintext). diff --git a/service/kms/api_op_GenerateDataKeyWithoutPlaintext.go b/service/kms/api_op_GenerateDataKeyWithoutPlaintext.go index a2c5548b7bc..1f2ffe34dd6 100644 --- a/service/kms/api_op_GenerateDataKeyWithoutPlaintext.go +++ b/service/kms/api_op_GenerateDataKeyWithoutPlaintext.go @@ -12,40 +12,40 @@ import ( ) // Generates a unique symmetric data key. This operation returns a data key that is -// encrypted under a customer master key (CMK) that you specify. To request an -// asymmetric data key pair, use the GenerateDataKeyPair or -// GenerateDataKeyPairWithoutPlaintext operations. GenerateDataKeyWithoutPlaintext -// is identical to the GenerateDataKey operation except that returns only the -// encrypted copy of the data key. This operation is useful for systems that need -// to encrypt data at some point, but not immediately. When you need to encrypt the -// data, you call the Decrypt operation on the encrypted copy of the key. It's also -// useful in distributed systems with different levels of trust. For example, you -// might store encrypted data in containers. One component of your system creates -// new containers and stores an encrypted data key with each container. Then, a -// different component puts the data into the containers. That component first -// decrypts the data key, uses the plaintext data key to encrypt data, puts the -// encrypted data into the container, and then destroys the plaintext data key. In -// this system, the component that creates the containers never sees the plaintext -// data key. GenerateDataKeyWithoutPlaintext returns a unique data key for each -// request. The bytes in the keys are not related to the caller or CMK that is used -// to encrypt the private key. To generate a data key, you must specify the -// symmetric customer master key (CMK) that is used to encrypt the data key. You -// cannot use an asymmetric CMK to generate a data key. To get the type of your -// CMK, use the DescribeKey operation. If the operation succeeds, you will find the -// encrypted copy of the data key in the CiphertextBlob field. You can use the -// optional encryption context to add additional security to the encryption -// operation. If you specify an EncryptionContext, you must specify the same -// encryption context (a case-sensitive exact match) when decrypting the encrypted -// data key. Otherwise, the request to decrypt fails with an -// InvalidCiphertextException. For more information, see Encryption Context +// encrypted under a KMS key that you specify. To request an asymmetric data key +// pair, use the GenerateDataKeyPair or GenerateDataKeyPairWithoutPlaintext +// operations. GenerateDataKeyWithoutPlaintext is identical to the GenerateDataKey +// operation except that returns only the encrypted copy of the data key. This +// operation is useful for systems that need to encrypt data at some point, but not +// immediately. When you need to encrypt the data, you call the Decrypt operation +// on the encrypted copy of the key. It's also useful in distributed systems with +// different levels of trust. For example, you might store encrypted data in +// containers. One component of your system creates new containers and stores an +// encrypted data key with each container. Then, a different component puts the +// data into the containers. That component first decrypts the data key, uses the +// plaintext data key to encrypt data, puts the encrypted data into the container, +// and then destroys the plaintext data key. In this system, the component that +// creates the containers never sees the plaintext data key. +// GenerateDataKeyWithoutPlaintext returns a unique data key for each request. The +// bytes in the keys are not related to the caller or KMS key that is used to +// encrypt the private key. To generate a data key, you must specify the symmetric +// KMS key that is used to encrypt the data key. You cannot use an asymmetric KMS +// key to generate a data key. To get the type of your KMS key, use the DescribeKey +// operation. If the operation succeeds, you will find the encrypted copy of the +// data key in the CiphertextBlob field. You can use the optional encryption +// context to add additional security to the encryption operation. If you specify +// an EncryptionContext, you must specify the same encryption context (a +// case-sensitive exact match) when decrypting the encrypted data key. Otherwise, +// the request to decrypt fails with an InvalidCiphertextException. For more +// information, see Encryption Context // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) -// in the AWS Key Management Service Developer Guide. The CMK that you use for this +// in the Key Management Service Developer Guide. The KMS key that you use for this // operation must be in a compatible key state. For details, see Key state: Effect -// on your CMK +// on your KMS key // (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the -// AWS Key Management Service Developer Guide. Cross-account use: Yes. To perform -// this operation with a CMK in a different AWS account, specify the key ARN or -// alias ARN in the value of the KeyId parameter. Required permissions: +// Key Management Service Developer Guide. Cross-account use: Yes. To perform this +// operation with a KMS key in a different Amazon Web Services account, specify the +// key ARN or alias ARN in the value of the KeyId parameter. Required permissions: // kms:GenerateDataKeyWithoutPlaintext // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (key policy) Related operations: @@ -77,10 +77,10 @@ func (c *Client) GenerateDataKeyWithoutPlaintext(ctx context.Context, params *Ge type GenerateDataKeyWithoutPlaintextInput struct { - // The identifier of the symmetric customer master key (CMK) that encrypts the data - // key. To specify a CMK, use its key ID, key ARN, alias name, or alias ARN. When - // using an alias name, prefix it with "alias/". To specify a CMK in a different - // AWS account, you must use the key ARN or alias ARN. For example: + // The identifier of the symmetric KMS key that encrypts the data key. To specify a + // KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias + // name, prefix it with "alias/". To specify a KMS key in a different Amazon Web + // Services account, you must use the key ARN or alias ARN. For example: // // * Key ID: // 1234abcd-12ab-34cd-56ef-1234567890ab @@ -95,8 +95,8 @@ type GenerateDataKeyWithoutPlaintextInput struct { // arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias // // To get the key ID and key - // ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, - // use ListAliases. + // ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias + // ARN, use ListAliases. // // This member is required. KeyId *string @@ -106,17 +106,19 @@ type GenerateDataKeyWithoutPlaintextInput struct { // represents additional authenticated data. When you use an encryption context to // encrypt data, you must specify the same (an exact case-sensitive match) // encryption context to decrypt the data. An encryption context is optional when - // encrypting with a symmetric CMK, but it is highly recommended. For more + // encrypting with a symmetric KMS key, but it is highly recommended. For more // information, see Encryption Context // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) - // in the AWS Key Management Service Developer Guide. + // in the Key Management Service Developer Guide. EncryptionContext map[string]string // A list of grant tokens. Use a grant token when your permission to call this // operation comes from a new grant that has not yet achieved eventual consistency. // For more information, see Grant token - // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token) - // in the AWS Key Management Service Developer Guide. + // (https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) + // and Using a grant token + // (https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token) + // in the Key Management Service Developer Guide. GrantTokens []string // The length of the data key. Use AES_128 to generate a 128-bit symmetric key, or @@ -134,13 +136,13 @@ type GenerateDataKeyWithoutPlaintextInput struct { type GenerateDataKeyWithoutPlaintextOutput struct { - // The encrypted data key. When you use the HTTP API or the AWS CLI, the value is - // Base64-encoded. Otherwise, it is not Base64-encoded. + // The encrypted data key. When you use the HTTP API or the Amazon Web Services + // CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded. CiphertextBlob []byte // The Amazon Resource Name (key ARN // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN)) - // of the CMK that encrypted the data key. + // of the KMS key that encrypted the data key. KeyId *string // Metadata pertaining to the operation's result. diff --git a/service/kms/api_op_GenerateRandom.go b/service/kms/api_op_GenerateRandom.go index bd06b1cd0d8..f5baa86a193 100644 --- a/service/kms/api_op_GenerateRandom.go +++ b/service/kms/api_op_GenerateRandom.go @@ -11,13 +11,19 @@ import ( ) // Returns a random byte string that is cryptographically secure. By default, the -// random byte string is generated in AWS KMS. To generate the byte string in the -// AWS CloudHSM cluster that is associated with a custom key store +// random byte string is generated in KMS. To generate the byte string in the +// CloudHSM cluster that is associated with a custom key store // (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html), -// specify the custom key store ID. For more information about entropy and random -// number generation, see AWS Key Management Service Cryptographic Details -// (https://docs.aws.amazon.com/kms/latest/cryptographic-details/). Required -// permissions: kms:GenerateRandom +// specify the custom key store ID. Applications in Amazon Web Services Nitro +// Enclaves can call this operation by using the Amazon Web Services Nitro Enclaves +// Development Kit (https://github.com/aws/aws-nitro-enclaves-sdk-c). For +// information about the supporting parameters, see How Amazon Web Services Nitro +// Enclaves use KMS +// (https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html) +// in the Key Management Service Developer Guide. For more information about +// entropy and random number generation, see Key Management Service Cryptographic +// Details (https://docs.aws.amazon.com/kms/latest/cryptographic-details/). +// Required permissions: kms:GenerateRandom // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (IAM policy) func (c *Client) GenerateRandom(ctx context.Context, params *GenerateRandomInput, optFns ...func(*Options)) (*GenerateRandomOutput, error) { @@ -37,8 +43,8 @@ func (c *Client) GenerateRandom(ctx context.Context, params *GenerateRandomInput type GenerateRandomInput struct { - // Generates the random byte string in the AWS CloudHSM cluster that is associated - // with the specified custom key store + // Generates the random byte string in the CloudHSM cluster that is associated with + // the specified custom key store // (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html). // To find the ID of a custom key store, use the DescribeCustomKeyStores operation. CustomKeyStoreId *string @@ -51,8 +57,8 @@ type GenerateRandomInput struct { type GenerateRandomOutput struct { - // The random byte string. When you use the HTTP API or the AWS CLI, the value is - // Base64-encoded. Otherwise, it is not Base64-encoded. + // The random byte string. When you use the HTTP API or the Amazon Web Services + // CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded. Plaintext []byte // Metadata pertaining to the operation's result. diff --git a/service/kms/api_op_GetKeyPolicy.go b/service/kms/api_op_GetKeyPolicy.go index 979c4cb4e9b..ca9e135bd20 100644 --- a/service/kms/api_op_GetKeyPolicy.go +++ b/service/kms/api_op_GetKeyPolicy.go @@ -10,9 +10,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Gets a key policy attached to the specified customer master key (CMK). -// Cross-account use: No. You cannot perform this operation on a CMK in a different -// AWS account. Required permissions: kms:GetKeyPolicy +// Gets a key policy attached to the specified KMS key. Cross-account use: No. You +// cannot perform this operation on a KMS key in a different Amazon Web Services +// account. Required permissions: kms:GetKeyPolicy // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (key policy) Related operations: PutKeyPolicy func (c *Client) GetKeyPolicy(ctx context.Context, params *GetKeyPolicyInput, optFns ...func(*Options)) (*GetKeyPolicyOutput, error) { @@ -32,17 +32,17 @@ func (c *Client) GetKeyPolicy(ctx context.Context, params *GetKeyPolicyInput, op type GetKeyPolicyInput struct { - // Gets the key policy for the specified customer master key (CMK). Specify the key - // ID or key ARN of the CMK. For example: + // Gets the key policy for the specified KMS key. Specify the key ID or key ARN of + // the KMS key. For example: // - // * Key ID: - // 1234abcd-12ab-34cd-56ef-1234567890ab + // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab // - // * Key ARN: + // * Key + // ARN: // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab // // To - // get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. + // get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. // // This member is required. KeyId *string diff --git a/service/kms/api_op_GetKeyRotationStatus.go b/service/kms/api_op_GetKeyRotationStatus.go index 1edfeb2bdf5..0e13a9bbaf5 100644 --- a/service/kms/api_op_GetKeyRotationStatus.go +++ b/service/kms/api_op_GetKeyRotationStatus.go @@ -13,33 +13,33 @@ import ( // Gets a Boolean value that indicates whether automatic rotation of the key // material // (https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html) is -// enabled for the specified customer master key (CMK). You cannot enable automatic -// rotation of asymmetric CMKs +// enabled for the specified KMS key. You cannot enable automatic rotation of +// asymmetric KMS keys // (https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html#asymmetric-cmks), -// CMKs with imported key material +// KMS keys with imported key material // (https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html), or -// CMKs in a custom key store +// KMS keys in a custom key store // (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html). // To enable or disable automatic rotation of a set of related multi-Region keys // (https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html#mrk-replica-key), -// set the property on the primary key. The key rotation status for these CMKs is -// always false. The CMK that you use for this operation must be in a compatible -// key state. For details, see Key state: Effect on your CMK +// set the property on the primary key. The key rotation status for these KMS keys +// is always false. The KMS key that you use for this operation must be in a +// compatible key state. For details, see Key state: Effect on your KMS key // (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the -// AWS Key Management Service Developer Guide. +// Key Management Service Developer Guide. // // * Disabled: The key rotation status -// does not change when you disable a CMK. However, while the CMK is disabled, AWS -// KMS does not rotate the backing key. +// does not change when you disable a KMS key. However, while the KMS key is +// disabled, KMS does not rotate the key material. // -// * Pending deletion: While a CMK is pending -// deletion, its key rotation status is false and AWS KMS does not rotate the -// backing key. If you cancel the deletion, the original key rotation status is -// restored. +// * Pending deletion: While a KMS +// key is pending deletion, its key rotation status is false and KMS does not +// rotate the key material. If you cancel the deletion, the original key rotation +// status is restored. // -// Cross-account use: Yes. To perform this operation on a CMK in a -// different AWS account, specify the key ARN in the value of the KeyId parameter. -// Required permissions: kms:GetKeyRotationStatus +// Cross-account use: Yes. To perform this operation on a KMS +// key in a different Amazon Web Services account, specify the key ARN in the value +// of the KeyId parameter. Required permissions: kms:GetKeyRotationStatus // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (key policy) Related operations: // @@ -63,9 +63,9 @@ func (c *Client) GetKeyRotationStatus(ctx context.Context, params *GetKeyRotatio type GetKeyRotationStatusInput struct { - // Gets the rotation status for the specified customer master key (CMK). Specify - // the key ID or key ARN of the CMK. To specify a CMK in a different AWS account, - // you must use the key ARN. For example: + // Gets the rotation status for the specified KMS key. Specify the key ID or key + // ARN of the KMS key. To specify a KMS key in a different Amazon Web Services + // account, you must use the key ARN. For example: // // * Key ID: // 1234abcd-12ab-34cd-56ef-1234567890ab @@ -74,7 +74,7 @@ type GetKeyRotationStatusInput struct { // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab // // To - // get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. + // get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. // // This member is required. KeyId *string diff --git a/service/kms/api_op_GetParametersForImport.go b/service/kms/api_op_GetParametersForImport.go index 42907b6108d..053e7ca42e5 100644 --- a/service/kms/api_op_GetParametersForImport.go +++ b/service/kms/api_op_GetParametersForImport.go @@ -13,27 +13,27 @@ import ( ) // Returns the items you need to import key material into a symmetric, customer -// managed customer master key (CMK). For more information about importing key -// material into AWS KMS, see Importing Key Material +// managed KMS key. For more information about importing key material into KMS, see +// Importing Key Material // (https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) in -// the AWS Key Management Service Developer Guide. This operation returns a public -// key and an import token. Use the public key to encrypt the symmetric key -// material. Store the import token to send with a subsequent ImportKeyMaterial -// request. You must specify the key ID of the symmetric CMK into which you will -// import key material. This CMK's Origin must be EXTERNAL. You must also specify -// the wrapping algorithm and type of wrapping key (public key) that you will use -// to encrypt the key material. You cannot perform this operation on an asymmetric -// CMK or on any CMK in a different AWS account. To import key material, you must -// use the public key and import token from the same response. These items are -// valid for 24 hours. The expiration date and time appear in the +// the Key Management Service Developer Guide. This operation returns a public key +// and an import token. Use the public key to encrypt the symmetric key material. +// Store the import token to send with a subsequent ImportKeyMaterial request. You +// must specify the key ID of the symmetric KMS key into which you will import key +// material. This KMS key's Origin must be EXTERNAL. You must also specify the +// wrapping algorithm and type of wrapping key (public key) that you will use to +// encrypt the key material. You cannot perform this operation on an asymmetric KMS +// key or on any KMS key in a different Amazon Web Services account. To import key +// material, you must use the public key and import token from the same response. +// These items are valid for 24 hours. The expiration date and time appear in the // GetParametersForImport response. You cannot use an expired token in an // ImportKeyMaterial request. If your key and token expire, send another -// GetParametersForImport request. The CMK that you use for this operation must be -// in a compatible key state. For details, see Key state: Effect on your CMK +// GetParametersForImport request. The KMS key that you use for this operation must +// be in a compatible key state. For details, see Key state: Effect on your KMS key // (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the -// AWS Key Management Service Developer Guide. Cross-account use: No. You cannot -// perform this operation on a CMK in a different AWS account. Required -// permissions: kms:GetParametersForImport +// Key Management Service Developer Guide. Cross-account use: No. You cannot +// perform this operation on a KMS key in a different Amazon Web Services account. +// Required permissions: kms:GetParametersForImport // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (key policy) Related operations: // @@ -58,17 +58,18 @@ func (c *Client) GetParametersForImport(ctx context.Context, params *GetParamete type GetParametersForImportInput struct { - // The identifier of the symmetric CMK into which you will import key material. The - // Origin of the CMK must be EXTERNAL. Specify the key ID or key ARN of the CMK. - // For example: + // The identifier of the symmetric KMS key into which you will import key material. + // The Origin of the KMS key must be EXTERNAL. Specify the key ID or key ARN of the + // KMS key. For example: // // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab // - // * Key ARN: + // * Key + // ARN: // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab // // To - // get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. + // get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. // // This member is required. KeyId *string @@ -76,7 +77,7 @@ type GetParametersForImportInput struct { // The algorithm you will use to encrypt the key material before importing it with // ImportKeyMaterial. For more information, see Encrypt the Key Material // (https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-encrypt-key-material.html) - // in the AWS Key Management Service Developer Guide. + // in the Key Management Service Developer Guide. // // This member is required. WrappingAlgorithm types.AlgorithmSpec @@ -97,8 +98,8 @@ type GetParametersForImportOutput struct { // The Amazon Resource Name (key ARN // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN)) - // of the CMK to use in a subsequent ImportKeyMaterial request. This is the same - // CMK specified in the GetParametersForImport request. + // of the KMS key to use in a subsequent ImportKeyMaterial request. This is the + // same KMS key specified in the GetParametersForImport request. KeyId *string // The time at which the import token and public key are no longer valid. After diff --git a/service/kms/api_op_GetPublicKey.go b/service/kms/api_op_GetPublicKey.go index e60bbc8df8c..f7a227550ec 100644 --- a/service/kms/api_op_GetPublicKey.go +++ b/service/kms/api_op_GetPublicKey.go @@ -11,28 +11,28 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns the public key of an asymmetric CMK. Unlike the private key of a -// asymmetric CMK, which never leaves AWS KMS unencrypted, callers with -// kms:GetPublicKey permission can download the public key of an asymmetric CMK. -// You can share the public key to allow others to encrypt messages and verify -// signatures outside of AWS KMS. For information about symmetric and asymmetric -// CMKs, see Using Symmetric and Asymmetric CMKs +// Returns the public key of an asymmetric KMS key. Unlike the private key of a +// asymmetric KMS key, which never leaves KMS unencrypted, callers with +// kms:GetPublicKey permission can download the public key of an asymmetric KMS +// key. You can share the public key to allow others to encrypt messages and verify +// signatures outside of KMS. For information about symmetric and asymmetric KMS +// keys, see Using Symmetric and Asymmetric KMS keys // (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) -// in the AWS Key Management Service Developer Guide. You do not need to download -// the public key. Instead, you can use the public key within AWS KMS by calling -// the Encrypt, ReEncrypt, or Verify operations with the identifier of an -// asymmetric CMK. When you use the public key within AWS KMS, you benefit from the -// authentication, authorization, and logging that are part of every AWS KMS -// operation. You also reduce of risk of encrypting data that cannot be decrypted. -// These features are not effective outside of AWS KMS. For details, see Special +// in the Key Management Service Developer Guide. You do not need to download the +// public key. Instead, you can use the public key within KMS by calling the +// Encrypt, ReEncrypt, or Verify operations with the identifier of an asymmetric +// KMS key. When you use the public key within KMS, you benefit from the +// authentication, authorization, and logging that are part of every KMS operation. +// You also reduce of risk of encrypting data that cannot be decrypted. These +// features are not effective outside of KMS. For details, see Special // Considerations for Downloading Public Keys // (https://docs.aws.amazon.com/kms/latest/developerguide/download-public-key.html#download-public-key-considerations). -// To help you use the public key safely outside of AWS KMS, GetPublicKey returns +// To help you use the public key safely outside of KMS, GetPublicKey returns // important information about the public key in the response, including: // // * -// CustomerMasterKeySpec -// (https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-CustomerMasterKeySpec): +// KeySpec +// (https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-KeySpec): // The type of key material in the public key, such as RSA_4096 or // ECC_NIST_P521. // @@ -47,18 +47,18 @@ import ( // A list of the encryption algorithms or the signing algorithms for the // key. // -// Although AWS KMS cannot enforce these restrictions on external operations, -// it is crucial that you use this information to prevent the public key from being +// Although KMS cannot enforce these restrictions on external operations, it +// is crucial that you use this information to prevent the public key from being // used improperly. For example, you can prevent a public signing key from being // used encrypt data, or prevent a public key from being used with an encryption -// algorithm that is not supported by AWS KMS. You can also avoid errors, such as -// using the wrong signing algorithm in a verification operation. The CMK that you +// algorithm that is not supported by KMS. You can also avoid errors, such as using +// the wrong signing algorithm in a verification operation. The KMS key that you // use for this operation must be in a compatible key state. For details, see Key -// state: Effect on your CMK +// state: Effect on your KMS key // (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the -// AWS Key Management Service Developer Guide. Cross-account use: Yes. To perform -// this operation with a CMK in a different AWS account, specify the key ARN or -// alias ARN in the value of the KeyId parameter. Required permissions: +// Key Management Service Developer Guide. Cross-account use: Yes. To perform this +// operation with a KMS key in a different Amazon Web Services account, specify the +// key ARN or alias ARN in the value of the KeyId parameter. Required permissions: // kms:GetPublicKey // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (key policy) Related operations: CreateKey @@ -79,10 +79,10 @@ func (c *Client) GetPublicKey(ctx context.Context, params *GetPublicKeyInput, op type GetPublicKeyInput struct { - // Identifies the asymmetric CMK that includes the public key. To specify a CMK, - // use its key ID, key ARN, alias name, or alias ARN. When using an alias name, - // prefix it with "alias/". To specify a CMK in a different AWS account, you must - // use the key ARN or alias ARN. For example: + // Identifies the asymmetric KMS key that includes the public key. To specify a KMS + // key, use its key ID, key ARN, alias name, or alias ARN. When using an alias + // name, prefix it with "alias/". To specify a KMS key in a different Amazon Web + // Services account, you must use the key ARN or alias ARN. For example: // // * Key ID: // 1234abcd-12ab-34cd-56ef-1234567890ab @@ -97,8 +97,8 @@ type GetPublicKeyInput struct { // arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias // // To get the key ID and key - // ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, - // use ListAliases. + // ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias + // ARN, use ListAliases. // // This member is required. KeyId *string @@ -106,8 +106,10 @@ type GetPublicKeyInput struct { // A list of grant tokens. Use a grant token when your permission to call this // operation comes from a new grant that has not yet achieved eventual consistency. // For more information, see Grant token - // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token) - // in the AWS Key Management Service Developer Guide. + // (https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) + // and Using a grant token + // (https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token) + // in the Key Management Service Developer Guide. GrantTokens []string noSmithyDocumentSerde @@ -115,34 +117,42 @@ type GetPublicKeyInput struct { type GetPublicKeyOutput struct { - // The type of the of the public key that was downloaded. + // Instead, use the KeySpec field in the GetPublicKey response. The KeySpec and + // CustomerMasterKeySpec fields have the same value. We recommend that you use the + // KeySpec field in your code. However, to avoid breaking changes, KMS will support + // both fields. + // + // Deprecated: This field has been deprecated. Instead, use the KeySpec field. CustomerMasterKeySpec types.CustomerMasterKeySpec - // The encryption algorithms that AWS KMS supports for this key. This information - // is critical. If a public key encrypts data outside of AWS KMS by using an - // unsupported encryption algorithm, the ciphertext cannot be decrypted. This field - // appears in the response only when the KeyUsage of the public key is - // ENCRYPT_DECRYPT. + // The encryption algorithms that KMS supports for this key. This information is + // critical. If a public key encrypts data outside of KMS by using an unsupported + // encryption algorithm, the ciphertext cannot be decrypted. This field appears in + // the response only when the KeyUsage of the public key is ENCRYPT_DECRYPT. EncryptionAlgorithms []types.EncryptionAlgorithmSpec // The Amazon Resource Name (key ARN // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN)) - // of the asymmetric CMK from which the public key was downloaded. + // of the asymmetric KMS key from which the public key was downloaded. KeyId *string + // The type of the of the public key that was downloaded. + KeySpec types.KeySpec + // The permitted use of the public key. Valid values are ENCRYPT_DECRYPT or // SIGN_VERIFY. This information is critical. If a public key with SIGN_VERIFY key - // usage encrypts data outside of AWS KMS, the ciphertext cannot be decrypted. + // usage encrypts data outside of KMS, the ciphertext cannot be decrypted. KeyUsage types.KeyUsageType // The exported public key. The value is a DER-encoded X.509 public key, also known // as SubjectPublicKeyInfo (SPKI), as defined in RFC 5280 - // (https://tools.ietf.org/html/rfc5280). When you use the HTTP API or the AWS CLI, - // the value is Base64-encoded. Otherwise, it is not Base64-encoded. + // (https://tools.ietf.org/html/rfc5280). When you use the HTTP API or the Amazon + // Web Services CLI, the value is Base64-encoded. Otherwise, it is not + // Base64-encoded. PublicKey []byte - // The signing algorithms that AWS KMS supports for this key. This field appears in - // the response only when the KeyUsage of the public key is SIGN_VERIFY. + // The signing algorithms that KMS supports for this key. This field appears in the + // response only when the KeyUsage of the public key is SIGN_VERIFY. SigningAlgorithms []types.SigningAlgorithmSpec // Metadata pertaining to the operation's result. diff --git a/service/kms/api_op_ImportKeyMaterial.go b/service/kms/api_op_ImportKeyMaterial.go index da76a136e08..a4e9f13c483 100644 --- a/service/kms/api_op_ImportKeyMaterial.go +++ b/service/kms/api_op_ImportKeyMaterial.go @@ -12,25 +12,25 @@ import ( "time" ) -// Imports key material into an existing symmetric AWS KMS customer master key -// (CMK) that was created without key material. After you successfully import key -// material into a CMK, you can reimport the same key material +// Imports key material into an existing symmetric KMS KMS key that was created +// without key material. After you successfully import key material into a KMS key, +// you can reimport the same key material // (https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html#reimport-key-material) -// into that CMK, but you cannot import different key material. You cannot perform -// this operation on an asymmetric CMK or on any CMK in a different AWS account. -// For more information about creating CMKs with no key material and then importing -// key material, see Importing Key Material +// into that KMS key, but you cannot import different key material. You cannot +// perform this operation on an asymmetric KMS key or on any KMS key in a different +// Amazon Web Services account. For more information about creating KMS keys with +// no key material and then importing key material, see Importing Key Material // (https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) in -// the AWS Key Management Service Developer Guide. Before using this operation, -// call GetParametersForImport. Its response includes a public key and an import -// token. Use the public key to encrypt the key material. Then, submit the import -// token from the same GetParametersForImport response. When calling this -// operation, you must specify the following values: +// the Key Management Service Developer Guide. Before using this operation, call +// GetParametersForImport. Its response includes a public key and an import token. +// Use the public key to encrypt the key material. Then, submit the import token +// from the same GetParametersForImport response. When calling this operation, you +// must specify the following values: // -// * The key ID or key ARN of a -// CMK with no key material. Its Origin must be EXTERNAL. To create a CMK with no -// key material, call CreateKey and set the value of its Origin parameter to -// EXTERNAL. To get the Origin of a CMK, call DescribeKey.) +// * The key ID or key ARN of a KMS key with no +// key material. Its Origin must be EXTERNAL. To create a KMS key with no key +// material, call CreateKey and set the value of its Origin parameter to EXTERNAL. +// To get the Origin of a KMS key, call DescribeKey.) // // * The encrypted key // material. To get the public key to encrypt the key material, call @@ -41,26 +41,26 @@ import ( // GetParametersForImport response. // // * Whether the key material expires and if so, -// when. If you set an expiration date, AWS KMS deletes the key material from the -// CMK on the specified date, and the CMK becomes unusable. To use the CMK again, -// you must reimport the same key material. The only way to change an expiration -// date is by reimporting the same key material and specifying a new expiration -// date. +// when. If you set an expiration date, KMS deletes the key material from the KMS +// key on the specified date, and the KMS key becomes unusable. To use the KMS key +// again, you must reimport the same key material. The only way to change an +// expiration date is by reimporting the same key material and specifying a new +// expiration date. // -// When this operation is successful, the key state of the CMK changes from -// PendingImport to Enabled, and you can use the CMK. If this operation fails, use -// the exception to help determine the problem. If the error is related to the key -// material, the import token, or wrapping key, use GetParametersForImport to get a -// new public key and import token for the CMK and repeat the import procedure. For -// help, see How To Import Key Material +// When this operation is successful, the key state of the KMS +// key changes from PendingImport to Enabled, and you can use the KMS key. If this +// operation fails, use the exception to help determine the problem. If the error +// is related to the key material, the import token, or wrapping key, use +// GetParametersForImport to get a new public key and import token for the KMS key +// and repeat the import procedure. For help, see How To Import Key Material // (https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html#importing-keys-overview) -// in the AWS Key Management Service Developer Guide. The CMK that you use for this +// in the Key Management Service Developer Guide. The KMS key that you use for this // operation must be in a compatible key state. For details, see Key state: Effect -// on your CMK +// on your KMS key // (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the -// AWS Key Management Service Developer Guide. Cross-account use: No. You cannot -// perform this operation on a CMK in a different AWS account. Required -// permissions: kms:ImportKeyMaterial +// Key Management Service Developer Guide. Cross-account use: No. You cannot +// perform this operation on a KMS key in a different Amazon Web Services account. +// Required permissions: kms:ImportKeyMaterial // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (key policy) Related operations: // @@ -99,10 +99,10 @@ type ImportKeyMaterialInput struct { // This member is required. ImportToken []byte - // The identifier of the symmetric CMK that receives the imported key material. The - // CMK's Origin must be EXTERNAL. This must be the same CMK specified in the KeyID - // parameter of the corresponding GetParametersForImport request. Specify the key - // ID or key ARN of the CMK. For example: + // The identifier of the symmetric KMS key that receives the imported key material. + // The KMS key's Origin must be EXTERNAL. This must be the same KMS key specified + // in the KeyID parameter of the corresponding GetParametersForImport request. + // Specify the key ID or key ARN of the KMS key. For example: // // * Key ID: // 1234abcd-12ab-34cd-56ef-1234567890ab @@ -111,7 +111,7 @@ type ImportKeyMaterialInput struct { // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab // // To - // get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. + // get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. // // This member is required. KeyId *string @@ -122,7 +122,7 @@ type ImportKeyMaterialInput struct { ExpirationModel types.ExpirationModelType // The time at which the imported key material expires. When the key material - // expires, AWS KMS deletes the key material and the CMK becomes unusable. You must + // expires, KMS deletes the key material and the KMS key becomes unusable. You must // omit this parameter when the ExpirationModel parameter is set to // KEY_MATERIAL_DOES_NOT_EXPIRE. Otherwise it is required. ValidTo *time.Time diff --git a/service/kms/api_op_ListAliases.go b/service/kms/api_op_ListAliases.go index 6660436016c..9a1a1dd56eb 100644 --- a/service/kms/api_op_ListAliases.go +++ b/service/kms/api_op_ListAliases.go @@ -12,25 +12,26 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Gets a list of aliases in the caller's AWS account and region. For more -// information about aliases, see CreateAlias. By default, the ListAliases +// Gets a list of aliases in the caller's Amazon Web Services account and region. +// For more information about aliases, see CreateAlias. By default, the ListAliases // operation returns all aliases in the account and region. To get only the aliases -// associated with a particular customer master key (CMK), use the KeyId parameter. -// The ListAliases response can include aliases that you created and associated -// with your customer managed CMKs, and aliases that AWS created and associated -// with AWS managed CMKs in your account. You can recognize AWS aliases because -// their names have the format aws/, such as aws/dynamodb. The response might also -// include aliases that have no TargetKeyId field. These are predefined aliases -// that AWS has created but has not yet associated with a CMK. Aliases that AWS -// creates in your account, including predefined aliases, do not count against your -// AWS KMS aliases quota +// associated with a particular KMS key, use the KeyId parameter. The ListAliases +// response can include aliases that you created and associated with your customer +// managed keys, and aliases that Amazon Web Services created and associated with +// Amazon Web Services managed keys in your account. You can recognize Amazon Web +// Services aliases because their names have the format aws/, such as aws/dynamodb. +// The response might also include aliases that have no TargetKeyId field. These +// are predefined aliases that Amazon Web Services has created but has not yet +// associated with a KMS key. Aliases that Amazon Web Services creates in your +// account, including predefined aliases, do not count against your KMS aliases +// quota // (https://docs.aws.amazon.com/kms/latest/developerguide/limits.html#aliases-limit). -// Cross-account use: No. ListAliases does not return aliases in other AWS -// accounts. Required permissions: kms:ListAliases +// Cross-account use: No. ListAliases does not return aliases in other Amazon Web +// Services accounts. Required permissions: kms:ListAliases // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (IAM policy) For details, see Controlling access to aliases // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html#alias-access) -// in the AWS Key Management Service Developer Guide. +// in the Key Management Service Developer Guide. // // Related operations: // @@ -57,26 +58,26 @@ func (c *Client) ListAliases(ctx context.Context, params *ListAliasesInput, optF type ListAliasesInput struct { - // Lists only aliases that are associated with the specified CMK. Enter a CMK in - // your AWS account. This parameter is optional. If you omit it, ListAliases - // returns all aliases in the account and Region. Specify the key ID or key ARN of - // the CMK. For example: + // Lists only aliases that are associated with the specified KMS key. Enter a KMS + // key in your Amazon Web Services account. This parameter is optional. If you omit + // it, ListAliases returns all aliases in the account and Region. Specify the key + // ID or key ARN of the KMS key. For example: // - // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab + // * Key ID: + // 1234abcd-12ab-34cd-56ef-1234567890ab // - // * Key - // ARN: + // * Key ARN: // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab // // To - // get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. + // get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. KeyId *string // Use this parameter to specify the maximum number of items to return. When this - // value is present, AWS KMS does not return more than the specified number of - // items, but it might return fewer. This value is optional. If you include a - // value, it must be between 1 and 100, inclusive. If you do not include a value, - // it defaults to 50. + // value is present, KMS does not return more than the specified number of items, + // but it might return fewer. This value is optional. If you include a value, it + // must be between 1 and 100, inclusive. If you do not include a value, it defaults + // to 50. Limit *int32 // Use this parameter in a subsequent request after you receive a response with @@ -178,10 +179,10 @@ var _ ListAliasesAPIClient = (*Client)(nil) // ListAliasesPaginatorOptions is the paginator options for ListAliases type ListAliasesPaginatorOptions struct { // Use this parameter to specify the maximum number of items to return. When this - // value is present, AWS KMS does not return more than the specified number of - // items, but it might return fewer. This value is optional. If you include a - // value, it must be between 1 and 100, inclusive. If you do not include a value, - // it defaults to 50. + // value is present, KMS does not return more than the specified number of items, + // but it might return fewer. This value is optional. If you include a value, it + // must be between 1 and 100, inclusive. If you do not include a value, it defaults + // to 50. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/kms/api_op_ListGrants.go b/service/kms/api_op_ListGrants.go index 18e28997190..ee554a2cac3 100644 --- a/service/kms/api_op_ListGrants.go +++ b/service/kms/api_op_ListGrants.go @@ -12,17 +12,23 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Gets a list of all grants for the specified customer master key (CMK). You must -// specify the CMK in all requests. You can filter the grant list by grant ID or -// grantee principal. The GranteePrincipal field in the ListGrants response usually -// contains the user or role designated as the grantee principal in the grant. -// However, when the grantee principal in the grant is an AWS service, the +// Gets a list of all grants for the specified KMS key. You must specify the KMS +// key in all requests. You can filter the grant list by grant ID or grantee +// principal. For detailed information about grants, including grant terminology, +// see Using grants +// (https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) in the Key +// Management Service Developer Guide . For examples of working with grants in +// several programming languages, see Programming grants +// (https://docs.aws.amazon.com/kms/latest/developerguide/programming-grants.html). +// The GranteePrincipal field in the ListGrants response usually contains the user +// or role designated as the grantee principal in the grant. However, when the +// grantee principal in the grant is an Amazon Web Services service, the // GranteePrincipal field contains the service principal // (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services), // which might represent several different grantee principals. Cross-account use: -// Yes. To perform this operation on a CMK in a different AWS account, specify the -// key ARN in the value of the KeyId parameter. Required permissions: -// kms:ListGrants +// Yes. To perform this operation on a KMS key in a different Amazon Web Services +// account, specify the key ARN in the value of the KeyId parameter. Required +// permissions: kms:ListGrants // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (key policy) Related operations: // @@ -51,18 +57,18 @@ func (c *Client) ListGrants(ctx context.Context, params *ListGrantsInput, optFns type ListGrantsInput struct { - // Returns only grants for the specified customer master key (CMK). This parameter - // is required. Specify the key ID or key ARN of the CMK. To specify a CMK in a - // different AWS account, you must use the key ARN. For example: + // Returns only grants for the specified KMS key. This parameter is required. + // Specify the key ID or key ARN of the KMS key. To specify a KMS key in a + // different Amazon Web Services account, you must use the key ARN. For example: // - // * Key ID: - // 1234abcd-12ab-34cd-56ef-1234567890ab + // * + // Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab // // * Key ARN: // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab // // To - // get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. + // get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. // // This member is required. KeyId *string @@ -76,10 +82,10 @@ type ListGrantsInput struct { GranteePrincipal *string // Use this parameter to specify the maximum number of items to return. When this - // value is present, AWS KMS does not return more than the specified number of - // items, but it might return fewer. This value is optional. If you include a - // value, it must be between 1 and 100, inclusive. If you do not include a value, - // it defaults to 50. + // value is present, KMS does not return more than the specified number of items, + // but it might return fewer. This value is optional. If you include a value, it + // must be between 1 and 100, inclusive. If you do not include a value, it defaults + // to 50. Limit *int32 // Use this parameter in a subsequent request after you receive a response with @@ -184,10 +190,10 @@ var _ ListGrantsAPIClient = (*Client)(nil) // ListGrantsPaginatorOptions is the paginator options for ListGrants type ListGrantsPaginatorOptions struct { // Use this parameter to specify the maximum number of items to return. When this - // value is present, AWS KMS does not return more than the specified number of - // items, but it might return fewer. This value is optional. If you include a - // value, it must be between 1 and 100, inclusive. If you do not include a value, - // it defaults to 50. + // value is present, KMS does not return more than the specified number of items, + // but it might return fewer. This value is optional. If you include a value, it + // must be between 1 and 100, inclusive. If you do not include a value, it defaults + // to 50. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/kms/api_op_ListKeyPolicies.go b/service/kms/api_op_ListKeyPolicies.go index bf35e98cbab..00a7c0800f5 100644 --- a/service/kms/api_op_ListKeyPolicies.go +++ b/service/kms/api_op_ListKeyPolicies.go @@ -11,11 +11,11 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Gets the names of the key policies that are attached to a customer master key -// (CMK). This operation is designed to get policy names that you can use in a -// GetKeyPolicy operation. However, the only valid policy name is default. -// Cross-account use: No. You cannot perform this operation on a CMK in a different -// AWS account. Required permissions: kms:ListKeyPolicies +// Gets the names of the key policies that are attached to a KMS key. This +// operation is designed to get policy names that you can use in a GetKeyPolicy +// operation. However, the only valid policy name is default. Cross-account use: +// No. You cannot perform this operation on a KMS key in a different Amazon Web +// Services account. Required permissions: kms:ListKeyPolicies // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (key policy) Related operations: // @@ -39,8 +39,8 @@ func (c *Client) ListKeyPolicies(ctx context.Context, params *ListKeyPoliciesInp type ListKeyPoliciesInput struct { - // Gets the names of key policies for the specified customer master key (CMK). - // Specify the key ID or key ARN of the CMK. For example: + // Gets the names of key policies for the specified KMS key. Specify the key ID or + // key ARN of the KMS key. For example: // // * Key ID: // 1234abcd-12ab-34cd-56ef-1234567890ab @@ -49,16 +49,16 @@ type ListKeyPoliciesInput struct { // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab // // To - // get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. + // get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. // // This member is required. KeyId *string // Use this parameter to specify the maximum number of items to return. When this - // value is present, AWS KMS does not return more than the specified number of - // items, but it might return fewer. This value is optional. If you include a - // value, it must be between 1 and 1000, inclusive. If you do not include a value, - // it defaults to 100. Only one policy can be attached to a key. + // value is present, KMS does not return more than the specified number of items, + // but it might return fewer. This value is optional. If you include a value, it + // must be between 1 and 1000, inclusive. If you do not include a value, it + // defaults to 100. Only one policy can be attached to a key. Limit *int32 // Use this parameter in a subsequent request after you receive a response with @@ -164,10 +164,10 @@ var _ ListKeyPoliciesAPIClient = (*Client)(nil) // ListKeyPoliciesPaginatorOptions is the paginator options for ListKeyPolicies type ListKeyPoliciesPaginatorOptions struct { // Use this parameter to specify the maximum number of items to return. When this - // value is present, AWS KMS does not return more than the specified number of - // items, but it might return fewer. This value is optional. If you include a - // value, it must be between 1 and 1000, inclusive. If you do not include a value, - // it defaults to 100. Only one policy can be attached to a key. + // value is present, KMS does not return more than the specified number of items, + // but it might return fewer. This value is optional. If you include a value, it + // must be between 1 and 1000, inclusive. If you do not include a value, it + // defaults to 100. Only one policy can be attached to a key. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/kms/api_op_ListKeys.go b/service/kms/api_op_ListKeys.go index ad0dbf525dc..81f0c75f58b 100644 --- a/service/kms/api_op_ListKeys.go +++ b/service/kms/api_op_ListKeys.go @@ -12,9 +12,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Gets a list of all customer master keys (CMKs) in the caller's AWS account and -// Region. Cross-account use: No. You cannot perform this operation on a CMK in a -// different AWS account. Required permissions: kms:ListKeys +// Gets a list of all KMS keys in the caller's Amazon Web Services account and +// Region. Cross-account use: No. You cannot perform this operation on a KMS key in +// a different Amazon Web Services account. Required permissions: kms:ListKeys // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (IAM policy) Related operations: // @@ -44,10 +44,10 @@ func (c *Client) ListKeys(ctx context.Context, params *ListKeysInput, optFns ... type ListKeysInput struct { // Use this parameter to specify the maximum number of items to return. When this - // value is present, AWS KMS does not return more than the specified number of - // items, but it might return fewer. This value is optional. If you include a - // value, it must be between 1 and 1000, inclusive. If you do not include a value, - // it defaults to 100. + // value is present, KMS does not return more than the specified number of items, + // but it might return fewer. This value is optional. If you include a value, it + // must be between 1 and 1000, inclusive. If you do not include a value, it + // defaults to 100. Limit *int32 // Use this parameter in a subsequent request after you receive a response with @@ -60,7 +60,7 @@ type ListKeysInput struct { type ListKeysOutput struct { - // A list of customer master keys (CMKs). + // A list of KMS keys. Keys []types.KeyListEntry // When Truncated is true, this element is present and contains the value to use @@ -149,10 +149,10 @@ var _ ListKeysAPIClient = (*Client)(nil) // ListKeysPaginatorOptions is the paginator options for ListKeys type ListKeysPaginatorOptions struct { // Use this parameter to specify the maximum number of items to return. When this - // value is present, AWS KMS does not return more than the specified number of - // items, but it might return fewer. This value is optional. If you include a - // value, it must be between 1 and 1000, inclusive. If you do not include a value, - // it defaults to 100. + // value is present, KMS does not return more than the specified number of items, + // but it might return fewer. This value is optional. If you include a value, it + // must be between 1 and 1000, inclusive. If you do not include a value, it + // defaults to 100. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/kms/api_op_ListResourceTags.go b/service/kms/api_op_ListResourceTags.go index 3b48b531ffe..76ea07a353d 100644 --- a/service/kms/api_op_ListResourceTags.go +++ b/service/kms/api_op_ListResourceTags.go @@ -11,14 +11,15 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns all tags on the specified customer master key (CMK). For general -// information about tags, including the format and syntax, see Tagging AWS -// resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in -// the Amazon Web Services General Reference. For information about using tags in -// AWS KMS, see Tagging keys +// Returns all tags on the specified KMS key. For general information about tags, +// including the format and syntax, see Tagging Amazon Web Services resources +// (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the Amazon +// Web Services General Reference. For information about using tags in KMS, see +// Tagging keys // (https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html). -// Cross-account use: No. You cannot perform this operation on a CMK in a different -// AWS account. Required permissions: kms:ListResourceTags +// Cross-account use: No. You cannot perform this operation on a KMS key in a +// different Amazon Web Services account. Required permissions: +// kms:ListResourceTags // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (key policy) Related operations: // @@ -47,26 +48,25 @@ func (c *Client) ListResourceTags(ctx context.Context, params *ListResourceTagsI type ListResourceTagsInput struct { - // Gets tags on the specified customer master key (CMK). Specify the key ID or key - // ARN of the CMK. For example: + // Gets tags on the specified KMS key. Specify the key ID or key ARN of the KMS + // key. For example: // // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab // - // * - // Key ARN: + // * Key ARN: // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab // // To - // get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. + // get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. // // This member is required. KeyId *string // Use this parameter to specify the maximum number of items to return. When this - // value is present, AWS KMS does not return more than the specified number of - // items, but it might return fewer. This value is optional. If you include a - // value, it must be between 1 and 50, inclusive. If you do not include a value, it - // defaults to 50. + // value is present, KMS does not return more than the specified number of items, + // but it might return fewer. This value is optional. If you include a value, it + // must be between 1 and 50, inclusive. If you do not include a value, it defaults + // to 50. Limit *int32 // Use this parameter in a subsequent request after you receive a response with @@ -86,9 +86,9 @@ type ListResourceTagsOutput struct { NextMarker *string // A list of tags. Each tag consists of a tag key and a tag value. Tagging or - // untagging a CMK can allow or deny permission to the CMK. For details, see Using - // ABAC in AWS KMS - // (https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in the AWS Key + // untagging a KMS key can allow or deny permission to the KMS key. For details, + // see Using ABAC in KMS + // (https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in the Key // Management Service Developer Guide. Tags []types.Tag diff --git a/service/kms/api_op_ListRetirableGrants.go b/service/kms/api_op_ListRetirableGrants.go index 6c2da297b52..a4cabeec0be 100644 --- a/service/kms/api_op_ListRetirableGrants.go +++ b/service/kms/api_op_ListRetirableGrants.go @@ -11,24 +11,29 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns information about all grants in the AWS account and Region that have the -// specified retiring principal. For more information about grants, see Grants -// (https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) in the AWS -// Key Management Service Developer Guide . You can specify any principal in your -// AWS account. The grants that are returned include grants for CMKs in your AWS -// account and other AWS accounts. You might use this operation to determine which -// grants you may retire. To retire a grant, use the RetireGrant operation. -// Cross-account use: You must specify a principal in your AWS account. However, -// this operation can return grants in any AWS account. You do not need -// kms:ListRetirableGrants permission (or any other additional permission) in any -// AWS account other than your own. Required permissions: kms:ListRetirableGrants +// Returns information about all grants in the Amazon Web Services account and +// Region that have the specified retiring principal. You can specify any principal +// in your Amazon Web Services account. The grants that are returned include grants +// for KMS keys in your Amazon Web Services account and other Amazon Web Services +// accounts. You might use this operation to determine which grants you may retire. +// To retire a grant, use the RetireGrant operation. For detailed information about +// grants, including grant terminology, see Using grants +// (https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) in the Key +// Management Service Developer Guide . For examples of working with grants in +// several programming languages, see Programming grants +// (https://docs.aws.amazon.com/kms/latest/developerguide/programming-grants.html). +// Cross-account use: You must specify a principal in your Amazon Web Services +// account. However, this operation can return grants in any Amazon Web Services +// account. You do not need kms:ListRetirableGrants permission (or any other +// additional permission) in any Amazon Web Services account other than your own. +// Required permissions: kms:ListRetirableGrants // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) -// (IAM policy) in your AWS account. Related operations: -// -// * CreateGrant +// (IAM policy) in your Amazon Web Services account. Related operations: // // * -// ListGrants +// CreateGrant +// +// * ListGrants // // * RetireGrant // @@ -50,12 +55,14 @@ func (c *Client) ListRetirableGrants(ctx context.Context, params *ListRetirableG type ListRetirableGrantsInput struct { - // The retiring principal for which to list grants. Enter a principal in your AWS - // account. To specify the retiring principal, use the Amazon Resource Name (ARN) + // The retiring principal for which to list grants. Enter a principal in your + // Amazon Web Services account. To specify the retiring principal, use the Amazon + // Resource Name (ARN) // (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of - // an AWS principal. Valid AWS principals include AWS accounts (root), IAM users, - // federated users, and assumed role users. For examples of the ARN syntax for - // specifying a principal, see AWS Identity and Access Management (IAM) + // an Amazon Web Services principal. Valid Amazon Web Services principals include + // Amazon Web Services accounts (root), IAM users, federated users, and assumed + // role users. For examples of the ARN syntax for specifying a principal, see + // Amazon Web Services Identity and Access Management (IAM) // (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-iam) // in the Example ARNs section of the Amazon Web Services General Reference. // @@ -63,10 +70,10 @@ type ListRetirableGrantsInput struct { RetiringPrincipal *string // Use this parameter to specify the maximum number of items to return. When this - // value is present, AWS KMS does not return more than the specified number of - // items, but it might return fewer. This value is optional. If you include a - // value, it must be between 1 and 100, inclusive. If you do not include a value, - // it defaults to 50. + // value is present, KMS does not return more than the specified number of items, + // but it might return fewer. This value is optional. If you include a value, it + // must be between 1 and 100, inclusive. If you do not include a value, it defaults + // to 50. Limit *int32 // Use this parameter in a subsequent request after you receive a response with diff --git a/service/kms/api_op_PutKeyPolicy.go b/service/kms/api_op_PutKeyPolicy.go index 5f1bf0a867a..793574f86e7 100644 --- a/service/kms/api_op_PutKeyPolicy.go +++ b/service/kms/api_op_PutKeyPolicy.go @@ -10,18 +10,18 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Attaches a key policy to the specified customer master key (CMK). For more -// information about key policies, see Key Policies +// Attaches a key policy to the specified KMS key. For more information about key +// policies, see Key Policies // (https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) in the -// AWS Key Management Service Developer Guide. For help writing and formatting a -// JSON policy document, see the IAM JSON Policy Reference +// Key Management Service Developer Guide. For help writing and formatting a JSON +// policy document, see the IAM JSON Policy Reference // (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) in -// the IAM User Guide . For examples of adding a key policy in multiple programming -// languages, see Setting a key policy +// the Identity and Access Management User Guide . For examples of adding a key +// policy in multiple programming languages, see Setting a key policy // (https://docs.aws.amazon.com/kms/latest/developerguide/programming-key-policies.html#put-policy) -// in the AWS Key Management Service Developer Guide. Cross-account use: No. You -// cannot perform this operation on a CMK in a different AWS account. Required -// permissions: kms:PutKeyPolicy +// in the Key Management Service Developer Guide. Cross-account use: No. You cannot +// perform this operation on a KMS key in a different Amazon Web Services account. +// Required permissions: kms:PutKeyPolicy // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (key policy) Related operations: GetKeyPolicy func (c *Client) PutKeyPolicy(ctx context.Context, params *PutKeyPolicyInput, optFns ...func(*Options)) (*PutKeyPolicyOutput, error) { @@ -41,46 +41,47 @@ func (c *Client) PutKeyPolicy(ctx context.Context, params *PutKeyPolicyInput, op type PutKeyPolicyInput struct { - // Sets the key policy on the specified customer master key (CMK). Specify the key - // ID or key ARN of the CMK. For example: + // Sets the key policy on the specified KMS key. Specify the key ID or key ARN of + // the KMS key. For example: // - // * Key ID: - // 1234abcd-12ab-34cd-56ef-1234567890ab + // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab // - // * Key ARN: + // * Key + // ARN: // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab // // To - // get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. + // get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. // // This member is required. KeyId *string - // The key policy to attach to the CMK. The key policy must meet the following + // The key policy to attach to the KMS key. The key policy must meet the following // criteria: // // * If you don't set BypassPolicyLockoutSafetyCheck to true, the key // policy must allow the principal that is making the PutKeyPolicy request to make - // a subsequent PutKeyPolicy request on the CMK. This reduces the risk that the CMK - // becomes unmanageable. For more information, refer to the scenario in the Default - // Key Policy + // a subsequent PutKeyPolicy request on the KMS key. This reduces the risk that the + // KMS key becomes unmanageable. For more information, refer to the scenario in the + // Default Key Policy // (https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam) - // section of the AWS Key Management Service Developer Guide. + // section of the Key Management Service Developer Guide. // - // * Each statement in - // the key policy must contain one or more principals. The principals in the key - // policy must exist and be visible to AWS KMS. When you create a new AWS principal - // (for example, an IAM user or role), you might need to enforce a delay before - // including the new principal in a key policy because the new principal might not - // be immediately visible to AWS KMS. For more information, see Changes that I make - // are not always immediately visible + // * Each statement in the + // key policy must contain one or more principals. The principals in the key policy + // must exist and be visible to KMS. When you create a new Amazon Web Services + // principal (for example, an IAM user or role), you might need to enforce a delay + // before including the new principal in a key policy because the new principal + // might not be immediately visible to KMS. For more information, see Changes that + // I make are not always immediately visible // (https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency) - // in the AWS Identity and Access Management User Guide. + // in the Amazon Web Services Identity and Access Management User Guide. // - // The key policy cannot - // exceed 32 kilobytes (32768 bytes). For more information, see Resource Quotas + // The key + // policy cannot exceed 32 kilobytes (32768 bytes). For more information, see + // Resource Quotas // (https://docs.aws.amazon.com/kms/latest/developerguide/resource-limits.html) in - // the AWS Key Management Service Developer Guide. + // the Key Management Service Developer Guide. // // This member is required. Policy *string @@ -91,13 +92,13 @@ type PutKeyPolicyInput struct { PolicyName *string // A flag to indicate whether to bypass the key policy lockout safety check. - // Setting this value to true increases the risk that the CMK becomes unmanageable. - // Do not set this value to true indiscriminately. For more information, refer to - // the scenario in the Default Key Policy + // Setting this value to true increases the risk that the KMS key becomes + // unmanageable. Do not set this value to true indiscriminately. For more + // information, refer to the scenario in the Default Key Policy // (https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam) - // section in the AWS Key Management Service Developer Guide. Use this parameter - // only when you intend to prevent the principal that is making the request from - // making a subsequent PutKeyPolicy request on the CMK. The default value is false. + // section in the Key Management Service Developer Guide. Use this parameter only + // when you intend to prevent the principal that is making the request from making + // a subsequent PutKeyPolicy request on the KMS key. The default value is false. BypassPolicyLockoutSafetyCheck bool noSmithyDocumentSerde diff --git a/service/kms/api_op_ReEncrypt.go b/service/kms/api_op_ReEncrypt.go index 4afd9b8de14..cbf439bc818 100644 --- a/service/kms/api_op_ReEncrypt.go +++ b/service/kms/api_op_ReEncrypt.go @@ -11,81 +11,83 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Decrypts ciphertext and then reencrypts it entirely within AWS KMS. You can use -// this operation to change the customer master key (CMK) under which data is -// encrypted, such as when you manually rotate +// Decrypts ciphertext and then reencrypts it entirely within KMS. You can use this +// operation to change the KMS key under which data is encrypted, such as when you +// manually rotate // (https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotate-keys-manually) -// a CMK or change the CMK that protects a ciphertext. You can also use it to -// reencrypt ciphertext under the same CMK, such as to change the encryption +// a KMS key or change the KMS key that protects a ciphertext. You can also use it +// to reencrypt ciphertext under the same KMS key, such as to change the encryption // context // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) // of a ciphertext. The ReEncrypt operation can decrypt ciphertext that was -// encrypted by using an AWS KMS CMK in an AWS KMS operation, such as Encrypt or +// encrypted by using an KMS KMS key in an KMS operation, such as Encrypt or // GenerateDataKey. It can also decrypt ciphertext that was encrypted by using the -// public key of an asymmetric CMK +// public key of an asymmetric KMS key // (https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html#asymmetric-cmks) -// outside of AWS KMS. However, it cannot decrypt ciphertext produced by other -// libraries, such as the AWS Encryption SDK +// outside of KMS. However, it cannot decrypt ciphertext produced by other +// libraries, such as the Amazon Web Services Encryption SDK // (https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/) or Amazon // S3 client-side encryption // (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html). -// These libraries return a ciphertext format that is incompatible with AWS KMS. -// When you use the ReEncrypt operation, you need to provide information for the -// decrypt operation and the subsequent encrypt operation. +// These libraries return a ciphertext format that is incompatible with KMS. When +// you use the ReEncrypt operation, you need to provide information for the decrypt +// operation and the subsequent encrypt operation. // -// * If your ciphertext -// was encrypted under an asymmetric CMK, you must use the SourceKeyId parameter to -// identify the CMK that encrypted the ciphertext. You must also supply the +// * If your ciphertext was +// encrypted under an asymmetric KMS key, you must use the SourceKeyId parameter to +// identify the KMS key that encrypted the ciphertext. You must also supply the // encryption algorithm that was used. This information is required to decrypt the // data. // -// * If your ciphertext was encrypted under a symmetric CMK, the SourceKeyId -// parameter is optional. AWS KMS can get this information from metadata that it -// adds to the symmetric ciphertext blob. This feature adds durability to your -// implementation by ensuring that authorized users can decrypt ciphertext decades -// after it was encrypted, even if they've lost track of the CMK ID. However, -// specifying the source CMK is always recommended as a best practice. When you use -// the SourceKeyId parameter to specify a CMK, AWS KMS uses only the CMK you -// specify. If the ciphertext was encrypted under a different CMK, the ReEncrypt -// operation fails. This practice ensures that you use the CMK that you intend. +// * If your ciphertext was encrypted under a symmetric KMS key, the +// SourceKeyId parameter is optional. KMS can get this information from metadata +// that it adds to the symmetric ciphertext blob. This feature adds durability to +// your implementation by ensuring that authorized users can decrypt ciphertext +// decades after it was encrypted, even if they've lost track of the key ID. +// However, specifying the source KMS key is always recommended as a best practice. +// When you use the SourceKeyId parameter to specify a KMS key, KMS uses only the +// KMS key you specify. If the ciphertext was encrypted under a different KMS key, +// the ReEncrypt operation fails. This practice ensures that you use the KMS key +// that you intend. // -// * -// To reencrypt the data, you must use the DestinationKeyId parameter specify the -// CMK that re-encrypts the data after it is decrypted. You can select a symmetric -// or asymmetric CMK. If the destination CMK is an asymmetric CMK, you must also -// provide the encryption algorithm. The algorithm that you choose must be -// compatible with the CMK. When you use an asymmetric CMK to encrypt or reencrypt -// data, be sure to record the CMK and encryption algorithm that you choose. You -// will be required to provide the same CMK and encryption algorithm when you -// decrypt the data. If the CMK and algorithm do not match the values used to -// encrypt the data, the decrypt operation fails. You are not required to supply -// the CMK ID and encryption algorithm when you decrypt with symmetric CMKs because -// AWS KMS stores this information in the ciphertext blob. AWS KMS cannot store -// metadata in ciphertext generated with asymmetric keys. The standard format for -// asymmetric key ciphertext does not include configurable fields. +// * To reencrypt the data, you must use the DestinationKeyId +// parameter specify the KMS key that re-encrypts the data after it is decrypted. +// You can select a symmetric or asymmetric KMS key. If the destination KMS key is +// an asymmetric KMS key, you must also provide the encryption algorithm. The +// algorithm that you choose must be compatible with the KMS key. When you use an +// asymmetric KMS key to encrypt or reencrypt data, be sure to record the KMS key +// and encryption algorithm that you choose. You will be required to provide the +// same KMS key and encryption algorithm when you decrypt the data. If the KMS key +// and algorithm do not match the values used to encrypt the data, the decrypt +// operation fails. You are not required to supply the key ID and encryption +// algorithm when you decrypt with symmetric KMS keys because KMS stores this +// information in the ciphertext blob. KMS cannot store metadata in ciphertext +// generated with asymmetric keys. The standard format for asymmetric key +// ciphertext does not include configurable fields. // -// The CMK that -// you use for this operation must be in a compatible key state. For details, see -// Key state: Effect on your CMK +// The KMS key that you use for +// this operation must be in a compatible key state. For details, see Key state: +// Effect on your KMS key // (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the -// AWS Key Management Service Developer Guide. Cross-account use: Yes. The source -// CMK and destination CMK can be in different AWS accounts. Either or both CMKs -// can be in a different account than the caller. Required permissions: +// Key Management Service Developer Guide. Cross-account use: Yes. The source KMS +// key and destination KMS key can be in different Amazon Web Services accounts. +// Either or both KMS keys can be in a different account than the caller. To +// specify a KMS key in a different account, you must use its key ARN or alias ARN. +// Required permissions: // -// * -// kms:ReEncryptFrom +// * kms:ReEncryptFrom // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) -// permission on the source CMK (key policy) +// permission on the source KMS key (key policy) // // * kms:ReEncryptTo // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) -// permission on the destination CMK (key policy) +// permission on the destination KMS key (key policy) // -// To permit reencryption from or -// to a CMK, include the "kms:ReEncrypt*" permission in your key policy +// To permit reencryption from +// or to a KMS key, include the "kms:ReEncrypt*" permission in your key policy // (https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html). This // permission is automatically included in the key policy when you use the console -// to create a CMK. But you must include it manually when you create a CMK +// to create a KMS key. But you must include it manually when you create a KMS key // programmatically or when you use the PutKeyPolicy operation to set a key policy. // Related operations: // @@ -119,15 +121,15 @@ type ReEncryptInput struct { // This member is required. CiphertextBlob []byte - // A unique identifier for the CMK that is used to reencrypt the data. Specify a - // symmetric or asymmetric CMK with a KeyUsage value of ENCRYPT_DECRYPT. To find - // the KeyUsage value of a CMK, use the DescribeKey operation. To specify a CMK, - // use its key ID, key ARN, alias name, or alias ARN. When using an alias name, - // prefix it with "alias/". To specify a CMK in a different AWS account, you must - // use the key ARN or alias ARN. For example: + // A unique identifier for the KMS key that is used to reencrypt the data. Specify + // a symmetric or asymmetric KMS key with a KeyUsage value of ENCRYPT_DECRYPT. To + // find the KeyUsage value of a KMS key, use the DescribeKey operation. To specify + // a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an + // alias name, prefix it with "alias/". To specify a KMS key in a different Amazon + // Web Services account, you must use the key ARN or alias ARN. For example: // - // * Key ID: - // 1234abcd-12ab-34cd-56ef-1234567890ab + // * Key + // ID: 1234abcd-12ab-34cd-56ef-1234567890ab // // * Key ARN: // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab @@ -139,44 +141,46 @@ type ReEncryptInput struct { // arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias // // To get the key ID and key - // ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, - // use ListAliases. + // ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias + // ARN, use ListAliases. // // This member is required. DestinationKeyId *string - // Specifies the encryption algorithm that AWS KMS will use to reecrypt the data - // after it has decrypted it. The default value, SYMMETRIC_DEFAULT, represents the - // encryption algorithm used for symmetric CMKs. This parameter is required only - // when the destination CMK is an asymmetric CMK. + // Specifies the encryption algorithm that KMS will use to reecrypt the data after + // it has decrypted it. The default value, SYMMETRIC_DEFAULT, represents the + // encryption algorithm used for symmetric KMS keys. This parameter is required + // only when the destination KMS key is an asymmetric KMS key. DestinationEncryptionAlgorithm types.EncryptionAlgorithmSpec // Specifies that encryption context to use when the reencrypting the data. A - // destination encryption context is valid only when the destination CMK is a - // symmetric CMK. The standard ciphertext format for asymmetric CMKs does not - // include fields for metadata. An encryption context is a collection of non-secret - // key-value pairs that represents additional authenticated data. When you use an - // encryption context to encrypt data, you must specify the same (an exact - // case-sensitive match) encryption context to decrypt the data. An encryption - // context is optional when encrypting with a symmetric CMK, but it is highly - // recommended. For more information, see Encryption Context + // destination encryption context is valid only when the destination KMS key is a + // symmetric KMS key. The standard ciphertext format for asymmetric KMS keys does + // not include fields for metadata. An encryption context is a collection of + // non-secret key-value pairs that represents additional authenticated data. When + // you use an encryption context to encrypt data, you must specify the same (an + // exact case-sensitive match) encryption context to decrypt the data. An + // encryption context is optional when encrypting with a symmetric KMS key, but it + // is highly recommended. For more information, see Encryption Context // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) - // in the AWS Key Management Service Developer Guide. + // in the Key Management Service Developer Guide. DestinationEncryptionContext map[string]string // A list of grant tokens. Use a grant token when your permission to call this // operation comes from a new grant that has not yet achieved eventual consistency. // For more information, see Grant token - // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token) - // in the AWS Key Management Service Developer Guide. + // (https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) + // and Using a grant token + // (https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token) + // in the Key Management Service Developer Guide. GrantTokens []string - // Specifies the encryption algorithm that AWS KMS will use to decrypt the - // ciphertext before it is reencrypted. The default value, SYMMETRIC_DEFAULT, - // represents the algorithm used for symmetric CMKs. Specify the same algorithm - // that was used to encrypt the ciphertext. If you specify a different algorithm, - // the decrypt attempt fails. This parameter is required only when the ciphertext - // was encrypted under an asymmetric CMK. + // Specifies the encryption algorithm that KMS will use to decrypt the ciphertext + // before it is reencrypted. The default value, SYMMETRIC_DEFAULT, represents the + // algorithm used for symmetric KMS keys. Specify the same algorithm that was used + // to encrypt the ciphertext. If you specify a different algorithm, the decrypt + // attempt fails. This parameter is required only when the ciphertext was encrypted + // under an asymmetric KMS key. SourceEncryptionAlgorithm types.EncryptionAlgorithmSpec // Specifies the encryption context to use to decrypt the ciphertext. Enter the @@ -184,24 +188,25 @@ type ReEncryptInput struct { // context is a collection of non-secret key-value pairs that represents additional // authenticated data. When you use an encryption context to encrypt data, you must // specify the same (an exact case-sensitive match) encryption context to decrypt - // the data. An encryption context is optional when encrypting with a symmetric - // CMK, but it is highly recommended. For more information, see Encryption Context + // the data. An encryption context is optional when encrypting with a symmetric KMS + // key, but it is highly recommended. For more information, see Encryption Context // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) - // in the AWS Key Management Service Developer Guide. + // in the Key Management Service Developer Guide. SourceEncryptionContext map[string]string - // Specifies the customer master key (CMK) that AWS KMS will use to decrypt the - // ciphertext before it is re-encrypted. Enter a key ID of the CMK that was used to - // encrypt the ciphertext. This parameter is required only when the ciphertext was - // encrypted under an asymmetric CMK. If you used a symmetric CMK, AWS KMS can get - // the CMK from metadata that it adds to the symmetric ciphertext blob. However, it + // Specifies the KMS key that KMS will use to decrypt the ciphertext before it is + // re-encrypted. Enter a key ID of the KMS key that was used to encrypt the + // ciphertext. This parameter is required only when the ciphertext was encrypted + // under an asymmetric KMS key. If you used a symmetric KMS key, KMS can get the + // KMS key from metadata that it adds to the symmetric ciphertext blob. However, it // is always recommended as a best practice. This practice ensures that you use the - // CMK that you intend. To specify a CMK, use its key ID, key ARN, alias name, or - // alias ARN. When using an alias name, prefix it with "alias/". To specify a CMK - // in a different AWS account, you must use the key ARN or alias ARN. For - // example: + // KMS key that you intend. To specify a KMS key, use its key ID, key ARN, alias + // name, or alias ARN. When using an alias name, prefix it with "alias/". To + // specify a KMS key in a different Amazon Web Services account, you must use the + // key ARN or alias ARN. For example: // - // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab + // * Key ID: + // 1234abcd-12ab-34cd-56ef-1234567890ab // // * Key ARN: // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab @@ -213,8 +218,8 @@ type ReEncryptInput struct { // arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias // // To get the key ID and key - // ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, - // use ListAliases. + // ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias + // ARN, use ListAliases. SourceKeyId *string noSmithyDocumentSerde @@ -222,8 +227,8 @@ type ReEncryptInput struct { type ReEncryptOutput struct { - // The reencrypted data. When you use the HTTP API or the AWS CLI, the value is - // Base64-encoded. Otherwise, it is not Base64-encoded. + // The reencrypted data. When you use the HTTP API or the Amazon Web Services CLI, + // the value is Base64-encoded. Otherwise, it is not Base64-encoded. CiphertextBlob []byte // The encryption algorithm that was used to reencrypt the data. @@ -231,14 +236,14 @@ type ReEncryptOutput struct { // The Amazon Resource Name (key ARN // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN)) - // of the CMK that was used to reencrypt the data. + // of the KMS key that was used to reencrypt the data. KeyId *string // The encryption algorithm that was used to decrypt the ciphertext before it was // reencrypted. SourceEncryptionAlgorithm types.EncryptionAlgorithmSpec - // Unique identifier of the CMK used to originally encrypt the data. + // Unique identifier of the KMS key used to originally encrypt the data. SourceKeyId *string // Metadata pertaining to the operation's result. diff --git a/service/kms/api_op_ReplicateKey.go b/service/kms/api_op_ReplicateKey.go index fe37b40fbdc..3a98b33b395 100644 --- a/service/kms/api_op_ReplicateKey.go +++ b/service/kms/api_op_ReplicateKey.go @@ -13,18 +13,19 @@ import ( // Replicates a multi-Region key into the specified Region. This operation creates // a multi-Region replica key based on a multi-Region primary key in a different -// Region of the same AWS partition. You can create multiple replicas of a primary -// key, but each must be in a different Region. To create a multi-Region primary -// key, use the CreateKey operation. This operation supports multi-Region keys, an -// AWS KMS feature that lets you create multiple interoperable CMKs in different -// AWS Regions. Because these CMKs have the same key ID, key material, and other -// metadata, you can use them to encrypt data in one AWS Region and decrypt it in a -// different AWS Region without making a cross-Region call or exposing the -// plaintext data. For more information about multi-Region keys, see Using -// multi-Region keys +// Region of the same Amazon Web Services partition. You can create multiple +// replicas of a primary key, but each must be in a different Region. To create a +// multi-Region primary key, use the CreateKey operation. This operation supports +// multi-Region keys, an KMS feature that lets you create multiple interoperable +// KMS keys in different Amazon Web Services Regions. Because these KMS keys have +// the same key ID, key material, and other metadata, you can use them +// interchangeably to encrypt data in one Amazon Web Services Region and decrypt it +// in a different Amazon Web Services Region without re-encrypting the data or +// making a cross-Region call. For more information about multi-Region keys, see +// Using multi-Region keys // (https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) -// in the AWS Key Management Service Developer Guide. A replica key is a -// fully-functional CMK that can be used independently of its primary and peer +// in the Key Management Service Developer Guide. A replica key is a +// fully-functional KMS key that can be used independently of its primary and peer // replica keys. A primary key and its replica keys share properties that make them // interoperable. They have the same key ID // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-id) @@ -35,52 +36,51 @@ import ( // key material origin // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-origin), // and automatic key rotation status -// (https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html). AWS -// KMS automatically synchronizes these shared properties among related -// multi-Region keys. All other properties of a replica key can differ, including -// its key policy +// (https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html). KMS +// automatically synchronizes these shared properties among related multi-Region +// keys. All other properties of a replica key can differ, including its key policy // (https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html), tags // (https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html), // aliases (https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html), // and key state -// (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html). AWS KMS -// pricing and quotas for CMKs apply to each primary key and replica key. When this -// operation completes, the new replica key has a transient key state of Creating. -// This key state changes to Enabled (or PendingImport) after a few seconds when -// the process of creating the new replica key is complete. While the key state is -// Creating, you can manage key, but you cannot yet use it in cryptographic -// operations. If you are creating and using the replica key programmatically, -// retry on KMSInvalidStateException or call DescribeKey to check its KeyState -// value before using it. For details about the Creating key state, see Key state: -// Effect on your CMK in the AWS Key Management Service Developer Guide. The AWS -// CloudTrail log of a ReplicateKey operation records a ReplicateKey operation in -// the primary key's Region and a CreateKey operation in the replica key's Region. -// If you replicate a multi-Region primary key with imported key material, the -// replica key is created with no key material. You must import the same key -// material that you imported into the primary key. For details, see Importing key -// material into multi-Region keys in the AWS Key Management Service Developer -// Guide. To convert a replica key to a primary key, use the UpdatePrimaryRegion -// operation. ReplicateKey uses different default values for the KeyPolicy and Tags -// parameters than those used in the AWS KMS console. For details, see the -// parameter descriptions. Cross-account use: No. You cannot use this operation to -// create a CMK in a different AWS account. Required permissions: +// (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html). KMS +// pricing and quotas for KMS keys apply to each primary key and replica key. When +// this operation completes, the new replica key has a transient key state of +// Creating. This key state changes to Enabled (or PendingImport) after a few +// seconds when the process of creating the new replica key is complete. While the +// key state is Creating, you can manage key, but you cannot yet use it in +// cryptographic operations. If you are creating and using the replica key +// programmatically, retry on KMSInvalidStateException or call DescribeKey to check +// its KeyState value before using it. For details about the Creating key state, +// see Key state: Effect on your KMS key in the Key Management Service Developer +// Guide. The CloudTrail log of a ReplicateKey operation records a ReplicateKey +// operation in the primary key's Region and a CreateKey operation in the replica +// key's Region. If you replicate a multi-Region primary key with imported key +// material, the replica key is created with no key material. You must import the +// same key material that you imported into the primary key. For details, see +// Importing key material into multi-Region keys in the Key Management Service +// Developer Guide. To convert a replica key to a primary key, use the +// UpdatePrimaryRegion operation. ReplicateKey uses different default values for +// the KeyPolicy and Tags parameters than those used in the KMS console. For +// details, see the parameter descriptions. Cross-account use: No. You cannot use +// this operation to create a replica key in a different Amazon Web Services +// account. Required permissions: // -// * -// kms:ReplicateKey on the primary CMK (in the primary CMK's Region). Include this -// permission in the primary CMK's key policy. +// * kms:ReplicateKey on the primary key (in the +// primary key's Region). Include this permission in the primary key's key +// policy. // -// * kms:CreateKey in an IAM policy in -// the replica Region. +// * kms:CreateKey in an IAM policy in the replica Region. // -// * To use the Tags parameter, kms:TagResource in an IAM -// policy in the replica Region. +// * To use the +// Tags parameter, kms:TagResource in an IAM policy in the replica Region. // -// Related operations +// Related +// operations // // * CreateKey // -// * -// UpdatePrimaryRegion +// * UpdatePrimaryRegion func (c *Client) ReplicateKey(ctx context.Context, params *ReplicateKeyInput, optFns ...func(*Options)) (*ReplicateKeyOutput, error) { if params == nil { params = &ReplicateKeyInput{} @@ -99,8 +99,8 @@ func (c *Client) ReplicateKey(ctx context.Context, params *ReplicateKeyInput, op type ReplicateKeyInput struct { // Identifies the multi-Region primary key that is being replicated. To determine - // whether a CMK is a multi-Region primary key, use the DescribeKey operation to - // check the value of the MultiRegionKeyType property. Specify the key ID or key + // whether a KMS key is a multi-Region primary key, use the DescribeKey operation + // to check the value of the MultiRegionKeyType property. Specify the key ID or key // ARN of a multi-Region primary key. For example: // // * Key ID: @@ -110,21 +110,22 @@ type ReplicateKeyInput struct { // arn:aws:kms:us-east-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab // // To - // get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. + // get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. // // This member is required. KeyId *string - // The Region ID of the AWS Region for this replica key. Enter the Region ID, such - // as us-east-1 or ap-southeast-2. For a list of AWS Regions in which AWS KMS is - // supported, see AWS KMS service endpoints + // The Region ID of the Amazon Web Services Region for this replica key. Enter the + // Region ID, such as us-east-1 or ap-southeast-2. For a list of Amazon Web + // Services Regions in which KMS is supported, see KMS service endpoints // (https://docs.aws.amazon.com/general/latest/gr/kms.html#kms_region) in the - // Amazon Web Services General Reference. The replica must be in a different AWS - // Region than its primary key and other replicas of that primary key, but in the - // same AWS partition. AWS KMS must be available in the replica Region. If the - // Region is not enabled by default, the AWS account must be enabled in the Region. - // For information about AWS partitions, see Amazon Resource Names (ARNs) in the - // Amazon Web Services General Reference. + // Amazon Web Services General Reference. The replica must be in a different Amazon + // Web Services Region than its primary key and other replicas of that primary key, + // but in the same Amazon Web Services partition. KMS must be available in the + // replica Region. If the Region is not enabled by default, the Amazon Web Services + // account must be enabled in the Region. For information about Amazon Web Services + // partitions, see Amazon Resource Names (ARNs) in the Amazon Web Services General + // Reference. // (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) For // information about enabling and disabling Regions, see Enabling a Region // (https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable) @@ -136,70 +137,70 @@ type ReplicateKeyInput struct { ReplicaRegion *string // A flag to indicate whether to bypass the key policy lockout safety check. - // Setting this value to true increases the risk that the CMK becomes unmanageable. - // Do not set this value to true indiscriminately. For more information, refer to - // the scenario in the Default Key Policy + // Setting this value to true increases the risk that the KMS key becomes + // unmanageable. Do not set this value to true indiscriminately. For more + // information, refer to the scenario in the Default Key Policy // (https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam) - // section in the AWS Key Management Service Developer Guide. Use this parameter - // only when you intend to prevent the principal that is making the request from - // making a subsequent PutKeyPolicy request on the CMK. The default value is false. + // section in the Key Management Service Developer Guide. Use this parameter only + // when you intend to prevent the principal that is making the request from making + // a subsequent PutKeyPolicy request on the KMS key. The default value is false. BypassPolicyLockoutSafetyCheck bool - // A description of the CMK. Use a description that helps you decide whether the - // CMK is appropriate for a task. The default value is an empty string (no + // A description of the KMS key. The default value is an empty string (no // description). The description is not a shared property of multi-Region keys. You // can specify the same description or a different description for each key in a - // set of related multi-Region keys. AWS KMS does not synchronize this property. + // set of related multi-Region keys. KMS does not synchronize this property. Description *string - // The key policy to attach to the CMK. This parameter is optional. If you do not - // provide a key policy, AWS KMS attaches the default key policy + // The key policy to attach to the KMS key. This parameter is optional. If you do + // not provide a key policy, KMS attaches the default key policy // (https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default) - // to the CMK. The key policy is not a shared property of multi-Region keys. You - // can specify the same key policy or a different key policy for each key in a set - // of related multi-Region keys. AWS KMS does not synchronize this property. If you + // to the KMS key. The key policy is not a shared property of multi-Region keys. + // You can specify the same key policy or a different key policy for each key in a + // set of related multi-Region keys. KMS does not synchronize this property. If you // provide a key policy, it must meet the following criteria: // // * If you don't set // BypassPolicyLockoutSafetyCheck to true, the key policy must give the caller - // kms:PutKeyPolicy permission on the replica CMK. This reduces the risk that the - // CMK becomes unmanageable. For more information, refer to the scenario in the + // kms:PutKeyPolicy permission on the replica key. This reduces the risk that the + // KMS key becomes unmanageable. For more information, refer to the scenario in the // Default Key Policy // (https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam) - // section of the AWS Key Management Service Developer Guide . + // section of the Key Management Service Developer Guide . // - // * Each statement in - // the key policy must contain one or more principals. The principals in the key - // policy must exist and be visible to AWS KMS. When you create a new AWS principal - // (for example, an IAM user or role), you might need to enforce a delay before - // including the new principal in a key policy because the new principal might not - // be immediately visible to AWS KMS. For more information, see Changes that I make - // are not always immediately visible + // * Each statement in the + // key policy must contain one or more principals. The principals in the key policy + // must exist and be visible to KMS. When you create a new Amazon Web Services + // principal (for example, an IAM user or role), you might need to enforce a delay + // before including the new principal in a key policy because the new principal + // might not be immediately visible to KMS. For more information, see Changes that + // I make are not always immediately visible // (https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency) - // in the AWS Identity and Access Management User Guide. + // in the Identity and Access Management User Guide . // - // * The key policy size - // quota is 32 kilobytes (32768 bytes). + // * The key policy size quota + // is 32 kilobytes (32768 bytes). Policy *string - // Assigns one or more tags to the replica key. Use this parameter to tag the CMK - // when it is created. To tag an existing CMK, use the TagResource operation. - // Tagging or untagging a CMK can allow or deny permission to the CMK. For details, - // see Using ABAC in AWS KMS - // (https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in the AWS Key + // Assigns one or more tags to the replica key. Use this parameter to tag the KMS + // key when it is created. To tag an existing KMS key, use the TagResource + // operation. Tagging or untagging a KMS key can allow or deny permission to the + // KMS key. For details, see Using ABAC in KMS + // (https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in the Key // Management Service Developer Guide. To use this parameter, you must have // kms:TagResource // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // permission in an IAM policy. Tags are not a shared property of multi-Region // keys. You can specify the same tags or different tags for each key in a set of - // related multi-Region keys. AWS KMS does not synchronize this property. Each tag + // related multi-Region keys. KMS does not synchronize this property. Each tag // consists of a tag key and a tag value. Both the tag key and the tag value are // required, but the tag value can be an empty (null) string. You cannot have more - // than one tag on a CMK with the same tag key. If you specify an existing tag key - // with a different tag value, AWS KMS replaces the current tag value with the - // specified one. When you assign tags to an AWS resource, AWS generates a cost - // allocation report with usage and costs aggregated by tags. Tags can also be used - // to control access to a CMK. For details, see Tagging Keys + // than one tag on a KMS key with the same tag key. If you specify an existing tag + // key with a different tag value, KMS replaces the current tag value with the + // specified one. When you add tags to an Amazon Web Services resource, Amazon Web + // Services generates a cost allocation report with usage and costs aggregated by + // tags. Tags can also be used to control access to a KMS key. For details, see + // Tagging Keys // (https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html). Tags []types.Tag @@ -208,12 +209,13 @@ type ReplicateKeyInput struct { type ReplicateKeyOutput struct { - // Displays details about the new replica CMK, including its Amazon Resource Name + // Displays details about the new replica key, including its Amazon Resource Name // (key ARN // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN)) // and key state // (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html). It also - // includes the ARN and AWS Region of its primary key and other replica keys. + // includes the ARN and Amazon Web Services Region of its primary key and other + // replica keys. ReplicaKeyMetadata *types.KeyMetadata // The key policy of the new replica key. The value is a key policy document in diff --git a/service/kms/api_op_RetireGrant.go b/service/kms/api_op_RetireGrant.go index 416e75f1822..8b44b2fc9dc 100644 --- a/service/kms/api_op_RetireGrant.go +++ b/service/kms/api_op_RetireGrant.go @@ -13,25 +13,26 @@ import ( // Deletes a grant. Typically, you retire a grant when you no longer need its // permissions. To identify the grant to retire, use a grant token // (https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token), -// or both the grant ID and a key identifier (key ID or key ARN) of the customer -// master key (CMK). The CreateGrant operation returns both values. This operation -// can be called by the retiring principal for a grant, by the grantee principal if -// the grant allows the RetireGrant operation, and by the AWS account (root user) -// in which the grant is created. It can also be called by principals to whom +// or both the grant ID and a key identifier (key ID or key ARN) of the KMS key. +// The CreateGrant operation returns both values. This operation can be called by +// the retiring principal for a grant, by the grantee principal if the grant allows +// the RetireGrant operation, and by the Amazon Web Services account (root user) in +// which the grant is created. It can also be called by principals to whom // permission for retiring a grant is delegated. For details, see Retiring and // revoking grants // (https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#grant-delete) -// in the AWS Key Management Service Developer Guide. For detailed information -// about grants, including grant terminology, see Using grants -// (https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) in the AWS -// Key Management Service Developer Guide . For examples of working with grants in +// in the Key Management Service Developer Guide. For detailed information about +// grants, including grant terminology, see Using grants +// (https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) in the Key +// Management Service Developer Guide . For examples of working with grants in // several programming languages, see Programming grants // (https://docs.aws.amazon.com/kms/latest/developerguide/programming-grants.html). -// Cross-account use: Yes. You can retire a grant on a CMK in a different AWS -// account. Required permissions::Permission to retire a grant is determined -// primarily by the grant. For details, see Retiring and revoking grants +// Cross-account use: Yes. You can retire a grant on a KMS key in a different +// Amazon Web Services account. Required permissions::Permission to retire a grant +// is determined primarily by the grant. For details, see Retiring and revoking +// grants // (https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#grant-delete) -// in the AWS Key Management Service Developer Guide. Related operations: +// in the Key Management Service Developer Guide. Related operations: // // * // CreateGrant @@ -71,11 +72,11 @@ type RetireGrantInput struct { // (https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) // and Eventual consistency // (https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-eventual-consistency) - // in the AWS Key Management Service Developer Guide. + // in the Key Management Service Developer Guide. GrantToken *string - // The key ARN CMK associated with the grant. To find the key ARN, use the ListKeys - // operation. For example: + // The key ARN KMS key associated with the grant. To find the key ARN, use the + // ListKeys operation. For example: // arn:aws:kms:us-east-2:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab KeyId *string diff --git a/service/kms/api_op_RevokeGrant.go b/service/kms/api_op_RevokeGrant.go index 0badad7c1ae..08357e54659 100644 --- a/service/kms/api_op_RevokeGrant.go +++ b/service/kms/api_op_RevokeGrant.go @@ -13,14 +13,20 @@ import ( // Deletes the specified grant. You revoke a grant to terminate the permissions // that the grant allows. For more information, see Retiring and revoking grants // (https://docs.aws.amazon.com/kms/latest/developerguide/managing-grants.html#grant-delete) -// in the AWS Key Management Service Developer Guide . When you create, retire, or +// in the Key Management Service Developer Guide . When you create, retire, or // revoke a grant, there might be a brief delay, usually less than five minutes, -// until the grant is available throughout AWS KMS. This state is known as eventual +// until the grant is available throughout KMS. This state is known as eventual // consistency. For details, see Eventual consistency // (https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-eventual-consistency) -// in the AWS Key Management Service Developer Guide . Cross-account use: Yes. To -// perform this operation on a CMK in a different AWS account, specify the key ARN -// in the value of the KeyId parameter. Required permissions: kms:RevokeGrant +// in the Key Management Service Developer Guide . For detailed information about +// grants, including grant terminology, see Using grants +// (https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) in the Key +// Management Service Developer Guide . For examples of working with grants in +// several programming languages, see Programming grants +// (https://docs.aws.amazon.com/kms/latest/developerguide/programming-grants.html). +// Cross-account use: Yes. To perform this operation on a KMS key in a different +// Amazon Web Services account, specify the key ARN in the value of the KeyId +// parameter. Required permissions: kms:RevokeGrant // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (key policy). Related operations: // @@ -55,10 +61,10 @@ type RevokeGrantInput struct { // This member is required. GrantId *string - // A unique identifier for the customer master key (CMK) associated with the grant. - // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. Specify - // the key ID or key ARN of the CMK. To specify a CMK in a different AWS account, - // you must use the key ARN. For example: + // A unique identifier for the KMS key associated with the grant. To get the key ID + // and key ARN for a KMS key, use ListKeys or DescribeKey. Specify the key ID or + // key ARN of the KMS key. To specify a KMS key in a different Amazon Web Services + // account, you must use the key ARN. For example: // // * Key ID: // 1234abcd-12ab-34cd-56ef-1234567890ab @@ -67,7 +73,7 @@ type RevokeGrantInput struct { // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab // // To - // get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. + // get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. // // This member is required. KeyId *string diff --git a/service/kms/api_op_ScheduleKeyDeletion.go b/service/kms/api_op_ScheduleKeyDeletion.go index ac47bfd1bed..3526e3f5446 100644 --- a/service/kms/api_op_ScheduleKeyDeletion.go +++ b/service/kms/api_op_ScheduleKeyDeletion.go @@ -12,45 +12,45 @@ import ( "time" ) -// Schedules the deletion of a customer master key (CMK). By default, AWS KMS -// applies a waiting period of 30 days, but you can specify a waiting period of -// 7-30 days. When this operation is successful, the key state of the CMK changes -// to PendingDeletion and the key can't be used in any cryptographic operations. It -// remains in this state for the duration of the waiting period. Before the waiting -// period ends, you can use CancelKeyDeletion to cancel the deletion of the CMK. -// After the waiting period ends, AWS KMS deletes the CMK, its key material, and -// all AWS KMS data associated with it, including all aliases that refer to it. -// Deleting a CMK is a destructive and potentially dangerous operation. When a CMK -// is deleted, all data that was encrypted under the CMK is unrecoverable. (The -// only exception is a multi-Region replica key.) To prevent the use of a CMK -// without deleting it, use DisableKey. If you schedule deletion of a CMK from a -// custom key store +// Schedules the deletion of a KMS key. By default, KMS applies a waiting period of +// 30 days, but you can specify a waiting period of 7-30 days. When this operation +// is successful, the key state of the KMS key changes to PendingDeletion and the +// key can't be used in any cryptographic operations. It remains in this state for +// the duration of the waiting period. Before the waiting period ends, you can use +// CancelKeyDeletion to cancel the deletion of the KMS key. After the waiting +// period ends, KMS deletes the KMS key, its key material, and all KMS data +// associated with it, including all aliases that refer to it. Deleting a KMS key +// is a destructive and potentially dangerous operation. When a KMS key is deleted, +// all data that was encrypted under the KMS key is unrecoverable. (The only +// exception is a multi-Region replica key.) To prevent the use of a KMS key +// without deleting it, use DisableKey. If you schedule deletion of a KMS key from +// a custom key store // (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html), -// when the waiting period expires, ScheduleKeyDeletion deletes the CMK from AWS -// KMS. Then AWS KMS makes a best effort to delete the key material from the -// associated AWS CloudHSM cluster. However, you might need to manually delete the -// orphaned key material +// when the waiting period expires, ScheduleKeyDeletion deletes the KMS key from +// KMS. Then KMS makes a best effort to delete the key material from the associated +// CloudHSM cluster. However, you might need to manually delete the orphaned key +// material // (https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-orphaned-key) // from the cluster and its backups. You can schedule the deletion of a -// multi-Region primary key and its replica keys at any time. However, AWS KMS will -// not delete a multi-Region primary key with existing replica keys. If you -// schedule the deletion of a primary key with replicas, its key state changes to +// multi-Region primary key and its replica keys at any time. However, KMS will not +// delete a multi-Region primary key with existing replica keys. If you schedule +// the deletion of a primary key with replicas, its key state changes to // PendingReplicaDeletion and it cannot be replicated or used in cryptographic // operations. This status can continue indefinitely. When the last of its replicas // keys is deleted (not just scheduled), the key state of the primary key changes // to PendingDeletion and its waiting period (PendingWindowInDays) begins. For // details, see Deleting multi-Region keys // (https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-delete.html) -// in the AWS Key Management Service Developer Guide. For more information about -// scheduling a CMK for deletion, see Deleting Customer Master Keys +// in the Key Management Service Developer Guide. For more information about +// scheduling a KMS key for deletion, see Deleting KMS keys // (https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html) in -// the AWS Key Management Service Developer Guide. The CMK that you use for this +// the Key Management Service Developer Guide. The KMS key that you use for this // operation must be in a compatible key state. For details, see Key state: Effect -// on your CMK +// on your KMS key // (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the -// AWS Key Management Service Developer Guide. Cross-account use: No. You cannot -// perform this operation on a CMK in a different AWS account. Required -// permissions: kms:ScheduleKeyDeletion (key policy) Related operations +// Key Management Service Developer Guide. Cross-account use: No. You cannot +// perform this operation on a KMS key in a different Amazon Web Services account. +// Required permissions: kms:ScheduleKeyDeletion (key policy) Related operations // // * // CancelKeyDeletion @@ -73,27 +73,27 @@ func (c *Client) ScheduleKeyDeletion(ctx context.Context, params *ScheduleKeyDel type ScheduleKeyDeletionInput struct { - // The unique identifier of the customer master key (CMK) to delete. Specify the - // key ID or key ARN of the CMK. For example: + // The unique identifier of the KMS key to delete. Specify the key ID or key ARN of + // the KMS key. For example: // - // * Key ID: - // 1234abcd-12ab-34cd-56ef-1234567890ab + // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab // - // * Key ARN: + // * Key + // ARN: // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab // // To - // get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. + // get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. // // This member is required. KeyId *string // The waiting period, specified in number of days. After the waiting period ends, - // AWS KMS deletes the customer master key (CMK). If the CMK is a multi-Region - // primary key with replicas, the waiting period begins when the last of its - // replica keys is deleted. Otherwise, the waiting period begins immediately. This - // value is optional. If you include a value, it must be between 7 and 30, - // inclusive. If you do not include a value, it defaults to 30. + // KMS deletes the KMS key. If the KMS key is a multi-Region primary key with + // replicas, the waiting period begins when the last of its replica keys is + // deleted. Otherwise, the waiting period begins immediately. This value is + // optional. If you include a value, it must be between 7 and 30, inclusive. If you + // do not include a value, it defaults to 30. PendingWindowInDays *int32 noSmithyDocumentSerde @@ -101,26 +101,27 @@ type ScheduleKeyDeletionInput struct { type ScheduleKeyDeletionOutput struct { - // The date and time after which AWS KMS deletes the customer master key (CMK). If - // the CMK is a multi-Region primary key with replica keys, this field does not - // appear. The deletion date for the primary key isn't known until its last replica - // key is deleted. + // The date and time after which KMS deletes the KMS key. If the KMS key is a + // multi-Region primary key with replica keys, this field does not appear. The + // deletion date for the primary key isn't known until its last replica key is + // deleted. DeletionDate *time.Time // The Amazon Resource Name (key ARN // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN)) - // of the CMK whose deletion is scheduled. + // of the KMS key whose deletion is scheduled. KeyId *string - // The current status of the CMK. For more information about how key state affects - // the use of a CMK, see Key state: Effect on your CMK + // The current status of the KMS key. For more information about how key state + // affects the use of a KMS key, see Key state: Effect on your KMS key // (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the - // AWS Key Management Service Developer Guide. + // Key Management Service Developer Guide. KeyState types.KeyState - // The waiting period before the CMK is deleted. If the CMK is a multi-Region - // primary key with replicas, the waiting period begins when the last of its - // replica keys is deleted. Otherwise, the waiting period begins immediately. + // The waiting period before the KMS key is deleted. If the KMS key is a + // multi-Region primary key with replicas, the waiting period begins when the last + // of its replica keys is deleted. Otherwise, the waiting period begins + // immediately. PendingWindowInDays *int32 // Metadata pertaining to the operation's result. diff --git a/service/kms/api_op_Sign.go b/service/kms/api_op_Sign.go index cf1e20c04b7..b0d5b57e7ee 100644 --- a/service/kms/api_op_Sign.go +++ b/service/kms/api_op_Sign.go @@ -12,44 +12,45 @@ import ( ) // Creates a digital signature (https://en.wikipedia.org/wiki/Digital_signature) -// for a message or message digest by using the private key in an asymmetric CMK. -// To verify the signature, use the Verify operation, or use the public key in the -// same asymmetric CMK outside of AWS KMS. For information about symmetric and -// asymmetric CMKs, see Using Symmetric and Asymmetric CMKs +// for a message or message digest by using the private key in an asymmetric KMS +// key. To verify the signature, use the Verify operation, or use the public key in +// the same asymmetric KMS key outside of KMS. For information about symmetric and +// asymmetric KMS keys, see Using Symmetric and Asymmetric KMS keys // (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) -// in the AWS Key Management Service Developer Guide. Digital signatures are -// generated and verified by using asymmetric key pair, such as an RSA or ECC pair -// that is represented by an asymmetric customer master key (CMK). The key owner -// (or an authorized user) uses their private key to sign a message. Anyone with -// the public key can verify that the message was signed with that particular -// private key and that the message hasn't changed since it was signed. To use the -// Sign operation, provide the following information: +// in the Key Management Service Developer Guide. Digital signatures are generated +// and verified by using asymmetric key pair, such as an RSA or ECC pair that is +// represented by an asymmetric KMS key. The key owner (or an authorized user) uses +// their private key to sign a message. Anyone with the public key can verify that +// the message was signed with that particular private key and that the message +// hasn't changed since it was signed. To use the Sign operation, provide the +// following information: // -// * Use the KeyId parameter to -// identify an asymmetric CMK with a KeyUsage value of SIGN_VERIFY. To get the -// KeyUsage value of a CMK, use the DescribeKey operation. The caller must have -// kms:Sign permission on the CMK. +// * Use the KeyId parameter to identify an asymmetric KMS +// key with a KeyUsage value of SIGN_VERIFY. To get the KeyUsage value of a KMS +// key, use the DescribeKey operation. The caller must have kms:Sign permission on +// the KMS key. // -// * Use the Message parameter to specify the -// message or message digest to sign. You can submit messages of up to 4096 bytes. -// To sign a larger message, generate a hash digest of the message, and then -// provide the hash digest in the Message parameter. To indicate whether the -// message is a full message or a digest, use the MessageType parameter. +// * Use the Message parameter to specify the message or message +// digest to sign. You can submit messages of up to 4096 bytes. To sign a larger +// message, generate a hash digest of the message, and then provide the hash digest +// in the Message parameter. To indicate whether the message is a full message or a +// digest, use the MessageType parameter. // -// * Choose -// a signing algorithm that is compatible with the CMK. +// * Choose a signing algorithm that is +// compatible with the KMS key. // -// When signing a message, be -// sure to record the CMK and the signing algorithm. This information is required -// to verify the signature. To verify the signature that this operation generates, -// use the Verify operation. Or use the GetPublicKey operation to download the -// public key and then use the public key to verify the signature outside of AWS -// KMS. The CMK that you use for this operation must be in a compatible key state. -// For details, see Key state: Effect on your CMK +// When signing a message, be sure to record the KMS +// key and the signing algorithm. This information is required to verify the +// signature. To verify the signature that this operation generates, use the Verify +// operation. Or use the GetPublicKey operation to download the public key and then +// use the public key to verify the signature outside of KMS. The KMS key that you +// use for this operation must be in a compatible key state. For details, see Key +// state: Effect on your KMS key // (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the -// AWS Key Management Service Developer Guide. Cross-account use: Yes. To perform -// this operation with a CMK in a different AWS account, specify the key ARN or -// alias ARN in the value of the KeyId parameter. Required permissions: kms:Sign +// Key Management Service Developer Guide. Cross-account use: Yes. To perform this +// operation with a KMS key in a different Amazon Web Services account, specify the +// key ARN or alias ARN in the value of the KeyId parameter. Required permissions: +// kms:Sign // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (key policy) Related operations: Verify func (c *Client) Sign(ctx context.Context, params *SignInput, optFns ...func(*Options)) (*SignOutput, error) { @@ -69,12 +70,12 @@ func (c *Client) Sign(ctx context.Context, params *SignInput, optFns ...func(*Op type SignInput struct { - // Identifies an asymmetric CMK. AWS KMS uses the private key in the asymmetric CMK - // to sign the message. The KeyUsage type of the CMK must be SIGN_VERIFY. To find - // the KeyUsage of a CMK, use the DescribeKey operation. To specify a CMK, use its - // key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it - // with "alias/". To specify a CMK in a different AWS account, you must use the key - // ARN or alias ARN. For example: + // Identifies an asymmetric KMS key. KMS uses the private key in the asymmetric KMS + // key to sign the message. The KeyUsage type of the KMS key must be SIGN_VERIFY. + // To find the KeyUsage of a KMS key, use the DescribeKey operation. To specify a + // KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias + // name, prefix it with "alias/". To specify a KMS key in a different Amazon Web + // Services account, you must use the key ARN or alias ARN. For example: // // * Key ID: // 1234abcd-12ab-34cd-56ef-1234567890ab @@ -89,22 +90,22 @@ type SignInput struct { // arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias // // To get the key ID and key - // ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, - // use ListAliases. + // ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias + // ARN, use ListAliases. // // This member is required. KeyId *string // Specifies the message or message digest to sign. Messages can be 0-4096 bytes. // To sign a larger message, provide the message digest. If you provide a message, - // AWS KMS generates a hash digest of the message and then signs it. + // KMS generates a hash digest of the message and then signs it. // // This member is required. Message []byte // Specifies the signing algorithm to use when signing the message. Choose an // algorithm that is compatible with the type and size of the specified asymmetric - // CMK. + // KMS key. // // This member is required. SigningAlgorithm types.SigningAlgorithmSpec @@ -112,11 +113,13 @@ type SignInput struct { // A list of grant tokens. Use a grant token when your permission to call this // operation comes from a new grant that has not yet achieved eventual consistency. // For more information, see Grant token - // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token) - // in the AWS Key Management Service Developer Guide. + // (https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) + // and Using a grant token + // (https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token) + // in the Key Management Service Developer Guide. GrantTokens []string - // Tells AWS KMS whether the value of the Message parameter is a message or message + // Tells KMS whether the value of the Message parameter is a message or message // digest. The default value, RAW, indicates a message. To indicate a message // digest, enter DIGEST. MessageType types.MessageType @@ -128,7 +131,7 @@ type SignOutput struct { // The Amazon Resource Name (key ARN // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN)) - // of the asymmetric CMK that was used to sign the message. + // of the asymmetric KMS key that was used to sign the message. KeyId *string // The cryptographic signature that was generated for the message. @@ -144,8 +147,8 @@ type SignOutput struct { // commonly used signature format and is appropriate for most uses. // // When you use - // the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not - // Base64-encoded. + // the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. + // Otherwise, it is not Base64-encoded. Signature []byte // The signing algorithm that was used to sign the message. diff --git a/service/kms/api_op_TagResource.go b/service/kms/api_op_TagResource.go index e1ae9beca16..b309ae40c33 100644 --- a/service/kms/api_op_TagResource.go +++ b/service/kms/api_op_TagResource.go @@ -11,37 +11,37 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Adds or edits tags on a customer managed CMK +// Adds or edits tags on a customer managed key // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk). -// Tagging or untagging a CMK can allow or deny permission to the CMK. For details, -// see Using ABAC in AWS KMS -// (https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in the AWS Key +// Tagging or untagging a KMS key can allow or deny permission to the KMS key. For +// details, see Using ABAC in KMS +// (https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in the Key // Management Service Developer Guide. Each tag consists of a tag key and a tag // value, both of which are case-sensitive strings. The tag value can be an empty // (null) string. To add a tag, specify a new tag key and a tag value. To edit a // tag, specify an existing tag key and a new tag value. You can use this operation -// to tag a customer managed CMK +// to tag a customer managed key // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk), -// but you cannot tag an AWS managed CMK +// but you cannot tag an Amazon Web Services managed key // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk), -// an AWS owned CMK +// an Amazon Web Services owned key // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk), // a custom key store // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#keystore-concept), // or an alias // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#alias-concept). -// You can also add tags to a CMK while creating it (CreateKey) or replicating it -// (ReplicateKey). For information about using tags in AWS KMS, see Tagging keys +// You can also add tags to a KMS key while creating it (CreateKey) or replicating +// it (ReplicateKey). For information about using tags in KMS, see Tagging keys // (https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html). For -// general information about tags, including the format and syntax, see Tagging AWS -// resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in -// the Amazon Web Services General Reference. The CMK that you use for this -// operation must be in a compatible key state. For details, see Key state: Effect -// on your CMK +// general information about tags, including the format and syntax, see Tagging +// Amazon Web Services resources +// (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the Amazon +// Web Services General Reference. The KMS key that you use for this operation must +// be in a compatible key state. For details, see Key state: Effect on your KMS key // (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the -// AWS Key Management Service Developer Guide. Cross-account use: No. You cannot -// perform this operation on a CMK in a different AWS account. Required -// permissions: kms:TagResource +// Key Management Service Developer Guide. Cross-account use: No. You cannot +// perform this operation on a KMS key in a different Amazon Web Services account. +// Required permissions: kms:TagResource // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (key policy) Related operations // @@ -70,8 +70,8 @@ func (c *Client) TagResource(ctx context.Context, params *TagResourceInput, optF type TagResourceInput struct { - // Identifies a customer managed CMK in the account and Region. Specify the key ID - // or key ARN of the CMK. For example: + // Identifies a customer managed key in the account and Region. Specify the key ID + // or key ARN of the KMS key. For example: // // * Key ID: // 1234abcd-12ab-34cd-56ef-1234567890ab @@ -80,15 +80,15 @@ type TagResourceInput struct { // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab // // To - // get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. + // get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. // // This member is required. KeyId *string // One or more tags. Each tag consists of a tag key and a tag value. The tag value - // can be an empty (null) string. You cannot have more than one tag on a CMK with - // the same tag key. If you specify an existing tag key with a different tag value, - // AWS KMS replaces the current tag value with the specified one. + // can be an empty (null) string. You cannot have more than one tag on a KMS key + // with the same tag key. If you specify an existing tag key with a different tag + // value, KMS replaces the current tag value with the specified one. // // This member is required. Tags []types.Tag diff --git a/service/kms/api_op_UntagResource.go b/service/kms/api_op_UntagResource.go index 87d938c1cf4..e10da9d2034 100644 --- a/service/kms/api_op_UntagResource.go +++ b/service/kms/api_op_UntagResource.go @@ -10,26 +10,26 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes tags from a customer managed CMK +// Deletes tags from a customer managed key // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk). -// To delete a tag, specify the tag key and the CMK. Tagging or untagging a CMK can -// allow or deny permission to the CMK. For details, see Using ABAC in AWS KMS -// (https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in the AWS Key +// To delete a tag, specify the tag key and the KMS key. Tagging or untagging a KMS +// key can allow or deny permission to the KMS key. For details, see Using ABAC in +// KMS (https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in the Key // Management Service Developer Guide. When it succeeds, the UntagResource // operation doesn't return any output. Also, if the specified tag key isn't found -// on the CMK, it doesn't throw an exception or return a response. To confirm that -// the operation worked, use the ListResourceTags operation. For information about -// using tags in AWS KMS, see Tagging keys +// on the KMS key, it doesn't throw an exception or return a response. To confirm +// that the operation worked, use the ListResourceTags operation. For information +// about using tags in KMS, see Tagging keys // (https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html). For -// general information about tags, including the format and syntax, see Tagging AWS -// resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in -// the Amazon Web Services General Reference. The CMK that you use for this -// operation must be in a compatible key state. For details, see Key state: Effect -// on your CMK +// general information about tags, including the format and syntax, see Tagging +// Amazon Web Services resources +// (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the Amazon +// Web Services General Reference. The KMS key that you use for this operation must +// be in a compatible key state. For details, see Key state: Effect on your KMS key // (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the -// AWS Key Management Service Developer Guide. Cross-account use: No. You cannot -// perform this operation on a CMK in a different AWS account. Required -// permissions: kms:UntagResource +// Key Management Service Developer Guide. Cross-account use: No. You cannot +// perform this operation on a KMS key in a different Amazon Web Services account. +// Required permissions: kms:UntagResource // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (key policy) Related operations // @@ -58,17 +58,17 @@ func (c *Client) UntagResource(ctx context.Context, params *UntagResourceInput, type UntagResourceInput struct { - // Identifies the CMK from which you are removing tags. Specify the key ID or key - // ARN of the CMK. For example: + // Identifies the KMS key from which you are removing tags. Specify the key ID or + // key ARN of the KMS key. For example: // - // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab + // * Key ID: + // 1234abcd-12ab-34cd-56ef-1234567890ab // - // * - // Key ARN: + // * Key ARN: // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab // // To - // get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. + // get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. // // This member is required. KeyId *string diff --git a/service/kms/api_op_UpdateAlias.go b/service/kms/api_op_UpdateAlias.go index a756eeb3c49..e35850370d9 100644 --- a/service/kms/api_op_UpdateAlias.go +++ b/service/kms/api_op_UpdateAlias.go @@ -10,29 +10,29 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Associates an existing AWS KMS alias with a different customer master key (CMK). -// Each alias is associated with only one CMK at a time, although a CMK can have -// multiple aliases. The alias and the CMK must be in the same AWS account and -// Region. Adding, deleting, or updating an alias can allow or deny permission to -// the CMK. For details, see Using ABAC in AWS KMS -// (https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in the AWS Key -// Management Service Developer Guide. The current and new CMK must be the same +// Associates an existing KMS alias with a different KMS key. Each alias is +// associated with only one KMS key at a time, although a KMS key can have multiple +// aliases. The alias and the KMS key must be in the same Amazon Web Services +// account and Region. Adding, deleting, or updating an alias can allow or deny +// permission to the KMS key. For details, see Using ABAC in KMS +// (https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in the Key +// Management Service Developer Guide. The current and new KMS key must be the same // type (both symmetric or both asymmetric), and they must have the same key usage // (ENCRYPT_DECRYPT or SIGN_VERIFY). This restriction prevents errors in code that -// uses aliases. If you must assign an alias to a different type of CMK, use +// uses aliases. If you must assign an alias to a different type of KMS key, use // DeleteAlias to delete the old alias and CreateAlias to create a new alias. You // cannot use UpdateAlias to change an alias name. To change an alias name, use // DeleteAlias to delete the old alias and CreateAlias to create a new alias. -// Because an alias is not a property of a CMK, you can create, update, and delete -// the aliases of a CMK without affecting the CMK. Also, aliases do not appear in -// the response from the DescribeKey operation. To get the aliases of all CMKs in -// the account, use the ListAliases operation. The CMK that you use for this -// operation must be in a compatible key state. For details, see Key state: Effect -// on your CMK +// Because an alias is not a property of a KMS key, you can create, update, and +// delete the aliases of a KMS key without affecting the KMS key. Also, aliases do +// not appear in the response from the DescribeKey operation. To get the aliases of +// all KMS keys in the account, use the ListAliases operation. The KMS key that you +// use for this operation must be in a compatible key state. For details, see Key +// state: Effect on your KMS key // (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the -// AWS Key Management Service Developer Guide. Cross-account use: No. You cannot -// perform this operation on a CMK in a different AWS account. Required -// permissions +// Key Management Service Developer Guide. Cross-account use: No. You cannot +// perform this operation on a KMS key in a different Amazon Web Services account. +// Required permissions // // * kms:UpdateAlias // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) @@ -40,15 +40,15 @@ import ( // // * kms:UpdateAlias // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) -// on the current CMK (key policy). +// on the current KMS key (key policy). // // * kms:UpdateAlias // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) -// on the new CMK (key policy). +// on the new KMS key (key policy). // // For details, see Controlling access to aliases // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html#alias-access) -// in the AWS Key Management Service Developer Guide. Related operations: +// in the Key Management Service Developer Guide. Related operations: // // * // CreateAlias @@ -73,22 +73,22 @@ func (c *Client) UpdateAlias(ctx context.Context, params *UpdateAliasInput, optF type UpdateAliasInput struct { - // Identifies the alias that is changing its CMK. This value must begin with alias/ - // followed by the alias name, such as alias/ExampleAlias. You cannot use + // Identifies the alias that is changing its KMS key. This value must begin with + // alias/ followed by the alias name, such as alias/ExampleAlias. You cannot use // UpdateAlias to change the alias name. // // This member is required. AliasName *string - // Identifies the customer managed CMK + // Identifies the customer managed key // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) // to associate with the alias. You don't have permission to associate an alias - // with an AWS managed CMK + // with an Amazon Web Services managed key // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk). - // The CMK must be in the same AWS account and Region as the alias. Also, the new - // target CMK must be the same type as the current target CMK (both symmetric or - // both asymmetric) and they must have the same key usage. Specify the key ID or - // key ARN of the CMK. For example: + // The KMS key must be in the same Amazon Web Services account and Region as the + // alias. Also, the new target KMS key must be the same type as the current target + // KMS key (both symmetric or both asymmetric) and they must have the same key + // usage. Specify the key ID or key ARN of the KMS key. For example: // // * Key ID: // 1234abcd-12ab-34cd-56ef-1234567890ab @@ -97,8 +97,8 @@ type UpdateAliasInput struct { // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab // // To - // get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To verify - // that the alias is mapped to the correct CMK, use ListAliases. + // get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To verify + // that the alias is mapped to the correct KMS key, use ListAliases. // // This member is required. TargetKeyId *string diff --git a/service/kms/api_op_UpdateCustomKeyStore.go b/service/kms/api_op_UpdateCustomKeyStore.go index 1fb0bb05e20..1e7f24cf5ab 100644 --- a/service/kms/api_op_UpdateCustomKeyStore.go +++ b/service/kms/api_op_UpdateCustomKeyStore.go @@ -24,28 +24,28 @@ import ( // store to the value that you specify. // // * Use the KeyStorePassword parameter tell -// AWS KMS the current password of the kmsuser crypto user (CU) +// KMS the current password of the kmsuser crypto user (CU) // (https://docs.aws.amazon.com/kms/latest/developerguide/key-store-concepts.html#concept-kmsuser) -// in the associated AWS CloudHSM cluster. You can use this parameter to fix -// connection failures +// in the associated CloudHSM cluster. You can use this parameter to fix connection +// failures // (https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-password) -// that occur when AWS KMS cannot log into the associated cluster because the -// kmsuser password has changed. This value does not change the password in the AWS -// CloudHSM cluster. +// that occur when KMS cannot log into the associated cluster because the kmsuser +// password has changed. This value does not change the password in the CloudHSM +// cluster. // -// * Use the CloudHsmClusterId parameter to associate the custom -// key store with a different, but related, AWS CloudHSM cluster. You can use this -// parameter to repair a custom key store if its AWS CloudHSM cluster becomes -// corrupted or is deleted, or when you need to create or restore a cluster from a +// * Use the CloudHsmClusterId parameter to associate the custom key +// store with a different, but related, CloudHSM cluster. You can use this +// parameter to repair a custom key store if its CloudHSM cluster becomes corrupted +// or is deleted, or when you need to create or restore a cluster from a // backup. // // If the operation succeeds, it returns a JSON object with no properties. // This operation is part of the Custom Key Store feature // (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html) -// feature in AWS KMS, which combines the convenience and extensive integration of -// AWS KMS with the isolation and control of a single-tenant key store. -// Cross-account use: No. You cannot perform this operation on a custom key store -// in a different AWS account. Required permissions: kms:UpdateCustomKeyStore +// feature in KMS, which combines the convenience and extensive integration of KMS +// with the isolation and control of a single-tenant key store. Cross-account use: +// No. You cannot perform this operation on a custom key store in a different +// Amazon Web Services account. Required permissions: kms:UpdateCustomKeyStore // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (IAM policy) Related operations: // @@ -84,7 +84,7 @@ type UpdateCustomKeyStoreInput struct { // This member is required. CustomKeyStoreId *string - // Associates the custom key store with a related AWS CloudHSM cluster. Enter the + // Associates the custom key store with a related CloudHSM cluster. Enter the // cluster ID of the cluster that you used to create the custom key store or a // cluster that shares a backup history and has the same cluster certificate as the // original cluster. You cannot use this parameter to associate a custom key store @@ -97,14 +97,14 @@ type UpdateCustomKeyStoreInput struct { // operation. CloudHsmClusterId *string - // Enter the current password of the kmsuser crypto user (CU) in the AWS CloudHSM - // cluster that is associated with the custom key store. This parameter tells AWS - // KMS the current password of the kmsuser crypto user (CU). It does not set or - // change the password of any users in the AWS CloudHSM cluster. + // Enter the current password of the kmsuser crypto user (CU) in the CloudHSM + // cluster that is associated with the custom key store. This parameter tells KMS + // the current password of the kmsuser crypto user (CU). It does not set or change + // the password of any users in the CloudHSM cluster. KeyStorePassword *string // Changes the friendly name of the custom key store to the value that you specify. - // The custom key store name must be unique in the AWS account. + // The custom key store name must be unique in the Amazon Web Services account. NewCustomKeyStoreName *string noSmithyDocumentSerde diff --git a/service/kms/api_op_UpdateKeyDescription.go b/service/kms/api_op_UpdateKeyDescription.go index 46ead1080f9..1620f090ef5 100644 --- a/service/kms/api_op_UpdateKeyDescription.go +++ b/service/kms/api_op_UpdateKeyDescription.go @@ -10,13 +10,13 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Updates the description of a customer master key (CMK). To see the description -// of a CMK, use DescribeKey. The CMK that you use for this operation must be in a -// compatible key state. For details, see Key state: Effect on your CMK +// Updates the description of a KMS key. To see the description of a KMS key, use +// DescribeKey. The KMS key that you use for this operation must be in a compatible +// key state. For details, see Key state: Effect on your KMS key // (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the -// AWS Key Management Service Developer Guide. Cross-account use: No. You cannot -// perform this operation on a CMK in a different AWS account. Required -// permissions: kms:UpdateKeyDescription +// Key Management Service Developer Guide. Cross-account use: No. You cannot +// perform this operation on a KMS key in a different Amazon Web Services account. +// Required permissions: kms:UpdateKeyDescription // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (key policy) Related operations // @@ -40,22 +40,22 @@ func (c *Client) UpdateKeyDescription(ctx context.Context, params *UpdateKeyDesc type UpdateKeyDescriptionInput struct { - // New description for the CMK. + // New description for the KMS key. // // This member is required. Description *string - // Updates the description of the specified customer master key (CMK). Specify the - // key ID or key ARN of the CMK. For example: + // Updates the description of the specified KMS key. Specify the key ID or key ARN + // of the KMS key. For example: // - // * Key ID: - // 1234abcd-12ab-34cd-56ef-1234567890ab + // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab // - // * Key ARN: + // * + // Key ARN: // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab // // To - // get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. + // get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. // // This member is required. KeyId *string diff --git a/service/kms/api_op_UpdatePrimaryRegion.go b/service/kms/api_op_UpdatePrimaryRegion.go index ec4d4c15305..d11ecb2a021 100644 --- a/service/kms/api_op_UpdatePrimaryRegion.go +++ b/service/kms/api_op_UpdatePrimaryRegion.go @@ -15,17 +15,21 @@ import ( // primary key to a replica key. For example, suppose you have a primary key in // us-east-1 and a replica key in eu-west-2. If you run UpdatePrimaryRegion with a // PrimaryRegion value of eu-west-2, the primary key is now the key in eu-west-2, -// and the key in us-east-1 becomes a replica key. For details, see This operation -// supports multi-Region keys, an AWS KMS feature that lets you create multiple -// interoperable CMKs in different AWS Regions. Because these CMKs have the same -// key ID, key material, and other metadata, you can use them to encrypt data in -// one AWS Region and decrypt it in a different AWS Region without making a -// cross-Region call or exposing the plaintext data. For more information about -// multi-Region keys, see Using multi-Region keys +// and the key in us-east-1 becomes a replica key. For details, see Updating the +// primary Region +// (https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-update) +// in the Key Management Service Developer Guide. This operation supports +// multi-Region keys, an KMS feature that lets you create multiple interoperable +// KMS keys in different Amazon Web Services Regions. Because these KMS keys have +// the same key ID, key material, and other metadata, you can use them +// interchangeably to encrypt data in one Amazon Web Services Region and decrypt it +// in a different Amazon Web Services Region without re-encrypting the data or +// making a cross-Region call. For more information about multi-Region keys, see +// Using multi-Region keys // (https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) -// in the AWS Key Management Service Developer Guide. The primary key of a -// multi-Region key is the source for properties that are always shared by primary -// and replica keys, including the key material, key ID +// in the Key Management Service Developer Guide. The primary key of a multi-Region +// key is the source for properties that are always shared by primary and replica +// keys, including the key material, key ID // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-id), // key spec // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-spec), @@ -37,12 +41,12 @@ import ( // (https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html). It's // the only key that can be replicated. You cannot delete the primary key // (https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html) -// until all replicas are deleted. The key ID and primary Region that you specify -// uniquely identify the replica key that will become the primary key. The primary -// Region must already have a replica key. This operation does not create a CMK in -// the specified Region. To find the replica keys, use the DescribeKey operation on -// the primary key or any replica key. To create a replica key, use the -// ReplicateKey operation. You can run this operation while using the affected +// until all replica keys are deleted. The key ID and primary Region that you +// specify uniquely identify the replica key that will become the primary key. The +// primary Region must already have a replica key. This operation does not create a +// KMS key in the specified Region. To find the replica keys, use the DescribeKey +// operation on the primary key or any replica key. To create a replica key, use +// the ReplicateKey operation. You can run this operation while using the affected // multi-Region keys in cryptographic operations. This operation should not delay, // interrupt, or cause failures in cryptographic operations. Even after this // operation completes, the process of updating the primary Region might still be @@ -52,18 +56,18 @@ import ( // update is complete. While the key state is Updating, you can use the keys in // cryptographic operations, but you cannot replicate the new primary key or // perform certain management operations, such as enabling or disabling these keys. -// For details about the Updating key state, see Key state: Effect on your CMK in -// the AWS Key Management Service Developer Guide. This operation does not return +// For details about the Updating key state, see Key state: Effect on your KMS key +// in the Key Management Service Developer Guide. This operation does not return // any output. To verify that primary key is changed, use the DescribeKey // operation. Cross-account use: No. You cannot use this operation in a different -// AWS account. Required permissions: +// Amazon Web Services account. Required permissions: // -// * kms:UpdatePrimaryRegion on the current -// primary CMK (in the primary CMK's Region). Include this permission primary CMK's -// key policy. +// * kms:UpdatePrimaryRegion on +// the current primary key (in the primary key's Region). Include this permission +// primary key's key policy. // -// * kms:UpdatePrimaryRegion on the current replica CMK (in the -// replica CMK's Region). Include this permission in the replica CMK's key +// * kms:UpdatePrimaryRegion on the current replica key +// (in the replica key's Region). Include this permission in the replica key's key // policy. // // Related operations @@ -88,9 +92,9 @@ func (c *Client) UpdatePrimaryRegion(ctx context.Context, params *UpdatePrimaryR type UpdatePrimaryRegionInput struct { - // Identifies the current primary key. When the operation completes, this CMK will - // be a replica key. Specify the key ID or key ARN of a multi-Region primary key. - // For example: + // Identifies the current primary key. When the operation completes, this KMS key + // will be a replica key. Specify the key ID or key ARN of a multi-Region primary + // key. For example: // // * Key ID: mrk-1234abcd12ab34cd56ef1234567890ab // @@ -98,15 +102,15 @@ type UpdatePrimaryRegionInput struct { // arn:aws:kms:us-east-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab // // To - // get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. + // get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. // // This member is required. KeyId *string - // The AWS Region of the new primary key. Enter the Region ID, such as us-east-1 or - // ap-southeast-2. There must be an existing replica key in this Region. When the - // operation completes, the multi-Region key in this Region will be the primary - // key. + // The Amazon Web Services Region of the new primary key. Enter the Region ID, such + // as us-east-1 or ap-southeast-2. There must be an existing replica key in this + // Region. When the operation completes, the multi-Region key in this Region will + // be the primary key. // // This member is required. PrimaryRegion *string diff --git a/service/kms/api_op_Verify.go b/service/kms/api_op_Verify.go index e59f7149d8c..87484d47b8f 100644 --- a/service/kms/api_op_Verify.go +++ b/service/kms/api_op_Verify.go @@ -13,30 +13,32 @@ import ( // Verifies a digital signature that was generated by the Sign operation. // Verification confirms that an authorized user signed the message with the -// specified CMK and signing algorithm, and the message hasn't changed since it was -// signed. If the signature is verified, the value of the SignatureValid field in -// the response is True. If the signature verification fails, the Verify operation -// fails with an KMSInvalidSignatureException exception. A digital signature is -// generated by using the private key in an asymmetric CMK. The signature is -// verified by using the public key in the same asymmetric CMK. For information -// about symmetric and asymmetric CMKs, see Using Symmetric and Asymmetric CMKs +// specified KMS key and signing algorithm, and the message hasn't changed since it +// was signed. If the signature is verified, the value of the SignatureValid field +// in the response is True. If the signature verification fails, the Verify +// operation fails with an KMSInvalidSignatureException exception. A digital +// signature is generated by using the private key in an asymmetric KMS key. The +// signature is verified by using the public key in the same asymmetric KMS key. +// For information about symmetric and asymmetric KMS keys, see Using Symmetric and +// Asymmetric KMS keys // (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) -// in the AWS Key Management Service Developer Guide. To verify a digital -// signature, you can use the Verify operation. Specify the same asymmetric CMK, -// message, and signing algorithm that were used to produce the signature. You can -// also verify the digital signature by using the public key of the CMK outside of -// AWS KMS. Use the GetPublicKey operation to download the public key in the -// asymmetric CMK and then use the public key to verify the signature outside of -// AWS KMS. The advantage of using the Verify operation is that it is performed -// within AWS KMS. As a result, it's easy to call, the operation is performed -// within the FIPS boundary, it is logged in AWS CloudTrail, and you can use key -// policy and IAM policy to determine who is authorized to use the CMK to verify -// signatures. The CMK that you use for this operation must be in a compatible key -// state. For details, see Key state: Effect on your CMK +// in the Key Management Service Developer Guide. To verify a digital signature, +// you can use the Verify operation. Specify the same asymmetric KMS key, message, +// and signing algorithm that were used to produce the signature. You can also +// verify the digital signature by using the public key of the KMS key outside of +// KMS. Use the GetPublicKey operation to download the public key in the asymmetric +// KMS key and then use the public key to verify the signature outside of KMS. The +// advantage of using the Verify operation is that it is performed within KMS. As a +// result, it's easy to call, the operation is performed within the FIPS boundary, +// it is logged in CloudTrail, and you can use key policy and IAM policy to +// determine who is authorized to use the KMS key to verify signatures. The KMS key +// that you use for this operation must be in a compatible key state. For details, +// see Key state: Effect on your KMS key // (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the -// AWS Key Management Service Developer Guide. Cross-account use: Yes. To perform -// this operation with a CMK in a different AWS account, specify the key ARN or -// alias ARN in the value of the KeyId parameter. Required permissions: kms:Verify +// Key Management Service Developer Guide. Cross-account use: Yes. To perform this +// operation with a KMS key in a different Amazon Web Services account, specify the +// key ARN or alias ARN in the value of the KeyId parameter. Required permissions: +// kms:Verify // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (key policy) Related operations: Sign func (c *Client) Verify(ctx context.Context, params *VerifyInput, optFns ...func(*Options)) (*VerifyOutput, error) { @@ -56,17 +58,17 @@ func (c *Client) Verify(ctx context.Context, params *VerifyInput, optFns ...func type VerifyInput struct { - // Identifies the asymmetric CMK that will be used to verify the signature. This - // must be the same CMK that was used to generate the signature. If you specify a - // different CMK, the signature verification fails. To specify a CMK, use its key - // ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with - // "alias/". To specify a CMK in a different AWS account, you must use the key ARN - // or alias ARN. For example: + // Identifies the asymmetric KMS key that will be used to verify the signature. + // This must be the same KMS key that was used to generate the signature. If you + // specify a different KMS key, the signature verification fails. To specify a KMS + // key, use its key ID, key ARN, alias name, or alias ARN. When using an alias + // name, prefix it with "alias/". To specify a KMS key in a different Amazon Web + // Services account, you must use the key ARN or alias ARN. For example: // - // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab + // * Key ID: + // 1234abcd-12ab-34cd-56ef-1234567890ab // - // * - // Key ARN: + // * Key ARN: // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab // // * @@ -76,8 +78,8 @@ type VerifyInput struct { // arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias // // To get the key ID and key - // ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, - // use ListAliases. + // ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias + // ARN, use ListAliases. // // This member is required. KeyId *string @@ -105,11 +107,13 @@ type VerifyInput struct { // A list of grant tokens. Use a grant token when your permission to call this // operation comes from a new grant that has not yet achieved eventual consistency. // For more information, see Grant token - // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token) - // in the AWS Key Management Service Developer Guide. + // (https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) + // and Using a grant token + // (https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token) + // in the Key Management Service Developer Guide. GrantTokens []string - // Tells AWS KMS whether the value of the Message parameter is a message or message + // Tells KMS whether the value of the Message parameter is a message or message // digest. The default value, RAW, indicates a message. To indicate a message // digest, enter DIGEST. Use the DIGEST value only when the value of the Message // parameter is a message digest. If you use the DIGEST value with a raw message, @@ -123,7 +127,7 @@ type VerifyOutput struct { // The Amazon Resource Name (key ARN // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN)) - // of the asymmetric CMK that was used to verify the signature. + // of the asymmetric KMS key that was used to verify the signature. KeyId *string // A Boolean value that indicates whether the signature was verified. A value of diff --git a/service/kms/deserializers.go b/service/kms/deserializers.go index 916e3c0e851..51e87fc53de 100644 --- a/service/kms/deserializers.go +++ b/service/kms/deserializers.go @@ -8708,6 +8708,15 @@ func awsAwsjson11_deserializeDocumentKeyMetadata(v **types.KeyMetadata, value in sv.KeyManager = types.KeyManagerType(jtv) } + case "KeySpec": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected KeySpec to be of type string, got %T instead", value) + } + sv.KeySpec = types.KeySpec(jtv) + } + case "KeyState": if value != nil { jtv, ok := value.(string) @@ -10445,6 +10454,15 @@ func awsAwsjson11_deserializeOpDocumentGetPublicKeyOutput(v **GetPublicKeyOutput sv.KeyId = ptr.String(jtv) } + case "KeySpec": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected KeySpec to be of type string, got %T instead", value) + } + sv.KeySpec = types.KeySpec(jtv) + } + case "KeyUsage": if value != nil { jtv, ok := value.(string) diff --git a/service/kms/doc.go b/service/kms/doc.go index 464a63b0e75..d1b1b6e0900 100644 --- a/service/kms/doc.go +++ b/service/kms/doc.go @@ -3,44 +3,49 @@ // Package kms provides the API client, operations, and parameter types for AWS Key // Management Service. // -// AWS Key Management Service AWS Key Management Service (AWS KMS) is an encryption -// and key management web service. This guide describes the AWS KMS operations that -// you can call programmatically. For general information about AWS KMS, see the -// AWS Key Management Service Developer Guide -// (https://docs.aws.amazon.com/kms/latest/developerguide/). AWS provides SDKs that -// consist of libraries and sample code for various programming languages and -// platforms (Java, Ruby, .Net, macOS, Android, etc.). The SDKs provide a -// convenient way to create programmatic access to AWS KMS and other AWS services. -// For example, the SDKs take care of tasks such as signing requests (see below), -// managing errors, and retrying requests automatically. For more information about -// the AWS SDKs, including how to download and install them, see Tools for Amazon -// Web Services (http://aws.amazon.com/tools/). We recommend that you use the AWS -// SDKs to make programmatic API calls to AWS KMS. Clients must support TLS +// Key Management Service Key Management Service (KMS) is an encryption and key +// management web service. This guide describes the KMS operations that you can +// call programmatically. For general information about KMS, see the Key +// Management Service Developer Guide +// (https://docs.aws.amazon.com/kms/latest/developerguide/). KMS is replacing the +// term customer master key (CMK) with KMS key and KMS key. The concept has not +// changed. To prevent breaking changes, KMS is keeping some variations of this +// term. Amazon Web Services provides SDKs that consist of libraries and sample +// code for various programming languages and platforms (Java, Ruby, .Net, macOS, +// Android, etc.). The SDKs provide a convenient way to create programmatic access +// to KMS and other Amazon Web Services services. For example, the SDKs take care +// of tasks such as signing requests (see below), managing errors, and retrying +// requests automatically. For more information about the Amazon Web Services SDKs, +// including how to download and install them, see Tools for Amazon Web Services +// (http://aws.amazon.com/tools/). +// +// We recommend that you use the Amazon Web +// Services SDKs to make programmatic API calls to KMS. Clients must support TLS // (Transport Layer Security) 1.0. We recommend TLS 1.2. Clients must also support // cipher suites with Perfect Forward Secrecy (PFS) such as Ephemeral // Diffie-Hellman (DHE) or Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). Most // modern systems such as Java 7 and later support these modes. Signing Requests // Requests must be signed by using an access key ID and a secret access key. We -// strongly recommend that you do not use your AWS account (root) access key ID and -// secret key for everyday work with AWS KMS. Instead, use the access key ID and -// secret access key for an IAM user. You can also use the AWS Security Token -// Service to generate temporary security credentials that you can use to sign -// requests. All AWS KMS operations require Signature Version 4 +// strongly recommend that you do not use your Amazon Web Services account (root) +// access key ID and secret key for everyday work with KMS. Instead, use the access +// key ID and secret access key for an IAM user. You can also use the Amazon Web +// Services Security Token Service to generate temporary security credentials that +// you can use to sign requests. All KMS operations require Signature Version 4 // (https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). -// Logging API Requests AWS KMS supports AWS CloudTrail, a service that logs AWS -// API calls and related events for your AWS account and delivers them to an Amazon -// S3 bucket that you specify. By using the information collected by CloudTrail, -// you can determine what requests were made to AWS KMS, who made the request, when -// it was made, and so on. To learn more about CloudTrail, including how to turn it -// on and find your log files, see the AWS CloudTrail User Guide -// (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/). Additional +// Logging API Requests KMS supports CloudTrail, a service that logs Amazon Web +// Services API calls and related events for your Amazon Web Services account and +// delivers them to an Amazon S3 bucket that you specify. By using the information +// collected by CloudTrail, you can determine what requests were made to KMS, who +// made the request, when it was made, and so on. To learn more about CloudTrail, +// including how to turn it on and find your log files, see the CloudTrail User +// Guide (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/). Additional // Resources For more information about credentials and request signing, see the // following: // -// * AWS Security Credentials +// * Amazon Web Services Security Credentials // (https://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html) - -// This topic provides general information about the types of credentials used for -// accessing AWS. +// This topic provides general information about the types of credentials used to +// access Amazon Web Services. // // * Temporary Security Credentials // (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) - diff --git a/service/kms/serializers.go b/service/kms/serializers.go index 9d8fb0102fd..63293f55eb1 100644 --- a/service/kms/serializers.go +++ b/service/kms/serializers.go @@ -2505,6 +2505,11 @@ func awsAwsjson11_serializeOpDocumentCreateKeyInput(v *CreateKeyInput, value smi ok.String(*v.Description) } + if len(v.KeySpec) > 0 { + ok := object.Key("KeySpec") + ok.String(string(v.KeySpec)) + } + if len(v.KeyUsage) > 0 { ok := object.Key("KeyUsage") ok.String(string(v.KeyUsage)) diff --git a/service/kms/types/enums.go b/service/kms/types/enums.go index 6f80f250b69..4b28e96ef4c 100644 --- a/service/kms/types/enums.go +++ b/service/kms/types/enums.go @@ -252,6 +252,36 @@ func (KeyManagerType) Values() []KeyManagerType { } } +type KeySpec string + +// Enum values for KeySpec +const ( + KeySpecRsa2048 KeySpec = "RSA_2048" + KeySpecRsa3072 KeySpec = "RSA_3072" + KeySpecRsa4096 KeySpec = "RSA_4096" + KeySpecEccNistP256 KeySpec = "ECC_NIST_P256" + KeySpecEccNistP384 KeySpec = "ECC_NIST_P384" + KeySpecEccNistP521 KeySpec = "ECC_NIST_P521" + KeySpecEccSecgP256k1 KeySpec = "ECC_SECG_P256K1" + KeySpecSymmetricDefault KeySpec = "SYMMETRIC_DEFAULT" +) + +// Values returns all known values for KeySpec. Note that this can be expanded in +// the future, and so it is only as up to date as the client. The ordering of this +// slice is not guaranteed to be stable across updates. +func (KeySpec) Values() []KeySpec { + return []KeySpec{ + "RSA_2048", + "RSA_3072", + "RSA_4096", + "ECC_NIST_P256", + "ECC_NIST_P384", + "ECC_NIST_P521", + "ECC_SECG_P256K1", + "SYMMETRIC_DEFAULT", + } +} + type KeyState string // Enum values for KeyState diff --git a/service/kms/types/errors.go b/service/kms/types/errors.go index 0be82885e85..18a4b63b4ac 100644 --- a/service/kms/types/errors.go +++ b/service/kms/types/errors.go @@ -27,10 +27,10 @@ func (e *AlreadyExistsException) ErrorMessage() string { func (e *AlreadyExistsException) ErrorCode() string { return "AlreadyExistsException" } func (e *AlreadyExistsException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// The request was rejected because the specified AWS CloudHSM cluster is already +// The request was rejected because the specified CloudHSM cluster is already // associated with a custom key store or it shares a backup history with a cluster // that is associated with a custom key store. Each custom key store must be -// associated with a different AWS CloudHSM cluster. Clusters that share a backup +// associated with a different CloudHSM cluster. Clusters that share a backup // history have the same cluster certificate. To view the cluster certificate of a // cluster, use the DescribeClusters // (https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html) @@ -53,12 +53,12 @@ func (e *CloudHsmClusterInUseException) ErrorMessage() string { func (e *CloudHsmClusterInUseException) ErrorCode() string { return "CloudHsmClusterInUseException" } func (e *CloudHsmClusterInUseException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// The request was rejected because the associated AWS CloudHSM cluster did not -// meet the configuration requirements for a custom key store. +// The request was rejected because the associated CloudHSM cluster did not meet +// the configuration requirements for a custom key store. // -// * The cluster must -// be configured with private subnets in at least two different Availability Zones -// in the Region. +// * The cluster must be +// configured with private subnets in at least two different Availability Zones in +// the Region. // // * The security group for the cluster // (https://docs.aws.amazon.com/cloudhsm/latest/userguide/configure-sg.html) @@ -72,25 +72,24 @@ func (e *CloudHsmClusterInUseException) ErrorFault() smithy.ErrorFault { return // operation. // // * The cluster must contain at least as many HSMs as the operation -// requires. To add HSMs, use the AWS CloudHSM CreateHsm +// requires. To add HSMs, use the CloudHSM CreateHsm // (https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_CreateHsm.html) // operation. For the CreateCustomKeyStore, UpdateCustomKeyStore, and CreateKey -// operations, the AWS CloudHSM cluster must have at least two active HSMs, each in -// a different Availability Zone. For the ConnectCustomKeyStore operation, the AWS +// operations, the CloudHSM cluster must have at least two active HSMs, each in a +// different Availability Zone. For the ConnectCustomKeyStore operation, the // CloudHSM must contain at least one active HSM. // // For information about the -// requirements for an AWS CloudHSM cluster that is associated with a custom key -// store, see Assemble the Prerequisites +// requirements for an CloudHSM cluster that is associated with a custom key store, +// see Assemble the Prerequisites // (https://docs.aws.amazon.com/kms/latest/developerguide/create-keystore.html#before-keystore) -// in the AWS Key Management Service Developer Guide. For information about -// creating a private subnet for an AWS CloudHSM cluster, see Create a Private -// Subnet +// in the Key Management Service Developer Guide. For information about creating a +// private subnet for an CloudHSM cluster, see Create a Private Subnet // (https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-subnets.html) in -// the AWS CloudHSM User Guide. For information about cluster security groups, see +// the CloudHSM User Guide. For information about cluster security groups, see // Configure a Default Security Group // (https://docs.aws.amazon.com/cloudhsm/latest/userguide/configure-sg.html) in the -// AWS CloudHSM User Guide . +// CloudHSM User Guide . type CloudHsmClusterInvalidConfigurationException struct { Message *string @@ -113,11 +112,11 @@ func (e *CloudHsmClusterInvalidConfigurationException) ErrorFault() smithy.Error return smithy.FaultClient } -// The request was rejected because the AWS CloudHSM cluster that is associated -// with the custom key store is not active. Initialize and activate the cluster and -// try the command again. For detailed instructions, see Getting Started +// The request was rejected because the CloudHSM cluster that is associated with +// the custom key store is not active. Initialize and activate the cluster and try +// the command again. For detailed instructions, see Getting Started // (https://docs.aws.amazon.com/cloudhsm/latest/userguide/getting-started.html) in -// the AWS CloudHSM User Guide. +// the CloudHSM User Guide. type CloudHsmClusterNotActiveException struct { Message *string @@ -138,8 +137,8 @@ func (e *CloudHsmClusterNotActiveException) ErrorCode() string { } func (e *CloudHsmClusterNotActiveException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// The request was rejected because AWS KMS cannot find the AWS CloudHSM cluster -// with the specified cluster ID. Retry the request with a different cluster ID. +// The request was rejected because KMS cannot find the CloudHSM cluster with the +// specified cluster ID. Retry the request with a different cluster ID. type CloudHsmClusterNotFoundException struct { Message *string @@ -160,14 +159,14 @@ func (e *CloudHsmClusterNotFoundException) ErrorCode() string { } func (e *CloudHsmClusterNotFoundException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// The request was rejected because the specified AWS CloudHSM cluster has a -// different cluster certificate than the original cluster. You cannot use the -// operation to specify an unrelated cluster. Specify a cluster that shares a -// backup history with the original cluster. This includes clusters that were -// created from a backup of the current cluster, and clusters that were created -// from the same backup that produced the current cluster. Clusters that share a -// backup history have the same cluster certificate. To view the cluster -// certificate of a cluster, use the DescribeClusters +// The request was rejected because the specified CloudHSM cluster has a different +// cluster certificate than the original cluster. You cannot use the operation to +// specify an unrelated cluster. Specify a cluster that shares a backup history +// with the original cluster. This includes clusters that were created from a +// backup of the current cluster, and clusters that were created from the same +// backup that produced the current cluster. Clusters that share a backup history +// have the same cluster certificate. To view the cluster certificate of a cluster, +// use the DescribeClusters // (https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html) // operation. type CloudHsmClusterNotRelatedException struct { @@ -192,10 +191,10 @@ func (e *CloudHsmClusterNotRelatedException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// The request was rejected because the custom key store contains AWS KMS customer -// master keys (CMKs). After verifying that you do not need to use the CMKs, use -// the ScheduleKeyDeletion operation to delete the CMKs. After they are deleted, -// you can delete the custom key store. +// The request was rejected because the custom key store contains KMS keys. After +// verifying that you do not need to use the KMS keys, use the ScheduleKeyDeletion +// operation to delete the KMS keys. After they are deleted, you can delete the +// custom key store. type CustomKeyStoreHasCMKsException struct { Message *string @@ -276,7 +275,7 @@ func (e *CustomKeyStoreNameInUseException) ErrorCode() string { } func (e *CustomKeyStoreNameInUseException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// The request was rejected because AWS KMS cannot find a custom key store with the +// The request was rejected because KMS cannot find a custom key store with the // specified key store name or ID. type CustomKeyStoreNotFoundException struct { Message *string @@ -318,7 +317,7 @@ func (e *DependencyTimeoutException) ErrorMessage() string { func (e *DependencyTimeoutException) ErrorCode() string { return "DependencyTimeoutException" } func (e *DependencyTimeoutException) ErrorFault() smithy.ErrorFault { return smithy.FaultServer } -// The request was rejected because the specified CMK is not enabled. +// The request was rejected because the specified KMS key is not enabled. type DisabledException struct { Message *string @@ -358,9 +357,9 @@ func (e *ExpiredImportTokenException) ErrorMessage() string { func (e *ExpiredImportTokenException) ErrorCode() string { return "ExpiredImportTokenException" } func (e *ExpiredImportTokenException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// The request was rejected because the specified CMK cannot decrypt the data. The -// KeyId in a Decrypt request and the SourceKeyId in a ReEncrypt request must -// identify the same CMK that was used to encrypt the ciphertext. +// The request was rejected because the specified KMS key cannot decrypt the data. +// The KeyId in a Decrypt request and the SourceKeyId in a ReEncrypt request must +// identify the same KMS key that was used to encrypt the ciphertext. type IncorrectKeyException struct { Message *string @@ -381,7 +380,7 @@ func (e *IncorrectKeyException) ErrorFault() smithy.ErrorFault { return smithy.F // The request was rejected because the key material in the request is, expired, // invalid, or is not the same key material that was previously imported into this -// customer master key (CMK). +// KMS key. type IncorrectKeyMaterialException struct { Message *string @@ -401,8 +400,8 @@ func (e *IncorrectKeyMaterialException) ErrorCode() string { return func (e *IncorrectKeyMaterialException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } // The request was rejected because the trust anchor certificate in the request is -// not the trust anchor certificate for the specified AWS CloudHSM cluster. When -// you initialize the cluster +// not the trust anchor certificate for the specified CloudHSM cluster. When you +// initialize the cluster // (https://docs.aws.amazon.com/cloudhsm/latest/userguide/initialize-cluster.html#sign-csr), // you create the trust anchor certificate and save it in the customerCA.crt file. type IncorrectTrustAnchorException struct { @@ -466,7 +465,7 @@ func (e *InvalidArnException) ErrorFault() smithy.ErrorFault { return smithy.Fau // specified ciphertext, or additional authenticated data incorporated into the // ciphertext, such as the encryption context, is corrupted, missing, or otherwise // invalid. From the ImportKeyMaterial operation, the request was rejected because -// AWS KMS could not decrypt the encrypted (wrapped) key material. +// KMS could not decrypt the encrypted (wrapped) key material. type InvalidCiphertextException struct { Message *string @@ -524,7 +523,7 @@ func (e *InvalidGrantTokenException) ErrorCode() string { return "In func (e *InvalidGrantTokenException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } // The request was rejected because the provided import token is invalid or is -// associated with a different customer master key (CMK). +// associated with a different KMS key. type InvalidImportTokenException struct { Message *string @@ -546,17 +545,17 @@ func (e *InvalidImportTokenException) ErrorFault() smithy.ErrorFault { return sm // The request was rejected for one of the following reasons: // // * The KeyUsage value -// of the CMK is incompatible with the API operation. +// of the KMS key is incompatible with the API operation. // -// * The encryption algorithm -// or signing algorithm specified for the operation is incompatible with the type -// of key material in the CMK (CustomerMasterKeySpec). +// * The encryption +// algorithm or signing algorithm specified for the operation is incompatible with +// the type of key material in the KMS key (KeySpec). // // For encrypting, decrypting, // re-encrypting, and generating data keys, the KeyUsage must be ENCRYPT_DECRYPT. // For signing and verifying, the KeyUsage must be SIGN_VERIFY. To find the -// KeyUsage of a CMK, use the DescribeKey operation. To find the encryption or -// signing algorithms supported for a particular CMK, use the DescribeKey +// KeyUsage of a KMS key, use the DescribeKey operation. To find the encryption or +// signing algorithms supported for a particular KMS key, use the DescribeKey // operation. type InvalidKeyUsageException struct { Message *string @@ -596,8 +595,8 @@ func (e *InvalidMarkerException) ErrorMessage() string { func (e *InvalidMarkerException) ErrorCode() string { return "InvalidMarkerException" } func (e *InvalidMarkerException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// The request was rejected because the specified CMK was not available. You can -// retry the request. +// The request was rejected because the specified KMS key was not available. You +// can retry the request. type KeyUnavailableException struct { Message *string @@ -638,7 +637,7 @@ func (e *KMSInternalException) ErrorFault() smithy.ErrorFault { return smithy.Fa // The request was rejected because the signature verification failed. Signature // verification fails when it cannot confirm that signature was produced by signing -// the specified message with the specified CMK and signing algorithm. +// the specified message with the specified KMS key and signing algorithm. type KMSInvalidSignatureException struct { Message *string @@ -659,9 +658,9 @@ func (e *KMSInvalidSignatureException) ErrorFault() smithy.ErrorFault { return s // The request was rejected because the state of the specified resource is not // valid for this request. For more information about how key state affects the use -// of a CMK, see How Key State Affects Use of a Customer Master Key +// of a KMS key, see Key state: Effect on your KMS key // (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the -// AWS Key Management Service Developer Guide . +// Key Management Service Developer Guide . type KMSInvalidStateException struct { Message *string @@ -682,7 +681,7 @@ func (e *KMSInvalidStateException) ErrorFault() smithy.ErrorFault { return smith // The request was rejected because a quota was exceeded. For more information, see // Quotas (https://docs.aws.amazon.com/kms/latest/developerguide/limits.html) in -// the AWS Key Management Service Developer Guide. +// the Key Management Service Developer Guide. type LimitExceededException struct { Message *string diff --git a/service/kms/types/types.go b/service/kms/types/types.go index 7f9d4805fd8..cf9888902a8 100644 --- a/service/kms/types/types.go +++ b/service/kms/types/types.go @@ -20,11 +20,12 @@ type AliasListEntry struct { // Region. Formatted as Unix time. CreationDate *time.Time - // Date and time that the alias was most recently associated with a CMK in the + // Date and time that the alias was most recently associated with a KMS key in the // account and Region. Formatted as Unix time. LastUpdatedDate *time.Time - // String that contains the key identifier of the CMK associated with the alias. + // String that contains the key identifier of the KMS key associated with the + // alias. TargetKeyId *string noSmithyDocumentSerde @@ -33,85 +34,84 @@ type AliasListEntry struct { // Contains information about each custom key store in the custom key store list. type CustomKeyStoresListEntry struct { - // A unique identifier for the AWS CloudHSM cluster that is associated with the - // custom key store. + // A unique identifier for the CloudHSM cluster that is associated with the custom + // key store. CloudHsmClusterId *string // Describes the connection error. This field appears in the response only when the // ConnectionState is FAILED. For help resolving these errors, see How to Fix a // Connection Failure // (https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-failed) - // in AWS Key Management Service Developer Guide. Valid values are: + // in Key Management Service Developer Guide. Valid values are: // // * - // CLUSTER_NOT_FOUND - AWS KMS cannot find the AWS CloudHSM cluster with the - // specified cluster ID. + // CLUSTER_NOT_FOUND - KMS cannot find the CloudHSM cluster with the specified + // cluster ID. // - // * INSUFFICIENT_CLOUDHSM_HSMS - The associated AWS - // CloudHSM cluster does not contain any active HSMs. To connect a custom key store - // to its AWS CloudHSM cluster, the cluster must contain at least one active - // HSM. + // * INSUFFICIENT_CLOUDHSM_HSMS - The associated CloudHSM cluster does + // not contain any active HSMs. To connect a custom key store to its CloudHSM + // cluster, the cluster must contain at least one active HSM. // - // * INTERNAL_ERROR - AWS KMS could not complete the request due to an - // internal error. Retry the request. For ConnectCustomKeyStore requests, - // disconnect the custom key store before trying to connect again. + // * INTERNAL_ERROR - + // KMS could not complete the request due to an internal error. Retry the request. + // For ConnectCustomKeyStore requests, disconnect the custom key store before + // trying to connect again. // - // * - // INVALID_CREDENTIALS - AWS KMS does not have the correct password for the kmsuser - // crypto user in the AWS CloudHSM cluster. Before you can connect your custom key - // store to its AWS CloudHSM cluster, you must change the kmsuser account password - // and update the key store password value for the custom key store. + // * INVALID_CREDENTIALS - KMS does not have the correct + // password for the kmsuser crypto user in the CloudHSM cluster. Before you can + // connect your custom key store to its CloudHSM cluster, you must change the + // kmsuser account password and update the key store password value for the custom + // key store. // - // * - // NETWORK_ERRORS - Network errors are preventing AWS KMS from connecting to the - // custom key store. + // * NETWORK_ERRORS - Network errors are preventing KMS from connecting + // to the custom key store. // - // * SUBNET_NOT_FOUND - A subnet in the AWS CloudHSM cluster - // configuration was deleted. If AWS KMS cannot find all of the subnets in the - // cluster configuration, attempts to connect the custom key store to the AWS - // CloudHSM cluster fail. To fix this error, create a cluster from a recent backup - // and associate it with your custom key store. (This process creates a new cluster - // configuration with a VPC and private subnets.) For details, see How to Fix a - // Connection Failure + // * SUBNET_NOT_FOUND - A subnet in the CloudHSM cluster + // configuration was deleted. If KMS cannot find all of the subnets in the cluster + // configuration, attempts to connect the custom key store to the CloudHSM cluster + // fail. To fix this error, create a cluster from a recent backup and associate it + // with your custom key store. (This process creates a new cluster configuration + // with a VPC and private subnets.) For details, see How to Fix a Connection + // Failure // (https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-failed) - // in the AWS Key Management Service Developer Guide. + // in the Key Management Service Developer Guide. // - // * USER_LOCKED_OUT - The - // kmsuser CU account is locked out of the associated AWS CloudHSM cluster due to - // too many failed password attempts. Before you can connect your custom key store - // to its AWS CloudHSM cluster, you must change the kmsuser account password and - // update the key store password value for the custom key store. + // * USER_LOCKED_OUT - The kmsuser + // CU account is locked out of the associated CloudHSM cluster due to too many + // failed password attempts. Before you can connect your custom key store to its + // CloudHSM cluster, you must change the kmsuser account password and update the + // key store password value for the custom key store. // - // * USER_LOGGED_IN - // - The kmsuser CU account is logged into the the associated AWS CloudHSM cluster. - // This prevents AWS KMS from rotating the kmsuser account password and logging - // into the cluster. Before you can connect your custom key store to its AWS - // CloudHSM cluster, you must log the kmsuser CU out of the cluster. If you changed - // the kmsuser password to log into the cluster, you must also and update the key - // store password value for the custom key store. For help, see How to Log Out and + // * USER_LOGGED_IN - The + // kmsuser CU account is logged into the the associated CloudHSM cluster. This + // prevents KMS from rotating the kmsuser account password and logging into the + // cluster. Before you can connect your custom key store to its CloudHSM cluster, + // you must log the kmsuser CU out of the cluster. If you changed the kmsuser + // password to log into the cluster, you must also and update the key store + // password value for the custom key store. For help, see How to Log Out and // Reconnect // (https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#login-kmsuser-2) - // in the AWS Key Management Service Developer Guide. + // in the Key Management Service Developer Guide. // - // * USER_NOT_FOUND - AWS KMS - // cannot find a kmsuser CU account in the associated AWS CloudHSM cluster. Before - // you can connect your custom key store to its AWS CloudHSM cluster, you must - // create a kmsuser CU account in the cluster, and then update the key store - // password value for the custom key store. + // * USER_NOT_FOUND - KMS cannot + // find a kmsuser CU account in the associated CloudHSM cluster. Before you can + // connect your custom key store to its CloudHSM cluster, you must create a kmsuser + // CU account in the cluster, and then update the key store password value for the + // custom key store. ConnectionErrorCode ConnectionErrorCodeType - // Indicates whether the custom key store is connected to its AWS CloudHSM cluster. - // You can create and use CMKs in your custom key stores only when its connection + // Indicates whether the custom key store is connected to its CloudHSM cluster. You + // can create and use KMS keys in your custom key stores only when its connection // state is CONNECTED. The value is DISCONNECTED if the key store has never been // connected or you use the DisconnectCustomKeyStore operation to disconnect it. If // the value is CONNECTED but you are having trouble using the custom key store, - // make sure that its associated AWS CloudHSM cluster is active and contains at - // least one active HSM. A value of FAILED indicates that an attempt to connect was + // make sure that its associated CloudHSM cluster is active and contains at least + // one active HSM. A value of FAILED indicates that an attempt to connect was // unsuccessful. The ConnectionErrorCode field in the response indicates the cause // of the failure. For help resolving a connection failure, see Troubleshooting a // Custom Key Store // (https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html) in the - // AWS Key Management Service Developer Guide. + // Key Management Service Developer Guide. ConnectionState ConnectionStateType // The date and time when the custom key store was created. @@ -123,7 +123,7 @@ type CustomKeyStoresListEntry struct { // The user-specified friendly name for the custom key store. CustomKeyStoreName *string - // The trust anchor certificate of the associated AWS CloudHSM cluster. When you + // The trust anchor certificate of the associated CloudHSM cluster. When you // initialize the cluster // (https://docs.aws.amazon.com/cloudhsm/latest/userguide/initialize-cluster.html#sign-csr), // you create this certificate and save it in the customerCA.crt file. @@ -137,23 +137,24 @@ type CustomKeyStoresListEntry struct { // in the grant only when the operation request includes the specified encryption // context // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context). -// AWS KMS applies the grant constraints only to cryptographic operations that -// support an encryption context, that is, all cryptographic operations with a -// symmetric CMK +// KMS applies the grant constraints only to cryptographic operations that support +// an encryption context, that is, all cryptographic operations with a symmetric +// KMS key // (https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html#symmetric-cmks). // Grant constraints are not applied to operations that do not support an -// encryption context, such as cryptographic operations with asymmetric CMKs and -// management operations, such as DescribeKey or RetireGrant. In a cryptographic -// operation, the encryption context in the decryption operation must be an exact, -// case-sensitive match for the keys and values in the encryption context of the -// encryption operation. Only the order of the pairs can vary. However, in a grant -// constraint, the key in each key-value pair is not case sensitive, but the value -// is case sensitive. To avoid confusion, do not use multiple encryption context -// pairs that differ only by case. To require a fully case-sensitive encryption -// context, use the kms:EncryptionContext: and kms:EncryptionContextKeys conditions -// in an IAM or key policy. For details, see kms:EncryptionContext: +// encryption context, such as cryptographic operations with asymmetric KMS keys +// and management operations, such as DescribeKey or RetireGrant. In a +// cryptographic operation, the encryption context in the decryption operation must +// be an exact, case-sensitive match for the keys and values in the encryption +// context of the encryption operation. Only the order of the pairs can vary. +// However, in a grant constraint, the key in each key-value pair is not case +// sensitive, but the value is case sensitive. To avoid confusion, do not use +// multiple encryption context pairs that differ only by case. To require a fully +// case-sensitive encryption context, use the kms:EncryptionContext: and +// kms:EncryptionContextKeys conditions in an IAM or key policy. For details, see +// kms:EncryptionContext: // (https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-context) -// in the AWS Key Management Service Developer Guide . +// in the Key Management Service Developer Guide . type GrantConstraints struct { // A list of key-value pairs that must match the encryption context in the @@ -190,16 +191,16 @@ type GrantListEntry struct { // The identity that gets the permissions in the grant. The GranteePrincipal field // in the ListGrants response usually contains the user or role designated as the // grantee principal in the grant. However, when the grantee principal in the grant - // is an AWS service, the GranteePrincipal field contains the service principal + // is an Amazon Web Services service, the GranteePrincipal field contains the + // service principal // (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services), // which might represent several different grantee principals. GranteePrincipal *string - // The AWS account under which the grant was issued. + // The Amazon Web Services account under which the grant was issued. IssuingAccount *string - // The unique identifier for the customer master key (CMK) to which the grant - // applies. + // The unique identifier for the KMS key to which the grant applies. KeyId *string // The friendly name that identifies the grant. If a name was provided in the @@ -227,157 +228,167 @@ type KeyListEntry struct { noSmithyDocumentSerde } -// Contains metadata about a customer master key (CMK). This data type is used as a -// response element for the CreateKey and DescribeKey operations. +// Contains metadata about a KMS key. This data type is used as a response element +// for the CreateKey and DescribeKey operations. type KeyMetadata struct { - // The globally unique identifier for the CMK. + // The globally unique identifier for the KMS key. // // This member is required. KeyId *string - // The twelve-digit account ID of the AWS account that owns the CMK. + // The twelve-digit account ID of the Amazon Web Services account that owns the KMS + // key. AWSAccountId *string - // The Amazon Resource Name (ARN) of the CMK. For examples, see AWS Key Management - // Service (AWS KMS) + // The Amazon Resource Name (ARN) of the KMS key. For examples, see Key Management + // Service (KMS) // (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-kms) - // in the Example ARNs section of the AWS General Reference. + // in the Example ARNs section of the Amazon Web Services General Reference. Arn *string - // The cluster ID of the AWS CloudHSM cluster that contains the key material for - // the CMK. When you create a CMK in a custom key store + // The cluster ID of the CloudHSM cluster that contains the key material for the + // KMS key. When you create a KMS key in a custom key store // (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html), - // AWS KMS creates the key material for the CMK in the associated AWS CloudHSM - // cluster. This value is present only when the CMK is created in a custom key - // store. + // KMS creates the key material for the KMS key in the associated CloudHSM cluster. + // This value is present only when the KMS key is created in a custom key store. CloudHsmClusterId *string - // The date and time when the CMK was created. + // The date and time when the KMS key was created. CreationDate *time.Time // A unique identifier for the custom key store // (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html) - // that contains the CMK. This value is present only when the CMK is created in a - // custom key store. + // that contains the KMS key. This value is present only when the KMS key is + // created in a custom key store. CustomKeyStoreId *string - // Describes the type of key material in the CMK. + // Instead, use the KeySpec field. The KeySpec and CustomerMasterKeySpec fields + // have the same value. We recommend that you use the KeySpec field in your code. + // However, to avoid breaking changes, KMS will support both fields. + // + // Deprecated: This field has been deprecated. Instead, use the KeySpec field. CustomerMasterKeySpec CustomerMasterKeySpec - // The date and time after which AWS KMS deletes this CMK. This value is present - // only when the CMK is scheduled for deletion, that is, when its KeyState is + // The date and time after which KMS deletes this KMS key. This value is present + // only when the KMS key is scheduled for deletion, that is, when its KeyState is // PendingDeletion. When the primary key in a multi-Region key is scheduled for // deletion but still has replica keys, its key state is PendingReplicaDeletion and // the length of its waiting period is displayed in the PendingDeletionWindowInDays // field. DeletionDate *time.Time - // The description of the CMK. + // The description of the KMS key. Description *string - // Specifies whether the CMK is enabled. When KeyState is Enabled this value is + // Specifies whether the KMS key is enabled. When KeyState is Enabled this value is // true, otherwise it is false. Enabled bool - // The encryption algorithms that the CMK supports. You cannot use the CMK with - // other encryption algorithms within AWS KMS. This value is present only when the - // KeyUsage of the CMK is ENCRYPT_DECRYPT. + // The encryption algorithms that the KMS key supports. You cannot use the KMS key + // with other encryption algorithms within KMS. This value is present only when the + // KeyUsage of the KMS key is ENCRYPT_DECRYPT. EncryptionAlgorithms []EncryptionAlgorithmSpec - // Specifies whether the CMK's key material expires. This value is present only + // Specifies whether the KMS key's key material expires. This value is present only // when Origin is EXTERNAL, otherwise this value is omitted. ExpirationModel ExpirationModelType - // The manager of the CMK. CMKs in your AWS account are either customer managed or - // AWS managed. For more information about the difference, see Customer Master Keys - // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys) - // in the AWS Key Management Service Developer Guide. + // The manager of the KMS key. KMS keys in your Amazon Web Services account are + // either customer managed or Amazon Web Services managed. For more information + // about the difference, see KMS keys + // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys) + // in the Key Management Service Developer Guide. KeyManager KeyManagerType - // The current status of the CMK. For more information about how key state affects - // the use of a CMK, see Key state: Effect on your CMK + // Describes the type of key material in the KMS key. + KeySpec KeySpec + + // The current status of the KMS key. For more information about how key state + // affects the use of a KMS key, see Key state: Effect on your KMS key // (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the - // AWS Key Management Service Developer Guide. + // Key Management Service Developer Guide. KeyState KeyState // The cryptographic operations // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations) - // for which you can use the CMK. + // for which you can use the KMS key. KeyUsage KeyUsageType - // Indicates whether the CMK is a multi-Region (True) or regional (False) key. This - // value is True for multi-Region primary and replica CMKs and False for regional - // CMKs. For more information about multi-Region keys, see Using multi-Region keys + // Indicates whether the KMS key is a multi-Region (True) or regional (False) key. + // This value is True for multi-Region primary and replica keys and False for + // regional KMS keys. For more information about multi-Region keys, see Using + // multi-Region keys // (https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) - // in the AWS Key Management Service Developer Guide. + // in the Key Management Service Developer Guide. MultiRegion *bool - // Lists the primary and replica CMKs in same multi-Region CMK. This field is + // Lists the primary and replica keys in same multi-Region key. This field is // present only when the value of the MultiRegion field is True. For more - // information about any listed CMK, use the DescribeKey operation. + // information about any listed KMS key, use the DescribeKey operation. // // * - // MultiRegionKeyType indicates whether the CMK is a PRIMARY or REPLICA key. + // MultiRegionKeyType indicates whether the KMS key is a PRIMARY or REPLICA key. // // * // PrimaryKey displays the key ARN and Region of the primary key. This field - // displays the current CMK if it is the primary key. + // displays the current KMS key if it is the primary key. // - // * ReplicaKeys displays the - // key ARNs and Regions of all replica keys. This field includes the current CMK if - // it is a replica key. + // * ReplicaKeys displays + // the key ARNs and Regions of all replica keys. This field includes the current + // KMS key if it is a replica key. MultiRegionConfiguration *MultiRegionConfiguration - // The source of the CMK's key material. When this value is AWS_KMS, AWS KMS + // The source of the key material for the KMS key. When this value is AWS_KMS, KMS // created the key material. When this value is EXTERNAL, the key material was - // imported from your existing key management infrastructure or the CMK lacks key - // material. When this value is AWS_CLOUDHSM, the key material was created in the - // AWS CloudHSM cluster associated with a custom key store. + // imported or the KMS key doesn't have any key material. When this value is + // AWS_CLOUDHSM, the key material was created in the CloudHSM cluster associated + // with a custom key store. Origin OriginType // The waiting period before the primary key in a multi-Region key is deleted. This // waiting period begins when the last of its replica keys is deleted. This value - // is present only when the KeyState of the CMK is PendingReplicaDeletion. That - // indicates that the CMK is the primary key in a multi-Region key, it is scheduled - // for deletion, and it still has existing replica keys. When a regional CMK or a - // replica key in a multi-Region key is scheduled for deletion, its deletion date - // is displayed in the DeletionDate field. However, when the primary key in a - // multi-Region key is scheduled for deletion, its waiting period doesn't begin - // until all of its replica keys are deleted. This value displays that waiting - // period. When the last replica key in the multi-Region key is deleted, the - // KeyState of the scheduled primary key changes from PendingReplicaDeletion to - // PendingDeletion and the deletion date appears in the DeletionDate field. + // is present only when the KeyState of the KMS key is PendingReplicaDeletion. That + // indicates that the KMS key is the primary key in a multi-Region key, it is + // scheduled for deletion, and it still has existing replica keys. When a + // single-Region KMS key or a multi-Region replica key is scheduled for deletion, + // its deletion date is displayed in the DeletionDate field. However, when the + // primary key in a multi-Region key is scheduled for deletion, its waiting period + // doesn't begin until all of its replica keys are deleted. This value displays + // that waiting period. When the last replica key in the multi-Region key is + // deleted, the KeyState of the scheduled primary key changes from + // PendingReplicaDeletion to PendingDeletion and the deletion date appears in the + // DeletionDate field. PendingDeletionWindowInDays *int32 - // The signing algorithms that the CMK supports. You cannot use the CMK with other - // signing algorithms within AWS KMS. This field appears only when the KeyUsage of - // the CMK is SIGN_VERIFY. + // The signing algorithms that the KMS key supports. You cannot use the KMS key + // with other signing algorithms within KMS. This field appears only when the + // KeyUsage of the KMS key is SIGN_VERIFY. SigningAlgorithms []SigningAlgorithmSpec // The time at which the imported key material expires. When the key material - // expires, AWS KMS deletes the key material and the CMK becomes unusable. This - // value is present only for CMKs whose Origin is EXTERNAL and whose + // expires, KMS deletes the key material and the KMS key becomes unusable. This + // value is present only for KMS keys whose Origin is EXTERNAL and whose // ExpirationModel is KEY_MATERIAL_EXPIRES, otherwise this value is omitted. ValidTo *time.Time noSmithyDocumentSerde } -// Describes the configuration of this multi-Region CMK. This field appears only -// when the CMK is a primary or replica of a multi-Region CMK. For more information -// about any listed CMK, use the DescribeKey operation. +// Describes the configuration of this multi-Region key. This field appears only +// when the KMS key is a primary or replica of a multi-Region key. For more +// information about any listed KMS key, use the DescribeKey operation. type MultiRegionConfiguration struct { - // Indicates whether the CMK is a PRIMARY or REPLICA key. + // Indicates whether the KMS key is a PRIMARY or REPLICA key. MultiRegionKeyType MultiRegionKeyType // Displays the key ARN and Region of the primary key. This field includes the - // current CMK if it is the primary key. + // current KMS key if it is the primary key. PrimaryKey *MultiRegionKey // displays the key ARNs and Regions of all replica keys. This field includes the - // current CMK if it is a replica key. + // current KMS key if it is a replica key. ReplicaKeys []MultiRegionKey noSmithyDocumentSerde @@ -389,7 +400,8 @@ type MultiRegionKey struct { // Displays the key ARN of a primary or replica key of a multi-Region key. Arn *string - // Displays the AWS Region of a primary or replica key in a multi-Region key. + // Displays the Amazon Web Services Region of a primary or replica key in a + // multi-Region key. Region *string noSmithyDocumentSerde @@ -400,7 +412,7 @@ type MultiRegionKey struct { // information about the rules that apply to tag keys and tag values, see // User-Defined Tag Restrictions // (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html) -// in the AWS Billing and Cost Management User Guide. +// in the Amazon Web Services Billing and Cost Management User Guide. type Tag struct { // The key of the tag. diff --git a/service/lexmodelbuildingservice/types/enums.go b/service/lexmodelbuildingservice/types/enums.go index ac4b992e035..6d319e81685 100644 --- a/service/lexmodelbuildingservice/types/enums.go +++ b/service/lexmodelbuildingservice/types/enums.go @@ -174,6 +174,7 @@ const ( LocaleFrCa Locale = "fr-CA" LocaleItIt Locale = "it-IT" LocaleJaJp Locale = "ja-JP" + LocaleKoKr Locale = "ko-KR" ) // Values returns all known values for Locale. Note that this can be expanded in @@ -193,6 +194,7 @@ func (Locale) Values() []Locale { "fr-CA", "it-IT", "ja-JP", + "ko-KR", } } diff --git a/service/mediatailor/api_op_CreateChannel.go b/service/mediatailor/api_op_CreateChannel.go index b187411c0fa..92fdc0087b2 100644 --- a/service/mediatailor/api_op_CreateChannel.go +++ b/service/mediatailor/api_op_CreateChannel.go @@ -40,11 +40,19 @@ type CreateChannelInput struct { // This member is required. Outputs []types.RequestOutputItem - // The type of playback mode for this channel. The only supported value is LOOP. + // The type of playback mode to use for this channel. LINEAR - The programs in the + // schedule play once back-to-back in the schedule. LOOP - The programs in the + // schedule play back-to-back in an endless loop. When the last program in the + // schedule stops playing, playback loops back to the first program in the + // schedule. // // This member is required. PlaybackMode types.PlaybackMode + // The slate used to fill gaps between programs in the schedule. You must configure + // filler slate if your channel uses an LINEAR PlaybackMode. + FillerSlate *types.SlateSource + // The tags to assign to the channel. Tags map[string]string @@ -65,13 +73,17 @@ type CreateChannelOutput struct { // The timestamp of when the channel was created. CreationTime *time.Time + // Contains information about the slate used to fill gaps between programs in the + // schedule. + FillerSlate *types.SlateSource + // The timestamp of when the channel was last modified. LastModifiedTime *time.Time // The channel's output properties. Outputs []types.ResponseOutputItem - // The type of playback for this channel. The only supported value is LOOP. + // The channel's playback mode. PlaybackMode *string // The tags assigned to the channel. diff --git a/service/mediatailor/api_op_CreateProgram.go b/service/mediatailor/api_op_CreateProgram.go index f349dec8c5d..ab9492fd4db 100644 --- a/service/mediatailor/api_op_CreateProgram.go +++ b/service/mediatailor/api_op_CreateProgram.go @@ -78,6 +78,11 @@ type CreateProgramOutput struct { // The name of the program. ProgramName *string + // The date and time that the program is scheduled to start in ISO 8601 format and + // Coordinated Universal Time (UTC). For example, the value + // 2021-03-27T17:48:16.751Z represents March 27, 2021 at 17:48:16.751 UTC. + ScheduledStartTime *time.Time + // The source location name. SourceLocationName *string diff --git a/service/mediatailor/api_op_DescribeChannel.go b/service/mediatailor/api_op_DescribeChannel.go index 7ca9c4c01fd..f2480674be1 100644 --- a/service/mediatailor/api_op_DescribeChannel.go +++ b/service/mediatailor/api_op_DescribeChannel.go @@ -52,13 +52,17 @@ type DescribeChannelOutput struct { // The timestamp of when the channel was created. CreationTime *time.Time + // Contains information about the slate used to fill gaps between programs in the + // schedule. + FillerSlate *types.SlateSource + // The timestamp of when the channel was last modified. LastModifiedTime *time.Time // The channel's output properties. Outputs []types.ResponseOutputItem - // The type of playback for this channel. The only supported value is LOOP. + // The channel's playback mode. PlaybackMode *string // The tags assigned to the channel. diff --git a/service/mediatailor/api_op_DescribeProgram.go b/service/mediatailor/api_op_DescribeProgram.go index de0a55b2491..b8df499738a 100644 --- a/service/mediatailor/api_op_DescribeProgram.go +++ b/service/mediatailor/api_op_DescribeProgram.go @@ -60,6 +60,11 @@ type DescribeProgramOutput struct { // The name of the program. ProgramName *string + // The date and time that the program is scheduled to start in ISO 8601 format and + // Coordinated Universal Time (UTC). For example, the value + // 2021-03-27T17:48:16.751Z represents March 27, 2021 at 17:48:16.751 UTC. + ScheduledStartTime *time.Time + // The source location name. SourceLocationName *string diff --git a/service/mediatailor/api_op_UpdateChannel.go b/service/mediatailor/api_op_UpdateChannel.go index 27f58113100..b59d5a8b261 100644 --- a/service/mediatailor/api_op_UpdateChannel.go +++ b/service/mediatailor/api_op_UpdateChannel.go @@ -57,13 +57,17 @@ type UpdateChannelOutput struct { // The timestamp of when the channel was created. CreationTime *time.Time + // Contains information about the slate used to fill gaps between programs in the + // schedule. + FillerSlate *types.SlateSource + // The timestamp of when the channel was last modified. LastModifiedTime *time.Time // The channel's output properties. Outputs []types.ResponseOutputItem - // The type of playback for this channel. The only supported value is LOOP. + // The channel's playback mode. PlaybackMode *string // The tags assigned to the channel. diff --git a/service/mediatailor/deserializers.go b/service/mediatailor/deserializers.go index ec9ffa847c6..9cdaf2730cf 100644 --- a/service/mediatailor/deserializers.go +++ b/service/mediatailor/deserializers.go @@ -193,6 +193,11 @@ func awsRestjson1_deserializeOpDocumentCreateChannelOutput(v **CreateChannelOutp } } + case "FillerSlate": + if err := awsRestjson1_deserializeDocumentSlateSource(&sv.FillerSlate, value); err != nil { + return err + } + case "LastModifiedTime": if value != nil { switch jtv := value.(type) { @@ -415,6 +420,22 @@ func awsRestjson1_deserializeOpDocumentCreateProgramOutput(v **CreateProgramOutp sv.ProgramName = ptr.String(jtv) } + case "ScheduledStartTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.ScheduledStartTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected __timestampUnix to be a JSON Number, got %T instead", value) + + } + } + case "SourceLocationName": if value != nil { jtv, ok := value.(string) @@ -1512,6 +1533,11 @@ func awsRestjson1_deserializeOpDocumentDescribeChannelOutput(v **DescribeChannel } } + case "FillerSlate": + if err := awsRestjson1_deserializeDocumentSlateSource(&sv.FillerSlate, value); err != nil { + return err + } + case "LastModifiedTime": if value != nil { switch jtv := value.(type) { @@ -1734,6 +1760,22 @@ func awsRestjson1_deserializeOpDocumentDescribeProgramOutput(v **DescribeProgram sv.ProgramName = ptr.String(jtv) } + case "ScheduledStartTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.ScheduledStartTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected __timestampUnix to be a JSON Number, got %T instead", value) + + } + } + case "SourceLocationName": if value != nil { jtv, ok := value.(string) @@ -4520,6 +4562,11 @@ func awsRestjson1_deserializeOpDocumentUpdateChannelOutput(v **UpdateChannelOutp } } + case "FillerSlate": + if err := awsRestjson1_deserializeDocumentSlateSource(&sv.FillerSlate, value); err != nil { + return err + } + case "LastModifiedTime": if value != nil { switch jtv := value.(type) { @@ -5840,6 +5887,11 @@ func awsRestjson1_deserializeDocumentChannel(v **types.Channel, value interface{ } } + case "FillerSlate": + if err := awsRestjson1_deserializeDocumentSlateSource(&sv.FillerSlate, value); err != nil { + return err + } + case "LastModifiedTime": if value != nil { switch jtv := value.(type) { @@ -6828,6 +6880,15 @@ func awsRestjson1_deserializeDocumentScheduleEntry(v **types.ScheduleEntry, valu return err } + case "ScheduleEntryType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ScheduleEntryType to be of type string, got %T instead", value) + } + sv.ScheduleEntryType = types.ScheduleEntryType(jtv) + } + case "SourceLocationName": if value != nil { jtv, ok := value.(string) diff --git a/service/mediatailor/serializers.go b/service/mediatailor/serializers.go index 3ebd2894f93..51f4ae29deb 100644 --- a/service/mediatailor/serializers.go +++ b/service/mediatailor/serializers.go @@ -87,6 +87,13 @@ func awsRestjson1_serializeOpDocumentCreateChannelInput(v *CreateChannelInput, v object := value.Object() defer object.Close() + if v.FillerSlate != nil { + ok := object.Key("FillerSlate") + if err := awsRestjson1_serializeDocumentSlateSource(v.FillerSlate, ok); err != nil { + return err + } + } + if v.Outputs != nil { ok := object.Key("Outputs") if err := awsRestjson1_serializeDocumentRequestOutputs(v.Outputs, ok); err != nil { @@ -2781,6 +2788,11 @@ func awsRestjson1_serializeDocumentTransition(v *types.Transition, value smithyj ok.String(*v.RelativeProgram) } + if v.ScheduledStartTimeMillis != 0 { + ok := object.Key("ScheduledStartTimeMillis") + ok.Long(v.ScheduledStartTimeMillis) + } + if v.Type != nil { ok := object.Key("Type") ok.String(*v.Type) diff --git a/service/mediatailor/types/enums.go b/service/mediatailor/types/enums.go index 0e9e99c26f0..d523513b63f 100644 --- a/service/mediatailor/types/enums.go +++ b/service/mediatailor/types/enums.go @@ -94,7 +94,8 @@ type PlaybackMode string // Enum values for PlaybackMode const ( - PlaybackModeLoop PlaybackMode = "LOOP" + PlaybackModeLoop PlaybackMode = "LOOP" + PlaybackModeLinear PlaybackMode = "LINEAR" ) // Values returns all known values for PlaybackMode. Note that this can be expanded @@ -103,6 +104,7 @@ const ( func (PlaybackMode) Values() []PlaybackMode { return []PlaybackMode{ "LOOP", + "LINEAR", } } @@ -124,6 +126,24 @@ func (RelativePosition) Values() []RelativePosition { } } +type ScheduleEntryType string + +// Enum values for ScheduleEntryType +const ( + ScheduleEntryTypeProgram ScheduleEntryType = "PROGRAM" + ScheduleEntryTypeFillerSlate ScheduleEntryType = "FILLER_SLATE" +) + +// Values returns all known values for ScheduleEntryType. Note that this can be +// expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (ScheduleEntryType) Values() []ScheduleEntryType { + return []ScheduleEntryType{ + "PROGRAM", + "FILLER_SLATE", + } +} + type Type string // Enum values for Type diff --git a/service/mediatailor/types/types.go b/service/mediatailor/types/types.go index fea04677362..fb9240c4323 100644 --- a/service/mediatailor/types/types.go +++ b/service/mediatailor/types/types.go @@ -184,7 +184,10 @@ type Channel struct { // This member is required. Outputs []ResponseOutputItem - // The type of playback mode for this channel. Possible values: ONCE or LOOP. + // The type of playback mode for this channel. LINEAR - Programs play back-to-back + // only once. LOOP - Programs play back-to-back in an endless loop. When the last + // program in the schedule plays, playback loops back to the first program in the + // schedule. // // This member is required. PlaybackMode *string @@ -192,6 +195,11 @@ type Channel struct { // The timestamp of when the channel was created. CreationTime *time.Time + // Contains information about the slate used to fill gaps between programs in the + // schedule. You must configure FillerSlate if your channel uses an LINEAR + // PlaybackMode. + FillerSlate *SlateSource + // The timestamp of when the channel was last modified. LastModifiedTime *time.Time @@ -467,7 +475,7 @@ type PlaybackConfiguration struct { noSmithyDocumentSerde } -// The ouput configuration for this channel. +// The output configuration for this channel. type RequestOutputItem struct { // The name of the manifest for the channel. The name appears in the PlaybackUrl. @@ -586,6 +594,9 @@ type ScheduleEntry struct { // The schedule's ad break properties. ScheduleAdBreaks []ScheduleAdBreak + // The type of schedule entry. Valid values: PROGRAM or FILLER_SLATE. + ScheduleEntryType ScheduleEntryType + noSmithyDocumentSerde } @@ -690,13 +701,20 @@ type SpliceInsertMessage struct { type Transition struct { // The position where this program will be inserted relative to the - // RelativeProgram. Possible values are: AFTER_PROGRAM, and BEFORE_PROGRAM. + // RelativePosition. // // This member is required. RelativePosition RelativePosition - // When the program should be played. RELATIVE means that programs will be played - // back-to-back. + // Defines when the program plays in the schedule. You can set the value to + // ABSOLUTE or RELATIVE. ABSOLUTE - The program plays at a specific wall clock + // time. This setting can only be used for channels using the LINEAR PlaybackMode. + // Note the following considerations when using ABSOLUTE transitions: If the + // preceding program in the schedule has a duration that extends past the wall + // clock time, MediaTailor truncates the preceding program on a common segment + // boundary. If there are gaps in playback, MediaTailor plays the FillerSlate you + // configured for your linear channel. RELATIVE - The program is inserted into the + // schedule either before or after a program that you specify via RelativePosition. // // This member is required. Type *string @@ -705,6 +723,9 @@ type Transition struct { // by RelativePosition. RelativeProgram *string + // The date and time that the program is scheduled to start, in epoch milliseconds. + ScheduledStartTimeMillis int64 + noSmithyDocumentSerde } diff --git a/service/memorydb/api_op_BatchUpdateCluster.go b/service/memorydb/api_op_BatchUpdateCluster.go index 1cb123a8d64..df411988c02 100644 --- a/service/memorydb/api_op_BatchUpdateCluster.go +++ b/service/memorydb/api_op_BatchUpdateCluster.go @@ -13,7 +13,7 @@ import ( // Apply the service update to a list of clusters supplied. For more information on // service updates and applying them, see Applying the service updates -// (https://docs.aws.amazon.com/AmazonMemoryDB/latest/devguide/managing-updates.html#applying-updates). +// (https://docs.aws.amazon.com/MemoryDB/latest/devguide/managing-updates.html#applying-updates). func (c *Client) BatchUpdateCluster(ctx context.Context, params *BatchUpdateClusterInput, optFns ...func(*Options)) (*BatchUpdateClusterOutput, error) { if params == nil { params = &BatchUpdateClusterInput{} diff --git a/service/memorydb/api_op_CopySnapshot.go b/service/memorydb/api_op_CopySnapshot.go index f263b9aa56b..17bf920527a 100644 --- a/service/memorydb/api_op_CopySnapshot.go +++ b/service/memorydb/api_op_CopySnapshot.go @@ -53,7 +53,7 @@ type CopySnapshotInput struct { // export a snapshot, be sure MemoryDB has the needed permissions to this S3 // bucket. For more information, see Step 2: Grant MemoryDB Access to Your Amazon // S3 Bucket - // (https://docs.aws.amazon.com/AmazonMemoryDB/latest/devguide/snapshots-exporting.html). + // (https://docs.aws.amazon.com/MemoryDB/latest/devguide/snapshots-exporting.html). TargetBucket *string noSmithyDocumentSerde diff --git a/service/memorydb/api_op_CreateACL.go b/service/memorydb/api_op_CreateACL.go index 5822aa53ca0..c94d30f9d65 100644 --- a/service/memorydb/api_op_CreateACL.go +++ b/service/memorydb/api_op_CreateACL.go @@ -13,7 +13,7 @@ import ( // Creates an Access Control List. For more information, see Authenticating users // with Access Contol Lists (ACLs) -// (https://docs.aws.amazon.com/AmazonMemoryDB/latest/devguide/Clusters.ACLs.html). +// (https://docs.aws.amazon.com/MemoryDB/latest/devguide/clusters.acls.html). func (c *Client) CreateACL(ctx context.Context, params *CreateACLInput, optFns ...func(*Options)) (*CreateACLOutput, error) { if params == nil { params = &CreateACLInput{} diff --git a/service/memorydb/api_op_CreateCluster.go b/service/memorydb/api_op_CreateCluster.go index 63c7d960453..35fff6760fd 100644 --- a/service/memorydb/api_op_CreateCluster.go +++ b/service/memorydb/api_op_CreateCluster.go @@ -64,16 +64,11 @@ type CreateClusterInput struct { // Clock UTC). The minimum maintenance window is a 60 minute period. MaintenanceWindow *string - // The number of replicas to apply to each shard. The limit is 5. + // The number of replicas to apply to each shard. The default value is 1. The + // maximum is 5. NumReplicasPerShard *int32 - // The number of shards the cluster will contain. Clusters can have up to 500 - // shards, with your data partitioned across the shards. For example, you can - // choose to configure a 500 node cluster that ranges between 83 shards (one - // primary and 5 replicas per shard) and 500 shards (single primary and no - // replicas). Make sure there are enough available IP addresses to accommodate the - // increase. Common pitfalls include the subnets in the subnet group have too small - // a CIDR range or the subnets are shared and heavily used by other clusters. + // The number of shards the cluster will contain. The default value is 1. NumShards *int32 // The name of the parameter group associated with the cluster. diff --git a/service/memorydb/api_op_CreateParameterGroup.go b/service/memorydb/api_op_CreateParameterGroup.go index a7072316b63..4f0e52ccc96 100644 --- a/service/memorydb/api_op_CreateParameterGroup.go +++ b/service/memorydb/api_op_CreateParameterGroup.go @@ -14,7 +14,7 @@ import ( // Creates a new MemoryDB parameter group. A parameter group is a collection of // parameters and their values that are applied to all of the nodes in any cluster. // For more information, see Configuring engine parameters using parameter groups -// (https://docs.aws.amazon.com/AmazonMemoryDB/latest/devguide/ParameterGroups.html). +// (https://docs.aws.amazon.com/MemoryDB/latest/devguide/parametergroups.html). func (c *Client) CreateParameterGroup(ctx context.Context, params *CreateParameterGroupInput, optFns ...func(*Options)) (*CreateParameterGroupOutput, error) { if params == nil { params = &CreateParameterGroupInput{} diff --git a/service/memorydb/api_op_CreateSubnetGroup.go b/service/memorydb/api_op_CreateSubnetGroup.go index 647c818cd3a..87d19233146 100644 --- a/service/memorydb/api_op_CreateSubnetGroup.go +++ b/service/memorydb/api_op_CreateSubnetGroup.go @@ -17,7 +17,7 @@ import ( // must specify a subnet group. MemoryDB uses that subnet group to choose a subnet // and IP addresses within that subnet to associate with your nodes. For more // information, see Subnets and subnet groups -// (https://docs.aws.amazon.com/AmazonMemoryDB/latest/devguide/SubnetGroups.html). +// (https://docs.aws.amazon.com/MemoryDB/latest/devguide/subnetgroups.html). func (c *Client) CreateSubnetGroup(ctx context.Context, params *CreateSubnetGroupInput, optFns ...func(*Options)) (*CreateSubnetGroupOutput, error) { if params == nil { params = &CreateSubnetGroupInput{} diff --git a/service/memorydb/api_op_CreateUser.go b/service/memorydb/api_op_CreateUser.go index 6a170762750..3e1dccb351b 100644 --- a/service/memorydb/api_op_CreateUser.go +++ b/service/memorydb/api_op_CreateUser.go @@ -13,7 +13,7 @@ import ( // Creates a MemoryDB user. For more information, see Authenticating users with // Access Contol Lists (ACLs) -// (https://docs.aws.amazon.com/AmazonMemoryDB/latest/devguide/Clusters.ACLs.html). +// (https://docs.aws.amazon.com/MemoryDB/latest/devguide/clusters.acls.html). func (c *Client) CreateUser(ctx context.Context, params *CreateUserInput, optFns ...func(*Options)) (*CreateUserOutput, error) { if params == nil { params = &CreateUserInput{} diff --git a/service/memorydb/api_op_DeleteACL.go b/service/memorydb/api_op_DeleteACL.go index 12dc1b36b31..8b1a074470a 100644 --- a/service/memorydb/api_op_DeleteACL.go +++ b/service/memorydb/api_op_DeleteACL.go @@ -14,7 +14,7 @@ import ( // Deletes an Access Control List. The ACL must first be disassociated from the // cluster before it can be deleted. For more information, see Authenticating users // with Access Contol Lists (ACLs) -// (https://docs.aws.amazon.com/AmazonMemoryDB/latest/devguide/Clusters.ACLs.html). +// (https://docs.aws.amazon.com/MemoryDB/latest/devguide/clusters.acls.html). func (c *Client) DeleteACL(ctx context.Context, params *DeleteACLInput, optFns ...func(*Options)) (*DeleteACLOutput, error) { if params == nil { params = &DeleteACLInput{} diff --git a/service/memorydb/api_op_ListTags.go b/service/memorydb/api_op_ListTags.go index 9451baac64c..c0594cbff49 100644 --- a/service/memorydb/api_op_ListTags.go +++ b/service/memorydb/api_op_ListTags.go @@ -15,7 +15,7 @@ import ( // the key and value are case-sensitive. You can use tags to categorize and track // your MemoryDB resources. For more information, see Tagging your MemoryDB // resources -// (https://docs.aws.amazon.com/AmazonMemoryDB/latest/devguide/Tagging-Resources.html) +// (https://docs.aws.amazon.com/MemoryDB/latest/devguide/Tagging-Resources.html) func (c *Client) ListTags(ctx context.Context, params *ListTagsInput, optFns ...func(*Options)) (*ListTagsOutput, error) { if params == nil { params = &ListTagsInput{} diff --git a/service/memorydb/api_op_TagResource.go b/service/memorydb/api_op_TagResource.go index 441107f1759..4b037e51612 100644 --- a/service/memorydb/api_op_TagResource.go +++ b/service/memorydb/api_op_TagResource.go @@ -15,14 +15,14 @@ import ( // use tags to categorize and track all your MemoryDB resources. When you add or // remove tags on clusters, those actions will be replicated to all nodes in the // cluster. For more information, see Resource-level permissions -// (https://docs.aws.amazon.com/AmazonMemoryDB/latest/devguide/IAM.ResourceLevelPermissions.html). +// (https://docs.aws.amazon.com/MemoryDB/latest/devguide/iam.resourcelevelpermissions.html). // For example, you can use cost-allocation tags to your MemoryDB resources, Amazon // generates a cost allocation report as a comma-separated value (CSV) file with // your usage and costs aggregated by your tags. You can apply tags that represent // business categories (such as cost centers, application names, or owners) to // organize your costs across multiple services. For more information, see Using // Cost Allocation Tags -// (https://docs.aws.amazon.com/AmazonMemoryDB/latest/devguide/Tagging.html). +// (https://docs.aws.amazon.com/MemoryDB/latest/devguide/tagging.html). func (c *Client) TagResource(ctx context.Context, params *TagResourceInput, optFns ...func(*Options)) (*TagResourceOutput, error) { if params == nil { params = &TagResourceInput{} diff --git a/service/memorydb/api_op_UpdateSubnetGroup.go b/service/memorydb/api_op_UpdateSubnetGroup.go index 83c533ff785..5e597fa09a0 100644 --- a/service/memorydb/api_op_UpdateSubnetGroup.go +++ b/service/memorydb/api_op_UpdateSubnetGroup.go @@ -12,7 +12,7 @@ import ( ) // Updates a subnet group. For more information, see Updating a subnet group -// (https://docs.aws.amazon.com/AmazonMemoryDB/latest/devguide/SubnetGroups.Modifying.html) +// (https://docs.aws.amazon.com/MemoryDB/latest/devguide/ubnetGroups.Modifying.html) func (c *Client) UpdateSubnetGroup(ctx context.Context, params *UpdateSubnetGroupInput, optFns ...func(*Options)) (*UpdateSubnetGroupOutput, error) { if params == nil { params = &UpdateSubnetGroupInput{} diff --git a/service/memorydb/doc.go b/service/memorydb/doc.go index 7163bdb8272..c34ea3e6c73 100644 --- a/service/memorydb/doc.go +++ b/service/memorydb/doc.go @@ -3,10 +3,10 @@ // Package memorydb provides the API client, operations, and parameter types for // Amazon MemoryDB. // -// Amazon MemoryDB for Redis is a fully managed, Redis-compatible, in-memory -// database that delivers ultra-fast performance and Multi-AZ durability for modern -// applications built using microservices architectures. MemoryDB stores the entire -// database in-memory, enabling low latency and high throughput data access. It is +// MemoryDB for Redis is a fully managed, Redis-compatible, in-memory database that +// delivers ultra-fast performance and Multi-AZ durability for modern applications +// built using microservices architectures. MemoryDB stores the entire database +// in-memory, enabling low latency and high throughput data access. It is // compatible with Redis, a popular open source data store, enabling you to // leverage Redis’ flexible and friendly data structures, APIs, and commands. package memorydb diff --git a/service/memorydb/types/errors.go b/service/memorydb/types/errors.go index e62500062d4..e814ff3a31f 100644 --- a/service/memorydb/types/errors.go +++ b/service/memorydb/types/errors.go @@ -620,6 +620,7 @@ func (e *ServiceUpdateNotFoundFault) ErrorMessage() string { func (e *ServiceUpdateNotFoundFault) ErrorCode() string { return "ServiceUpdateNotFoundFault" } func (e *ServiceUpdateNotFoundFault) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } +// type ShardNotFoundFault struct { Message *string diff --git a/service/memorydb/types/types.go b/service/memorydb/types/types.go index 4bce29cf56f..6c28352379f 100644 --- a/service/memorydb/types/types.go +++ b/service/memorydb/types/types.go @@ -628,7 +628,7 @@ type SubnetGroup struct { // resources. When you add or remove tags on clusters, those actions will be // replicated to all nodes in the cluster. A tag with a null Value is permitted. // For more information, see Tagging your MemoryDB resources -// (https://docs.aws.amazon.com/AmazonMemoryDB/latest/devguide/Tagging-Resources.html) +// (https://docs.aws.amazon.com/MemoryDB/latest/devguide/tagging-resources.html) type Tag struct { // The key for the tag. May not be null. diff --git a/service/mwaa/internal/endpoints/endpoints.go b/service/mwaa/internal/endpoints/endpoints.go index efa4b598a31..daa963ee0d5 100644 --- a/service/mwaa/internal/endpoints/endpoints.go +++ b/service/mwaa/internal/endpoints/endpoints.go @@ -64,11 +64,17 @@ var defaultPartitions = endpoints.Partitions{ IsRegionalized: true, Endpoints: endpoints.Endpoints{ "ap-northeast-1": endpoints.Endpoint{}, + "ap-northeast-2": endpoints.Endpoint{}, + "ap-south-1": endpoints.Endpoint{}, "ap-southeast-1": endpoints.Endpoint{}, "ap-southeast-2": endpoints.Endpoint{}, + "ca-central-1": endpoints.Endpoint{}, "eu-central-1": endpoints.Endpoint{}, "eu-north-1": endpoints.Endpoint{}, "eu-west-1": endpoints.Endpoint{}, + "eu-west-2": endpoints.Endpoint{}, + "eu-west-3": endpoints.Endpoint{}, + "sa-east-1": endpoints.Endpoint{}, "us-east-1": endpoints.Endpoint{}, "us-east-2": endpoints.Endpoint{}, "us-west-2": endpoints.Endpoint{}, diff --git a/service/polly/internal/endpoints/endpoints.go b/service/polly/internal/endpoints/endpoints.go index 59605f2e7bb..2e879715231 100644 --- a/service/polly/internal/endpoints/endpoints.go +++ b/service/polly/internal/endpoints/endpoints.go @@ -63,6 +63,7 @@ var defaultPartitions = endpoints.Partitions{ RegionRegex: partitionRegexp.Aws, IsRegionalized: true, Endpoints: endpoints.Endpoints{ + "af-south-1": endpoints.Endpoint{}, "ap-east-1": endpoints.Endpoint{}, "ap-northeast-1": endpoints.Endpoint{}, "ap-northeast-2": endpoints.Endpoint{}, diff --git a/service/polly/types/enums.go b/service/polly/types/enums.go index 425fa8f9dba..d2ef7bc2eb0 100644 --- a/service/polly/types/enums.go +++ b/service/polly/types/enums.go @@ -72,6 +72,7 @@ const ( LanguageCodeSvSe LanguageCode = "sv-SE" LanguageCodeTrTr LanguageCode = "tr-TR" LanguageCodeEnNz LanguageCode = "en-NZ" + LanguageCodeEnZa LanguageCode = "en-ZA" ) // Values returns all known values for LanguageCode. Note that this can be expanded @@ -109,6 +110,7 @@ func (LanguageCode) Values() []LanguageCode { "sv-SE", "tr-TR", "en-NZ", + "en-ZA", } } @@ -264,6 +266,7 @@ const ( VoiceIdZeina VoiceId = "Zeina" VoiceIdZhiyu VoiceId = "Zhiyu" VoiceIdAria VoiceId = "Aria" + VoiceIdAyanda VoiceId = "Ayanda" ) // Values returns all known values for VoiceId. Note that this can be expanded in @@ -335,5 +338,6 @@ func (VoiceId) Values() []VoiceId { "Zeina", "Zhiyu", "Aria", + "Ayanda", } } diff --git a/service/quicksight/api_op_CancelIngestion.go b/service/quicksight/api_op_CancelIngestion.go index a09d36b7755..a580e4a2fbf 100644 --- a/service/quicksight/api_op_CancelIngestion.go +++ b/service/quicksight/api_op_CancelIngestion.go @@ -28,7 +28,7 @@ func (c *Client) CancelIngestion(ctx context.Context, params *CancelIngestionInp type CancelIngestionInput struct { - // The Amazon Web Services account; ID. + // The Amazon Web Services account ID. // // This member is required. AwsAccountId *string diff --git a/service/quicksight/api_op_CreateAccountCustomization.go b/service/quicksight/api_op_CreateAccountCustomization.go index d7a260a379a..5b443e1d3a7 100644 --- a/service/quicksight/api_op_CreateAccountCustomization.go +++ b/service/quicksight/api_op_CreateAccountCustomization.go @@ -14,21 +14,21 @@ import ( // Creates Amazon QuickSight customizations the current Amazon Web Services // Region;. Currently, you can add a custom default theme by using the // CreateAccountCustomization or UpdateAccountCustomization API operation. To -// further customize QuickSight by removing QuickSight sample assets and videos for -// all new users, see Customizing QuickSight +// further customize Amazon QuickSight by removing Amazon QuickSight sample assets +// and videos for all new users, see Customizing Amazon QuickSight // (https://docs.aws.amazon.com/quicksight/latest/user/customizing-quicksight.html) // in the Amazon QuickSight User Guide. You can create customizations for your -// Amazon Web Services account; or, if you specify a namespace, for a QuickSight -// namespace instead. Customizations that apply to a namespace always override -// customizations that apply to an Amazon Web Services account;. To find out which -// customizations apply, use the DescribeAccountCustomization API operation. Before -// you use the CreateAccountCustomization API operation to add a theme as the -// namespace default, make sure that you first share the theme with the namespace. -// If you don't share it with the namespace, the theme isn't visible to your users -// even if you make it the default theme. To check if the theme is shared, view the -// current permissions by using the DescribeThemePermissions API operation. To -// share the theme, grant permissions by using the UpdateThemePermissions API -// operation. +// Amazon Web Services account or, if you specify a namespace, for a Amazon +// QuickSight namespace instead. Customizations that apply to a namespace always +// override customizations that apply to an Amazon Web Services account. To find +// out which customizations apply, use the DescribeAccountCustomization API +// operation. Before you use the CreateAccountCustomization API operation to add a +// theme as the namespace default, make sure that you first share the theme with +// the namespace. If you don't share it with the namespace, the theme isn't visible +// to your users even if you make it the default theme. To check if the theme is +// shared, view the current permissions by using the DescribeThemePermissions API +// operation. To share the theme, grant permissions by using the +// UpdateThemePermissions API operation. func (c *Client) CreateAccountCustomization(ctx context.Context, params *CreateAccountCustomizationInput, optFns ...func(*Options)) (*CreateAccountCustomizationOutput, error) { if params == nil { params = &CreateAccountCustomizationInput{} @@ -46,9 +46,9 @@ func (c *Client) CreateAccountCustomization(ctx context.Context, params *CreateA type CreateAccountCustomizationInput struct { - // The QuickSight customizations you're adding in the current Amazon Web Services - // Region;. You can add these to an Amazon Web Services account; and a QuickSight - // namespace. For example, you can add a default theme by setting + // The Amazon QuickSight customizations you're adding in the current Amazon Web + // Services Region;. You can add these to an Amazon Web Services account and a + // Amazon QuickSight namespace. For example, you can add a default theme by setting // AccountCustomization to the midnight theme: "AccountCustomization": { // "DefaultTheme": "arn:aws:quicksight::aws:theme/MIDNIGHT" }. Or, you can add a // custom theme by specifying "AccountCustomization": { "DefaultTheme": @@ -58,13 +58,13 @@ type CreateAccountCustomizationInput struct { // This member is required. AccountCustomization *types.AccountCustomization - // The ID for the Amazon Web Services account; that you want to customize + // The ID for the Amazon Web Services account that you want to customize Amazon // QuickSight for. // // This member is required. AwsAccountId *string - // The QuickSight namespace that you want to add customizations to. + // The Amazon QuickSight namespace that you want to add customizations to. Namespace *string // A list of the tags that you want to attach to this resource. @@ -75,15 +75,15 @@ type CreateAccountCustomizationInput struct { type CreateAccountCustomizationOutput struct { - // The QuickSight customizations you're adding in the current Amazon Web Services - // Region;. + // The Amazon QuickSight customizations you're adding in the current Amazon Web + // Services Region;. AccountCustomization *types.AccountCustomization // The Amazon Resource Name (ARN) for the customization that you created for this - // Amazon Web Services account;. + // Amazon Web Services account. Arn *string - // The ID for the Amazon Web Services account; that you want to customize + // The ID for the Amazon Web Services account that you want to customize Amazon // QuickSight for. AwsAccountId *string diff --git a/service/quicksight/api_op_CreateAnalysis.go b/service/quicksight/api_op_CreateAnalysis.go index 53b6b518c67..96e49b5b60f 100644 --- a/service/quicksight/api_op_CreateAnalysis.go +++ b/service/quicksight/api_op_CreateAnalysis.go @@ -35,13 +35,13 @@ type CreateAnalysisInput struct { // This member is required. AnalysisId *string - // The ID of the Amazon Web Services account; where you are creating an analysis. + // The ID of the Amazon Web Services account where you are creating an analysis. // // This member is required. AwsAccountId *string // A descriptive name for the analysis that you're creating. This name displays for - // the analysis in the QuickSight console. + // the analysis in the Amazon QuickSight console. // // This member is required. Name *string @@ -69,7 +69,7 @@ type CreateAnalysisInput struct { Tags []types.Tag // The ARN for the theme to apply to the analysis that you're creating. To see the - // theme in the QuickSight console, make sure that you have access to it. + // theme in the Amazon QuickSight console, make sure that you have access to it. ThemeArn *string noSmithyDocumentSerde diff --git a/service/quicksight/api_op_CreateDashboard.go b/service/quicksight/api_op_CreateDashboard.go index 5bcde40b8b7..735a810362e 100644 --- a/service/quicksight/api_op_CreateDashboard.go +++ b/service/quicksight/api_op_CreateDashboard.go @@ -12,11 +12,12 @@ import ( ) // Creates a dashboard from a template. To first create a template, see the -// CreateTemplate API operation. A dashboard is an entity in QuickSight that -// identifies QuickSight reports, created from analyses. You can share QuickSight -// dashboards. With the right permissions, you can create scheduled email reports -// from them. If you have the correct permissions, you can create a dashboard from -// a template that exists in a different Amazon Web Services account;. +// CreateTemplate API operation. A dashboard is an entity in Amazon QuickSight that +// identifies Amazon QuickSight reports, created from analyses. You can share +// Amazon QuickSight dashboards. With the right permissions, you can create +// scheduled email reports from them. If you have the correct permissions, you can +// create a dashboard from a template that exists in a different Amazon Web +// Services account. func (c *Client) CreateDashboard(ctx context.Context, params *CreateDashboardInput, optFns ...func(*Options)) (*CreateDashboardOutput, error) { if params == nil { params = &CreateDashboardInput{} @@ -34,13 +35,13 @@ func (c *Client) CreateDashboard(ctx context.Context, params *CreateDashboardInp type CreateDashboardInput struct { - // The ID of the Amazon Web Services account; where you want to create the + // The ID of the Amazon Web Services account where you want to create the // dashboard. // // This member is required. AwsAccountId *string - // The ID for the dashboard, also added to the IAM policy. + // The ID for the dashboard, also added to the IAMpolicy. // // This member is required. DashboardId *string @@ -56,10 +57,10 @@ type CreateDashboardInput struct { // you need to create a dashboard from an analysis, first convert the analysis to a // template by using the CreateTemplate API operation. For SourceTemplate, specify // the Amazon Resource Name (ARN) of the source template. The SourceTemplateARN can - // contain any Amazon Web Services account; and any QuickSight-supported Amazon Web - // Services Region;. Use the DataSetReferences entity within SourceTemplate to list - // the replacement datasets for the placeholders listed in the original. The schema - // in each dataset must match its placeholder. + // contain any Amazon Web Services account and any Amazon QuickSight-supported + // Amazon Web Services Region;. Use the DataSetReferences entity within + // SourceTemplate to list the replacement datasets for the placeholders listed in + // the original. The schema in each dataset must match its placeholder. // // This member is required. SourceEntity *types.DashboardSourceEntity @@ -68,7 +69,7 @@ type CreateDashboardInput struct { // // * AvailabilityStatus // for AdHocFilteringOption - This status can be either ENABLED or DISABLED. When - // this is set to DISABLED, QuickSight disables the left filter pane on the + // this is set to DISABLED, Amazon QuickSight disables the left filter pane on the // published dashboard, which can be used for ad hoc (one-time) filtering. This // option is ENABLED by default. // @@ -87,7 +88,7 @@ type CreateDashboardInput struct { Parameters *types.Parameters // A structure that contains the permissions of the dashboard. You can use this - // structure for granting permissions by providing a list of IAM action information + // structure for granting permissions by providing a list of IAMaction information // for each principal ARN. To specify no permissions, omit the permissions list. Permissions []types.ResourcePermission @@ -98,7 +99,7 @@ type CreateDashboardInput struct { // The Amazon Resource Name (ARN) of the theme that is being used for this // dashboard. If you add a value for this field, it overrides the value that is // used in the source entity. The theme ARN must exist in the same Amazon Web - // Services account; where you create the dashboard. + // Services account where you create the dashboard. ThemeArn *string // A description for the first version of the dashboard being created. diff --git a/service/quicksight/api_op_CreateDataSet.go b/service/quicksight/api_op_CreateDataSet.go index bc10e1d4563..b0782516d7f 100644 --- a/service/quicksight/api_op_CreateDataSet.go +++ b/service/quicksight/api_op_CreateDataSet.go @@ -29,13 +29,13 @@ func (c *Client) CreateDataSet(ctx context.Context, params *CreateDataSetInput, type CreateDataSetInput struct { - // The Amazon Web Services account; ID. + // The Amazon Web Services account ID. // // This member is required. AwsAccountId *string // An ID for the dataset that you want to create. This ID is unique per Amazon Web - // Services Region; for each Amazon Web Services account;. + // Services Region; for each Amazon Web Services account. // // This member is required. DataSetId *string @@ -55,13 +55,17 @@ type CreateDataSetInput struct { // This member is required. PhysicalTableMap map[string]types.PhysicalTable - // Groupings of columns that work together in certain QuickSight features. + // Groupings of columns that work together in certain Amazon QuickSight features. // Currently, only geospatial hierarchy is supported. ColumnGroups []types.ColumnGroup // A set of one or more definitions of a ColumnLevelPermissionRule. ColumnLevelPermissionRules []types.ColumnLevelPermissionRule + // The usage configuration to apply to child datasets that reference this dataset + // as a source. + DataSetUsageConfiguration *types.DataSetUsageConfiguration + // The folder that contains fields and nested subfolders for your dataset. FieldFolders map[string]types.FieldFolder @@ -92,7 +96,7 @@ type CreateDataSetOutput struct { Arn *string // The ID for the dataset that you want to create. This ID is unique per Amazon Web - // Services Region; for each Amazon Web Services account;. + // Services Region; for each Amazon Web Services account. DataSetId *string // The ARN for the ingestion, which is triggered as a result of dataset creation if diff --git a/service/quicksight/api_op_CreateDataSource.go b/service/quicksight/api_op_CreateDataSource.go index 66293f5068d..71cab35a0fa 100644 --- a/service/quicksight/api_op_CreateDataSource.go +++ b/service/quicksight/api_op_CreateDataSource.go @@ -29,13 +29,13 @@ func (c *Client) CreateDataSource(ctx context.Context, params *CreateDataSourceI type CreateDataSourceInput struct { - // The Amazon Web Services account; ID. + // The Amazon Web Services account ID. // // This member is required. AwsAccountId *string // An ID for the data source. This ID is unique per Amazon Web Services Region; for - // each Amazon Web Services account;. + // each Amazon Web Services account. // // This member is required. DataSourceId *string @@ -45,35 +45,33 @@ type CreateDataSourceInput struct { // This member is required. Name *string - // The type of the data source. Currently, the supported types for this operation - // are: ATHENA, AURORA, AURORA_POSTGRESQL, AMAZON_ELASTICSEARCH, MARIADB, MYSQL, - // POSTGRESQL, PRESTO, REDSHIFT, S3, SNOWFLAKE, SPARK, SQLSERVER, TERADATA. Use - // ListDataSources to return a list of all data sources. AMAZON_ELASTICSEARCH is - // for Amazon managed Elasticsearch Service. + // The type of the data source. To return a list of all data sources, use + // ListDataSources. Use AMAZON_ELASTICSEARCH for Amazon Elasticsearch Service. // // This member is required. Type types.DataSourceType - // The credentials QuickSight that uses to connect to your underlying source. - // Currently, only credentials based on user name and password are supported. + // The credentials Amazon QuickSight that uses to connect to your underlying + // source. Currently, only credentials based on user name and password are + // supported. Credentials *types.DataSourceCredentials - // The parameters that QuickSight uses to connect to your underlying source. + // The parameters that Amazon QuickSight uses to connect to your underlying source. DataSourceParameters types.DataSourceParameters // A list of resource permissions on the data source. Permissions []types.ResourcePermission - // Secure Socket Layer (SSL) properties that apply when QuickSight connects to your - // underlying source. + // Secure Socket Layer (SSL) properties that apply when Amazon QuickSight connects + // to your underlying source. SslProperties *types.SslProperties // Contains a map of the key-value pairs for the resource tag or tags assigned to // the data source. Tags []types.Tag - // Use this parameter only when you want QuickSight to use a VPC connection when - // connecting to your underlying source. + // Use this parameter only when you want Amazon QuickSight to use a VPC connection + // when connecting to your underlying source. VpcConnectionProperties *types.VpcConnectionProperties noSmithyDocumentSerde @@ -88,7 +86,7 @@ type CreateDataSourceOutput struct { CreationStatus types.ResourceStatus // The ID of the data source. This ID is unique per Amazon Web Services Region; for - // each Amazon Web Services account;. + // each Amazon Web Services account. DataSourceId *string // The Amazon Web Services request ID for this operation. diff --git a/service/quicksight/api_op_CreateGroup.go b/service/quicksight/api_op_CreateGroup.go index 332f1a9bc29..afd29509b6a 100644 --- a/service/quicksight/api_op_CreateGroup.go +++ b/service/quicksight/api_op_CreateGroup.go @@ -31,8 +31,8 @@ func (c *Client) CreateGroup(ctx context.Context, params *CreateGroupInput, optF // The request object for this operation. type CreateGroupInput struct { - // The ID for the Amazon Web Services account; that the group is in. Currently, you - // use the ID for the Amazon Web Services account; that contains your Amazon + // The ID for the Amazon Web Services account that the group is in. Currently, you + // use the ID for the Amazon Web Services account that contains your Amazon // QuickSight account. // // This member is required. diff --git a/service/quicksight/api_op_CreateGroupMembership.go b/service/quicksight/api_op_CreateGroupMembership.go index a6be85be4e3..4cda8a1ebde 100644 --- a/service/quicksight/api_op_CreateGroupMembership.go +++ b/service/quicksight/api_op_CreateGroupMembership.go @@ -29,8 +29,8 @@ func (c *Client) CreateGroupMembership(ctx context.Context, params *CreateGroupM type CreateGroupMembershipInput struct { - // The ID for the Amazon Web Services account; that the group is in. Currently, you - // use the ID for the Amazon Web Services account; that contains your Amazon + // The ID for the Amazon Web Services account that the group is in. Currently, you + // use the ID for the Amazon Web Services account that contains your Amazon // QuickSight account. // // This member is required. diff --git a/service/quicksight/api_op_CreateIAMPolicyAssignment.go b/service/quicksight/api_op_CreateIAMPolicyAssignment.go index a963e0a00a9..5986ac8f03d 100644 --- a/service/quicksight/api_op_CreateIAMPolicyAssignment.go +++ b/service/quicksight/api_op_CreateIAMPolicyAssignment.go @@ -11,11 +11,11 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates an assignment with one specified IAM policy, identified by its Amazon +// Creates an assignment with one specified IAMpolicy, identified by its Amazon // Resource Name (ARN). This policy assignment is attached to the specified groups // or users of Amazon QuickSight. Assignment names are unique per Amazon Web -// Services account;. To avoid overwriting rules in other namespaces, use -// assignment names that are unique. +// Services account. To avoid overwriting rules in other namespaces, use assignment +// names that are unique. func (c *Client) CreateIAMPolicyAssignment(ctx context.Context, params *CreateIAMPolicyAssignmentInput, optFns ...func(*Options)) (*CreateIAMPolicyAssignmentOutput, error) { if params == nil { params = &CreateIAMPolicyAssignmentInput{} @@ -34,7 +34,7 @@ func (c *Client) CreateIAMPolicyAssignment(ctx context.Context, params *CreateIA type CreateIAMPolicyAssignmentInput struct { // The name of the assignment, also called a rule. It must be unique within an - // Amazon Web Services account;. + // Amazon Web Services account. // // This member is required. AssignmentName *string @@ -54,8 +54,8 @@ type CreateIAMPolicyAssignmentInput struct { // This member is required. AssignmentStatus types.AssignmentStatus - // The ID of the Amazon Web Services account; where you want to assign an IAM - // policy to QuickSight users or groups. + // The ID of the Amazon Web Services account where you want to assign an IAMpolicy + // to Amazon QuickSight users or groups. // // This member is required. AwsAccountId *string @@ -65,11 +65,12 @@ type CreateIAMPolicyAssignmentInput struct { // This member is required. Namespace *string - // The QuickSight users, groups, or both that you want to assign the policy to. + // The Amazon QuickSight users, groups, or both that you want to assign the policy + // to. Identities map[string][]string - // The ARN for the IAM policy to apply to the QuickSight users and groups specified - // in this assignment. + // The ARN for the IAMpolicy to apply to the Amazon QuickSight users and groups + // specified in this assignment. PolicyArn *string noSmithyDocumentSerde @@ -81,7 +82,7 @@ type CreateIAMPolicyAssignmentOutput struct { AssignmentId *string // The name of the assignment. This name must be unique within the Amazon Web - // Services account;. + // Services account. AssignmentName *string // The status of the assignment. Possible values are as follows: @@ -97,11 +98,11 @@ type CreateIAMPolicyAssignmentOutput struct { // source. AssignmentStatus types.AssignmentStatus - // The QuickSight users, groups, or both that the IAM policy is assigned to. + // The Amazon QuickSight users, groups, or both that the IAMpolicy is assigned to. Identities map[string][]string - // The ARN for the IAM policy that is applied to the QuickSight users and groups - // specified in this assignment. + // The ARN for the IAMpolicy that is applied to the Amazon QuickSight users and + // groups specified in this assignment. PolicyArn *string // The Amazon Web Services request ID for this operation. diff --git a/service/quicksight/api_op_CreateIngestion.go b/service/quicksight/api_op_CreateIngestion.go index 61b063adcdd..faa3531a3a4 100644 --- a/service/quicksight/api_op_CreateIngestion.go +++ b/service/quicksight/api_op_CreateIngestion.go @@ -35,7 +35,7 @@ func (c *Client) CreateIngestion(ctx context.Context, params *CreateIngestionInp type CreateIngestionInput struct { - // The Amazon Web Services account; ID. + // The Amazon Web Services account ID. // // This member is required. AwsAccountId *string diff --git a/service/quicksight/api_op_CreateNamespace.go b/service/quicksight/api_op_CreateNamespace.go index 8be2e3d298f..92f5b406578 100644 --- a/service/quicksight/api_op_CreateNamespace.go +++ b/service/quicksight/api_op_CreateNamespace.go @@ -12,14 +12,14 @@ import ( ) // (Enterprise edition only) Creates a new namespace for you to use with Amazon -// QuickSight. A namespace allows you to isolate the QuickSight users and groups -// that are registered for that namespace. Users that access the namespace can -// share assets only with other users or groups in the same namespace. They can't -// see users and groups in other namespaces. You can create a namespace after your -// Amazon Web Services account; is subscribed to QuickSight. The namespace must be -// unique within the Amazon Web Services account;. By default, there is a limit of -// 100 namespaces per Amazon Web Services account;. To increase your limit, create -// a ticket with Amazon Web Services Support. +// QuickSight. A namespace allows you to isolate the Amazon QuickSight users and +// groups that are registered for that namespace. Users that access the namespace +// can share assets only with other users or groups in the same namespace. They +// can't see users and groups in other namespaces. You can create a namespace after +// your Amazon Web Services account is subscribed to Amazon QuickSight. The +// namespace must be unique within the Amazon Web Services account. By default, +// there is a limit of 100 namespaces per Amazon Web Services account. To increase +// your limit, create a ticket with Amazon Web Services Support. func (c *Client) CreateNamespace(ctx context.Context, params *CreateNamespaceInput, optFns ...func(*Options)) (*CreateNamespaceOutput, error) { if params == nil { params = &CreateNamespaceInput{} @@ -37,7 +37,7 @@ func (c *Client) CreateNamespace(ctx context.Context, params *CreateNamespaceInp type CreateNamespaceInput struct { - // The ID for the Amazon Web Services account; that you want to create the + // The ID for the Amazon Web Services account that you want to create the Amazon // QuickSight namespace in. // // This member is required. @@ -62,7 +62,7 @@ type CreateNamespaceInput struct { type CreateNamespaceOutput struct { - // The ARN of the QuickSight namespace you created. + // The ARN of the Amazon QuickSight namespace you created. Arn *string // The Amazon Web Services Region; that you want to use for the free SPICE capacity diff --git a/service/quicksight/api_op_CreateTemplate.go b/service/quicksight/api_op_CreateTemplate.go index 85bdd1f69cd..04fcc3aca1b 100644 --- a/service/quicksight/api_op_CreateTemplate.go +++ b/service/quicksight/api_op_CreateTemplate.go @@ -13,12 +13,12 @@ import ( // Creates a template from an existing Amazon QuickSight analysis or template. You // can use the resulting template to create a dashboard. A template is an entity in -// QuickSight that encapsulates the metadata required to create an analysis and -// that you can use to create s dashboard. A template adds a layer of abstraction -// by using placeholders to replace the dataset associated with the analysis. You -// can use templates to create dashboards by replacing dataset placeholders with -// datasets that follow the same schema that was used to create the source analysis -// and template. +// Amazon QuickSight that encapsulates the metadata required to create an analysis +// and that you can use to create s dashboard. A template adds a layer of +// abstraction by using placeholders to replace the dataset associated with the +// analysis. You can use templates to create dashboards by replacing dataset +// placeholders with datasets that follow the same schema that was used to create +// the source analysis and template. func (c *Client) CreateTemplate(ctx context.Context, params *CreateTemplateInput, optFns ...func(*Options)) (*CreateTemplateOutput, error) { if params == nil { params = &CreateTemplateInput{} @@ -36,9 +36,9 @@ func (c *Client) CreateTemplate(ctx context.Context, params *CreateTemplateInput type CreateTemplateInput struct { - // The ID for the Amazon Web Services account; that the group is in. Currently, you - // use the ID for the Amazon Web Services account; that contains your Amazon - // QuickSight account. + // The ID for the Amazon Web Services account that the group is in. You use the ID + // for the Amazon Web Services account that contains your Amazon QuickSight + // account. // // This member is required. AwsAccountId *string @@ -48,17 +48,17 @@ type CreateTemplateInput struct { // SourceTemplate for a template or SourceAnalysis for an analysis. Both of these // require an Amazon Resource Name (ARN). For SourceTemplate, specify the ARN of // the source template. For SourceAnalysis, specify the ARN of the source analysis. - // The SourceTemplate ARN can contain any Amazon Web Services account; and any - // QuickSight-supported Amazon Web Services Region;. Use the DataSetReferences - // entity within SourceTemplate or SourceAnalysis to list the replacement datasets - // for the placeholders listed in the original. The schema in each dataset must - // match its placeholder. + // The SourceTemplate ARN can contain any Amazon Web Services account and any + // Amazon QuickSight-supported Amazon Web Services Region;. Use the + // DataSetReferences entity within SourceTemplate or SourceAnalysis to list the + // replacement datasets for the placeholders listed in the original. The schema in + // each dataset must match its placeholder. // // This member is required. SourceEntity *types.TemplateSourceEntity // An ID for the template that you want to create. This template is unique per - // Amazon Web Services Region; in each Amazon Web Services account;. + // Amazon Web Services Region; in each Amazon Web Services account. // // This member is required. TemplateId *string diff --git a/service/quicksight/api_op_CreateTemplateAlias.go b/service/quicksight/api_op_CreateTemplateAlias.go index 347aa240229..8989504cc20 100644 --- a/service/quicksight/api_op_CreateTemplateAlias.go +++ b/service/quicksight/api_op_CreateTemplateAlias.go @@ -36,7 +36,7 @@ type CreateTemplateAliasInput struct { // This member is required. AliasName *string - // The ID of the Amazon Web Services account; that contains the template that you + // The ID of the Amazon Web Services account that contains the template that you // creating an alias for. // // This member is required. diff --git a/service/quicksight/api_op_CreateTheme.go b/service/quicksight/api_op_CreateTheme.go index 7de7f85cb07..37756dfe0e2 100644 --- a/service/quicksight/api_op_CreateTheme.go +++ b/service/quicksight/api_op_CreateTheme.go @@ -33,15 +33,14 @@ func (c *Client) CreateTheme(ctx context.Context, params *CreateThemeInput, optF type CreateThemeInput struct { - // The ID of the Amazon Web Services account; where you want to store the new - // theme. + // The ID of the Amazon Web Services account where you want to store the new theme. // // This member is required. AwsAccountId *string // The ID of the theme that a custom theme will inherit from. All themes inherit // from one of the starting themes defined by Amazon QuickSight. For a list of the - // starting themes, use ListThemes or choose Themes from within a QuickSight + // starting themes, use ListThemes or choose Themes from within a Amazon QuickSight // analysis. // // This member is required. @@ -58,7 +57,7 @@ type CreateThemeInput struct { Name *string // An ID for the theme that you want to create. The theme ID is unique per Amazon - // Web Services Region; in each Amazon Web Services account;. + // Web Services Region in each Amazon Web Services account. // // This member is required. ThemeId *string diff --git a/service/quicksight/api_op_CreateThemeAlias.go b/service/quicksight/api_op_CreateThemeAlias.go index 899693f7f1e..40febb804b0 100644 --- a/service/quicksight/api_op_CreateThemeAlias.go +++ b/service/quicksight/api_op_CreateThemeAlias.go @@ -36,7 +36,7 @@ type CreateThemeAliasInput struct { // This member is required. AliasName *string - // The ID of the Amazon Web Services account; that contains the theme for the new + // The ID of the Amazon Web Services account that contains the theme for the new // theme alias. // // This member is required. diff --git a/service/quicksight/api_op_DeleteAccountCustomization.go b/service/quicksight/api_op_DeleteAccountCustomization.go index 8adf9a57257..ac29cbc9a1f 100644 --- a/service/quicksight/api_op_DeleteAccountCustomization.go +++ b/service/quicksight/api_op_DeleteAccountCustomization.go @@ -11,7 +11,7 @@ import ( ) // Deletes all Amazon QuickSight customizations in this Amazon Web Services Region; -// for the specified Amazon Web Services account; and QuickSight namespace. +// for the specified Amazon Web Services account and Amazon QuickSight namespace. func (c *Client) DeleteAccountCustomization(ctx context.Context, params *DeleteAccountCustomizationInput, optFns ...func(*Options)) (*DeleteAccountCustomizationOutput, error) { if params == nil { params = &DeleteAccountCustomizationInput{} @@ -29,13 +29,13 @@ func (c *Client) DeleteAccountCustomization(ctx context.Context, params *DeleteA type DeleteAccountCustomizationInput struct { - // The ID for the Amazon Web Services account; that you want to delete QuickSight - // customizations from in this Amazon Web Services Region;. + // The ID for the Amazon Web Services account that you want to delete Amazon + // QuickSight customizations from in this Amazon Web Services Region;. // // This member is required. AwsAccountId *string - // The QuickSight namespace that you're deleting the customizations from. + // The Amazon QuickSight namespace that you're deleting the customizations from. Namespace *string noSmithyDocumentSerde diff --git a/service/quicksight/api_op_DeleteAnalysis.go b/service/quicksight/api_op_DeleteAnalysis.go index 1ee02e0ba51..95d55430fb2 100644 --- a/service/quicksight/api_op_DeleteAnalysis.go +++ b/service/quicksight/api_op_DeleteAnalysis.go @@ -13,14 +13,14 @@ import ( // Deletes an analysis from Amazon QuickSight. You can optionally include a // recovery window during which you can restore the analysis. If you don't specify -// a recovery window value, the operation defaults to 30 days. QuickSight attaches -// a DeletionTime stamp to the response that specifies the end of the recovery -// window. At the end of the recovery window, QuickSight deletes the analysis -// permanently. At any time before recovery window ends, you can use the -// RestoreAnalysis API operation to remove the DeletionTime stamp and cancel the -// deletion of the analysis. The analysis remains visible in the API until it's +// a recovery window value, the operation defaults to 30 days. Amazon QuickSight +// attaches a DeletionTime stamp to the response that specifies the end of the +// recovery window. At the end of the recovery window, Amazon QuickSight deletes +// the analysis permanently. At any time before recovery window ends, you can use +// the RestoreAnalysis API operation to remove the DeletionTime stamp and cancel +// the deletion of the analysis. The analysis remains visible in the API until it's // deleted, so you can describe it but you can't make a template from it. An -// analysis that's scheduled for deletion isn't accessible in the QuickSight +// analysis that's scheduled for deletion isn't accessible in the Amazon QuickSight // console. To access it in the console, restore it. Deleting an analysis doesn't // delete the dashboards that you publish from it. func (c *Client) DeleteAnalysis(ctx context.Context, params *DeleteAnalysisInput, optFns ...func(*Options)) (*DeleteAnalysisOutput, error) { @@ -45,7 +45,7 @@ type DeleteAnalysisInput struct { // This member is required. AnalysisId *string - // The ID of the Amazon Web Services account; where you want to delete an analysis. + // The ID of the Amazon Web Services account where you want to delete an analysis. // // This member is required. AwsAccountId *string @@ -55,7 +55,7 @@ type DeleteAnalysisInput struct { // restore an analysis after it's deleted. ForceDeleteWithoutRecovery bool - // A value that specifies the number of days that QuickSight waits before it + // A value that specifies the number of days that Amazon QuickSight waits before it // deletes the analysis. You can't use this parameter with the // ForceDeleteWithoutRecovery option in the same API call. The default value is 30. RecoveryWindowInDays *int64 diff --git a/service/quicksight/api_op_DeleteDashboard.go b/service/quicksight/api_op_DeleteDashboard.go index 721e7a568e3..1fbc38f27d2 100644 --- a/service/quicksight/api_op_DeleteDashboard.go +++ b/service/quicksight/api_op_DeleteDashboard.go @@ -28,7 +28,7 @@ func (c *Client) DeleteDashboard(ctx context.Context, params *DeleteDashboardInp type DeleteDashboardInput struct { - // The ID of the Amazon Web Services account; that contains the dashboard that + // The ID of the Amazon Web Services account that contains the dashboard that // you're deleting. // // This member is required. diff --git a/service/quicksight/api_op_DeleteDataSet.go b/service/quicksight/api_op_DeleteDataSet.go index 2c3efa16be6..31aacdb6523 100644 --- a/service/quicksight/api_op_DeleteDataSet.go +++ b/service/quicksight/api_op_DeleteDataSet.go @@ -28,13 +28,13 @@ func (c *Client) DeleteDataSet(ctx context.Context, params *DeleteDataSetInput, type DeleteDataSetInput struct { - // The Amazon Web Services account; ID. + // The Amazon Web Services account ID. // // This member is required. AwsAccountId *string // The ID for the dataset that you want to create. This ID is unique per Amazon Web - // Services Region; for each Amazon Web Services account;. + // Services Region; for each Amazon Web Services account. // // This member is required. DataSetId *string @@ -48,7 +48,7 @@ type DeleteDataSetOutput struct { Arn *string // The ID for the dataset that you want to create. This ID is unique per Amazon Web - // Services Region; for each Amazon Web Services account;. + // Services Region; for each Amazon Web Services account. DataSetId *string // The Amazon Web Services request ID for this operation. diff --git a/service/quicksight/api_op_DeleteDataSource.go b/service/quicksight/api_op_DeleteDataSource.go index 34f5f302de9..d8880842a5b 100644 --- a/service/quicksight/api_op_DeleteDataSource.go +++ b/service/quicksight/api_op_DeleteDataSource.go @@ -29,13 +29,13 @@ func (c *Client) DeleteDataSource(ctx context.Context, params *DeleteDataSourceI type DeleteDataSourceInput struct { - // The Amazon Web Services account; ID. + // The Amazon Web Services account ID. // // This member is required. AwsAccountId *string // The ID of the data source. This ID is unique per Amazon Web Services Region; for - // each Amazon Web Services account;. + // each Amazon Web Services account. // // This member is required. DataSourceId *string @@ -49,7 +49,7 @@ type DeleteDataSourceOutput struct { Arn *string // The ID of the data source. This ID is unique per Amazon Web Services Region; for - // each Amazon Web Services account;. + // each Amazon Web Services account. DataSourceId *string // The Amazon Web Services request ID for this operation. diff --git a/service/quicksight/api_op_DeleteGroup.go b/service/quicksight/api_op_DeleteGroup.go index 05bc131558c..f7e7952c0ea 100644 --- a/service/quicksight/api_op_DeleteGroup.go +++ b/service/quicksight/api_op_DeleteGroup.go @@ -28,8 +28,8 @@ func (c *Client) DeleteGroup(ctx context.Context, params *DeleteGroupInput, optF type DeleteGroupInput struct { - // The ID for the Amazon Web Services account; that the group is in. Currently, you - // use the ID for the Amazon Web Services account; that contains your Amazon + // The ID for the Amazon Web Services account that the group is in. Currently, you + // use the ID for the Amazon Web Services account that contains your Amazon // QuickSight account. // // This member is required. diff --git a/service/quicksight/api_op_DeleteGroupMembership.go b/service/quicksight/api_op_DeleteGroupMembership.go index 8c8380444bd..0c61449e7f4 100644 --- a/service/quicksight/api_op_DeleteGroupMembership.go +++ b/service/quicksight/api_op_DeleteGroupMembership.go @@ -28,8 +28,8 @@ func (c *Client) DeleteGroupMembership(ctx context.Context, params *DeleteGroupM type DeleteGroupMembershipInput struct { - // The ID for the Amazon Web Services account; that the group is in. Currently, you - // use the ID for the Amazon Web Services account; that contains your Amazon + // The ID for the Amazon Web Services account that the group is in. Currently, you + // use the ID for the Amazon Web Services account that contains your Amazon // QuickSight account. // // This member is required. diff --git a/service/quicksight/api_op_DeleteIAMPolicyAssignment.go b/service/quicksight/api_op_DeleteIAMPolicyAssignment.go index 77aede59616..39740991fe3 100644 --- a/service/quicksight/api_op_DeleteIAMPolicyAssignment.go +++ b/service/quicksight/api_op_DeleteIAMPolicyAssignment.go @@ -10,7 +10,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes an existing IAM policy assignment. +// Deletes an existing IAMpolicy assignment. func (c *Client) DeleteIAMPolicyAssignment(ctx context.Context, params *DeleteIAMPolicyAssignmentInput, optFns ...func(*Options)) (*DeleteIAMPolicyAssignmentOutput, error) { if params == nil { params = &DeleteIAMPolicyAssignmentInput{} @@ -33,7 +33,7 @@ type DeleteIAMPolicyAssignmentInput struct { // This member is required. AssignmentName *string - // The Amazon Web Services account; ID where you want to delete the IAM policy + // The Amazon Web Services account ID where you want to delete the IAMpolicy // assignment. // // This member is required. diff --git a/service/quicksight/api_op_DeleteNamespace.go b/service/quicksight/api_op_DeleteNamespace.go index 896f76df5d6..962c0b3490e 100644 --- a/service/quicksight/api_op_DeleteNamespace.go +++ b/service/quicksight/api_op_DeleteNamespace.go @@ -31,7 +31,7 @@ func (c *Client) DeleteNamespace(ctx context.Context, params *DeleteNamespaceInp type DeleteNamespaceInput struct { - // The ID for the Amazon Web Services account; that you want to delete the + // The ID for the Amazon Web Services account that you want to delete the Amazon // QuickSight namespace from. // // This member is required. diff --git a/service/quicksight/api_op_DeleteTemplate.go b/service/quicksight/api_op_DeleteTemplate.go index 1fbc18bb455..9a9d463cfc5 100644 --- a/service/quicksight/api_op_DeleteTemplate.go +++ b/service/quicksight/api_op_DeleteTemplate.go @@ -28,8 +28,8 @@ func (c *Client) DeleteTemplate(ctx context.Context, params *DeleteTemplateInput type DeleteTemplateInput struct { - // The ID of the Amazon Web Services account; that contains the template that - // you're deleting. + // The ID of the Amazon Web Services account that contains the template that you're + // deleting. // // This member is required. AwsAccountId *string diff --git a/service/quicksight/api_op_DeleteTemplateAlias.go b/service/quicksight/api_op_DeleteTemplateAlias.go index 39924bc5688..1ca4c15a10d 100644 --- a/service/quicksight/api_op_DeleteTemplateAlias.go +++ b/service/quicksight/api_op_DeleteTemplateAlias.go @@ -37,7 +37,7 @@ type DeleteTemplateAliasInput struct { // This member is required. AliasName *string - // The ID of the Amazon Web Services account; that contains the item to delete. + // The ID of the Amazon Web Services account that contains the item to delete. // // This member is required. AwsAccountId *string diff --git a/service/quicksight/api_op_DeleteTheme.go b/service/quicksight/api_op_DeleteTheme.go index 2d14db82594..a43fbebab3a 100644 --- a/service/quicksight/api_op_DeleteTheme.go +++ b/service/quicksight/api_op_DeleteTheme.go @@ -28,7 +28,7 @@ func (c *Client) DeleteTheme(ctx context.Context, params *DeleteThemeInput, optF type DeleteThemeInput struct { - // The ID of the Amazon Web Services account; that contains the theme that you're + // The ID of the Amazon Web Services account that contains the theme that you're // deleting. // // This member is required. diff --git a/service/quicksight/api_op_DeleteThemeAlias.go b/service/quicksight/api_op_DeleteThemeAlias.go index ae30e85a85a..a8fdd0e3bee 100644 --- a/service/quicksight/api_op_DeleteThemeAlias.go +++ b/service/quicksight/api_op_DeleteThemeAlias.go @@ -35,7 +35,7 @@ type DeleteThemeAliasInput struct { // This member is required. AliasName *string - // The ID of the Amazon Web Services account; that contains the theme alias to + // The ID of the Amazon Web Services account that contains the theme alias to // delete. // // This member is required. diff --git a/service/quicksight/api_op_DeleteUser.go b/service/quicksight/api_op_DeleteUser.go index e2a2beb76bc..5a69ac98b83 100644 --- a/service/quicksight/api_op_DeleteUser.go +++ b/service/quicksight/api_op_DeleteUser.go @@ -30,8 +30,8 @@ func (c *Client) DeleteUser(ctx context.Context, params *DeleteUserInput, optFns type DeleteUserInput struct { - // The ID for the Amazon Web Services account; that the user is in. Currently, you - // use the ID for the Amazon Web Services account; that contains your Amazon + // The ID for the Amazon Web Services account that the user is in. Currently, you + // use the ID for the Amazon Web Services account that contains your Amazon // QuickSight account. // // This member is required. diff --git a/service/quicksight/api_op_DeleteUserByPrincipalId.go b/service/quicksight/api_op_DeleteUserByPrincipalId.go index 5e061865b23..c681084e544 100644 --- a/service/quicksight/api_op_DeleteUserByPrincipalId.go +++ b/service/quicksight/api_op_DeleteUserByPrincipalId.go @@ -29,8 +29,8 @@ func (c *Client) DeleteUserByPrincipalId(ctx context.Context, params *DeleteUser // type DeleteUserByPrincipalIdInput struct { - // The ID for the Amazon Web Services account; that the user is in. Currently, you - // use the ID for the Amazon Web Services account; that contains your Amazon + // The ID for the Amazon Web Services account that the user is in. Currently, you + // use the ID for the Amazon Web Services account that contains your Amazon // QuickSight account. // // This member is required. diff --git a/service/quicksight/api_op_DescribeAccountCustomization.go b/service/quicksight/api_op_DescribeAccountCustomization.go index cb07ddf86e1..5eb004e8655 100644 --- a/service/quicksight/api_op_DescribeAccountCustomization.go +++ b/service/quicksight/api_op_DescribeAccountCustomization.go @@ -12,30 +12,30 @@ import ( ) // Describes the customizations associated with the provided Amazon Web Services -// account; and Amazon QuickSight namespace in an Amazon Web Services Region;. The -// QuickSight console evaluates which customizations to apply by running this API -// operation with the Resolved flag included. To determine what customizations -// display when you run this command, it can help to visualize the relationship of -// the entities involved. +// account and Amazon Amazon QuickSight namespace in an Amazon Web Services +// Region;. The Amazon QuickSight console evaluates which customizations to apply +// by running this API operation with the Resolved flag included. To determine what +// customizations display when you run this command, it can help to visualize the +// relationship of the entities involved. // -// * Amazon Web Services account; - The Amazon Web Services -// account; exists at the top of the hierarchy. It has the potential to use all of -// the Amazon Web Services Regions; and AWS Services. When you subscribe to -// QuickSight, you choose one Amazon Web Services Region; to use as your home -// Region. That's where your free SPICE capacity is located. You can use QuickSight -// in any supported Amazon Web Services Region;. +// * Amazon Web Services account - The +// Amazon Web Services account exists at the top of the hierarchy. It has the +// potential to use all of the Amazon Web Services Regions; and AWS Services. When +// you subscribe to Amazon QuickSight, you choose one Amazon Web Services Region; +// to use as your home Region. That's where your free SPICE capacity is located. +// You can use Amazon QuickSight in any supported Amazon Web Services Region;. // -// * Amazon Web Services Region; - -// In each Amazon Web Services Region; where you sign in to QuickSight at least -// once, QuickSight acts as a separate instance of the same service. If you have a -// user directory, it resides in us-east-1, which is the US East (N. Virginia). -// Generally speaking, these users have access to QuickSight in any Amazon Web -// Services Region;, unless they are constrained to a namespace. To run the command -// in a different Amazon Web Services Region;, you change your Region settings. If -// you're using the AWS CLI, you can use one of the following options: +// * +// Amazon Web Services Region; - In each Amazon Web Services Region; where you sign +// in to Amazon QuickSight at least once, Amazon QuickSight acts as a separate +// instance of the same service. If you have a user directory, it resides in +// us-east-1, which is the US East (N. Virginia). Generally speaking, these users +// have access to Amazon QuickSight in any Amazon Web Services Region;, unless they +// are constrained to a namespace. To run the command in a different Amazon Web +// Services Region;, you change your Region settings. If you're using the AWS CLI, +// you can use one of the following options: // -// * Use -// command line options +// * Use command line options // (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-options.html). // // * @@ -49,20 +49,20 @@ import ( // (https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html). // // * -// Namespace - A QuickSight namespace is a partition that contains users and assets -// (data sources, datasets, dashboards, and so on). To access assets that are in a -// specific namespace, users and groups must also be part of the same namespace. -// People who share a namespace are completely isolated from users and assets in -// other namespaces, even if they are in the same Amazon Web Services account; and -// Amazon Web Services Region;. +// Namespace - A Amazon QuickSight namespace is a partition that contains users and +// assets (data sources, datasets, dashboards, and so on). To access assets that +// are in a specific namespace, users and groups must also be part of the same +// namespace. People who share a namespace are completely isolated from users and +// assets in other namespaces, even if they are in the same Amazon Web Services +// account and Amazon Web Services Region;. // -// * Applied customizations - Within an Amazon Web -// Services Region;, a set of QuickSight customizations can apply to an Amazon Web -// Services account; or to a namespace. Settings that you apply to a namespace -// override settings that you apply to an Amazon Web Services account;. All -// settings are isolated to a single Amazon Web Services Region;. To apply them in -// other Amazon Web Services Regions;, run the CreateAccountCustomization command -// in each Amazon Web Services Region; where you want to apply the same +// * Applied customizations - Within an +// Amazon Web Services Region;, a set of Amazon QuickSight customizations can apply +// to an Amazon Web Services account or to a namespace. Settings that you apply to +// a namespace override settings that you apply to an Amazon Web Services account. +// All settings are isolated to a single Amazon Web Services Region;. To apply them +// in other Amazon Web Services Regions;, run the CreateAccountCustomization +// command in each Amazon Web Services Region; where you want to apply the same // customizations. func (c *Client) DescribeAccountCustomization(ctx context.Context, params *DescribeAccountCustomizationInput, optFns ...func(*Options)) (*DescribeAccountCustomizationOutput, error) { if params == nil { @@ -81,21 +81,21 @@ func (c *Client) DescribeAccountCustomization(ctx context.Context, params *Descr type DescribeAccountCustomizationInput struct { - // The ID for the Amazon Web Services account; that you want to describe QuickSight - // customizations for. + // The ID for the Amazon Web Services account that you want to describe Amazon + // QuickSight customizations for. // // This member is required. AwsAccountId *string - // The QuickSight namespace that you want to describe QuickSight customizations - // for. + // The Amazon QuickSight namespace that you want to describe Amazon QuickSight + // customizations for. Namespace *string // The Resolved flag works with the other parameters to determine which view of - // QuickSight customizations is returned. You can add this flag to your command to - // use the same view that QuickSight uses to identify which customizations to apply - // to the console. Omit this flag, or set it to no-resolved, to reveal - // customizations that are configured at different levels. + // Amazon QuickSight customizations is returned. You can add this flag to your + // command to use the same view that Amazon QuickSight uses to identify which + // customizations to apply to the console. Omit this flag, or set it to + // no-resolved, to reveal customizations that are configured at different levels. Resolved bool noSmithyDocumentSerde @@ -103,18 +103,18 @@ type DescribeAccountCustomizationInput struct { type DescribeAccountCustomizationOutput struct { - // The QuickSight customizations that exist in the current Amazon Web Services - // Region;. + // The Amazon QuickSight customizations that exist in the current Amazon Web + // Services Region;. AccountCustomization *types.AccountCustomization // The Amazon Resource Name (ARN) of the customization that's associated with this - // Amazon Web Services account;. + // Amazon Web Services account. Arn *string - // The ID for the Amazon Web Services account; that you're describing. + // The ID for the Amazon Web Services account that you're describing. AwsAccountId *string - // The QuickSight namespace that you're describing. + // The Amazon QuickSight namespace that you're describing. Namespace *string // The Amazon Web Services request ID for this operation. diff --git a/service/quicksight/api_op_DescribeAccountSettings.go b/service/quicksight/api_op_DescribeAccountSettings.go index 5c513be4419..e22bfb5c24e 100644 --- a/service/quicksight/api_op_DescribeAccountSettings.go +++ b/service/quicksight/api_op_DescribeAccountSettings.go @@ -11,8 +11,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Describes the settings that were used when your QuickSight subscription was -// first created in this Amazon Web Services account;. +// Describes the settings that were used when your Amazon QuickSight subscription +// was first created in this Amazon Web Services account. func (c *Client) DescribeAccountSettings(ctx context.Context, params *DescribeAccountSettingsInput, optFns ...func(*Options)) (*DescribeAccountSettingsOutput, error) { if params == nil { params = &DescribeAccountSettingsInput{} @@ -30,7 +30,7 @@ func (c *Client) DescribeAccountSettings(ctx context.Context, params *DescribeAc type DescribeAccountSettingsInput struct { - // The ID for the Amazon Web Services account; that contains the settings that you + // The ID for the Amazon Web Services account that contains the settings that you // want to list. // // This member is required. @@ -41,14 +41,15 @@ type DescribeAccountSettingsInput struct { type DescribeAccountSettingsOutput struct { - // The QuickSight settings for this Amazon Web Services account;. This information - // includes the edition of Amazon QuickSight that you subscribed to (Standard or - // Enterprise) and the notification email for the QuickSight subscription. In the - // QuickSight console, the QuickSight subscription is sometimes referred to as a - // QuickSight "account" even though it's technically not an account by itself. - // Instead, it's a subscription to the QuickSight service for your Amazon Web - // Services account;. The edition that you subscribe to applies to QuickSight in - // every Amazon Web Services Region; where you use it. + // The Amazon QuickSight settings for this Amazon Web Services account. This + // information includes the edition of Amazon Amazon QuickSight that you subscribed + // to (Standard or Enterprise) and the notification email for the Amazon QuickSight + // subscription. In the Amazon QuickSight console, the Amazon QuickSight + // subscription is sometimes referred to as a Amazon QuickSight "account" even + // though it's technically not an account by itself. Instead, it's a subscription + // to the Amazon QuickSight service for your Amazon Web Services account. The + // edition that you subscribe to applies to Amazon QuickSight in every Amazon Web + // Services Region; where you use it. AccountSettings *types.AccountSettings // The Amazon Web Services request ID for this operation. diff --git a/service/quicksight/api_op_DescribeAnalysis.go b/service/quicksight/api_op_DescribeAnalysis.go index d63d1e1cc15..14af44d2e39 100644 --- a/service/quicksight/api_op_DescribeAnalysis.go +++ b/service/quicksight/api_op_DescribeAnalysis.go @@ -35,8 +35,8 @@ type DescribeAnalysisInput struct { // This member is required. AnalysisId *string - // The ID of the Amazon Web Services account; that contains the analysis. You must - // be using the Amazon Web Services account; that the analysis is in. + // The ID of the Amazon Web Services account that contains the analysis. You must + // be using the Amazon Web Services account that the analysis is in. // // This member is required. AwsAccountId *string diff --git a/service/quicksight/api_op_DescribeAnalysisPermissions.go b/service/quicksight/api_op_DescribeAnalysisPermissions.go index 55bed7a873c..b0b16dd71a2 100644 --- a/service/quicksight/api_op_DescribeAnalysisPermissions.go +++ b/service/quicksight/api_op_DescribeAnalysisPermissions.go @@ -35,9 +35,9 @@ type DescribeAnalysisPermissionsInput struct { // This member is required. AnalysisId *string - // The ID of the Amazon Web Services account; that contains the analysis whose - // permissions you're describing. You must be using the Amazon Web Services - // account; that the analysis is in. + // The ID of the Amazon Web Services account that contains the analysis whose + // permissions you're describing. You must be using the Amazon Web Services account + // that the analysis is in. // // This member is required. AwsAccountId *string diff --git a/service/quicksight/api_op_DescribeDashboard.go b/service/quicksight/api_op_DescribeDashboard.go index fa1d53eea8d..8beb1b09c0d 100644 --- a/service/quicksight/api_op_DescribeDashboard.go +++ b/service/quicksight/api_op_DescribeDashboard.go @@ -29,7 +29,7 @@ func (c *Client) DescribeDashboard(ctx context.Context, params *DescribeDashboar type DescribeDashboardInput struct { - // The ID of the Amazon Web Services account; that contains the dashboard that + // The ID of the Amazon Web Services account that contains the dashboard that // you're describing. // // This member is required. diff --git a/service/quicksight/api_op_DescribeDashboardPermissions.go b/service/quicksight/api_op_DescribeDashboardPermissions.go index 9f46d41baef..cf9e7627f4a 100644 --- a/service/quicksight/api_op_DescribeDashboardPermissions.go +++ b/service/quicksight/api_op_DescribeDashboardPermissions.go @@ -29,13 +29,13 @@ func (c *Client) DescribeDashboardPermissions(ctx context.Context, params *Descr type DescribeDashboardPermissionsInput struct { - // The ID of the Amazon Web Services account; that contains the dashboard that + // The ID of the Amazon Web Services account that contains the dashboard that // you're describing permissions for. // // This member is required. AwsAccountId *string - // The ID for the dashboard, also added to the IAM policy. + // The ID for the dashboard, also added to the IAMpolicy. // // This member is required. DashboardId *string diff --git a/service/quicksight/api_op_DescribeDataSet.go b/service/quicksight/api_op_DescribeDataSet.go index 43512927e7f..a228ad6f800 100644 --- a/service/quicksight/api_op_DescribeDataSet.go +++ b/service/quicksight/api_op_DescribeDataSet.go @@ -29,13 +29,13 @@ func (c *Client) DescribeDataSet(ctx context.Context, params *DescribeDataSetInp type DescribeDataSetInput struct { - // The Amazon Web Services account; ID. + // The Amazon Web Services account ID. // // This member is required. AwsAccountId *string // The ID for the dataset that you want to create. This ID is unique per Amazon Web - // Services Region; for each Amazon Web Services account;. + // Services Region; for each Amazon Web Services account. // // This member is required. DataSetId *string diff --git a/service/quicksight/api_op_DescribeDataSetPermissions.go b/service/quicksight/api_op_DescribeDataSetPermissions.go index 3310e88f412..427423a0f8e 100644 --- a/service/quicksight/api_op_DescribeDataSetPermissions.go +++ b/service/quicksight/api_op_DescribeDataSetPermissions.go @@ -30,13 +30,13 @@ func (c *Client) DescribeDataSetPermissions(ctx context.Context, params *Describ type DescribeDataSetPermissionsInput struct { - // The Amazon Web Services account; ID. + // The Amazon Web Services account ID. // // This member is required. AwsAccountId *string // The ID for the dataset that you want to create. This ID is unique per Amazon Web - // Services Region; for each Amazon Web Services account;. + // Services Region; for each Amazon Web Services account. // // This member is required. DataSetId *string @@ -50,7 +50,7 @@ type DescribeDataSetPermissionsOutput struct { DataSetArn *string // The ID for the dataset that you want to create. This ID is unique per Amazon Web - // Services Region; for each Amazon Web Services account;. + // Services Region; for each Amazon Web Services account. DataSetId *string // A list of resource permissions on the dataset. diff --git a/service/quicksight/api_op_DescribeDataSource.go b/service/quicksight/api_op_DescribeDataSource.go index ef2635e1217..10fe0b8820b 100644 --- a/service/quicksight/api_op_DescribeDataSource.go +++ b/service/quicksight/api_op_DescribeDataSource.go @@ -29,13 +29,13 @@ func (c *Client) DescribeDataSource(ctx context.Context, params *DescribeDataSou type DescribeDataSourceInput struct { - // The Amazon Web Services account; ID. + // The Amazon Web Services account ID. // // This member is required. AwsAccountId *string // The ID of the data source. This ID is unique per Amazon Web Services Region; for - // each Amazon Web Services account;. + // each Amazon Web Services account. // // This member is required. DataSourceId *string diff --git a/service/quicksight/api_op_DescribeDataSourcePermissions.go b/service/quicksight/api_op_DescribeDataSourcePermissions.go index 0e2a610aa16..ff12cefc12b 100644 --- a/service/quicksight/api_op_DescribeDataSourcePermissions.go +++ b/service/quicksight/api_op_DescribeDataSourcePermissions.go @@ -29,13 +29,13 @@ func (c *Client) DescribeDataSourcePermissions(ctx context.Context, params *Desc type DescribeDataSourcePermissionsInput struct { - // The Amazon Web Services account; ID. + // The Amazon Web Services account ID. // // This member is required. AwsAccountId *string // The ID of the data source. This ID is unique per Amazon Web Services Region; for - // each Amazon Web Services account;. + // each Amazon Web Services account. // // This member is required. DataSourceId *string @@ -49,7 +49,7 @@ type DescribeDataSourcePermissionsOutput struct { DataSourceArn *string // The ID of the data source. This ID is unique per Amazon Web Services Region; for - // each Amazon Web Services account;. + // each Amazon Web Services account. DataSourceId *string // A list of resource permissions on the data source. diff --git a/service/quicksight/api_op_DescribeGroup.go b/service/quicksight/api_op_DescribeGroup.go index f6855aca276..bc5fbae88df 100644 --- a/service/quicksight/api_op_DescribeGroup.go +++ b/service/quicksight/api_op_DescribeGroup.go @@ -29,8 +29,8 @@ func (c *Client) DescribeGroup(ctx context.Context, params *DescribeGroupInput, type DescribeGroupInput struct { - // The ID for the Amazon Web Services account; that the group is in. Currently, you - // use the ID for the Amazon Web Services account; that contains your Amazon + // The ID for the Amazon Web Services account that the group is in. Currently, you + // use the ID for the Amazon Web Services account that contains your Amazon // QuickSight account. // // This member is required. diff --git a/service/quicksight/api_op_DescribeIAMPolicyAssignment.go b/service/quicksight/api_op_DescribeIAMPolicyAssignment.go index 3dd99745c09..93ee7a773fa 100644 --- a/service/quicksight/api_op_DescribeIAMPolicyAssignment.go +++ b/service/quicksight/api_op_DescribeIAMPolicyAssignment.go @@ -11,8 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Describes an existing IAM policy assignment, as specified by the assignment -// name. +// Describes an existing IAMpolicy assignment, as specified by the assignment name. func (c *Client) DescribeIAMPolicyAssignment(ctx context.Context, params *DescribeIAMPolicyAssignmentInput, optFns ...func(*Options)) (*DescribeIAMPolicyAssignmentOutput, error) { if params == nil { params = &DescribeIAMPolicyAssignmentInput{} @@ -35,7 +34,7 @@ type DescribeIAMPolicyAssignmentInput struct { // This member is required. AssignmentName *string - // The ID of the Amazon Web Services account; that contains the assignment that you + // The ID of the Amazon Web Services account that contains the assignment that you // want to describe. // // This member is required. @@ -51,7 +50,7 @@ type DescribeIAMPolicyAssignmentInput struct { type DescribeIAMPolicyAssignmentOutput struct { - // Information describing the IAM policy assignment. + // Information describing the IAMpolicy assignment. IAMPolicyAssignment *types.IAMPolicyAssignment // The Amazon Web Services request ID for this operation. diff --git a/service/quicksight/api_op_DescribeIngestion.go b/service/quicksight/api_op_DescribeIngestion.go index 50669f75f98..cdd65963997 100644 --- a/service/quicksight/api_op_DescribeIngestion.go +++ b/service/quicksight/api_op_DescribeIngestion.go @@ -29,7 +29,7 @@ func (c *Client) DescribeIngestion(ctx context.Context, params *DescribeIngestio type DescribeIngestionInput struct { - // The Amazon Web Services account; ID. + // The Amazon Web Services account ID. // // This member is required. AwsAccountId *string diff --git a/service/quicksight/api_op_DescribeNamespace.go b/service/quicksight/api_op_DescribeNamespace.go index 8a0b026cbc0..6747e2dc058 100644 --- a/service/quicksight/api_op_DescribeNamespace.go +++ b/service/quicksight/api_op_DescribeNamespace.go @@ -29,7 +29,7 @@ func (c *Client) DescribeNamespace(ctx context.Context, params *DescribeNamespac type DescribeNamespaceInput struct { - // The ID for the Amazon Web Services account; that contains the QuickSight + // The ID for the Amazon Web Services account that contains the Amazon QuickSight // namespace that you want to describe. // // This member is required. diff --git a/service/quicksight/api_op_DescribeTemplate.go b/service/quicksight/api_op_DescribeTemplate.go index 4e09bab6ad6..9585a790c34 100644 --- a/service/quicksight/api_op_DescribeTemplate.go +++ b/service/quicksight/api_op_DescribeTemplate.go @@ -29,8 +29,8 @@ func (c *Client) DescribeTemplate(ctx context.Context, params *DescribeTemplateI type DescribeTemplateInput struct { - // The ID of the Amazon Web Services account; that contains the template that - // you're describing. + // The ID of the Amazon Web Services account that contains the template that you're + // describing. // // This member is required. AwsAccountId *string diff --git a/service/quicksight/api_op_DescribeTemplateAlias.go b/service/quicksight/api_op_DescribeTemplateAlias.go index 7e29a49ec28..dece3c3dd2c 100644 --- a/service/quicksight/api_op_DescribeTemplateAlias.go +++ b/service/quicksight/api_op_DescribeTemplateAlias.go @@ -37,7 +37,7 @@ type DescribeTemplateAliasInput struct { // This member is required. AliasName *string - // The ID of the Amazon Web Services account; that contains the template alias that + // The ID of the Amazon Web Services account that contains the template alias that // you're describing. // // This member is required. diff --git a/service/quicksight/api_op_DescribeTemplatePermissions.go b/service/quicksight/api_op_DescribeTemplatePermissions.go index 5cfc1cd9ea5..a68de3b38d3 100644 --- a/service/quicksight/api_op_DescribeTemplatePermissions.go +++ b/service/quicksight/api_op_DescribeTemplatePermissions.go @@ -29,8 +29,8 @@ func (c *Client) DescribeTemplatePermissions(ctx context.Context, params *Descri type DescribeTemplatePermissionsInput struct { - // The ID of the Amazon Web Services account; that contains the template that - // you're describing. + // The ID of the Amazon Web Services account that contains the template that you're + // describing. // // This member is required. AwsAccountId *string diff --git a/service/quicksight/api_op_DescribeTheme.go b/service/quicksight/api_op_DescribeTheme.go index 497373eb178..7d0c8ce0203 100644 --- a/service/quicksight/api_op_DescribeTheme.go +++ b/service/quicksight/api_op_DescribeTheme.go @@ -29,7 +29,7 @@ func (c *Client) DescribeTheme(ctx context.Context, params *DescribeThemeInput, type DescribeThemeInput struct { - // The ID of the Amazon Web Services account; that contains the theme that you're + // The ID of the Amazon Web Services account that contains the theme that you're // describing. // // This member is required. diff --git a/service/quicksight/api_op_DescribeThemeAlias.go b/service/quicksight/api_op_DescribeThemeAlias.go index 99c24c9ed85..781ece92889 100644 --- a/service/quicksight/api_op_DescribeThemeAlias.go +++ b/service/quicksight/api_op_DescribeThemeAlias.go @@ -34,7 +34,7 @@ type DescribeThemeAliasInput struct { // This member is required. AliasName *string - // The ID of the Amazon Web Services account; that contains the theme alias that + // The ID of the Amazon Web Services account that contains the theme alias that // you're describing. // // This member is required. diff --git a/service/quicksight/api_op_DescribeThemePermissions.go b/service/quicksight/api_op_DescribeThemePermissions.go index 9f9f48a7a06..1d9fdd4185d 100644 --- a/service/quicksight/api_op_DescribeThemePermissions.go +++ b/service/quicksight/api_op_DescribeThemePermissions.go @@ -29,7 +29,7 @@ func (c *Client) DescribeThemePermissions(ctx context.Context, params *DescribeT type DescribeThemePermissionsInput struct { - // The ID of the Amazon Web Services account; that contains the theme that you're + // The ID of the Amazon Web Services account that contains the theme that you're // describing. // // This member is required. diff --git a/service/quicksight/api_op_DescribeUser.go b/service/quicksight/api_op_DescribeUser.go index 2bac5d636ee..a8b1fa93918 100644 --- a/service/quicksight/api_op_DescribeUser.go +++ b/service/quicksight/api_op_DescribeUser.go @@ -29,8 +29,8 @@ func (c *Client) DescribeUser(ctx context.Context, params *DescribeUserInput, op type DescribeUserInput struct { - // The ID for the Amazon Web Services account; that the user is in. Currently, you - // use the ID for the Amazon Web Services account; that contains your Amazon + // The ID for the Amazon Web Services account that the user is in. Currently, you + // use the ID for the Amazon Web Services account that contains your Amazon // QuickSight account. // // This member is required. diff --git a/service/quicksight/api_op_GetDashboardEmbedUrl.go b/service/quicksight/api_op_GetDashboardEmbedUrl.go index 52acfbbfc77..d0000f35855 100644 --- a/service/quicksight/api_op_GetDashboardEmbedUrl.go +++ b/service/quicksight/api_op_GetDashboardEmbedUrl.go @@ -12,16 +12,16 @@ import ( ) // Generates a session URL and authorization code that you can use to embed an -// Amazon QuickSight read-only dashboard in your web server code. Before you use -// this command, make sure that you have configured the dashboards and permissions. -// Currently, you can use GetDashboardEmbedURL only from the server, not from the -// user's browser. The following rules apply to the combination of URL and -// authorization code: +// Amazon Amazon QuickSight read-only dashboard in your web server code. Before you +// use this command, make sure that you have configured the dashboards and +// permissions. Currently, you can use GetDashboardEmbedURL only from the server, +// not from the user's browser. The following rules apply to the combination of URL +// and authorization code: // // * They must be used together. // -// * They can be used one time -// only. +// * They can be used one +// time only. // // * They are valid for 5 minutes after you run this command. // @@ -52,7 +52,7 @@ func (c *Client) GetDashboardEmbedUrl(ctx context.Context, params *GetDashboardE type GetDashboardEmbedUrlInput struct { - // The ID for the Amazon Web Services account; that contains the dashboard that + // The ID for the Amazon Web Services account that contains the dashboard that // you're embedding. // // This member is required. @@ -71,13 +71,14 @@ type GetDashboardEmbedUrlInput struct { // A list of one or more dashboard IDs that you want to add to a session that // includes anonymous users. The IdentityType parameter must be set to ANONYMOUS - // for this to work, because other identity types authenticate as QuickSight or IAM - // users. For example, if you set "--dashboard-id dash_id1 --dashboard-id dash_id2 - // dash_id3 identity-type ANONYMOUS", the session can access all three dashboards. + // for this to work, because other identity types authenticate as Amazon QuickSight + // or IAMusers. For example, if you set "--dashboard-id dash_id1 --dashboard-id + // dash_id2 dash_id3 identity-type ANONYMOUS", the session can access all three + // dashboards. AdditionalDashboardIds []string - // The Amazon QuickSight namespace that the user virtually belongs to. If you are - // not using an Amazon QuickSight custom namespace, set this to default. + // The Amazon QuickSight namespace that contains the dashboard IDs in this request. + // If you're not using a custom namespace, set Namespace = default. Namespace *string // Remove the reset button on the embedded dashboard. The default is FALSE, which @@ -90,11 +91,11 @@ type GetDashboardEmbedUrlInput struct { // Adds persistence of state for the user session in an embedded dashboard. // Persistence applies to the sheet and the parameter settings. These are control - // settings that the dashboard subscriber (QuickSight reader) chooses while viewing - // the dashboard. If this is set to TRUE, the settings are the same when the - // subscriber reopens the same dashboard URL. The state is stored in QuickSight, - // not in a browser cookie. If this is set to FALSE, the state of the user session - // is not persisted. The default is FALSE. + // settings that the dashboard subscriber (Amazon QuickSight reader) chooses while + // viewing the dashboard. If this is set to TRUE, the settings are the same when + // the subscriber reopens the same dashboard URL. The state is stored in Amazon + // QuickSight, not in a browser cookie. If this is set to FALSE, the state of the + // user session is not persisted. The default is FALSE. StatePersistenceEnabled bool // Remove the undo/redo button on the embedded dashboard. The default is FALSE, @@ -110,12 +111,12 @@ type GetDashboardEmbedUrlInput struct { // // * Invited nonfederated users // - // * IAM users - // and IAM role-based sessions authenticated through Federated Single Sign-On using - // SAML, OpenID Connect, or IAM federation. + // * IAMusers + // and IAMrole-based sessions authenticated through Federated Single Sign-On using + // SAML, OpenID Connect, or IAMfederation. // // Omit this parameter for users in the - // third group – IAM users and IAM role-based sessions. + // third group – IAMusers and IAM role-based sessions. UserArn *string noSmithyDocumentSerde diff --git a/service/quicksight/api_op_GetSessionEmbedUrl.go b/service/quicksight/api_op_GetSessionEmbedUrl.go index 1a597fe3700..c3683506889 100644 --- a/service/quicksight/api_op_GetSessionEmbedUrl.go +++ b/service/quicksight/api_op_GetSessionEmbedUrl.go @@ -11,18 +11,18 @@ import ( ) // Generates a session URL and authorization code that you can use to embed the -// Amazon QuickSight console in your web server code. Use GetSessionEmbedUrl where -// you want to provide an authoring portal that allows users to create data +// Amazon Amazon QuickSight console in your web server code. Use GetSessionEmbedUrl +// where you want to provide an authoring portal that allows users to create data // sources, datasets, analyses, and dashboards. The users who access an embedded -// QuickSight console need belong to the author or admin security cohort. If you -// want to restrict permissions to some of these features, add a custom permissions -// profile to the user with the UpdateUser API operation. Use RegisterUser API -// operation to add a new user with a custom permission profile attached. For more -// information, see the following sections in the Amazon QuickSight User Guide: +// Amazon QuickSight console need belong to the author or admin security cohort. If +// you want to restrict permissions to some of these features, add a custom +// permissions profile to the user with the UpdateUser API operation. Use +// RegisterUser API operation to add a new user with a custom permission profile +// attached. For more information, see the following sections in the Amazon +// QuickSight User Guide: // -// * -// Embedding the Amazon QuickSight Console Using GetSessionEmbedUrl -// (https://docs.aws.amazon.com/quicksight/latest/user/embedded-analytics-full-console-for-authenticated-users-get.html) +// * Embedding Analytics +// (https://docs.aws.amazon.com/quicksight/latest/user/embedded-analytics.html) // // * // Customizing Access to the Amazon QuickSight Console @@ -44,8 +44,8 @@ func (c *Client) GetSessionEmbedUrl(ctx context.Context, params *GetSessionEmbed type GetSessionEmbedUrlInput struct { - // The ID for the Amazon Web Services account; associated with your QuickSight - // subscription. + // The ID for the Amazon Web Services account associated with your Amazon + // QuickSight subscription. // // This member is required. AwsAccountId *string @@ -63,11 +63,11 @@ type GetSessionEmbedUrlInput struct { // * /start/favorites // // * /dashboards/DashboardId - where - // DashboardId is the actual ID key from the QuickSight console URL of the + // DashboardId is the actual ID key from the Amazon QuickSight console URL of the // dashboard // // * /analyses/AnalysisId - where AnalysisId is the actual ID key from - // the QuickSight console URL of the analysis + // the Amazon QuickSight console URL of the analysis EntryPoint *string // How many minutes the session is valid. The session lifetime must be 15-600 @@ -98,9 +98,9 @@ type GetSessionEmbedUrlInput struct { type GetSessionEmbedUrlOutput struct { // A single-use URL that you can put into your server-side web page to embed your - // QuickSight session. This URL is valid for 5 minutes. The API operation provides - // the URL with an auth_code value that enables one (and only one) sign-on to a - // user session that is valid for 10 hours. + // Amazon QuickSight session. This URL is valid for 5 minutes. The API operation + // provides the URL with an auth_code value that enables one (and only one) sign-on + // to a user session that is valid for 10 hours. EmbedUrl *string // The Amazon Web Services request ID for this operation. diff --git a/service/quicksight/api_op_ListAnalyses.go b/service/quicksight/api_op_ListAnalyses.go index 58bd5321e57..dddaae0800c 100644 --- a/service/quicksight/api_op_ListAnalyses.go +++ b/service/quicksight/api_op_ListAnalyses.go @@ -13,7 +13,7 @@ import ( ) // Lists Amazon QuickSight analyses that exist in the specified Amazon Web Services -// account;. +// account. func (c *Client) ListAnalyses(ctx context.Context, params *ListAnalysesInput, optFns ...func(*Options)) (*ListAnalysesOutput, error) { if params == nil { params = &ListAnalysesInput{} @@ -31,7 +31,7 @@ func (c *Client) ListAnalyses(ctx context.Context, params *ListAnalysesInput, op type ListAnalysesInput struct { - // The ID of the Amazon Web Services account; that contains the analyses. + // The ID of the Amazon Web Services account that contains the analyses. // // This member is required. AwsAccountId *string diff --git a/service/quicksight/api_op_ListDashboardVersions.go b/service/quicksight/api_op_ListDashboardVersions.go index 9ac3166de34..0197685359a 100644 --- a/service/quicksight/api_op_ListDashboardVersions.go +++ b/service/quicksight/api_op_ListDashboardVersions.go @@ -12,7 +12,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists all the versions of the dashboards in the QuickSight subscription. +// Lists all the versions of the dashboards in the Amazon QuickSight subscription. func (c *Client) ListDashboardVersions(ctx context.Context, params *ListDashboardVersionsInput, optFns ...func(*Options)) (*ListDashboardVersionsOutput, error) { if params == nil { params = &ListDashboardVersionsInput{} @@ -30,7 +30,7 @@ func (c *Client) ListDashboardVersions(ctx context.Context, params *ListDashboar type ListDashboardVersionsInput struct { - // The ID of the Amazon Web Services account; that contains the dashboard that + // The ID of the Amazon Web Services account that contains the dashboard that // you're listing versions for. // // This member is required. diff --git a/service/quicksight/api_op_ListDashboards.go b/service/quicksight/api_op_ListDashboards.go index f0bef83b9cd..76296a6a72e 100644 --- a/service/quicksight/api_op_ListDashboards.go +++ b/service/quicksight/api_op_ListDashboards.go @@ -12,7 +12,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists dashboards in an Amazon Web Services account;. +// Lists dashboards in an Amazon Web Services account. func (c *Client) ListDashboards(ctx context.Context, params *ListDashboardsInput, optFns ...func(*Options)) (*ListDashboardsOutput, error) { if params == nil { params = &ListDashboardsInput{} @@ -30,7 +30,7 @@ func (c *Client) ListDashboards(ctx context.Context, params *ListDashboardsInput type ListDashboardsInput struct { - // The ID of the Amazon Web Services account; that contains the dashboards that + // The ID of the Amazon Web Services account that contains the dashboards that // you're listing. // // This member is required. @@ -48,7 +48,7 @@ type ListDashboardsInput struct { type ListDashboardsOutput struct { // A structure that contains all of the dashboards in your Amazon Web Services - // account;. This structure provides basic information about the dashboards. + // account. This structure provides basic information about the dashboards. DashboardSummaryList []types.DashboardSummary // The token for the next set of results, or null if there are no more results. diff --git a/service/quicksight/api_op_ListDataSets.go b/service/quicksight/api_op_ListDataSets.go index 35ab34ece84..7eaea9f6812 100644 --- a/service/quicksight/api_op_ListDataSets.go +++ b/service/quicksight/api_op_ListDataSets.go @@ -12,7 +12,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists all of the datasets belonging to the current Amazon Web Services account; +// Lists all of the datasets belonging to the current Amazon Web Services account // in an Amazon Web Services Region;. The permissions resource is // arn:aws:quicksight:region:aws-account-id:dataset/*. func (c *Client) ListDataSets(ctx context.Context, params *ListDataSetsInput, optFns ...func(*Options)) (*ListDataSetsOutput, error) { @@ -32,7 +32,7 @@ func (c *Client) ListDataSets(ctx context.Context, params *ListDataSetsInput, op type ListDataSetsInput struct { - // The Amazon Web Services account; ID. + // The Amazon Web Services account ID. // // This member is required. AwsAccountId *string diff --git a/service/quicksight/api_op_ListDataSources.go b/service/quicksight/api_op_ListDataSources.go index 3f99eac5551..72a3a81b0f4 100644 --- a/service/quicksight/api_op_ListDataSources.go +++ b/service/quicksight/api_op_ListDataSources.go @@ -13,7 +13,7 @@ import ( ) // Lists data sources in current Amazon Web Services Region; that belong to this -// Amazon Web Services account;. +// Amazon Web Services account. func (c *Client) ListDataSources(ctx context.Context, params *ListDataSourcesInput, optFns ...func(*Options)) (*ListDataSourcesOutput, error) { if params == nil { params = &ListDataSourcesInput{} @@ -31,7 +31,7 @@ func (c *Client) ListDataSources(ctx context.Context, params *ListDataSourcesInp type ListDataSourcesInput struct { - // The Amazon Web Services account; ID. + // The Amazon Web Services account ID. // // This member is required. AwsAccountId *string diff --git a/service/quicksight/api_op_ListGroupMemberships.go b/service/quicksight/api_op_ListGroupMemberships.go index d219ae1c54a..851bfa116a2 100644 --- a/service/quicksight/api_op_ListGroupMemberships.go +++ b/service/quicksight/api_op_ListGroupMemberships.go @@ -29,8 +29,8 @@ func (c *Client) ListGroupMemberships(ctx context.Context, params *ListGroupMemb type ListGroupMembershipsInput struct { - // The ID for the Amazon Web Services account; that the group is in. Currently, you - // use the ID for the Amazon Web Services account; that contains your Amazon + // The ID for the Amazon Web Services account that the group is in. Currently, you + // use the ID for the Amazon Web Services account that contains your Amazon // QuickSight account. // // This member is required. diff --git a/service/quicksight/api_op_ListGroups.go b/service/quicksight/api_op_ListGroups.go index 03ca7adb8d1..4b671391333 100644 --- a/service/quicksight/api_op_ListGroups.go +++ b/service/quicksight/api_op_ListGroups.go @@ -29,8 +29,8 @@ func (c *Client) ListGroups(ctx context.Context, params *ListGroupsInput, optFns type ListGroupsInput struct { - // The ID for the Amazon Web Services account; that the group is in. Currently, you - // use the ID for the Amazon Web Services account; that contains your Amazon + // The ID for the Amazon Web Services account that the group is in. Currently, you + // use the ID for the Amazon Web Services account that contains your Amazon // QuickSight account. // // This member is required. diff --git a/service/quicksight/api_op_ListIAMPolicyAssignments.go b/service/quicksight/api_op_ListIAMPolicyAssignments.go index 1942115fb3c..5a8071de737 100644 --- a/service/quicksight/api_op_ListIAMPolicyAssignments.go +++ b/service/quicksight/api_op_ListIAMPolicyAssignments.go @@ -11,7 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists IAM policy assignments in the current Amazon QuickSight account. +// Lists IAMpolicy assignments in the current Amazon QuickSight account. func (c *Client) ListIAMPolicyAssignments(ctx context.Context, params *ListIAMPolicyAssignmentsInput, optFns ...func(*Options)) (*ListIAMPolicyAssignmentsOutput, error) { if params == nil { params = &ListIAMPolicyAssignmentsInput{} @@ -29,7 +29,7 @@ func (c *Client) ListIAMPolicyAssignments(ctx context.Context, params *ListIAMPo type ListIAMPolicyAssignmentsInput struct { - // The ID of the Amazon Web Services account; that contains these IAM policy + // The ID of the Amazon Web Services account that contains these IAMpolicy // assignments. // // This member is required. @@ -54,7 +54,7 @@ type ListIAMPolicyAssignmentsInput struct { type ListIAMPolicyAssignmentsOutput struct { - // Information describing the IAM policy assignments. + // Information describing the IAMpolicy assignments. IAMPolicyAssignments []types.IAMPolicyAssignmentSummary // The token for the next set of results, or null if there are no more results. diff --git a/service/quicksight/api_op_ListIAMPolicyAssignmentsForUser.go b/service/quicksight/api_op_ListIAMPolicyAssignmentsForUser.go index e61cdf94987..090372d3668 100644 --- a/service/quicksight/api_op_ListIAMPolicyAssignmentsForUser.go +++ b/service/quicksight/api_op_ListIAMPolicyAssignmentsForUser.go @@ -11,7 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists all the IAM policy assignments, including the Amazon Resource Names (ARNs) +// Lists all the IAMpolicy assignments, including the Amazon Resource Names (ARNs) // for the IAM policies assigned to the specified user and group or groups that the // user belongs to. func (c *Client) ListIAMPolicyAssignmentsForUser(ctx context.Context, params *ListIAMPolicyAssignmentsForUserInput, optFns ...func(*Options)) (*ListIAMPolicyAssignmentsForUserOutput, error) { @@ -31,7 +31,7 @@ func (c *Client) ListIAMPolicyAssignmentsForUser(ctx context.Context, params *Li type ListIAMPolicyAssignmentsForUserInput struct { - // The ID of the Amazon Web Services account; that contains the assignments. + // The ID of the Amazon Web Services account that contains the assignments. // // This member is required. AwsAccountId *string diff --git a/service/quicksight/api_op_ListIngestions.go b/service/quicksight/api_op_ListIngestions.go index ddbe58d2351..70fcad40ad9 100644 --- a/service/quicksight/api_op_ListIngestions.go +++ b/service/quicksight/api_op_ListIngestions.go @@ -30,7 +30,7 @@ func (c *Client) ListIngestions(ctx context.Context, params *ListIngestionsInput type ListIngestionsInput struct { - // The Amazon Web Services account; ID. + // The Amazon Web Services account ID. // // This member is required. AwsAccountId *string diff --git a/service/quicksight/api_op_ListNamespaces.go b/service/quicksight/api_op_ListNamespaces.go index 5b596c92dcb..1d15b6dfb60 100644 --- a/service/quicksight/api_op_ListNamespaces.go +++ b/service/quicksight/api_op_ListNamespaces.go @@ -12,7 +12,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists the namespaces for the specified Amazon Web Services account;. +// Lists the namespaces for the specified Amazon Web Services account. func (c *Client) ListNamespaces(ctx context.Context, params *ListNamespacesInput, optFns ...func(*Options)) (*ListNamespacesOutput, error) { if params == nil { params = &ListNamespacesInput{} @@ -30,7 +30,7 @@ func (c *Client) ListNamespaces(ctx context.Context, params *ListNamespacesInput type ListNamespacesInput struct { - // The ID for the Amazon Web Services account; that contains the QuickSight + // The ID for the Amazon Web Services account that contains the Amazon QuickSight // namespaces that you want to list. // // This member is required. @@ -47,7 +47,7 @@ type ListNamespacesInput struct { type ListNamespacesOutput struct { - // The information about the namespaces in this Amazon Web Services account;. The + // The information about the namespaces in this Amazon Web Services account. The // response includes the namespace ARN, name, Amazon Web Services Region;, // notification email address, creation status, and identity store. Namespaces []types.NamespaceInfoV2 diff --git a/service/quicksight/api_op_ListTemplateAliases.go b/service/quicksight/api_op_ListTemplateAliases.go index 634c989494e..68d15c452c7 100644 --- a/service/quicksight/api_op_ListTemplateAliases.go +++ b/service/quicksight/api_op_ListTemplateAliases.go @@ -30,7 +30,7 @@ func (c *Client) ListTemplateAliases(ctx context.Context, params *ListTemplateAl type ListTemplateAliasesInput struct { - // The ID of the Amazon Web Services account; that contains the template aliases + // The ID of the Amazon Web Services account that contains the template aliases // that you're listing. // // This member is required. diff --git a/service/quicksight/api_op_ListTemplateVersions.go b/service/quicksight/api_op_ListTemplateVersions.go index 76f026be93b..09e3b97a6f7 100644 --- a/service/quicksight/api_op_ListTemplateVersions.go +++ b/service/quicksight/api_op_ListTemplateVersions.go @@ -31,7 +31,7 @@ func (c *Client) ListTemplateVersions(ctx context.Context, params *ListTemplateV type ListTemplateVersionsInput struct { - // The ID of the Amazon Web Services account; that contains the templates that + // The ID of the Amazon Web Services account that contains the templates that // you're listing. // // This member is required. diff --git a/service/quicksight/api_op_ListTemplates.go b/service/quicksight/api_op_ListTemplates.go index 609832cdb9c..0d5b8b578aa 100644 --- a/service/quicksight/api_op_ListTemplates.go +++ b/service/quicksight/api_op_ListTemplates.go @@ -30,7 +30,7 @@ func (c *Client) ListTemplates(ctx context.Context, params *ListTemplatesInput, type ListTemplatesInput struct { - // The ID of the Amazon Web Services account; that contains the templates that + // The ID of the Amazon Web Services account that contains the templates that // you're listing. // // This member is required. diff --git a/service/quicksight/api_op_ListThemeAliases.go b/service/quicksight/api_op_ListThemeAliases.go index 5c175aae213..2d770f80127 100644 --- a/service/quicksight/api_op_ListThemeAliases.go +++ b/service/quicksight/api_op_ListThemeAliases.go @@ -29,7 +29,7 @@ func (c *Client) ListThemeAliases(ctx context.Context, params *ListThemeAliasesI type ListThemeAliasesInput struct { - // The ID of the Amazon Web Services account; that contains the theme aliases that + // The ID of the Amazon Web Services account that contains the theme aliases that // you're listing. // // This member is required. diff --git a/service/quicksight/api_op_ListThemeVersions.go b/service/quicksight/api_op_ListThemeVersions.go index ffcf50868aa..420ffd75510 100644 --- a/service/quicksight/api_op_ListThemeVersions.go +++ b/service/quicksight/api_op_ListThemeVersions.go @@ -12,8 +12,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists all the versions of the themes in the current Amazon Web Services -// account;. +// Lists all the versions of the themes in the current Amazon Web Services account. func (c *Client) ListThemeVersions(ctx context.Context, params *ListThemeVersionsInput, optFns ...func(*Options)) (*ListThemeVersionsOutput, error) { if params == nil { params = &ListThemeVersionsInput{} @@ -31,7 +30,7 @@ func (c *Client) ListThemeVersions(ctx context.Context, params *ListThemeVersion type ListThemeVersionsInput struct { - // The ID of the Amazon Web Services account; that contains the themes that you're + // The ID of the Amazon Web Services account that contains the themes that you're // listing. // // This member is required. diff --git a/service/quicksight/api_op_ListThemes.go b/service/quicksight/api_op_ListThemes.go index 4473faa2ba8..6e3eb133c3f 100644 --- a/service/quicksight/api_op_ListThemes.go +++ b/service/quicksight/api_op_ListThemes.go @@ -12,7 +12,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists all the themes in the current Amazon Web Services account;. +// Lists all the themes in the current Amazon Web Services account. func (c *Client) ListThemes(ctx context.Context, params *ListThemesInput, optFns ...func(*Options)) (*ListThemesOutput, error) { if params == nil { params = &ListThemesInput{} @@ -30,7 +30,7 @@ func (c *Client) ListThemes(ctx context.Context, params *ListThemesInput, optFns type ListThemesInput struct { - // The ID of the Amazon Web Services account; that contains the themes that you're + // The ID of the Amazon Web Services account that contains the themes that you're // listing. // // This member is required. diff --git a/service/quicksight/api_op_ListUserGroups.go b/service/quicksight/api_op_ListUserGroups.go index 3b46e445772..c637c6af409 100644 --- a/service/quicksight/api_op_ListUserGroups.go +++ b/service/quicksight/api_op_ListUserGroups.go @@ -30,8 +30,8 @@ func (c *Client) ListUserGroups(ctx context.Context, params *ListUserGroupsInput type ListUserGroupsInput struct { - // The Amazon Web Services account; ID that the user is in. Currently, you use the - // ID for the Amazon Web Services account; that contains your Amazon QuickSight + // The Amazon Web Services account ID that the user is in. Currently, you use the + // ID for the Amazon Web Services account that contains your Amazon QuickSight // account. // // This member is required. diff --git a/service/quicksight/api_op_ListUsers.go b/service/quicksight/api_op_ListUsers.go index ffac18ef015..e069655973a 100644 --- a/service/quicksight/api_op_ListUsers.go +++ b/service/quicksight/api_op_ListUsers.go @@ -29,8 +29,8 @@ func (c *Client) ListUsers(ctx context.Context, params *ListUsersInput, optFns . type ListUsersInput struct { - // The ID for the Amazon Web Services account; that the user is in. Currently, you - // use the ID for the Amazon Web Services account; that contains your Amazon + // The ID for the Amazon Web Services account that the user is in. Currently, you + // use the ID for the Amazon Web Services account that contains your Amazon // QuickSight account. // // This member is required. diff --git a/service/quicksight/api_op_RegisterUser.go b/service/quicksight/api_op_RegisterUser.go index 88a06ec81fb..27ae73dee8d 100644 --- a/service/quicksight/api_op_RegisterUser.go +++ b/service/quicksight/api_op_RegisterUser.go @@ -30,8 +30,8 @@ func (c *Client) RegisterUser(ctx context.Context, params *RegisterUserInput, op type RegisterUserInput struct { - // The ID for the Amazon Web Services account; that the user is in. Currently, you - // use the ID for the Amazon Web Services account; that contains your Amazon + // The ID for the Amazon Web Services account that the user is in. Currently, you + // use the ID for the Amazon Web Services account that contains your Amazon // QuickSight account. // // This member is required. @@ -46,7 +46,7 @@ type RegisterUserInput struct { // parameter accepts two values: // // * IAM: A user whose identity maps to an existing - // IAM user or role. + // IAMuser or role. // // * QUICKSIGHT: A user whose identity is owned and managed // internally by Amazon QuickSight. @@ -80,8 +80,8 @@ type RegisterUserInput struct { UserRole types.UserRole // The URL of the custom OpenID Connect (OIDC) provider that provides identity to - // let a user federate into QuickSight with an associated AWS Identity and Access - // Management (IAM) role. This parameter should only be used when + // let a user federate into Amazon QuickSight with an associated Identity and + // Access Management(IAM) role. This parameter should only be used when // ExternalLoginFederationProviderType parameter is set to CUSTOM_OIDC. CustomFederationProviderUrl *string @@ -102,18 +102,18 @@ type RegisterUserInput struct { // To add custom permissions to an existing // user, use UpdateUser instead. A set of custom permissions includes any // combination of these restrictions. Currently, you need to create the profile - // names for custom permission sets by using the QuickSight console. Then, you use - // the RegisterUser API operation to assign the named set of permissions to a - // QuickSight user. QuickSight custom permissions are applied through IAM policies. - // Therefore, they override the permissions typically granted by assigning - // QuickSight users to one of the default security cohorts in QuickSight (admin, - // author, reader). This feature is available only to QuickSight Enterprise edition - // subscriptions. + // names for custom permission sets by using the Amazon QuickSight console. Then, + // you use the RegisterUser API operation to assign the named set of permissions to + // a Amazon QuickSight user. Amazon QuickSight custom permissions are applied + // through IAMpolicies. Therefore, they override the permissions typically granted + // by assigning Amazon QuickSight users to one of the default security cohorts in + // Amazon QuickSight (admin, author, reader). This feature is available only to + // Amazon QuickSight Enterprise edition subscriptions. CustomPermissionsName *string // The type of supported external login provider that provides identity to let a - // user federate into Amazon QuickSight with an associated AWS Identity and Access - // Management (IAM) role. The type of supported external login provider can be one + // user federate into Amazon QuickSight with an associated Identity and Access + // Management(IAM) role. The type of supported external login provider can be one // of the following. // // * COGNITO: Amazon Cognito. The provider URL is @@ -129,15 +129,15 @@ type RegisterUserInput struct { // The identity ID for a user in the external login provider. ExternalLoginId *string - // The ARN of the IAM user or role that you are registering with Amazon QuickSight. + // The ARN of the IAMuser or role that you are registering with Amazon QuickSight. IamArn *string // You need to use this parameter only when you register one or more users using an - // assumed IAM role. You don't need to provide the session name for other - // scenarios, for example when you are registering an IAM user or an Amazon - // QuickSight user. You can register multiple users using the same IAM role if each - // user has a different session name. For more information on assuming IAM roles, - // see assume-role + // assumed IAMrole. You don't need to provide the session name for other scenarios, + // for example when you are registering an IAMuser or an Amazon QuickSight user. + // You can register multiple users using the same IAMrole if each user has a + // different session name. For more information on assuming IAMroles, see + // assume-role // (https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html) in the // AWS CLI Reference. SessionName *string diff --git a/service/quicksight/api_op_RestoreAnalysis.go b/service/quicksight/api_op_RestoreAnalysis.go index b15004e1278..c2dce84f261 100644 --- a/service/quicksight/api_op_RestoreAnalysis.go +++ b/service/quicksight/api_op_RestoreAnalysis.go @@ -33,7 +33,7 @@ type RestoreAnalysisInput struct { // This member is required. AnalysisId *string - // The ID of the Amazon Web Services account; that contains the analysis. + // The ID of the Amazon Web Services account that contains the analysis. // // This member is required. AwsAccountId *string diff --git a/service/quicksight/api_op_SearchAnalyses.go b/service/quicksight/api_op_SearchAnalyses.go index b76cb61c375..78c9db1e9de 100644 --- a/service/quicksight/api_op_SearchAnalyses.go +++ b/service/quicksight/api_op_SearchAnalyses.go @@ -32,8 +32,8 @@ func (c *Client) SearchAnalyses(ctx context.Context, params *SearchAnalysesInput type SearchAnalysesInput struct { - // The ID of the Amazon Web Services account; that contains the analyses that - // you're searching for. + // The ID of the Amazon Web Services account that contains the analyses that you're + // searching for. // // This member is required. AwsAccountId *string diff --git a/service/quicksight/api_op_SearchDashboards.go b/service/quicksight/api_op_SearchDashboards.go index 575ca497492..957e0e97ad8 100644 --- a/service/quicksight/api_op_SearchDashboards.go +++ b/service/quicksight/api_op_SearchDashboards.go @@ -32,7 +32,7 @@ func (c *Client) SearchDashboards(ctx context.Context, params *SearchDashboardsI type SearchDashboardsInput struct { - // The ID of the Amazon Web Services account; that contains the user whose + // The ID of the Amazon Web Services account that contains the user whose // dashboards you're searching for. // // This member is required. diff --git a/service/quicksight/api_op_TagResource.go b/service/quicksight/api_op_TagResource.go index c280d5758df..9d02ead0de5 100644 --- a/service/quicksight/api_op_TagResource.go +++ b/service/quicksight/api_op_TagResource.go @@ -11,25 +11,25 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Assigns one or more tags (key-value pairs) to the specified QuickSight resource. -// Tags can help you organize and categorize your resources. You can also use them -// to scope user permissions, by granting a user permission to access or change -// only resources with certain tag values. You can use the TagResource operation -// with a resource that already has tags. If you specify a new tag key for the -// resource, this tag is appended to the list of tags associated with the resource. -// If you specify a tag key that is already associated with the resource, the new -// tag value that you specify replaces the previous value for that tag. You can -// associate as many as 50 tags with a resource. QuickSight supports tagging on -// data set, data source, dashboard, and template. Tagging for QuickSight works in -// a similar way to tagging for other AWS services, except for the following: +// Assigns one or more tags (key-value pairs) to the specified Amazon QuickSight +// resource. Tags can help you organize and categorize your resources. You can also +// use them to scope user permissions, by granting a user permission to access or +// change only resources with certain tag values. You can use the TagResource +// operation with a resource that already has tags. If you specify a new tag key +// for the resource, this tag is appended to the list of tags associated with the +// resource. If you specify a tag key that is already associated with the resource, +// the new tag value that you specify replaces the previous value for that tag. You +// can associate as many as 50 tags with a resource. Amazon QuickSight supports +// tagging on data set, data source, dashboard, and template. Tagging for Amazon +// QuickSight works in a similar way to tagging for other AWS services, except for +// the following: // -// * -// You can't use tags to track AWS costs for QuickSight. This restriction is -// because QuickSight costs are based on users and SPICE capacity, which aren't -// taggable resources. +// * You can't use tags to track AWS costs for Amazon QuickSight. +// This restriction is because Amazon QuickSight costs are based on users and SPICE +// capacity, which aren't taggable resources. // -// * QuickSight doesn't currently support the Tag Editor for -// Resource Groups. +// * Amazon QuickSight doesn't +// currently support the Tag Editor for Resource Groups. func (c *Client) TagResource(ctx context.Context, params *TagResourceInput, optFns ...func(*Options)) (*TagResourceOutput, error) { if params == nil { params = &TagResourceInput{} diff --git a/service/quicksight/api_op_UpdateAccountCustomization.go b/service/quicksight/api_op_UpdateAccountCustomization.go index 10d8049628d..e82726ae3b6 100644 --- a/service/quicksight/api_op_UpdateAccountCustomization.go +++ b/service/quicksight/api_op_UpdateAccountCustomization.go @@ -13,11 +13,11 @@ import ( // Updates Amazon QuickSight customizations the current Amazon Web Services // Region;. Currently, the only customization you can use is a theme. You can use -// customizations for your Amazon Web Services account; or, if you specify a -// namespace, for a QuickSight namespace instead. Customizations that apply to a -// namespace override customizations that apply to an Amazon Web Services account;. -// To find out which customizations apply, use the DescribeAccountCustomization API -// operation. +// customizations for your Amazon Web Services account or, if you specify a +// namespace, for a Amazon QuickSight namespace instead. Customizations that apply +// to a namespace override customizations that apply to an Amazon Web Services +// account. To find out which customizations apply, use the +// DescribeAccountCustomization API operation. func (c *Client) UpdateAccountCustomization(ctx context.Context, params *UpdateAccountCustomizationInput, optFns ...func(*Options)) (*UpdateAccountCustomizationOutput, error) { if params == nil { params = &UpdateAccountCustomizationInput{} @@ -35,19 +35,19 @@ func (c *Client) UpdateAccountCustomization(ctx context.Context, params *UpdateA type UpdateAccountCustomizationInput struct { - // The QuickSight customizations you're updating in the current Amazon Web Services - // Region;. + // The Amazon QuickSight customizations you're updating in the current Amazon Web + // Services Region;. // // This member is required. AccountCustomization *types.AccountCustomization - // The ID for the Amazon Web Services account; that you want to update QuickSight - // customizations for. + // The ID for the Amazon Web Services account that you want to update Amazon + // QuickSight customizations for. // // This member is required. AwsAccountId *string - // The namespace that you want to update QuickSight customizations for. + // The namespace that you want to update Amazon QuickSight customizations for. Namespace *string noSmithyDocumentSerde @@ -55,16 +55,16 @@ type UpdateAccountCustomizationInput struct { type UpdateAccountCustomizationOutput struct { - // The QuickSight customizations you're updating in the current Amazon Web Services - // Region;. + // The Amazon QuickSight customizations you're updating in the current Amazon Web + // Services Region;. AccountCustomization *types.AccountCustomization // The Amazon Resource Name (ARN) for the updated customization for this Amazon Web - // Services account;. + // Services account. Arn *string - // The ID for the Amazon Web Services account; that you want to update QuickSight - // customizations for. + // The ID for the Amazon Web Services account that you want to update Amazon + // QuickSight customizations for. AwsAccountId *string // The namespace associated with the customization that you're updating. diff --git a/service/quicksight/api_op_UpdateAccountSettings.go b/service/quicksight/api_op_UpdateAccountSettings.go index 645901c7b51..a3df4f974fe 100644 --- a/service/quicksight/api_op_UpdateAccountSettings.go +++ b/service/quicksight/api_op_UpdateAccountSettings.go @@ -10,7 +10,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Updates the Amazon QuickSight settings in your Amazon Web Services account;. +// Updates the Amazon QuickSight settings in your Amazon Web Services account. func (c *Client) UpdateAccountSettings(ctx context.Context, params *UpdateAccountSettingsInput, optFns ...func(*Options)) (*UpdateAccountSettingsOutput, error) { if params == nil { params = &UpdateAccountSettingsInput{} @@ -28,22 +28,22 @@ func (c *Client) UpdateAccountSettings(ctx context.Context, params *UpdateAccoun type UpdateAccountSettingsInput struct { - // The ID for the Amazon Web Services account; that contains the QuickSight + // The ID for the Amazon Web Services account that contains the Amazon QuickSight // settings that you want to list. // // This member is required. AwsAccountId *string - // The default namespace for this Amazon Web Services account;. Currently, the + // The default namespace for this Amazon Web Services account. Currently, the // default is default. Identity and Access Management (IAM) users that register for - // the first time with QuickSight provide an email that becomes associated with the - // default namespace. + // the first time with Amazon QuickSight provide an email that becomes associated + // with the default namespace. // // This member is required. DefaultNamespace *string - // The email address that you want QuickSight to send notifications to regarding - // your Amazon Web Services account; or QuickSight subscription. + // The email address that you want Amazon QuickSight to send notifications to + // regarding your Amazon Web Services account or Amazon QuickSight subscription. NotificationEmail *string noSmithyDocumentSerde diff --git a/service/quicksight/api_op_UpdateAnalysis.go b/service/quicksight/api_op_UpdateAnalysis.go index ef14dffffd3..562fee82641 100644 --- a/service/quicksight/api_op_UpdateAnalysis.go +++ b/service/quicksight/api_op_UpdateAnalysis.go @@ -35,14 +35,14 @@ type UpdateAnalysisInput struct { // This member is required. AnalysisId *string - // The ID of the Amazon Web Services account; that contains the analysis that - // you're updating. + // The ID of the Amazon Web Services account that contains the analysis that you're + // updating. // // This member is required. AwsAccountId *string // A descriptive name for the analysis that you're updating. This name displays for - // the analysis in the QuickSight console. + // the analysis in the Amazon QuickSight console. // // This member is required. Name *string @@ -59,8 +59,8 @@ type UpdateAnalysisInput struct { Parameters *types.Parameters // The Amazon Resource Name (ARN) for the theme to apply to the analysis that - // you're creating. To see the theme in the QuickSight console, make sure that you - // have access to it. + // you're creating. To see the theme in the Amazon QuickSight console, make sure + // that you have access to it. ThemeArn *string noSmithyDocumentSerde diff --git a/service/quicksight/api_op_UpdateAnalysisPermissions.go b/service/quicksight/api_op_UpdateAnalysisPermissions.go index 5d21c81f822..dc6629e2507 100644 --- a/service/quicksight/api_op_UpdateAnalysisPermissions.go +++ b/service/quicksight/api_op_UpdateAnalysisPermissions.go @@ -35,8 +35,8 @@ type UpdateAnalysisPermissionsInput struct { // This member is required. AnalysisId *string - // The ID of the Amazon Web Services account; that contains the analysis whose - // permissions you're updating. You must be using the Amazon Web Services account; + // The ID of the Amazon Web Services account that contains the analysis whose + // permissions you're updating. You must be using the Amazon Web Services account // that the analysis is in. // // This member is required. diff --git a/service/quicksight/api_op_UpdateDashboard.go b/service/quicksight/api_op_UpdateDashboard.go index 1cead027474..460062c4378 100644 --- a/service/quicksight/api_op_UpdateDashboard.go +++ b/service/quicksight/api_op_UpdateDashboard.go @@ -11,7 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Updates a dashboard in an Amazon Web Services account;. Updating a Dashboard +// Updates a dashboard in an Amazon Web Services account. Updating a Dashboard // creates a new dashboard version but does not immediately publish the new // version. You can update the published version of a dashboard by using the // UpdateDashboardPublishedVersion API operation. @@ -32,7 +32,7 @@ func (c *Client) UpdateDashboard(ctx context.Context, params *UpdateDashboardInp type UpdateDashboardInput struct { - // The ID of the Amazon Web Services account; that contains the dashboard that + // The ID of the Amazon Web Services account that contains the dashboard that // you're updating. // // This member is required. @@ -54,10 +54,10 @@ type UpdateDashboardInput struct { // you need to update a dashboard from an analysis, first convert the analysis to a // template by using the CreateTemplate API operation. For SourceTemplate, specify // the Amazon Resource Name (ARN) of the source template. The SourceTemplate ARN - // can contain any Amazon Web Services account; and any QuickSight-supported Amazon - // Web Services Region;. Use the DataSetReferences entity within SourceTemplate to - // list the replacement datasets for the placeholders listed in the original. The - // schema in each dataset must match its placeholder. + // can contain any Amazon Web Services account and any Amazon QuickSight-supported + // Amazon Web Services Region;. Use the DataSetReferences entity within + // SourceTemplate to list the replacement datasets for the placeholders listed in + // the original. The schema in each dataset must match its placeholder. // // This member is required. SourceEntity *types.DashboardSourceEntity @@ -66,7 +66,7 @@ type UpdateDashboardInput struct { // // * AvailabilityStatus // for AdHocFilteringOption - This status can be either ENABLED or DISABLED. When - // this is set to DISABLED, QuickSight disables the left filter pane on the + // this is set to DISABLED, Amazon QuickSight disables the left filter pane on the // published dashboard, which can be used for ad hoc (one-time) filtering. This // option is ENABLED by default. // @@ -87,7 +87,7 @@ type UpdateDashboardInput struct { // The Amazon Resource Name (ARN) of the theme that is being used for this // dashboard. If you add a value for this field, it overrides the value that was // originally associated with the entity. The theme ARN must exist in the same - // Amazon Web Services account; where you create the dashboard. + // Amazon Web Services account where you create the dashboard. ThemeArn *string // A description for the first version of the dashboard being created. diff --git a/service/quicksight/api_op_UpdateDashboardPermissions.go b/service/quicksight/api_op_UpdateDashboardPermissions.go index 7ed2f648d2a..f3970772a50 100644 --- a/service/quicksight/api_op_UpdateDashboardPermissions.go +++ b/service/quicksight/api_op_UpdateDashboardPermissions.go @@ -29,7 +29,7 @@ func (c *Client) UpdateDashboardPermissions(ctx context.Context, params *UpdateD type UpdateDashboardPermissionsInput struct { - // The ID of the Amazon Web Services account; that contains the dashboard whose + // The ID of the Amazon Web Services account that contains the dashboard whose // permissions you're updating. // // This member is required. diff --git a/service/quicksight/api_op_UpdateDashboardPublishedVersion.go b/service/quicksight/api_op_UpdateDashboardPublishedVersion.go index 382b02ef641..5d947462486 100644 --- a/service/quicksight/api_op_UpdateDashboardPublishedVersion.go +++ b/service/quicksight/api_op_UpdateDashboardPublishedVersion.go @@ -28,7 +28,7 @@ func (c *Client) UpdateDashboardPublishedVersion(ctx context.Context, params *Up type UpdateDashboardPublishedVersionInput struct { - // The ID of the Amazon Web Services account; that contains the dashboard that + // The ID of the Amazon Web Services account that contains the dashboard that // you're updating. // // This member is required. diff --git a/service/quicksight/api_op_UpdateDataSet.go b/service/quicksight/api_op_UpdateDataSet.go index bc89049a6fb..103b4482e32 100644 --- a/service/quicksight/api_op_UpdateDataSet.go +++ b/service/quicksight/api_op_UpdateDataSet.go @@ -29,13 +29,13 @@ func (c *Client) UpdateDataSet(ctx context.Context, params *UpdateDataSetInput, type UpdateDataSetInput struct { - // The Amazon Web Services account; ID. + // The Amazon Web Services account ID. // // This member is required. AwsAccountId *string // The ID for the dataset that you want to update. This ID is unique per Amazon Web - // Services Region; for each Amazon Web Services account;. + // Services Region; for each Amazon Web Services account. // // This member is required. DataSetId *string @@ -55,13 +55,17 @@ type UpdateDataSetInput struct { // This member is required. PhysicalTableMap map[string]types.PhysicalTable - // Groupings of columns that work together in certain QuickSight features. + // Groupings of columns that work together in certain Amazon QuickSight features. // Currently, only geospatial hierarchy is supported. ColumnGroups []types.ColumnGroup // A set of one or more definitions of a ColumnLevelPermissionRule. ColumnLevelPermissionRules []types.ColumnLevelPermissionRule + // The usage configuration to apply to child datasets that reference this dataset + // as a source. + DataSetUsageConfiguration *types.DataSetUsageConfiguration + // The folder that contains fields and nested subfolders for your dataset. FieldFolders map[string]types.FieldFolder @@ -85,7 +89,7 @@ type UpdateDataSetOutput struct { Arn *string // The ID for the dataset that you want to create. This ID is unique per Amazon Web - // Services Region; for each Amazon Web Services account;. + // Services Region; for each Amazon Web Services account. DataSetId *string // The ARN for the ingestion, which is triggered as a result of dataset creation if diff --git a/service/quicksight/api_op_UpdateDataSetPermissions.go b/service/quicksight/api_op_UpdateDataSetPermissions.go index c1424fe9cf1..5faa45474bf 100644 --- a/service/quicksight/api_op_UpdateDataSetPermissions.go +++ b/service/quicksight/api_op_UpdateDataSetPermissions.go @@ -30,13 +30,13 @@ func (c *Client) UpdateDataSetPermissions(ctx context.Context, params *UpdateDat type UpdateDataSetPermissionsInput struct { - // The Amazon Web Services account; ID. + // The Amazon Web Services account ID. // // This member is required. AwsAccountId *string // The ID for the dataset whose permissions you want to update. This ID is unique - // per Amazon Web Services Region; for each Amazon Web Services account;. + // per Amazon Web Services Region; for each Amazon Web Services account. // // This member is required. DataSetId *string @@ -56,7 +56,7 @@ type UpdateDataSetPermissionsOutput struct { DataSetArn *string // The ID for the dataset whose permissions you want to update. This ID is unique - // per Amazon Web Services Region; for each Amazon Web Services account;. + // per Amazon Web Services Region; for each Amazon Web Services account. DataSetId *string // The Amazon Web Services request ID for this operation. diff --git a/service/quicksight/api_op_UpdateDataSource.go b/service/quicksight/api_op_UpdateDataSource.go index e06e4d6f3f9..ddf8d59c601 100644 --- a/service/quicksight/api_op_UpdateDataSource.go +++ b/service/quicksight/api_op_UpdateDataSource.go @@ -29,13 +29,13 @@ func (c *Client) UpdateDataSource(ctx context.Context, params *UpdateDataSourceI type UpdateDataSourceInput struct { - // The Amazon Web Services account; ID. + // The Amazon Web Services account ID. // // This member is required. AwsAccountId *string // The ID of the data source. This ID is unique per Amazon Web Services Region; for - // each Amazon Web Services account;. + // each Amazon Web Services account. // // This member is required. DataSourceId *string @@ -45,19 +45,20 @@ type UpdateDataSourceInput struct { // This member is required. Name *string - // The credentials that QuickSight that uses to connect to your underlying source. - // Currently, only credentials based on user name and password are supported. + // The credentials that Amazon QuickSight that uses to connect to your underlying + // source. Currently, only credentials based on user name and password are + // supported. Credentials *types.DataSourceCredentials - // The parameters that QuickSight uses to connect to your underlying source. + // The parameters that Amazon QuickSight uses to connect to your underlying source. DataSourceParameters types.DataSourceParameters - // Secure Socket Layer (SSL) properties that apply when QuickSight connects to your - // underlying source. + // Secure Socket Layer (SSL) properties that apply when Amazon QuickSight connects + // to your underlying source. SslProperties *types.SslProperties - // Use this parameter only when you want QuickSight to use a VPC connection when - // connecting to your underlying source. + // Use this parameter only when you want Amazon QuickSight to use a VPC connection + // when connecting to your underlying source. VpcConnectionProperties *types.VpcConnectionProperties noSmithyDocumentSerde @@ -69,7 +70,7 @@ type UpdateDataSourceOutput struct { Arn *string // The ID of the data source. This ID is unique per Amazon Web Services Region; for - // each Amazon Web Services account;. + // each Amazon Web Services account. DataSourceId *string // The Amazon Web Services request ID for this operation. diff --git a/service/quicksight/api_op_UpdateDataSourcePermissions.go b/service/quicksight/api_op_UpdateDataSourcePermissions.go index b5327721d9c..85816137dff 100644 --- a/service/quicksight/api_op_UpdateDataSourcePermissions.go +++ b/service/quicksight/api_op_UpdateDataSourcePermissions.go @@ -29,13 +29,13 @@ func (c *Client) UpdateDataSourcePermissions(ctx context.Context, params *Update type UpdateDataSourcePermissionsInput struct { - // The Amazon Web Services account; ID. + // The Amazon Web Services account ID. // // This member is required. AwsAccountId *string // The ID of the data source. This ID is unique per Amazon Web Services Region; for - // each Amazon Web Services account;. + // each Amazon Web Services account. // // This member is required. DataSourceId *string @@ -55,7 +55,7 @@ type UpdateDataSourcePermissionsOutput struct { DataSourceArn *string // The ID of the data source. This ID is unique per Amazon Web Services Region; for - // each Amazon Web Services account;. + // each Amazon Web Services account. DataSourceId *string // The Amazon Web Services request ID for this operation. diff --git a/service/quicksight/api_op_UpdateGroup.go b/service/quicksight/api_op_UpdateGroup.go index ac34c88847e..399aff910dd 100644 --- a/service/quicksight/api_op_UpdateGroup.go +++ b/service/quicksight/api_op_UpdateGroup.go @@ -29,8 +29,8 @@ func (c *Client) UpdateGroup(ctx context.Context, params *UpdateGroupInput, optF type UpdateGroupInput struct { - // The ID for the Amazon Web Services account; that the group is in. Currently, you - // use the ID for the Amazon Web Services account; that contains your Amazon + // The ID for the Amazon Web Services account that the group is in. Currently, you + // use the ID for the Amazon Web Services account that contains your Amazon // QuickSight account. // // This member is required. diff --git a/service/quicksight/api_op_UpdateIAMPolicyAssignment.go b/service/quicksight/api_op_UpdateIAMPolicyAssignment.go index 49952461ad3..456d557a883 100644 --- a/service/quicksight/api_op_UpdateIAMPolicyAssignment.go +++ b/service/quicksight/api_op_UpdateIAMPolicyAssignment.go @@ -11,7 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Updates an existing IAM policy assignment. This operation updates only the +// Updates an existing IAMpolicy assignment. This operation updates only the // optional parameter or parameters that are specified in the request. This // overwrites all of the users included in Identities. func (c *Client) UpdateIAMPolicyAssignment(ctx context.Context, params *UpdateIAMPolicyAssignmentInput, optFns ...func(*Options)) (*UpdateIAMPolicyAssignmentOutput, error) { @@ -32,12 +32,12 @@ func (c *Client) UpdateIAMPolicyAssignment(ctx context.Context, params *UpdateIA type UpdateIAMPolicyAssignmentInput struct { // The name of the assignment, also called a rule. This name must be unique within - // an Amazon Web Services account;. + // an Amazon Web Services account. // // This member is required. AssignmentName *string - // The ID of the Amazon Web Services account; that contains the IAM policy + // The ID of the Amazon Web Services account that contains the IAMpolicy // assignment. // // This member is required. @@ -61,11 +61,12 @@ type UpdateIAMPolicyAssignmentInput struct { // source. AssignmentStatus types.AssignmentStatus - // The QuickSight users, groups, or both that you want to assign the policy to. + // The Amazon QuickSight users, groups, or both that you want to assign the policy + // to. Identities map[string][]string - // The ARN for the IAM policy to apply to the QuickSight users and groups specified - // in this assignment. + // The ARN for the IAMpolicy to apply to the Amazon QuickSight users and groups + // specified in this assignment. PolicyArn *string noSmithyDocumentSerde @@ -92,11 +93,11 @@ type UpdateIAMPolicyAssignmentOutput struct { // source. AssignmentStatus types.AssignmentStatus - // The QuickSight users, groups, or both that the IAM policy is assigned to. + // The Amazon QuickSight users, groups, or both that the IAMpolicy is assigned to. Identities map[string][]string - // The ARN for the IAM policy applied to the QuickSight users and groups specified - // in this assignment. + // The ARN for the IAMpolicy applied to the Amazon QuickSight users and groups + // specified in this assignment. PolicyArn *string // The Amazon Web Services request ID for this operation. diff --git a/service/quicksight/api_op_UpdateTemplate.go b/service/quicksight/api_op_UpdateTemplate.go index 3388f1f7bed..58e97504a01 100644 --- a/service/quicksight/api_op_UpdateTemplate.go +++ b/service/quicksight/api_op_UpdateTemplate.go @@ -30,8 +30,8 @@ func (c *Client) UpdateTemplate(ctx context.Context, params *UpdateTemplateInput type UpdateTemplateInput struct { - // The ID of the Amazon Web Services account; that contains the template that - // you're updating. + // The ID of the Amazon Web Services account that contains the template that you're + // updating. // // This member is required. AwsAccountId *string @@ -41,11 +41,11 @@ type UpdateTemplateInput struct { // SourceTemplate for a template or SourceAnalysis for an analysis. Both of these // require an Amazon Resource Name (ARN). For SourceTemplate, specify the ARN of // the source template. For SourceAnalysis, specify the ARN of the source analysis. - // The SourceTemplate ARN can contain any Amazon Web Services account; and any - // QuickSight-supported Amazon Web Services Region;. Use the DataSetReferences - // entity within SourceTemplate or SourceAnalysis to list the replacement datasets - // for the placeholders listed in the original. The schema in each dataset must - // match its placeholder. + // The SourceTemplate ARN can contain any Amazon Web Services account and any + // Amazon QuickSight-supported Amazon Web Services Region;. Use the + // DataSetReferences entity within SourceTemplate or SourceAnalysis to list the + // replacement datasets for the placeholders listed in the original. The schema in + // each dataset must match its placeholder. // // This member is required. SourceEntity *types.TemplateSourceEntity diff --git a/service/quicksight/api_op_UpdateTemplateAlias.go b/service/quicksight/api_op_UpdateTemplateAlias.go index 8cfe6d4a082..23f497ddb0c 100644 --- a/service/quicksight/api_op_UpdateTemplateAlias.go +++ b/service/quicksight/api_op_UpdateTemplateAlias.go @@ -37,7 +37,7 @@ type UpdateTemplateAliasInput struct { // This member is required. AliasName *string - // The ID of the Amazon Web Services account; that contains the template alias that + // The ID of the Amazon Web Services account that contains the template alias that // you're updating. // // This member is required. diff --git a/service/quicksight/api_op_UpdateTemplatePermissions.go b/service/quicksight/api_op_UpdateTemplatePermissions.go index c26d3acbe2d..f286251553b 100644 --- a/service/quicksight/api_op_UpdateTemplatePermissions.go +++ b/service/quicksight/api_op_UpdateTemplatePermissions.go @@ -29,7 +29,7 @@ func (c *Client) UpdateTemplatePermissions(ctx context.Context, params *UpdateTe type UpdateTemplatePermissionsInput struct { - // The ID of the Amazon Web Services account; that contains the template. + // The ID of the Amazon Web Services account that contains the template. // // This member is required. AwsAccountId *string diff --git a/service/quicksight/api_op_UpdateTheme.go b/service/quicksight/api_op_UpdateTheme.go index b65538f41f8..fd6b0ada5c8 100644 --- a/service/quicksight/api_op_UpdateTheme.go +++ b/service/quicksight/api_op_UpdateTheme.go @@ -29,7 +29,7 @@ func (c *Client) UpdateTheme(ctx context.Context, params *UpdateThemeInput, optF type UpdateThemeInput struct { - // The ID of the Amazon Web Services account; that contains the theme that you're + // The ID of the Amazon Web Services account that contains the theme that you're // updating. // // This member is required. diff --git a/service/quicksight/api_op_UpdateThemeAlias.go b/service/quicksight/api_op_UpdateThemeAlias.go index 6f40e80fe00..8bf773f43e5 100644 --- a/service/quicksight/api_op_UpdateThemeAlias.go +++ b/service/quicksight/api_op_UpdateThemeAlias.go @@ -34,7 +34,7 @@ type UpdateThemeAliasInput struct { // This member is required. AliasName *string - // The ID of the Amazon Web Services account; that contains the theme alias that + // The ID of the Amazon Web Services account that contains the theme alias that // you're updating. // // This member is required. diff --git a/service/quicksight/api_op_UpdateThemePermissions.go b/service/quicksight/api_op_UpdateThemePermissions.go index a02bd814eb1..335552aec43 100644 --- a/service/quicksight/api_op_UpdateThemePermissions.go +++ b/service/quicksight/api_op_UpdateThemePermissions.go @@ -77,7 +77,7 @@ func (c *Client) UpdateThemePermissions(ctx context.Context, params *UpdateTheme type UpdateThemePermissionsInput struct { - // The ID of the Amazon Web Services account; that contains the theme. + // The ID of the Amazon Web Services account that contains the theme. // // This member is required. AwsAccountId *string diff --git a/service/quicksight/api_op_UpdateUser.go b/service/quicksight/api_op_UpdateUser.go index bb5058ea1f8..26c06a15577 100644 --- a/service/quicksight/api_op_UpdateUser.go +++ b/service/quicksight/api_op_UpdateUser.go @@ -29,8 +29,8 @@ func (c *Client) UpdateUser(ctx context.Context, params *UpdateUserInput, optFns type UpdateUserInput struct { - // The ID for the Amazon Web Services account; that the user is in. Currently, you - // use the ID for the Amazon Web Services account; that contains your Amazon + // The ID for the Amazon Web Services account that the user is in. Currently, you + // use the ID for the Amazon Web Services account that contains your Amazon // QuickSight account. // // This member is required. @@ -58,8 +58,8 @@ type UpdateUserInput struct { // * ADMIN: A user who is an author, who can also manage Amazon // QuickSight settings. // - // The name of the QuickSight role is invisible to the user - // except for the console screens dealing with permissions. + // The name of the Amazon QuickSight role is invisible to the + // user except for the console screens dealing with permissions. // // This member is required. Role types.UserRole @@ -70,8 +70,8 @@ type UpdateUserInput struct { UserName *string // The URL of the custom OpenID Connect (OIDC) provider that provides identity to - // let a user federate into QuickSight with an associated AWS Identity and Access - // Management (IAM) role. This parameter should only be used when + // let a user federate into Amazon QuickSight with an associated Identity and + // Access Management(IAM) role. This parameter should only be used when // ExternalLoginFederationProviderType parameter is set to CUSTOM_OIDC. CustomFederationProviderUrl *string @@ -91,18 +91,18 @@ type UpdateUserInput struct { // // A set of custom permissions includes any // combination of these restrictions. Currently, you need to create the profile - // names for custom permission sets by using the QuickSight console. Then, you use - // the RegisterUser API operation to assign the named set of permissions to a - // QuickSight user. QuickSight custom permissions are applied through IAM policies. - // Therefore, they override the permissions typically granted by assigning - // QuickSight users to one of the default security cohorts in QuickSight (admin, - // author, reader). This feature is available only to QuickSight Enterprise edition - // subscriptions. + // names for custom permission sets by using the Amazon QuickSight console. Then, + // you use the RegisterUser API operation to assign the named set of permissions to + // a Amazon QuickSight user. Amazon QuickSight custom permissions are applied + // through IAMpolicies. Therefore, they override the permissions typically granted + // by assigning Amazon QuickSight users to one of the default security cohorts in + // Amazon QuickSight (admin, author, reader). This feature is available only to + // Amazon QuickSight Enterprise edition subscriptions. CustomPermissionsName *string // The type of supported external login provider that provides identity to let a - // user federate into QuickSight with an associated AWS Identity and Access - // Management (IAM) role. The type of supported external login provider can be one + // user federate into Amazon QuickSight with an associated Identity and Access + // Management(IAM) role. The type of supported external login provider can be one // of the following. // // * COGNITO: Amazon Cognito. The provider URL is diff --git a/service/quicksight/deserializers.go b/service/quicksight/deserializers.go index 0cc9e19ca5d..4098187c2d9 100644 --- a/service/quicksight/deserializers.go +++ b/service/quicksight/deserializers.go @@ -24677,6 +24677,42 @@ func awsRestjson1_deserializeDocumentColumnTagList(v *[]types.ColumnTag, value i return nil } +func awsRestjson1_deserializeDocumentColumnTagNames(v *[]types.ColumnTagName, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.ColumnTagName + if *v == nil { + cv = []types.ColumnTagName{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ColumnTagName + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ColumnTagName to be of type string, got %T instead", value) + } + col = types.ColumnTagName(jtv) + } + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentConcurrentUpdatingException(v **types.ConcurrentUpdatingException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -25600,6 +25636,11 @@ func awsRestjson1_deserializeDocumentDataSet(v **types.DataSet, value interface{ sv.DataSetId = ptr.String(jtv) } + case "DataSetUsageConfiguration": + if err := awsRestjson1_deserializeDocumentDataSetUsageConfiguration(&sv.DataSetUsageConfiguration, value); err != nil { + return err + } + case "FieldFolders": if err := awsRestjson1_deserializeDocumentFieldFolderMap(&sv.FieldFolders, value); err != nil { return err @@ -25985,6 +26026,55 @@ func awsRestjson1_deserializeDocumentDataSetSummaryList(v *[]types.DataSetSummar return nil } +func awsRestjson1_deserializeDocumentDataSetUsageConfiguration(v **types.DataSetUsageConfiguration, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.DataSetUsageConfiguration + if *v == nil { + sv = &types.DataSetUsageConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "DisableUseAsDirectQuerySource": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.DisableUseAsDirectQuerySource = jtv + } + + case "DisableUseAsImportedSource": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.DisableUseAsImportedSource = jtv + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentDataSource(v **types.DataSource, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -28317,6 +28407,15 @@ func awsRestjson1_deserializeDocumentLogicalTableSource(v **types.LogicalTableSo for key, value := range shape { switch key { + case "DataSetArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.DataSetArn = ptr.String(jtv) + } + case "JoinInstruction": if err := awsRestjson1_deserializeDocumentJoinInstruction(&sv.JoinInstruction, value); err != nil { return err @@ -32446,6 +32545,16 @@ loop: uv = &types.TransformOperationMemberTagColumnOperation{Value: mv} break loop + case "UntagColumnOperation": + var mv types.UntagColumnOperation + destAddr := &mv + if err := awsRestjson1_deserializeDocumentUntagColumnOperation(&destAddr, value); err != nil { + return err + } + mv = *destAddr + uv = &types.TransformOperationMemberUntagColumnOperation{Value: mv} + break loop + default: uv = &types.UnknownUnionMember{Tag: key} break loop @@ -32814,6 +32923,51 @@ func awsRestjson1_deserializeDocumentUnsupportedUserEditionException(v **types.U return nil } +func awsRestjson1_deserializeDocumentUntagColumnOperation(v **types.UntagColumnOperation, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.UntagColumnOperation + if *v == nil { + sv = &types.UntagColumnOperation{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ColumnName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ColumnName to be of type string, got %T instead", value) + } + sv.ColumnName = ptr.String(jtv) + } + + case "TagNames": + if err := awsRestjson1_deserializeDocumentColumnTagNames(&sv.TagNames, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentUploadSettings(v **types.UploadSettings, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/quicksight/serializers.go b/service/quicksight/serializers.go index 892194cf82e..f5e7f4cb333 100644 --- a/service/quicksight/serializers.go +++ b/service/quicksight/serializers.go @@ -537,6 +537,13 @@ func awsRestjson1_serializeOpDocumentCreateDataSetInput(v *CreateDataSetInput, v ok.String(*v.DataSetId) } + if v.DataSetUsageConfiguration != nil { + ok := object.Key("DataSetUsageConfiguration") + if err := awsRestjson1_serializeDocumentDataSetUsageConfiguration(v.DataSetUsageConfiguration, ok); err != nil { + return err + } + } + if v.FieldFolders != nil { ok := object.Key("FieldFolders") if err := awsRestjson1_serializeDocumentFieldFolderMap(v.FieldFolders, ok); err != nil { @@ -8129,6 +8136,13 @@ func awsRestjson1_serializeOpDocumentUpdateDataSetInput(v *UpdateDataSetInput, v } } + if v.DataSetUsageConfiguration != nil { + ok := object.Key("DataSetUsageConfiguration") + if err := awsRestjson1_serializeDocumentDataSetUsageConfiguration(v.DataSetUsageConfiguration, ok); err != nil { + return err + } + } + if v.FieldFolders != nil { ok := object.Key("FieldFolders") if err := awsRestjson1_serializeDocumentFieldFolderMap(v.FieldFolders, ok); err != nil { @@ -10053,6 +10067,17 @@ func awsRestjson1_serializeDocumentColumnTagList(v []types.ColumnTag, value smit return nil } +func awsRestjson1_serializeDocumentColumnTagNames(v []types.ColumnTagName, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(string(v[i])) + } + return nil +} + func awsRestjson1_serializeDocumentCreateColumnsOperation(v *types.CreateColumnsOperation, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -10272,6 +10297,23 @@ func awsRestjson1_serializeDocumentDataSetReferenceList(v []types.DataSetReferen return nil } +func awsRestjson1_serializeDocumentDataSetUsageConfiguration(v *types.DataSetUsageConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DisableUseAsDirectQuerySource { + ok := object.Key("DisableUseAsDirectQuerySource") + ok.Boolean(v.DisableUseAsDirectQuerySource) + } + + if v.DisableUseAsImportedSource { + ok := object.Key("DisableUseAsImportedSource") + ok.Boolean(v.DisableUseAsImportedSource) + } + + return nil +} + func awsRestjson1_serializeDocumentDataSourceCredentials(v *types.DataSourceCredentials, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -10864,6 +10906,11 @@ func awsRestjson1_serializeDocumentLogicalTableSource(v *types.LogicalTableSourc object := value.Object() defer object.Close() + if v.DataSetArn != nil { + ok := object.Key("DataSetArn") + ok.String(*v.DataSetArn) + } + if v.JoinInstruction != nil { ok := object.Key("JoinInstruction") if err := awsRestjson1_serializeDocumentJoinInstruction(v.JoinInstruction, ok); err != nil { @@ -11878,6 +11925,12 @@ func awsRestjson1_serializeDocumentTransformOperation(v types.TransformOperation return err } + case *types.TransformOperationMemberUntagColumnOperation: + av := object.Key("UntagColumnOperation") + if err := awsRestjson1_serializeDocumentUntagColumnOperation(&uv.Value, av); err != nil { + return err + } + default: return fmt.Errorf("attempted to serialize unknown member type %T for union %T", uv, v) @@ -12005,6 +12058,25 @@ func awsRestjson1_serializeDocumentUIColorPalette(v *types.UIColorPalette, value return nil } +func awsRestjson1_serializeDocumentUntagColumnOperation(v *types.UntagColumnOperation, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ColumnName != nil { + ok := object.Key("ColumnName") + ok.String(*v.ColumnName) + } + + if v.TagNames != nil { + ok := object.Key("TagNames") + if err := awsRestjson1_serializeDocumentColumnTagNames(v.TagNames, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentUpdateResourcePermissionList(v []types.ResourcePermission, value smithyjson.Value) error { array := value.Array() defer array.Close() diff --git a/service/quicksight/types/enums.go b/service/quicksight/types/enums.go index bf141ae52c8..734ac94839d 100644 --- a/service/quicksight/types/enums.go +++ b/service/quicksight/types/enums.go @@ -94,6 +94,24 @@ func (ColumnDataType) Values() []ColumnDataType { } } +type ColumnTagName string + +// Enum values for ColumnTagName +const ( + ColumnTagNameColumnGeographicRole ColumnTagName = "COLUMN_GEOGRAPHIC_ROLE" + ColumnTagNameColumnDescription ColumnTagName = "COLUMN_DESCRIPTION" +) + +// Values returns all known values for ColumnTagName. Note that this can be +// expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (ColumnTagName) Values() []ColumnTagName { + return []ColumnTagName{ + "COLUMN_GEOGRAPHIC_ROLE", + "COLUMN_DESCRIPTION", + } +} + type DashboardBehavior string // Enum values for DashboardBehavior diff --git a/service/quicksight/types/errors.go b/service/quicksight/types/errors.go index 2079bb2eee8..7969f41d39c 100644 --- a/service/quicksight/types/errors.go +++ b/service/quicksight/types/errors.go @@ -367,10 +367,11 @@ func (e *ThrottlingException) ErrorFault() smithy.ErrorFault { return smithy.Fau // This error indicates that you are calling an embedding operation in Amazon // QuickSight without the required pricing plan on your Amazon Web Services -// account;. Before you can use embedding for anonymous users, a QuickSight -// administrator needs to add capacity pricing to QuickSight. You can do this on -// the Manage QuickSight page. After capacity pricing is added, you can use the -// GetDashboardEmbedUrl API operation with the --identity-type ANONYMOUS option. +// account. Before you can use embedding for anonymous users, a Amazon QuickSight +// administrator needs to add capacity pricing to Amazon QuickSight. You can do +// this on the Manage Amazon QuickSight page. After capacity pricing is added, you +// can use the GetDashboardEmbedUrl API operation with the --identity-type +// ANONYMOUS option. type UnsupportedPricingPlanException struct { Message *string @@ -395,8 +396,8 @@ func (e *UnsupportedPricingPlanException) ErrorFault() smithy.ErrorFault { retur // This error indicates that you are calling an operation on an Amazon QuickSight // subscription where the edition doesn't include support for that operation. -// Amazon QuickSight currently has Standard Edition and Enterprise Edition. Not -// every operation and capability is available in every edition. +// Amazon Amazon QuickSight currently has Standard Edition and Enterprise Edition. +// Not every operation and capability is available in every edition. type UnsupportedUserEditionException struct { Message *string diff --git a/service/quicksight/types/types.go b/service/quicksight/types/types.go index 2b29d6e8265..bb134015aa6 100644 --- a/service/quicksight/types/types.go +++ b/service/quicksight/types/types.go @@ -8,31 +8,33 @@ import ( ) // The Amazon QuickSight customizations associated with your Amazon Web Services -// account; or a QuickSight namespace in a specific Amazon Web Services Region;. +// account or a Amazon QuickSight namespace in a specific Amazon Web Services +// Region;. type AccountCustomization struct { - // The default theme for this QuickSight subscription. + // The default theme for this Amazon QuickSight subscription. DefaultTheme *string noSmithyDocumentSerde } -// The QuickSight settings associated with your Amazon Web Services account;. +// The Amazon QuickSight settings associated with your Amazon Web Services account. type AccountSettings struct { - // The "account name" you provided for the QuickSight subscription in your Amazon - // Web Services account;. You create this name when you sign up for QuickSight. It - // is unique in all of Amazon Web Services and it appears only when users sign in. + // The "account name" you provided for the Amazon QuickSight subscription in your + // Amazon Web Services account. You create this name when you sign up for Amazon + // QuickSight. It is unique in all of Amazon Web Services and it appears only when + // users sign in. AccountName *string - // The default QuickSight namespace for your Amazon Web Services account;. + // The default Amazon QuickSight namespace for your Amazon Web Services account. DefaultNamespace *string - // The edition of QuickSight that you're currently subscribed to: Enterprise + // The edition of Amazon QuickSight that you're currently subscribed to: Enterprise // edition or Standard edition. Edition Edition - // The main notification email for your QuickSight subscription. + // The main notification email for your Amazon QuickSight subscription. NotificationEmail *string noSmithyDocumentSerde @@ -41,7 +43,7 @@ type AccountSettings struct { // The active Identity and Access Management (IAM) policy assignment. type ActiveIAMPolicyAssignment struct { - // A name for the IAM policy assignment. + // A name for the IAMpolicy assignment. AssignmentName *string // The Amazon Resource Name (ARN) of the resource. @@ -59,10 +61,10 @@ type AdHocFilteringOption struct { noSmithyDocumentSerde } -// Amazon Elasticsearch Service parameters. +// The parameters for Elasticsearch. type AmazonElasticsearchParameters struct { - // The Amazon Elasticsearch Service domain. + // The Elasticsearch domain. // // This member is required. Domain *string @@ -107,7 +109,7 @@ type Analysis struct { noSmithyDocumentSerde } -// A metadata error structure for an analysis. +// Analysis error. type AnalysisError struct { // The message associated with the analysis error. @@ -178,7 +180,8 @@ type AnalysisSummary struct { // The time that the analysis was last updated. LastUpdatedTime *time.Time - // The name of the analysis. This name is displayed in the QuickSight console. + // The name of the analysis. This name is displayed in the Amazon QuickSight + // console. Name *string // The last known status for the analysis. @@ -212,7 +215,7 @@ type AnonymousUserEmbeddingExperienceConfiguration struct { noSmithyDocumentSerde } -// Amazon Athena parameters. +// Parameters for Amazon Athena. type AthenaParameters struct { // The workgroup that Amazon Athena uses. @@ -221,7 +224,7 @@ type AthenaParameters struct { noSmithyDocumentSerde } -// Amazon Aurora parameters. +// Parameters for Amazon Aurora. type AuroraParameters struct { // Database. @@ -242,20 +245,20 @@ type AuroraParameters struct { noSmithyDocumentSerde } -// Amazon Aurora with PostgreSQL compatibility parameters. +// Parameters for Amazon Aurora PostgreSQL-Compatible Edition. type AuroraPostgreSqlParameters struct { - // Database. + // The Amazon Aurora PostgreSQL database to connect to. // // This member is required. Database *string - // Host. + // The Amazon Aurora PostgreSQL-Compatible host to connect to. // // This member is required. Host *string - // Port. + // The port that Amazon Aurora PostgreSQL is listening on. // // This member is required. Port int32 @@ -263,7 +266,7 @@ type AuroraPostgreSqlParameters struct { noSmithyDocumentSerde } -// Amazon Web Services IoT Analytics parameters. +// The parameters for IoT Analytics. type AwsIotAnalyticsParameters struct { // Dataset name. @@ -377,7 +380,7 @@ type ColumnLevelPermissionRule struct { // An array of column names. ColumnNames []string - // An array of Amazon Resource Names (ARNs) for QuickSight users or groups. + // An array of Amazon Resource Names (ARNs) for Amazon QuickSight users or groups. Principals []string noSmithyDocumentSerde @@ -705,6 +708,10 @@ type DataSet struct { // The ID of the dataset. DataSetId *string + // The usage configuration to apply to child datasets that reference this dataset + // as a source. + DataSetUsageConfiguration *DataSetUsageConfiguration + // The folder that contains fields and nested subfolders for your dataset. FieldFolders map[string]FieldFolder @@ -810,6 +817,21 @@ type DataSetSummary struct { noSmithyDocumentSerde } +// The usage configuration to apply to child datasets that reference this dataset +// as a source. +type DataSetUsageConfiguration struct { + + // An option that controls whether a child dataset of a direct query can use this + // dataset as a source. + DisableUseAsDirectQuerySource bool + + // An option that controls whether a child dataset that's stored in QuickSight can + // use this dataset as a source. + DisableUseAsImportedSource bool + + noSmithyDocumentSerde +} + // The structure of a data source. type DataSource struct { @@ -831,7 +853,7 @@ type DataSource struct { CreatedTime *time.Time // The ID of the data source. This ID is unique per Amazon Web Services Region; for - // each Amazon Web Services account;. + // each Amazon Web Services account. DataSourceId *string // The parameters that Amazon QuickSight uses to connect to your underlying source. @@ -848,8 +870,8 @@ type DataSource struct { // A display name for the data source. Name *string - // Secure Socket Layer (SSL) properties that apply when QuickSight connects to your - // underlying source. + // Secure Socket Layer (SSL) properties that apply when Amazon QuickSight connects + // to your underlying source. SslProperties *SslProperties // The HTTP status of the request. @@ -860,8 +882,8 @@ type DataSource struct { Type DataSourceType // The VPC connection information. You need to use this parameter only when you - // want QuickSight to use a VPC connection when connecting to your underlying - // source. + // want Amazon QuickSight to use a VPC connection when connecting to your + // underlying source. VpcConnectionProperties *VpcConnectionProperties noSmithyDocumentSerde @@ -924,7 +946,7 @@ type DataSourceParameters interface { isDataSourceParameters() } -// Amazon Elasticsearch Service parameters. +// The parameters for Elasticsearch. type DataSourceParametersMemberAmazonElasticsearchParameters struct { Value AmazonElasticsearchParameters @@ -933,7 +955,7 @@ type DataSourceParametersMemberAmazonElasticsearchParameters struct { func (*DataSourceParametersMemberAmazonElasticsearchParameters) isDataSourceParameters() {} -// Amazon Athena parameters. +// The parameters for Amazon Athena. type DataSourceParametersMemberAthenaParameters struct { Value AthenaParameters @@ -942,7 +964,7 @@ type DataSourceParametersMemberAthenaParameters struct { func (*DataSourceParametersMemberAthenaParameters) isDataSourceParameters() {} -// Amazon Aurora MySQL parameters. +// The parameters for Amazon Aurora MySQL. type DataSourceParametersMemberAuroraParameters struct { Value AuroraParameters @@ -951,7 +973,7 @@ type DataSourceParametersMemberAuroraParameters struct { func (*DataSourceParametersMemberAuroraParameters) isDataSourceParameters() {} -// Aurora PostgreSQL parameters. +// The parameters for Amazon Aurora. type DataSourceParametersMemberAuroraPostgreSqlParameters struct { Value AuroraPostgreSqlParameters @@ -960,7 +982,7 @@ type DataSourceParametersMemberAuroraPostgreSqlParameters struct { func (*DataSourceParametersMemberAuroraPostgreSqlParameters) isDataSourceParameters() {} -// Amazon Web Services IoT Analytics parameters. +// The parameters for IoT Analytics. type DataSourceParametersMemberAwsIotAnalyticsParameters struct { Value AwsIotAnalyticsParameters @@ -969,7 +991,7 @@ type DataSourceParametersMemberAwsIotAnalyticsParameters struct { func (*DataSourceParametersMemberAwsIotAnalyticsParameters) isDataSourceParameters() {} -// Jira parameters. +// The parameters for Jira. type DataSourceParametersMemberJiraParameters struct { Value JiraParameters @@ -978,7 +1000,7 @@ type DataSourceParametersMemberJiraParameters struct { func (*DataSourceParametersMemberJiraParameters) isDataSourceParameters() {} -// MariaDB parameters. +// The parameters for MariaDB. type DataSourceParametersMemberMariaDbParameters struct { Value MariaDbParameters @@ -987,7 +1009,7 @@ type DataSourceParametersMemberMariaDbParameters struct { func (*DataSourceParametersMemberMariaDbParameters) isDataSourceParameters() {} -// MySQL parameters. +// The parameters for MySQL. type DataSourceParametersMemberMySqlParameters struct { Value MySqlParameters @@ -996,7 +1018,7 @@ type DataSourceParametersMemberMySqlParameters struct { func (*DataSourceParametersMemberMySqlParameters) isDataSourceParameters() {} -// Oracle parameters. +// The parameters for Oracle. type DataSourceParametersMemberOracleParameters struct { Value OracleParameters @@ -1005,7 +1027,7 @@ type DataSourceParametersMemberOracleParameters struct { func (*DataSourceParametersMemberOracleParameters) isDataSourceParameters() {} -// PostgreSQL parameters. +// The parameters for PostgreSQL. type DataSourceParametersMemberPostgreSqlParameters struct { Value PostgreSqlParameters @@ -1014,7 +1036,7 @@ type DataSourceParametersMemberPostgreSqlParameters struct { func (*DataSourceParametersMemberPostgreSqlParameters) isDataSourceParameters() {} -// Presto parameters. +// The parameters for Presto. type DataSourceParametersMemberPrestoParameters struct { Value PrestoParameters @@ -1023,7 +1045,7 @@ type DataSourceParametersMemberPrestoParameters struct { func (*DataSourceParametersMemberPrestoParameters) isDataSourceParameters() {} -// Amazon RDS parameters. +// The parameters for Amazon RDS. type DataSourceParametersMemberRdsParameters struct { Value RdsParameters @@ -1032,7 +1054,7 @@ type DataSourceParametersMemberRdsParameters struct { func (*DataSourceParametersMemberRdsParameters) isDataSourceParameters() {} -// Amazon Redshift parameters. +// The parameters for Amazon Redshift. type DataSourceParametersMemberRedshiftParameters struct { Value RedshiftParameters @@ -1041,7 +1063,7 @@ type DataSourceParametersMemberRedshiftParameters struct { func (*DataSourceParametersMemberRedshiftParameters) isDataSourceParameters() {} -// S3 parameters. +// The parameters for S3. type DataSourceParametersMemberS3Parameters struct { Value S3Parameters @@ -1050,7 +1072,7 @@ type DataSourceParametersMemberS3Parameters struct { func (*DataSourceParametersMemberS3Parameters) isDataSourceParameters() {} -// ServiceNow parameters. +// The parameters for ServiceNow. type DataSourceParametersMemberServiceNowParameters struct { Value ServiceNowParameters @@ -1059,7 +1081,7 @@ type DataSourceParametersMemberServiceNowParameters struct { func (*DataSourceParametersMemberServiceNowParameters) isDataSourceParameters() {} -// Snowflake parameters. +// The parameters for Snowflake. type DataSourceParametersMemberSnowflakeParameters struct { Value SnowflakeParameters @@ -1068,7 +1090,7 @@ type DataSourceParametersMemberSnowflakeParameters struct { func (*DataSourceParametersMemberSnowflakeParameters) isDataSourceParameters() {} -// Spark parameters. +// The parameters for Spark. type DataSourceParametersMemberSparkParameters struct { Value SparkParameters @@ -1077,7 +1099,7 @@ type DataSourceParametersMemberSparkParameters struct { func (*DataSourceParametersMemberSparkParameters) isDataSourceParameters() {} -// SQL Server parameters. +// The parameters for SQL Server. type DataSourceParametersMemberSqlServerParameters struct { Value SqlServerParameters @@ -1086,7 +1108,7 @@ type DataSourceParametersMemberSqlServerParameters struct { func (*DataSourceParametersMemberSqlServerParameters) isDataSourceParameters() {} -// Teradata parameters. +// The parameters for Teradata. type DataSourceParametersMemberTeradataParameters struct { Value TeradataParameters @@ -1095,7 +1117,7 @@ type DataSourceParametersMemberTeradataParameters struct { func (*DataSourceParametersMemberTeradataParameters) isDataSourceParameters() {} -// Twitter parameters. +// The parameters for Twitter. type DataSourceParametersMemberTwitterParameters struct { Value TwitterParameters @@ -1338,19 +1360,19 @@ type IAMPolicyAssignment struct { // Assignment status. AssignmentStatus AssignmentStatus - // The Amazon Web Services account; ID. + // The Amazon Web Services account ID. AwsAccountId *string // Identities. Identities map[string][]string - // The Amazon Resource Name (ARN) for the IAM policy. + // The Amazon Resource Name (ARN) for the IAMpolicy. PolicyArn *string noSmithyDocumentSerde } -// IAM policy assignment summary. +// IAMpolicy assignment summary. type IAMPolicyAssignmentSummary struct { // Assignment name. @@ -1439,7 +1461,7 @@ type IntegerParameter struct { noSmithyDocumentSerde } -// Jira parameters. +// The parameters for Jira. type JiraParameters struct { // The base URL of the Jira site. @@ -1486,7 +1508,8 @@ type JoinInstruction struct { type JoinKeyProperties struct { // A value that indicates that a row in a table is uniquely identified by the - // columns in a join key. This is used by QuickSight to optimize query performance. + // columns in a join key. This is used by Amazon QuickSight to optimize query + // performance. UniqueKey bool noSmithyDocumentSerde @@ -1519,6 +1542,9 @@ type LogicalTable struct { // non-null. type LogicalTableSource struct { + // The Amazon Resource Number (ARN) of the parent dataset. + DataSetArn *string + // Specifies the result of a join of two logical tables. JoinInstruction *JoinInstruction @@ -1553,7 +1579,7 @@ type MarginStyle struct { noSmithyDocumentSerde } -// MariaDB parameters. +// The parameters for MariaDB. type MariaDbParameters struct { // Database. @@ -1586,7 +1612,7 @@ type MemberIdArnPair struct { noSmithyDocumentSerde } -// MySQL parameters. +// The parameters for MySQL. type MySqlParameters struct { // Database. @@ -1643,7 +1669,7 @@ type NamespaceInfoV2 struct { noSmithyDocumentSerde } -// Oracle parameters. +// The parameters for Oracle. type OracleParameters struct { // Database. @@ -1679,19 +1705,19 @@ type OutputColumn struct { noSmithyDocumentSerde } -// A list of QuickSight parameters and the list's override values. +// A list of Amazon QuickSight parameters and the list's override values. type Parameters struct { - // Date-time parameters. + // The parameters that have a data type of date-time. DateTimeParameters []DateTimeParameter - // Decimal parameters. + // The parameters that have a data type of decimal. DecimalParameters []DecimalParameter - // Integer parameters. + // The parameters that have a data type of integer. IntegerParameters []IntegerParameter - // String parameters. + // The parameters that have a data type of string. StringParameters []StringParameter noSmithyDocumentSerde @@ -1736,7 +1762,7 @@ type PhysicalTableMemberS3Source struct { func (*PhysicalTableMemberS3Source) isPhysicalTable() {} -// PostgreSQL parameters. +// The parameters for PostgreSQL. type PostgreSqlParameters struct { // Database. @@ -1757,7 +1783,7 @@ type PostgreSqlParameters struct { noSmithyDocumentSerde } -// Presto parameters. +// The parameters for Presto. type PrestoParameters struct { // Catalog. @@ -1807,7 +1833,7 @@ type QueueInfo struct { noSmithyDocumentSerde } -// Amazon RDS parameters. +// The parameters for Amazon RDS. type RdsParameters struct { // Database. @@ -1823,9 +1849,9 @@ type RdsParameters struct { noSmithyDocumentSerde } -// Amazon Redshift parameters. The ClusterId field can be blank if Host and Port -// are both set. The Host and Port fields can be blank if the ClusterId field is -// set. +// The parameters for Amazon Redshift. The ClusterId field can be blank if Host and +// Port are both set. The Host and Port fields can be blank if the ClusterId field +// is set. type RedshiftParameters struct { // Database. @@ -1974,7 +2000,7 @@ type RenameColumnOperation struct { // Permission for the resource. type ResourcePermission struct { - // The IAM action to grant or revoke permissions on. + // The IAMaction to grant or revoke permissions on. // // This member is required. Actions []string @@ -1989,8 +2015,8 @@ type ResourcePermission struct { // user, group, or namespace associated with an analysis, dashboard, template, or // theme. (This is common.) // - // * The ARN of an Amazon Web Services account; root: - // This is an IAM ARN rather than a QuickSight ARN. Use this option only to share + // * The ARN of an Amazon Web Services account root: This + // is an IAMARN rather than a Amazon QuickSight ARN. Use this option only to share // resources (templates) across Amazon Web Services accounts. (This is less // common.) // @@ -2025,7 +2051,7 @@ type RowLevelPermissionDataSet struct { // This member is required. Arn *string - // The type of permissions to use when interpretting the permissions for RLS. + // The type of permissions to use when interpreting the permissions for RLS. // DENY_ACCESS is included for backward compatibility only. // // This member is required. @@ -2088,11 +2114,11 @@ type RowLevelPermissionTagRule struct { noSmithyDocumentSerde } -// S3 parameters. +// The parameters for S3. type S3Parameters struct { // Location of the Amazon S3 manifest file. This is NULL if the manifest file was - // uploaded into QuickSight. + // uploaded into Amazon QuickSight. // // This member is required. ManifestFileLocation *ManifestFileLocation @@ -2108,8 +2134,8 @@ type S3Source struct { // This member is required. DataSourceArn *string - // A physical table type for an S3 data source. For non-JSON files, only STRING - // data types are supported in input columns. + // A physical table type for an S3 data source. For files that aren't JSON, only + // STRING data types are supported in input columns. // // This member is required. InputColumns []InputColumn @@ -2120,7 +2146,7 @@ type S3Source struct { noSmithyDocumentSerde } -// ServiceNow parameters. +// The parameters for ServiceNow. type ServiceNowParameters struct { // URL of the base site. @@ -2154,8 +2180,8 @@ type SessionTag struct { // with other components, such as controls, filters, and so on. type Sheet struct { - // The name of a sheet. This name is displayed on the sheet's tab in the QuickSight - // console. + // The name of a sheet. This name is displayed on the sheet's tab in the Amazon + // QuickSight console. Name *string // The unique identifier associated with a sheet. @@ -2185,7 +2211,7 @@ type SheetStyle struct { noSmithyDocumentSerde } -// Snowflake parameters. +// The parameters for Snowflake. type SnowflakeParameters struct { // Database. @@ -2206,7 +2232,7 @@ type SnowflakeParameters struct { noSmithyDocumentSerde } -// Spark parameters. +// The parameters for Spark. type SparkParameters struct { // Host. @@ -2222,7 +2248,7 @@ type SparkParameters struct { noSmithyDocumentSerde } -// SQL Server parameters. +// The parameters for SQL Server. type SqlServerParameters struct { // Database. @@ -2243,8 +2269,8 @@ type SqlServerParameters struct { noSmithyDocumentSerde } -// Secure Socket Layer (SSL) properties that apply when QuickSight connects to your -// underlying data source. +// Secure Socket Layer (SSL) properties that apply when Amazon QuickSight connects +// to your underlying data source. type SslProperties struct { // A Boolean option to control whether SSL should be disabled. @@ -2303,15 +2329,15 @@ type TagColumnOperation struct { noSmithyDocumentSerde } -// A template object. A template is an entity in QuickSight that encapsulates the -// metadata required to create an analysis and that you can use to create a -// dashboard. A template adds a layer of abstraction by using placeholders to -// replace the dataset associated with an analysis. You can use templates to create -// dashboards by replacing dataset placeholders with datasets that follow the same -// schema that was used to create the source analysis and template. You can share -// templates across Amazon Web Services accounts by allowing users in other Amazon -// Web Services accounts to create a template or a dashboard from an existing -// template. +// A template object. A template is an entity in Amazon QuickSight that +// encapsulates the metadata required to create an analysis and that you can use to +// create a dashboard. A template adds a layer of abstraction by using placeholders +// to replace the dataset associated with an analysis. You can use templates to +// create dashboards by replacing dataset placeholders with datasets that follow +// the same schema that was used to create the source analysis and template. You +// can share templates across Amazon Web Services accounts by allowing users in +// other Amazon Web Services accounts to create a template or a dashboard from an +// existing template. type Template struct { // The Amazon Resource Name (ARN) of the template. @@ -2327,7 +2353,7 @@ type Template struct { Name *string // The ID for the template. This is unique per Amazon Web Services Region; for each - // Amazon Web Services account;. + // Amazon Web Services account. TemplateId *string // A structure describing the versions of the template. @@ -2422,7 +2448,7 @@ type TemplateSummary struct { Name *string // The ID of the template. This ID is unique per Amazon Web Services Region; for - // each Amazon Web Services account;. + // each Amazon Web Services account. TemplateId *string noSmithyDocumentSerde @@ -2486,7 +2512,7 @@ type TemplateVersionSummary struct { noSmithyDocumentSerde } -// Teradata parameters. +// The parameters for Teradata. type TeradataParameters struct { // Database. @@ -2598,7 +2624,7 @@ type ThemeSummary struct { Name *string // The ID of the theme. This ID is unique per Amazon Web Services Region; for each - // Amazon Web Services account;. + // Amazon Web Services account. ThemeId *string noSmithyDocumentSerde @@ -2611,7 +2637,7 @@ type ThemeVersion struct { Arn *string // The Amazon QuickSight-defined ID of the theme that a custom theme inherits from. - // All themes initially inherit from a default QuickSight theme. + // All themes initially inherit from a default Amazon QuickSight theme. BaseThemeId *string // The theme configuration, which contains all the theme display properties. @@ -2687,6 +2713,7 @@ type TileStyle struct { // TransformOperationMemberRenameColumnOperation // TransformOperationMemberCastColumnTypeOperation // TransformOperationMemberTagColumnOperation +// TransformOperationMemberUntagColumnOperation type TransformOperation interface { isTransformOperation() } @@ -2747,7 +2774,16 @@ type TransformOperationMemberTagColumnOperation struct { func (*TransformOperationMemberTagColumnOperation) isTransformOperation() {} -// Twitter parameters. +// A transform operation that removes tags associated with a column. +type TransformOperationMemberUntagColumnOperation struct { + Value UntagColumnOperation + + noSmithyDocumentSerde +} + +func (*TransformOperationMemberUntagColumnOperation) isTransformOperation() {} + +// The parameters for Twitter. type TwitterParameters struct { // Maximum number of rows to query Twitter. @@ -2832,6 +2868,22 @@ type UIColorPalette struct { noSmithyDocumentSerde } +// A transform operation that removes tags associated with a column. +type UntagColumnOperation struct { + + // The column that this operation acts on. + // + // This member is required. + ColumnName *string + + // The column tags to remove from this column. + // + // This member is required. + TagNames []ColumnTagName + + noSmithyDocumentSerde +} + // Information about the format for a source file or files. type UploadSettings struct { @@ -2871,8 +2923,8 @@ type User struct { Email *string // The type of supported external login provider that provides identity to let the - // user federate into Amazon QuickSight with an associated IAM role. The type can - // be one of the following. + // user federate into Amazon QuickSight with an associated IAMrole. The type can be + // one of the following. // // * COGNITO: Amazon Cognito. The provider URL is // cognito-identity.amazonaws.com. @@ -2902,7 +2954,7 @@ type User struct { // A user who can create data sources, datasets, analyses, and dashboards. // // * - // ADMIN: A user who is an author, who can also manage Amazon QuickSight + // ADMIN: A user who is an author, who can also manage Amazon Amazon QuickSight // settings. // // * RESTRICTED_READER: This role isn't currently available for use. diff --git a/service/quicksight/types/types_exported_test.go b/service/quicksight/types/types_exported_test.go index c2cf721f46e..087dd920393 100644 --- a/service/quicksight/types/types_exported_test.go +++ b/service/quicksight/types/types_exported_test.go @@ -149,6 +149,9 @@ func ExampleTransformOperation_outputUsage() { case *types.TransformOperationMemberTagColumnOperation: _ = v.Value // Value is types.TagColumnOperation + case *types.TransformOperationMemberUntagColumnOperation: + _ = v.Value // Value is types.UntagColumnOperation + case *types.UnknownUnionMember: fmt.Println("unknown tag:", v.Tag) @@ -164,3 +167,4 @@ var _ *types.ProjectOperation var _ *types.CastColumnTypeOperation var _ *types.TagColumnOperation var _ *types.RenameColumnOperation +var _ *types.UntagColumnOperation diff --git a/service/quicksight/validators.go b/service/quicksight/validators.go index e432ec49ac7..dc228825066 100644 --- a/service/quicksight/validators.go +++ b/service/quicksight/validators.go @@ -4305,6 +4305,11 @@ func validateTransformOperation(v types.TransformOperation) error { invalidParams.AddNested("[TagColumnOperation]", err.(smithy.InvalidParamsError)) } + case *types.TransformOperationMemberUntagColumnOperation: + if err := validateUntagColumnOperation(&uv.Value); err != nil { + invalidParams.AddNested("[UntagColumnOperation]", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams @@ -4345,6 +4350,24 @@ func validateTwitterParameters(v *types.TwitterParameters) error { } } +func validateUntagColumnOperation(v *types.UntagColumnOperation) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UntagColumnOperation"} + if v.ColumnName == nil { + invalidParams.Add(smithy.NewErrParamRequired("ColumnName")) + } + if v.TagNames == nil { + invalidParams.Add(smithy.NewErrParamRequired("TagNames")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateUpdateResourcePermissionList(v []types.ResourcePermission) error { if v == nil { return nil diff --git a/service/s3/api_op_DeleteObject.go b/service/s3/api_op_DeleteObject.go index c285a32cd07..321f9b8ad06 100644 --- a/service/s3/api_op_DeleteObject.go +++ b/service/s3/api_op_DeleteObject.go @@ -80,7 +80,8 @@ type DeleteObjectInput struct { Key *string // Indicates whether S3 Object Lock should bypass Governance-mode restrictions to - // process this operation. + // process this operation. To use this header, you must have the + // s3:PutBucketPublicAccessBlock permission. BypassGovernanceRetention bool // The account ID of the expected bucket owner. If the bucket is owned by a diff --git a/service/s3/api_op_DeleteObjects.go b/service/s3/api_op_DeleteObjects.go index 45ee168266a..a604c7c2c0b 100644 --- a/service/s3/api_op_DeleteObjects.go +++ b/service/s3/api_op_DeleteObjects.go @@ -101,8 +101,8 @@ type DeleteObjectsInput struct { Delete *types.Delete // Specifies whether you want to delete this object even if it has a - // Governance-type Object Lock in place. You must have sufficient permissions to - // perform this operation. + // Governance-type Object Lock in place. To use this header, you must have the + // s3:PutBucketPublicAccessBlock permission. BypassGovernanceRetention bool // The account ID of the expected bucket owner. If the bucket is owned by a diff --git a/service/s3/api_op_GetObject.go b/service/s3/api_op_GetObject.go index 54222ddcd68..a29253621ca 100644 --- a/service/s3/api_op_GetObject.go +++ b/service/s3/api_op_GetObject.go @@ -62,14 +62,13 @@ import ( // For more information about SSE-C, // see Server-Side Encryption (Using Customer-Provided Encryption Keys) // (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html). -// Assuming you have permission to read object tags (permission for the -// s3:GetObjectVersionTagging action), the response also returns the -// x-amz-tagging-count header that provides the count of number of tags associated -// with the object. You can use GetObjectTagging +// Assuming you have the relevant permission to read object tags, the response also +// returns the x-amz-tagging-count header that provides the count of number of tags +// associated with the object. You can use GetObjectTagging // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html) to // retrieve the tag set associated with an object. Permissions You need the -// s3:GetObject permission for this operation. For more information, see Specifying -// Permissions in a Policy +// relevant read object (or version) permission for this operation. For more +// information, see Specifying Permissions in a Policy // (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). If // the object you request does not exist, the error Amazon S3 returns depends on // whether you also have the s3:ListBucket permission. diff --git a/service/s3/api_op_HeadObject.go b/service/s3/api_op_HeadObject.go index f133f534e27..17edbd5ca3c 100644 --- a/service/s3/api_op_HeadObject.go +++ b/service/s3/api_op_HeadObject.go @@ -82,9 +82,9 @@ import ( // code. // // For more information about conditional requests, see RFC 7232 -// (https://tools.ietf.org/html/rfc7232). Permissions You need the s3:GetObject -// permission for this operation. For more information, see Specifying Permissions -// in a Policy +// (https://tools.ietf.org/html/rfc7232). Permissions You need the relevant read +// object (or version) permission for this operation. For more information, see +// Specifying Permissions in a Policy // (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). If // the object you request does not exist, the error Amazon S3 returns depends on // whether you also have the s3:ListBucket permission. diff --git a/service/s3control/api_op_CreateAccessPoint.go b/service/s3control/api_op_CreateAccessPoint.go index 153101e7a59..cb65cf810dc 100644 --- a/service/s3control/api_op_CreateAccessPoint.go +++ b/service/s3control/api_op_CreateAccessPoint.go @@ -59,8 +59,8 @@ func (c *Client) CreateAccessPoint(ctx context.Context, params *CreateAccessPoin type CreateAccessPointInput struct { - // The account ID for the owner of the bucket for which you want to create an - // access point. + // The Amazon Web Services account ID for the owner of the bucket for which you + // want to create an access point. // // This member is required. AccountId *string diff --git a/service/s3control/api_op_CreateAccessPointForObjectLambda.go b/service/s3control/api_op_CreateAccessPointForObjectLambda.go index 2a4fe076421..e14e528e773 100644 --- a/service/s3control/api_op_CreateAccessPointForObjectLambda.go +++ b/service/s3control/api_op_CreateAccessPointForObjectLambda.go @@ -48,7 +48,8 @@ func (c *Client) CreateAccessPointForObjectLambda(ctx context.Context, params *C type CreateAccessPointForObjectLambdaInput struct { - // The account ID for owner of the specified Object Lambda Access Point. + // The Amazon Web Services account ID for owner of the specified Object Lambda + // Access Point. // // This member is required. AccountId *string diff --git a/service/s3control/api_op_CreateJob.go b/service/s3control/api_op_CreateJob.go index 73bc311bf3c..6006c141f39 100644 --- a/service/s3control/api_op_CreateJob.go +++ b/service/s3control/api_op_CreateJob.go @@ -57,7 +57,7 @@ func (c *Client) CreateJob(ctx context.Context, params *CreateJobInput, optFns . type CreateJobInput struct { - // The account ID that creates the job. + // The Amazon Web Services account ID that creates the job. // // This member is required. AccountId *string diff --git a/service/s3control/api_op_CreateMultiRegionAccessPoint.go b/service/s3control/api_op_CreateMultiRegionAccessPoint.go new file mode 100644 index 00000000000..d6af98d2491 --- /dev/null +++ b/service/s3control/api_op_CreateMultiRegionAccessPoint.go @@ -0,0 +1,292 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package s3control + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + s3controlcust "github.com/aws/aws-sdk-go-v2/service/s3control/internal/customizations" + "github.com/aws/aws-sdk-go-v2/service/s3control/types" + smithy "github.com/aws/smithy-go" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "strings" +) + +// Creates a Multi-Region Access Point and associates it with the specified +// buckets. For more information about creating Multi-Region Access Points, see +// Creating Multi-Region Access Points +// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingMultiRegionAccessPoints.html) +// in the Amazon S3 User Guide. This action will always be routed to the US West +// (Oregon) Region. For more information about the restrictions around managing +// Multi-Region Access Points, see Managing Multi-Region Access Points +// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html) +// in the Amazon S3 User Guide. This request is asynchronous, meaning that you +// might receive a response before the command has completed. When this request +// provides a response, it provides a token that you can use to monitor the status +// of the request with DescribeMultiRegionAccessPointOperation. The following +// actions are related to CreateMultiRegionAccessPoint: +// +// * +// DeleteMultiRegionAccessPoint +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteMultiRegionAccessPoint.html) +// +// * +// DescribeMultiRegionAccessPointOperation +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeMultiRegionAccessPointOperation.html) +// +// * +// GetMultiRegionAccessPoint +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPoint.html) +// +// * +// ListMultiRegionAccessPoints +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListMultiRegionAccessPoints.html) +func (c *Client) CreateMultiRegionAccessPoint(ctx context.Context, params *CreateMultiRegionAccessPointInput, optFns ...func(*Options)) (*CreateMultiRegionAccessPointOutput, error) { + if params == nil { + params = &CreateMultiRegionAccessPointInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateMultiRegionAccessPoint", params, optFns, c.addOperationCreateMultiRegionAccessPointMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateMultiRegionAccessPointOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreateMultiRegionAccessPointInput struct { + + // The Amazon Web Services account ID for the owner of the Multi-Region Access + // Point. The owner of the Multi-Region Access Point also must own the underlying + // buckets. + // + // This member is required. + AccountId *string + + // An idempotency token used to identify the request and guarantee that requests + // are unique. + // + // This member is required. + ClientToken *string + + // A container element containing details about the Multi-Region Access Point. + // + // This member is required. + Details *types.CreateMultiRegionAccessPointInput + + noSmithyDocumentSerde +} + +type CreateMultiRegionAccessPointOutput struct { + + // The request token associated with the request. You can use this token with + // DescribeMultiRegionAccessPointOperation + // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeMultiRegionAccessPointOperation.html) + // to determine the status of asynchronous requests. + RequestTokenARN *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateMultiRegionAccessPointMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestxml_serializeOpCreateMultiRegionAccessPoint{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestxml_deserializeOpCreateMultiRegionAccessPoint{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addEndpointPrefix_opCreateMultiRegionAccessPointMiddleware(stack); err != nil { + return err + } + if err = addIdempotencyToken_opCreateMultiRegionAccessPointMiddleware(stack, options); err != nil { + return err + } + if err = addOpCreateMultiRegionAccessPointValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateMultiRegionAccessPoint(options.Region), middleware.Before); err != nil { + return err + } + if err = addMetadataRetrieverMiddleware(stack); err != nil { + return err + } + if err = addCreateMultiRegionAccessPointUpdateEndpoint(stack, options); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = v4.AddContentSHA256HeaderMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = smithyhttp.AddContentChecksumMiddleware(stack); err != nil { + return err + } + return nil +} + +type endpointPrefix_opCreateMultiRegionAccessPointMiddleware struct { +} + +func (*endpointPrefix_opCreateMultiRegionAccessPointMiddleware) ID() string { + return "EndpointHostPrefix" +} + +func (m *endpointPrefix_opCreateMultiRegionAccessPointMiddleware) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + if smithyhttp.GetHostnameImmutable(ctx) || smithyhttp.IsEndpointHostPrefixDisabled(ctx) { + return next.HandleSerialize(ctx, in) + } + + req, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, fmt.Errorf("unknown transport type %T", in.Request) + } + + input, ok := in.Parameters.(*CreateMultiRegionAccessPointInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input type %T", in.Parameters) + } + + var prefix strings.Builder + if input.AccountId == nil { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("AccountId forms part of the endpoint host and so may not be nil")} + } else if !smithyhttp.ValidHostLabel(*input.AccountId) { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("AccountId forms part of the endpoint host and so must match \"[a-zA-Z0-9-]{1,63}\", but was \"%s\"", *input.AccountId)} + } else { + prefix.WriteString(*input.AccountId) + } + prefix.WriteString(".") + req.URL.Host = prefix.String() + req.URL.Host + + return next.HandleSerialize(ctx, in) +} +func addEndpointPrefix_opCreateMultiRegionAccessPointMiddleware(stack *middleware.Stack) error { + return stack.Serialize.Insert(&endpointPrefix_opCreateMultiRegionAccessPointMiddleware{}, `OperationSerializer`, middleware.After) +} + +type idempotencyToken_initializeOpCreateMultiRegionAccessPoint struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpCreateMultiRegionAccessPoint) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpCreateMultiRegionAccessPoint) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + if m.tokenProvider == nil { + return next.HandleInitialize(ctx, in) + } + + input, ok := in.Parameters.(*CreateMultiRegionAccessPointInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *CreateMultiRegionAccessPointInput ") + } + + if input.ClientToken == nil { + t, err := m.tokenProvider.GetIdempotencyToken() + if err != nil { + return out, metadata, err + } + input.ClientToken = &t + } + return next.HandleInitialize(ctx, in) +} +func addIdempotencyToken_opCreateMultiRegionAccessPointMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpCreateMultiRegionAccessPoint{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opCreateMultiRegionAccessPoint(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "s3", + OperationName: "CreateMultiRegionAccessPoint", + } +} + +func copyCreateMultiRegionAccessPointInputForUpdateEndpoint(params interface{}) (interface{}, error) { + input, ok := params.(*CreateMultiRegionAccessPointInput) + if !ok { + return nil, fmt.Errorf("expect *CreateMultiRegionAccessPointInput type, got %T", params) + } + cpy := *input + return &cpy, nil +} +func backFillCreateMultiRegionAccessPointAccountID(input interface{}, v string) error { + in := input.(*CreateMultiRegionAccessPointInput) + if in.AccountId != nil { + if !strings.EqualFold(*in.AccountId, v) { + return fmt.Errorf("error backfilling account id") + } + return nil + } + in.AccountId = &v + return nil +} +func addCreateMultiRegionAccessPointUpdateEndpoint(stack *middleware.Stack, options Options) error { + return s3controlcust.UpdateEndpoint(stack, s3controlcust.UpdateEndpointOptions{ + Accessor: s3controlcust.UpdateEndpointParameterAccessor{GetARNInput: nopGetARNAccessor, + BackfillAccountID: nopBackfillAccountIDAccessor, + GetOutpostIDInput: nopGetOutpostIDFromInput, + UpdateARNField: nopSetARNAccessor, + CopyInput: copyCreateMultiRegionAccessPointInputForUpdateEndpoint, + }, + EndpointResolver: options.EndpointResolver, + EndpointResolverOptions: options.EndpointOptions, + UseDualstack: options.UseDualstack, + UseARNRegion: options.UseARNRegion, + }) +} diff --git a/service/s3control/api_op_DeleteBucketPolicy.go b/service/s3control/api_op_DeleteBucketPolicy.go index 8fec963752a..1bbe6b7d321 100644 --- a/service/s3control/api_op_DeleteBucketPolicy.go +++ b/service/s3control/api_op_DeleteBucketPolicy.go @@ -19,8 +19,8 @@ import ( // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketPolicy.html) in // the Amazon S3 API Reference. This implementation of the DELETE action uses the // policy subresource to delete the policy of a specified Amazon S3 on Outposts -// bucket. If you are using an identity other than the root user of the account -// that owns the bucket, the calling identity must have the +// bucket. If you are using an identity other than the root user of the Amazon Web +// Services account that owns the bucket, the calling identity must have the // s3-outposts:DeleteBucketPolicy permissions on the specified Outposts bucket and // belong to the bucket owner's account to use this action. For more information, // see Using Amazon S3 on Outposts @@ -29,10 +29,10 @@ import ( // S3 returns a 403 Access Denied error. If you have the correct permissions, but // you're not using an identity that belongs to the bucket owner's account, Amazon // S3 returns a 405 Method Not Allowed error. As a security precaution, the root -// user of the account that owns a bucket can always use this action, even if the -// policy explicitly denies the root user the ability to perform this action. For -// more information about bucket policies, see Using Bucket Policies and User -// Policies +// user of the Amazon Web Services account that owns a bucket can always use this +// action, even if the policy explicitly denies the root user the ability to +// perform this action. For more information about bucket policies, see Using +// Bucket Policies and User Policies // (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html). All // Amazon S3 on Outposts REST API requests for this action require an additional // parameter of x-amz-outpost-id to be passed with the request and an S3 on diff --git a/service/s3control/api_op_DeleteBucketTagging.go b/service/s3control/api_op_DeleteBucketTagging.go index f491596cc84..eae6675781d 100644 --- a/service/s3control/api_op_DeleteBucketTagging.go +++ b/service/s3control/api_op_DeleteBucketTagging.go @@ -55,7 +55,7 @@ func (c *Client) DeleteBucketTagging(ctx context.Context, params *DeleteBucketTa type DeleteBucketTaggingInput struct { - // The account ID of the Outposts bucket tag set to be removed. + // The Amazon Web Services account ID of the Outposts bucket tag set to be removed. // // This member is required. AccountId *string diff --git a/service/s3control/api_op_DeleteJobTagging.go b/service/s3control/api_op_DeleteJobTagging.go index 11c532d976a..724e619999d 100644 --- a/service/s3control/api_op_DeleteJobTagging.go +++ b/service/s3control/api_op_DeleteJobTagging.go @@ -48,7 +48,7 @@ func (c *Client) DeleteJobTagging(ctx context.Context, params *DeleteJobTaggingI type DeleteJobTaggingInput struct { - // The account ID associated with the S3 Batch Operations job. + // The Amazon Web Services account ID associated with the S3 Batch Operations job. // // This member is required. AccountId *string diff --git a/service/s3control/api_op_DeleteMultiRegionAccessPoint.go b/service/s3control/api_op_DeleteMultiRegionAccessPoint.go new file mode 100644 index 00000000000..7d63cd0615e --- /dev/null +++ b/service/s3control/api_op_DeleteMultiRegionAccessPoint.go @@ -0,0 +1,289 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package s3control + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + s3controlcust "github.com/aws/aws-sdk-go-v2/service/s3control/internal/customizations" + "github.com/aws/aws-sdk-go-v2/service/s3control/types" + smithy "github.com/aws/smithy-go" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "strings" +) + +// Deletes a Multi-Region Access Point. This action does not delete the buckets +// associated with the Multi-Region Access Point, only the Multi-Region Access +// Point itself. This action will always be routed to the US West (Oregon) Region. +// For more information about the restrictions around managing Multi-Region Access +// Points, see Managing Multi-Region Access Points +// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html) +// in the Amazon S3 User Guide. This request is asynchronous, meaning that you +// might receive a response before the command has completed. When this request +// provides a response, it provides a token that you can use to monitor the status +// of the request with DescribeMultiRegionAccessPointOperation. The following +// actions are related to DeleteMultiRegionAccessPoint: +// +// * +// CreateMultiRegionAccessPoint +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateMultiRegionAccessPoint.html) +// +// * +// DescribeMultiRegionAccessPointOperation +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeMultiRegionAccessPointOperation.html) +// +// * +// GetMultiRegionAccessPoint +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPoint.html) +// +// * +// ListMultiRegionAccessPoints +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListMultiRegionAccessPoints.html) +func (c *Client) DeleteMultiRegionAccessPoint(ctx context.Context, params *DeleteMultiRegionAccessPointInput, optFns ...func(*Options)) (*DeleteMultiRegionAccessPointOutput, error) { + if params == nil { + params = &DeleteMultiRegionAccessPointInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeleteMultiRegionAccessPoint", params, optFns, c.addOperationDeleteMultiRegionAccessPointMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeleteMultiRegionAccessPointOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeleteMultiRegionAccessPointInput struct { + + // The Amazon Web Services account ID for the owner of the Multi-Region Access + // Point. + // + // This member is required. + AccountId *string + + // An idempotency token used to identify the request and guarantee that requests + // are unique. + // + // This member is required. + ClientToken *string + + // A container element containing details about the Multi-Region Access Point. + // + // This member is required. + Details *types.DeleteMultiRegionAccessPointInput + + noSmithyDocumentSerde +} + +type DeleteMultiRegionAccessPointOutput struct { + + // The request token associated with the request. You can use this token with + // DescribeMultiRegionAccessPointOperation + // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeMultiRegionAccessPointOperation.html) + // to determine the status of asynchronous requests. + RequestTokenARN *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeleteMultiRegionAccessPointMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestxml_serializeOpDeleteMultiRegionAccessPoint{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestxml_deserializeOpDeleteMultiRegionAccessPoint{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addEndpointPrefix_opDeleteMultiRegionAccessPointMiddleware(stack); err != nil { + return err + } + if err = addIdempotencyToken_opDeleteMultiRegionAccessPointMiddleware(stack, options); err != nil { + return err + } + if err = addOpDeleteMultiRegionAccessPointValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteMultiRegionAccessPoint(options.Region), middleware.Before); err != nil { + return err + } + if err = addMetadataRetrieverMiddleware(stack); err != nil { + return err + } + if err = addDeleteMultiRegionAccessPointUpdateEndpoint(stack, options); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = v4.AddContentSHA256HeaderMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = smithyhttp.AddContentChecksumMiddleware(stack); err != nil { + return err + } + return nil +} + +type endpointPrefix_opDeleteMultiRegionAccessPointMiddleware struct { +} + +func (*endpointPrefix_opDeleteMultiRegionAccessPointMiddleware) ID() string { + return "EndpointHostPrefix" +} + +func (m *endpointPrefix_opDeleteMultiRegionAccessPointMiddleware) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + if smithyhttp.GetHostnameImmutable(ctx) || smithyhttp.IsEndpointHostPrefixDisabled(ctx) { + return next.HandleSerialize(ctx, in) + } + + req, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, fmt.Errorf("unknown transport type %T", in.Request) + } + + input, ok := in.Parameters.(*DeleteMultiRegionAccessPointInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input type %T", in.Parameters) + } + + var prefix strings.Builder + if input.AccountId == nil { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("AccountId forms part of the endpoint host and so may not be nil")} + } else if !smithyhttp.ValidHostLabel(*input.AccountId) { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("AccountId forms part of the endpoint host and so must match \"[a-zA-Z0-9-]{1,63}\", but was \"%s\"", *input.AccountId)} + } else { + prefix.WriteString(*input.AccountId) + } + prefix.WriteString(".") + req.URL.Host = prefix.String() + req.URL.Host + + return next.HandleSerialize(ctx, in) +} +func addEndpointPrefix_opDeleteMultiRegionAccessPointMiddleware(stack *middleware.Stack) error { + return stack.Serialize.Insert(&endpointPrefix_opDeleteMultiRegionAccessPointMiddleware{}, `OperationSerializer`, middleware.After) +} + +type idempotencyToken_initializeOpDeleteMultiRegionAccessPoint struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpDeleteMultiRegionAccessPoint) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpDeleteMultiRegionAccessPoint) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + if m.tokenProvider == nil { + return next.HandleInitialize(ctx, in) + } + + input, ok := in.Parameters.(*DeleteMultiRegionAccessPointInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *DeleteMultiRegionAccessPointInput ") + } + + if input.ClientToken == nil { + t, err := m.tokenProvider.GetIdempotencyToken() + if err != nil { + return out, metadata, err + } + input.ClientToken = &t + } + return next.HandleInitialize(ctx, in) +} +func addIdempotencyToken_opDeleteMultiRegionAccessPointMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpDeleteMultiRegionAccessPoint{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opDeleteMultiRegionAccessPoint(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "s3", + OperationName: "DeleteMultiRegionAccessPoint", + } +} + +func copyDeleteMultiRegionAccessPointInputForUpdateEndpoint(params interface{}) (interface{}, error) { + input, ok := params.(*DeleteMultiRegionAccessPointInput) + if !ok { + return nil, fmt.Errorf("expect *DeleteMultiRegionAccessPointInput type, got %T", params) + } + cpy := *input + return &cpy, nil +} +func backFillDeleteMultiRegionAccessPointAccountID(input interface{}, v string) error { + in := input.(*DeleteMultiRegionAccessPointInput) + if in.AccountId != nil { + if !strings.EqualFold(*in.AccountId, v) { + return fmt.Errorf("error backfilling account id") + } + return nil + } + in.AccountId = &v + return nil +} +func addDeleteMultiRegionAccessPointUpdateEndpoint(stack *middleware.Stack, options Options) error { + return s3controlcust.UpdateEndpoint(stack, s3controlcust.UpdateEndpointOptions{ + Accessor: s3controlcust.UpdateEndpointParameterAccessor{GetARNInput: nopGetARNAccessor, + BackfillAccountID: nopBackfillAccountIDAccessor, + GetOutpostIDInput: nopGetOutpostIDFromInput, + UpdateARNField: nopSetARNAccessor, + CopyInput: copyDeleteMultiRegionAccessPointInputForUpdateEndpoint, + }, + EndpointResolver: options.EndpointResolver, + EndpointResolverOptions: options.EndpointOptions, + UseDualstack: options.UseDualstack, + UseARNRegion: options.UseARNRegion, + }) +} diff --git a/service/s3control/api_op_DeletePublicAccessBlock.go b/service/s3control/api_op_DeletePublicAccessBlock.go index ebdce95771d..eaa819e7c4b 100644 --- a/service/s3control/api_op_DeletePublicAccessBlock.go +++ b/service/s3control/api_op_DeletePublicAccessBlock.go @@ -14,8 +14,8 @@ import ( "strings" ) -// Removes the PublicAccessBlock configuration for an account. For more -// information, see Using Amazon S3 block public access +// Removes the PublicAccessBlock configuration for an Amazon Web Services account. +// For more information, see Using Amazon S3 block public access // (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html). // Related actions include: // @@ -42,8 +42,8 @@ func (c *Client) DeletePublicAccessBlock(ctx context.Context, params *DeletePubl type DeletePublicAccessBlockInput struct { - // The account ID for the account whose PublicAccessBlock configuration you want to - // remove. + // The account ID for the Amazon Web Services account whose PublicAccessBlock + // configuration you want to remove. // // This member is required. AccountId *string diff --git a/service/s3control/api_op_DescribeJob.go b/service/s3control/api_op_DescribeJob.go index 42ae1759f2d..815c00856a4 100644 --- a/service/s3control/api_op_DescribeJob.go +++ b/service/s3control/api_op_DescribeJob.go @@ -51,7 +51,7 @@ func (c *Client) DescribeJob(ctx context.Context, params *DescribeJobInput, optF type DescribeJobInput struct { - // The account ID associated with the S3 Batch Operations job. + // The Amazon Web Services account ID associated with the S3 Batch Operations job. // // This member is required. AccountId *string diff --git a/service/s3control/api_op_DescribeMultiRegionAccessPointOperation.go b/service/s3control/api_op_DescribeMultiRegionAccessPointOperation.go new file mode 100644 index 00000000000..22bc4a7fac7 --- /dev/null +++ b/service/s3control/api_op_DescribeMultiRegionAccessPointOperation.go @@ -0,0 +1,241 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package s3control + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + s3controlcust "github.com/aws/aws-sdk-go-v2/service/s3control/internal/customizations" + "github.com/aws/aws-sdk-go-v2/service/s3control/types" + smithy "github.com/aws/smithy-go" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "strings" +) + +// Retrieves the status of an asynchronous request to manage a Multi-Region Access +// Point. For more information about managing Multi-Region Access Points and how +// asynchronous requests work, see Managing Multi-Region Access Points +// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html) +// in the Amazon S3 User Guide. The following actions are related to +// GetMultiRegionAccessPoint: +// +// * CreateMultiRegionAccessPoint +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateMultiRegionAccessPoint.html) +// +// * +// DeleteMultiRegionAccessPoint +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteMultiRegionAccessPoint.html) +// +// * +// GetMultiRegionAccessPoint +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPoint.html) +// +// * +// ListMultiRegionAccessPoints +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListMultiRegionAccessPoints.html) +func (c *Client) DescribeMultiRegionAccessPointOperation(ctx context.Context, params *DescribeMultiRegionAccessPointOperationInput, optFns ...func(*Options)) (*DescribeMultiRegionAccessPointOperationOutput, error) { + if params == nil { + params = &DescribeMultiRegionAccessPointOperationInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DescribeMultiRegionAccessPointOperation", params, optFns, c.addOperationDescribeMultiRegionAccessPointOperationMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DescribeMultiRegionAccessPointOperationOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DescribeMultiRegionAccessPointOperationInput struct { + + // The Amazon Web Services account ID for the owner of the Multi-Region Access + // Point. + // + // This member is required. + AccountId *string + + // The request token associated with the request you want to know about. This + // request token is returned as part of the response when you make an asynchronous + // request. You provide this token to query about the status of the asynchronous + // action. + // + // This member is required. + RequestTokenARN *string + + noSmithyDocumentSerde +} + +type DescribeMultiRegionAccessPointOperationOutput struct { + + // A container element containing the details of the asynchronous operation. + AsyncOperation *types.AsyncOperation + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDescribeMultiRegionAccessPointOperationMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestxml_serializeOpDescribeMultiRegionAccessPointOperation{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestxml_deserializeOpDescribeMultiRegionAccessPointOperation{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addEndpointPrefix_opDescribeMultiRegionAccessPointOperationMiddleware(stack); err != nil { + return err + } + if err = addOpDescribeMultiRegionAccessPointOperationValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeMultiRegionAccessPointOperation(options.Region), middleware.Before); err != nil { + return err + } + if err = addMetadataRetrieverMiddleware(stack); err != nil { + return err + } + if err = addDescribeMultiRegionAccessPointOperationUpdateEndpoint(stack, options); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = v4.AddContentSHA256HeaderMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = smithyhttp.AddContentChecksumMiddleware(stack); err != nil { + return err + } + return nil +} + +type endpointPrefix_opDescribeMultiRegionAccessPointOperationMiddleware struct { +} + +func (*endpointPrefix_opDescribeMultiRegionAccessPointOperationMiddleware) ID() string { + return "EndpointHostPrefix" +} + +func (m *endpointPrefix_opDescribeMultiRegionAccessPointOperationMiddleware) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + if smithyhttp.GetHostnameImmutable(ctx) || smithyhttp.IsEndpointHostPrefixDisabled(ctx) { + return next.HandleSerialize(ctx, in) + } + + req, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, fmt.Errorf("unknown transport type %T", in.Request) + } + + input, ok := in.Parameters.(*DescribeMultiRegionAccessPointOperationInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input type %T", in.Parameters) + } + + var prefix strings.Builder + if input.AccountId == nil { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("AccountId forms part of the endpoint host and so may not be nil")} + } else if !smithyhttp.ValidHostLabel(*input.AccountId) { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("AccountId forms part of the endpoint host and so must match \"[a-zA-Z0-9-]{1,63}\", but was \"%s\"", *input.AccountId)} + } else { + prefix.WriteString(*input.AccountId) + } + prefix.WriteString(".") + req.URL.Host = prefix.String() + req.URL.Host + + return next.HandleSerialize(ctx, in) +} +func addEndpointPrefix_opDescribeMultiRegionAccessPointOperationMiddleware(stack *middleware.Stack) error { + return stack.Serialize.Insert(&endpointPrefix_opDescribeMultiRegionAccessPointOperationMiddleware{}, `OperationSerializer`, middleware.After) +} + +func newServiceMetadataMiddleware_opDescribeMultiRegionAccessPointOperation(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "s3", + OperationName: "DescribeMultiRegionAccessPointOperation", + } +} + +func copyDescribeMultiRegionAccessPointOperationInputForUpdateEndpoint(params interface{}) (interface{}, error) { + input, ok := params.(*DescribeMultiRegionAccessPointOperationInput) + if !ok { + return nil, fmt.Errorf("expect *DescribeMultiRegionAccessPointOperationInput type, got %T", params) + } + cpy := *input + return &cpy, nil +} +func backFillDescribeMultiRegionAccessPointOperationAccountID(input interface{}, v string) error { + in := input.(*DescribeMultiRegionAccessPointOperationInput) + if in.AccountId != nil { + if !strings.EqualFold(*in.AccountId, v) { + return fmt.Errorf("error backfilling account id") + } + return nil + } + in.AccountId = &v + return nil +} +func addDescribeMultiRegionAccessPointOperationUpdateEndpoint(stack *middleware.Stack, options Options) error { + return s3controlcust.UpdateEndpoint(stack, s3controlcust.UpdateEndpointOptions{ + Accessor: s3controlcust.UpdateEndpointParameterAccessor{GetARNInput: nopGetARNAccessor, + BackfillAccountID: nopBackfillAccountIDAccessor, + GetOutpostIDInput: nopGetOutpostIDFromInput, + UpdateARNField: nopSetARNAccessor, + CopyInput: copyDescribeMultiRegionAccessPointOperationInputForUpdateEndpoint, + }, + EndpointResolver: options.EndpointResolver, + EndpointResolverOptions: options.EndpointOptions, + UseDualstack: options.UseDualstack, + UseARNRegion: options.UseARNRegion, + }) +} diff --git a/service/s3control/api_op_GetBucket.go b/service/s3control/api_op_GetBucket.go index faa2a8d3850..3403a18b91b 100644 --- a/service/s3control/api_op_GetBucket.go +++ b/service/s3control/api_op_GetBucket.go @@ -19,19 +19,19 @@ import ( // on Outposts // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the // Amazon S3 User Guide. If you are using an identity other than the root user of -// the account that owns the Outposts bucket, the calling identity must have the -// s3-outposts:GetBucket permissions on the specified Outposts bucket and belong to -// the Outposts bucket owner's account in order to use this action. Only users from -// Outposts bucket owner account with the right permissions can perform actions on -// an Outposts bucket. If you don't have s3-outposts:GetBucket permissions or -// you're not using an identity that belongs to the bucket owner's account, Amazon -// S3 returns a 403 Access Denied error. The following actions are related to -// GetBucket for Amazon S3 on Outposts: All Amazon S3 on Outposts REST API requests -// for this action require an additional parameter of x-amz-outpost-id to be passed -// with the request and an S3 on Outposts endpoint hostname prefix instead of -// s3-control. For an example of the request syntax for Amazon S3 on Outposts that -// uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id -// derived using the access point ARN, see the Examples +// the Amazon Web Services account that owns the Outposts bucket, the calling +// identity must have the s3-outposts:GetBucket permissions on the specified +// Outposts bucket and belong to the Outposts bucket owner's account in order to +// use this action. Only users from Outposts bucket owner account with the right +// permissions can perform actions on an Outposts bucket. If you don't have +// s3-outposts:GetBucket permissions or you're not using an identity that belongs +// to the bucket owner's account, Amazon S3 returns a 403 Access Denied error. The +// following actions are related to GetBucket for Amazon S3 on Outposts: All Amazon +// S3 on Outposts REST API requests for this action require an additional parameter +// of x-amz-outpost-id to be passed with the request and an S3 on Outposts endpoint +// hostname prefix instead of s3-control. For an example of the request syntax for +// Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and +// the x-amz-outpost-id derived using the access point ARN, see the Examples // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucket.html#API_control_GetBucket_Examples) // section. // @@ -62,7 +62,7 @@ func (c *Client) GetBucket(ctx context.Context, params *GetBucketInput, optFns . type GetBucketInput struct { - // The account ID of the Outposts bucket. + // The Amazon Web Services account ID of the Outposts bucket. // // This member is required. AccountId *string diff --git a/service/s3control/api_op_GetBucketLifecycleConfiguration.go b/service/s3control/api_op_GetBucketLifecycleConfiguration.go index bdf8a1af348..32b2a8b61eb 100644 --- a/service/s3control/api_op_GetBucketLifecycleConfiguration.go +++ b/service/s3control/api_op_GetBucketLifecycleConfiguration.go @@ -78,7 +78,7 @@ func (c *Client) GetBucketLifecycleConfiguration(ctx context.Context, params *Ge type GetBucketLifecycleConfigurationInput struct { - // The account ID of the Outposts bucket. + // The Amazon Web Services account ID of the Outposts bucket. // // This member is required. AccountId *string diff --git a/service/s3control/api_op_GetBucketPolicy.go b/service/s3control/api_op_GetBucketPolicy.go index 8652f8bebf2..7fce738061f 100644 --- a/service/s3control/api_op_GetBucketPolicy.go +++ b/service/s3control/api_op_GetBucketPolicy.go @@ -21,16 +21,17 @@ import ( // For more information, see Using Amazon S3 on Outposts // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the // Amazon S3 User Guide. If you are using an identity other than the root user of -// the account that owns the bucket, the calling identity must have the -// GetBucketPolicy permissions on the specified bucket and belong to the bucket -// owner's account in order to use this action. Only users from Outposts bucket -// owner account with the right permissions can perform actions on an Outposts -// bucket. If you don't have s3-outposts:GetBucketPolicy permissions or you're not -// using an identity that belongs to the bucket owner's account, Amazon S3 returns -// a 403 Access Denied error. As a security precaution, the root user of the -// account that owns a bucket can always use this action, even if the policy -// explicitly denies the root user the ability to perform this action. For more -// information about bucket policies, see Using Bucket Policies and User Policies +// the Amazon Web Services account that owns the bucket, the calling identity must +// have the GetBucketPolicy permissions on the specified bucket and belong to the +// bucket owner's account in order to use this action. Only users from Outposts +// bucket owner account with the right permissions can perform actions on an +// Outposts bucket. If you don't have s3-outposts:GetBucketPolicy permissions or +// you're not using an identity that belongs to the bucket owner's account, Amazon +// S3 returns a 403 Access Denied error. As a security precaution, the root user of +// the Amazon Web Services account that owns a bucket can always use this action, +// even if the policy explicitly denies the root user the ability to perform this +// action. For more information about bucket policies, see Using Bucket Policies +// and User Policies // (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html). All // Amazon S3 on Outposts REST API requests for this action require an additional // parameter of x-amz-outpost-id to be passed with the request and an S3 on @@ -68,7 +69,7 @@ func (c *Client) GetBucketPolicy(ctx context.Context, params *GetBucketPolicyInp type GetBucketPolicyInput struct { - // The account ID of the Outposts bucket. + // The Amazon Web Services account ID of the Outposts bucket. // // This member is required. AccountId *string diff --git a/service/s3control/api_op_GetBucketTagging.go b/service/s3control/api_op_GetBucketTagging.go index 22589ba88a4..d7a716b0406 100644 --- a/service/s3control/api_op_GetBucketTagging.go +++ b/service/s3control/api_op_GetBucketTagging.go @@ -64,7 +64,7 @@ func (c *Client) GetBucketTagging(ctx context.Context, params *GetBucketTaggingI type GetBucketTaggingInput struct { - // The account ID of the Outposts bucket. + // The Amazon Web Services account ID of the Outposts bucket. // // This member is required. AccountId *string diff --git a/service/s3control/api_op_GetJobTagging.go b/service/s3control/api_op_GetJobTagging.go index 147b065a148..8cfbc3db3bd 100644 --- a/service/s3control/api_op_GetJobTagging.go +++ b/service/s3control/api_op_GetJobTagging.go @@ -48,7 +48,7 @@ func (c *Client) GetJobTagging(ctx context.Context, params *GetJobTaggingInput, type GetJobTaggingInput struct { - // The account ID associated with the S3 Batch Operations job. + // The Amazon Web Services account ID associated with the S3 Batch Operations job. // // This member is required. AccountId *string diff --git a/service/s3control/api_op_GetMultiRegionAccessPoint.go b/service/s3control/api_op_GetMultiRegionAccessPoint.go new file mode 100644 index 00000000000..f21ac09deb1 --- /dev/null +++ b/service/s3control/api_op_GetMultiRegionAccessPoint.go @@ -0,0 +1,245 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package s3control + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + s3controlcust "github.com/aws/aws-sdk-go-v2/service/s3control/internal/customizations" + "github.com/aws/aws-sdk-go-v2/service/s3control/types" + smithy "github.com/aws/smithy-go" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "strings" +) + +// Returns configuration information about the specified Multi-Region Access Point. +// This action will always be routed to the US West (Oregon) Region. For more +// information about the restrictions around managing Multi-Region Access Points, +// see Managing Multi-Region Access Points +// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html) +// in the Amazon S3 User Guide. The following actions are related to +// GetMultiRegionAccessPoint: +// +// * CreateMultiRegionAccessPoint +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateMultiRegionAccessPoint.html) +// +// * +// DeleteMultiRegionAccessPoint +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteMultiRegionAccessPoint.html) +// +// * +// DescribeMultiRegionAccessPointOperation +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeMultiRegionAccessPointOperation.html) +// +// * +// ListMultiRegionAccessPoints +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListMultiRegionAccessPoints.html) +func (c *Client) GetMultiRegionAccessPoint(ctx context.Context, params *GetMultiRegionAccessPointInput, optFns ...func(*Options)) (*GetMultiRegionAccessPointOutput, error) { + if params == nil { + params = &GetMultiRegionAccessPointInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GetMultiRegionAccessPoint", params, optFns, c.addOperationGetMultiRegionAccessPointMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GetMultiRegionAccessPointOutput) + out.ResultMetadata = metadata + return out, nil +} + +type GetMultiRegionAccessPointInput struct { + + // The Amazon Web Services account ID for the owner of the Multi-Region Access + // Point. + // + // This member is required. + AccountId *string + + // The name of the Multi-Region Access Point whose configuration information you + // want to receive. The name of the Multi-Region Access Point is different from the + // alias. For more information about the distinction between the name and the alias + // of an Multi-Region Access Point, see Managing Multi-Region Access Points + // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingMultiRegionAccessPoints.html#multi-region-access-point-naming) + // in the Amazon S3 User Guide. + // + // This member is required. + Name *string + + noSmithyDocumentSerde +} + +type GetMultiRegionAccessPointOutput struct { + + // A container element containing the details of the requested Multi-Region Access + // Point. + AccessPoint *types.MultiRegionAccessPointReport + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGetMultiRegionAccessPointMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestxml_serializeOpGetMultiRegionAccessPoint{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestxml_deserializeOpGetMultiRegionAccessPoint{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addEndpointPrefix_opGetMultiRegionAccessPointMiddleware(stack); err != nil { + return err + } + if err = addOpGetMultiRegionAccessPointValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetMultiRegionAccessPoint(options.Region), middleware.Before); err != nil { + return err + } + if err = addMetadataRetrieverMiddleware(stack); err != nil { + return err + } + if err = addGetMultiRegionAccessPointUpdateEndpoint(stack, options); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = v4.AddContentSHA256HeaderMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = smithyhttp.AddContentChecksumMiddleware(stack); err != nil { + return err + } + return nil +} + +type endpointPrefix_opGetMultiRegionAccessPointMiddleware struct { +} + +func (*endpointPrefix_opGetMultiRegionAccessPointMiddleware) ID() string { + return "EndpointHostPrefix" +} + +func (m *endpointPrefix_opGetMultiRegionAccessPointMiddleware) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + if smithyhttp.GetHostnameImmutable(ctx) || smithyhttp.IsEndpointHostPrefixDisabled(ctx) { + return next.HandleSerialize(ctx, in) + } + + req, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, fmt.Errorf("unknown transport type %T", in.Request) + } + + input, ok := in.Parameters.(*GetMultiRegionAccessPointInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input type %T", in.Parameters) + } + + var prefix strings.Builder + if input.AccountId == nil { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("AccountId forms part of the endpoint host and so may not be nil")} + } else if !smithyhttp.ValidHostLabel(*input.AccountId) { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("AccountId forms part of the endpoint host and so must match \"[a-zA-Z0-9-]{1,63}\", but was \"%s\"", *input.AccountId)} + } else { + prefix.WriteString(*input.AccountId) + } + prefix.WriteString(".") + req.URL.Host = prefix.String() + req.URL.Host + + return next.HandleSerialize(ctx, in) +} +func addEndpointPrefix_opGetMultiRegionAccessPointMiddleware(stack *middleware.Stack) error { + return stack.Serialize.Insert(&endpointPrefix_opGetMultiRegionAccessPointMiddleware{}, `OperationSerializer`, middleware.After) +} + +func newServiceMetadataMiddleware_opGetMultiRegionAccessPoint(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "s3", + OperationName: "GetMultiRegionAccessPoint", + } +} + +func copyGetMultiRegionAccessPointInputForUpdateEndpoint(params interface{}) (interface{}, error) { + input, ok := params.(*GetMultiRegionAccessPointInput) + if !ok { + return nil, fmt.Errorf("expect *GetMultiRegionAccessPointInput type, got %T", params) + } + cpy := *input + return &cpy, nil +} +func backFillGetMultiRegionAccessPointAccountID(input interface{}, v string) error { + in := input.(*GetMultiRegionAccessPointInput) + if in.AccountId != nil { + if !strings.EqualFold(*in.AccountId, v) { + return fmt.Errorf("error backfilling account id") + } + return nil + } + in.AccountId = &v + return nil +} +func addGetMultiRegionAccessPointUpdateEndpoint(stack *middleware.Stack, options Options) error { + return s3controlcust.UpdateEndpoint(stack, s3controlcust.UpdateEndpointOptions{ + Accessor: s3controlcust.UpdateEndpointParameterAccessor{GetARNInput: nopGetARNAccessor, + BackfillAccountID: nopBackfillAccountIDAccessor, + GetOutpostIDInput: nopGetOutpostIDFromInput, + UpdateARNField: nopSetARNAccessor, + CopyInput: copyGetMultiRegionAccessPointInputForUpdateEndpoint, + }, + EndpointResolver: options.EndpointResolver, + EndpointResolverOptions: options.EndpointOptions, + UseDualstack: options.UseDualstack, + UseARNRegion: options.UseARNRegion, + }) +} diff --git a/service/s3control/api_op_GetMultiRegionAccessPointPolicy.go b/service/s3control/api_op_GetMultiRegionAccessPointPolicy.go new file mode 100644 index 00000000000..ef63531c6d0 --- /dev/null +++ b/service/s3control/api_op_GetMultiRegionAccessPointPolicy.go @@ -0,0 +1,236 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package s3control + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + s3controlcust "github.com/aws/aws-sdk-go-v2/service/s3control/internal/customizations" + "github.com/aws/aws-sdk-go-v2/service/s3control/types" + smithy "github.com/aws/smithy-go" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "strings" +) + +// Returns the access control policy of the specified Multi-Region Access Point. +// This action will always be routed to the US West (Oregon) Region. For more +// information about the restrictions around managing Multi-Region Access Points, +// see Managing Multi-Region Access Points +// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html) +// in the Amazon S3 User Guide. The following actions are related to +// GetMultiRegionAccessPointPolicy: +// +// * GetMultiRegionAccessPointPolicyStatus +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointPolicyStatus.html) +// +// * +// PutMultiRegionAccessPointPolicy +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutMultiRegionAccessPointPolicy.html) +func (c *Client) GetMultiRegionAccessPointPolicy(ctx context.Context, params *GetMultiRegionAccessPointPolicyInput, optFns ...func(*Options)) (*GetMultiRegionAccessPointPolicyOutput, error) { + if params == nil { + params = &GetMultiRegionAccessPointPolicyInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GetMultiRegionAccessPointPolicy", params, optFns, c.addOperationGetMultiRegionAccessPointPolicyMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GetMultiRegionAccessPointPolicyOutput) + out.ResultMetadata = metadata + return out, nil +} + +type GetMultiRegionAccessPointPolicyInput struct { + + // The Amazon Web Services account ID for the owner of the Multi-Region Access + // Point. + // + // This member is required. + AccountId *string + + // Specifies the Multi-Region Access Point. The name of the Multi-Region Access + // Point is different from the alias. For more information about the distinction + // between the name and the alias of an Multi-Region Access Point, see Managing + // Multi-Region Access Points + // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingMultiRegionAccessPoints.html#multi-region-access-point-naming) + // in the Amazon S3 User Guide. + // + // This member is required. + Name *string + + noSmithyDocumentSerde +} + +type GetMultiRegionAccessPointPolicyOutput struct { + + // The policy associated with the specified Multi-Region Access Point. + Policy *types.MultiRegionAccessPointPolicyDocument + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGetMultiRegionAccessPointPolicyMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestxml_serializeOpGetMultiRegionAccessPointPolicy{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestxml_deserializeOpGetMultiRegionAccessPointPolicy{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addEndpointPrefix_opGetMultiRegionAccessPointPolicyMiddleware(stack); err != nil { + return err + } + if err = addOpGetMultiRegionAccessPointPolicyValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetMultiRegionAccessPointPolicy(options.Region), middleware.Before); err != nil { + return err + } + if err = addMetadataRetrieverMiddleware(stack); err != nil { + return err + } + if err = addGetMultiRegionAccessPointPolicyUpdateEndpoint(stack, options); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = v4.AddContentSHA256HeaderMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = smithyhttp.AddContentChecksumMiddleware(stack); err != nil { + return err + } + return nil +} + +type endpointPrefix_opGetMultiRegionAccessPointPolicyMiddleware struct { +} + +func (*endpointPrefix_opGetMultiRegionAccessPointPolicyMiddleware) ID() string { + return "EndpointHostPrefix" +} + +func (m *endpointPrefix_opGetMultiRegionAccessPointPolicyMiddleware) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + if smithyhttp.GetHostnameImmutable(ctx) || smithyhttp.IsEndpointHostPrefixDisabled(ctx) { + return next.HandleSerialize(ctx, in) + } + + req, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, fmt.Errorf("unknown transport type %T", in.Request) + } + + input, ok := in.Parameters.(*GetMultiRegionAccessPointPolicyInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input type %T", in.Parameters) + } + + var prefix strings.Builder + if input.AccountId == nil { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("AccountId forms part of the endpoint host and so may not be nil")} + } else if !smithyhttp.ValidHostLabel(*input.AccountId) { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("AccountId forms part of the endpoint host and so must match \"[a-zA-Z0-9-]{1,63}\", but was \"%s\"", *input.AccountId)} + } else { + prefix.WriteString(*input.AccountId) + } + prefix.WriteString(".") + req.URL.Host = prefix.String() + req.URL.Host + + return next.HandleSerialize(ctx, in) +} +func addEndpointPrefix_opGetMultiRegionAccessPointPolicyMiddleware(stack *middleware.Stack) error { + return stack.Serialize.Insert(&endpointPrefix_opGetMultiRegionAccessPointPolicyMiddleware{}, `OperationSerializer`, middleware.After) +} + +func newServiceMetadataMiddleware_opGetMultiRegionAccessPointPolicy(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "s3", + OperationName: "GetMultiRegionAccessPointPolicy", + } +} + +func copyGetMultiRegionAccessPointPolicyInputForUpdateEndpoint(params interface{}) (interface{}, error) { + input, ok := params.(*GetMultiRegionAccessPointPolicyInput) + if !ok { + return nil, fmt.Errorf("expect *GetMultiRegionAccessPointPolicyInput type, got %T", params) + } + cpy := *input + return &cpy, nil +} +func backFillGetMultiRegionAccessPointPolicyAccountID(input interface{}, v string) error { + in := input.(*GetMultiRegionAccessPointPolicyInput) + if in.AccountId != nil { + if !strings.EqualFold(*in.AccountId, v) { + return fmt.Errorf("error backfilling account id") + } + return nil + } + in.AccountId = &v + return nil +} +func addGetMultiRegionAccessPointPolicyUpdateEndpoint(stack *middleware.Stack, options Options) error { + return s3controlcust.UpdateEndpoint(stack, s3controlcust.UpdateEndpointOptions{ + Accessor: s3controlcust.UpdateEndpointParameterAccessor{GetARNInput: nopGetARNAccessor, + BackfillAccountID: nopBackfillAccountIDAccessor, + GetOutpostIDInput: nopGetOutpostIDFromInput, + UpdateARNField: nopSetARNAccessor, + CopyInput: copyGetMultiRegionAccessPointPolicyInputForUpdateEndpoint, + }, + EndpointResolver: options.EndpointResolver, + EndpointResolverOptions: options.EndpointOptions, + UseDualstack: options.UseDualstack, + UseARNRegion: options.UseARNRegion, + }) +} diff --git a/service/s3control/api_op_GetMultiRegionAccessPointPolicyStatus.go b/service/s3control/api_op_GetMultiRegionAccessPointPolicyStatus.go new file mode 100644 index 00000000000..630729ba413 --- /dev/null +++ b/service/s3control/api_op_GetMultiRegionAccessPointPolicyStatus.go @@ -0,0 +1,240 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package s3control + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + s3controlcust "github.com/aws/aws-sdk-go-v2/service/s3control/internal/customizations" + "github.com/aws/aws-sdk-go-v2/service/s3control/types" + smithy "github.com/aws/smithy-go" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "strings" +) + +// Indicates whether the specified Multi-Region Access Point has an access control +// policy that allows public access. This action will always be routed to the US +// West (Oregon) Region. For more information about the restrictions around +// managing Multi-Region Access Points, see Managing Multi-Region Access Points +// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html) +// in the Amazon S3 User Guide. The following actions are related to +// GetMultiRegionAccessPointPolicyStatus: +// +// * GetMultiRegionAccessPointPolicy +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointPolicy.html) +// +// * +// PutMultiRegionAccessPointPolicy +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutMultiRegionAccessPointPolicy.html) +func (c *Client) GetMultiRegionAccessPointPolicyStatus(ctx context.Context, params *GetMultiRegionAccessPointPolicyStatusInput, optFns ...func(*Options)) (*GetMultiRegionAccessPointPolicyStatusOutput, error) { + if params == nil { + params = &GetMultiRegionAccessPointPolicyStatusInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GetMultiRegionAccessPointPolicyStatus", params, optFns, c.addOperationGetMultiRegionAccessPointPolicyStatusMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GetMultiRegionAccessPointPolicyStatusOutput) + out.ResultMetadata = metadata + return out, nil +} + +type GetMultiRegionAccessPointPolicyStatusInput struct { + + // The Amazon Web Services account ID for the owner of the Multi-Region Access + // Point. + // + // This member is required. + AccountId *string + + // Specifies the Multi-Region Access Point. The name of the Multi-Region Access + // Point is different from the alias. For more information about the distinction + // between the name and the alias of an Multi-Region Access Point, see Managing + // Multi-Region Access Points + // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingMultiRegionAccessPoints.html#multi-region-access-point-naming) + // in the Amazon S3 User Guide. + // + // This member is required. + Name *string + + noSmithyDocumentSerde +} + +type GetMultiRegionAccessPointPolicyStatusOutput struct { + + // Indicates whether this access point policy is public. For more information about + // how Amazon S3 evaluates policies to determine whether they are public, see The + // Meaning of "Public" + // (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) + // in the Amazon S3 User Guide. + Established *types.PolicyStatus + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGetMultiRegionAccessPointPolicyStatusMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestxml_serializeOpGetMultiRegionAccessPointPolicyStatus{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestxml_deserializeOpGetMultiRegionAccessPointPolicyStatus{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addEndpointPrefix_opGetMultiRegionAccessPointPolicyStatusMiddleware(stack); err != nil { + return err + } + if err = addOpGetMultiRegionAccessPointPolicyStatusValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetMultiRegionAccessPointPolicyStatus(options.Region), middleware.Before); err != nil { + return err + } + if err = addMetadataRetrieverMiddleware(stack); err != nil { + return err + } + if err = addGetMultiRegionAccessPointPolicyStatusUpdateEndpoint(stack, options); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = v4.AddContentSHA256HeaderMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = smithyhttp.AddContentChecksumMiddleware(stack); err != nil { + return err + } + return nil +} + +type endpointPrefix_opGetMultiRegionAccessPointPolicyStatusMiddleware struct { +} + +func (*endpointPrefix_opGetMultiRegionAccessPointPolicyStatusMiddleware) ID() string { + return "EndpointHostPrefix" +} + +func (m *endpointPrefix_opGetMultiRegionAccessPointPolicyStatusMiddleware) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + if smithyhttp.GetHostnameImmutable(ctx) || smithyhttp.IsEndpointHostPrefixDisabled(ctx) { + return next.HandleSerialize(ctx, in) + } + + req, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, fmt.Errorf("unknown transport type %T", in.Request) + } + + input, ok := in.Parameters.(*GetMultiRegionAccessPointPolicyStatusInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input type %T", in.Parameters) + } + + var prefix strings.Builder + if input.AccountId == nil { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("AccountId forms part of the endpoint host and so may not be nil")} + } else if !smithyhttp.ValidHostLabel(*input.AccountId) { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("AccountId forms part of the endpoint host and so must match \"[a-zA-Z0-9-]{1,63}\", but was \"%s\"", *input.AccountId)} + } else { + prefix.WriteString(*input.AccountId) + } + prefix.WriteString(".") + req.URL.Host = prefix.String() + req.URL.Host + + return next.HandleSerialize(ctx, in) +} +func addEndpointPrefix_opGetMultiRegionAccessPointPolicyStatusMiddleware(stack *middleware.Stack) error { + return stack.Serialize.Insert(&endpointPrefix_opGetMultiRegionAccessPointPolicyStatusMiddleware{}, `OperationSerializer`, middleware.After) +} + +func newServiceMetadataMiddleware_opGetMultiRegionAccessPointPolicyStatus(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "s3", + OperationName: "GetMultiRegionAccessPointPolicyStatus", + } +} + +func copyGetMultiRegionAccessPointPolicyStatusInputForUpdateEndpoint(params interface{}) (interface{}, error) { + input, ok := params.(*GetMultiRegionAccessPointPolicyStatusInput) + if !ok { + return nil, fmt.Errorf("expect *GetMultiRegionAccessPointPolicyStatusInput type, got %T", params) + } + cpy := *input + return &cpy, nil +} +func backFillGetMultiRegionAccessPointPolicyStatusAccountID(input interface{}, v string) error { + in := input.(*GetMultiRegionAccessPointPolicyStatusInput) + if in.AccountId != nil { + if !strings.EqualFold(*in.AccountId, v) { + return fmt.Errorf("error backfilling account id") + } + return nil + } + in.AccountId = &v + return nil +} +func addGetMultiRegionAccessPointPolicyStatusUpdateEndpoint(stack *middleware.Stack, options Options) error { + return s3controlcust.UpdateEndpoint(stack, s3controlcust.UpdateEndpointOptions{ + Accessor: s3controlcust.UpdateEndpointParameterAccessor{GetARNInput: nopGetARNAccessor, + BackfillAccountID: nopBackfillAccountIDAccessor, + GetOutpostIDInput: nopGetOutpostIDFromInput, + UpdateARNField: nopSetARNAccessor, + CopyInput: copyGetMultiRegionAccessPointPolicyStatusInputForUpdateEndpoint, + }, + EndpointResolver: options.EndpointResolver, + EndpointResolverOptions: options.EndpointOptions, + UseDualstack: options.UseDualstack, + UseARNRegion: options.UseARNRegion, + }) +} diff --git a/service/s3control/api_op_GetPublicAccessBlock.go b/service/s3control/api_op_GetPublicAccessBlock.go index bfad0faf8ef..2558f766af6 100644 --- a/service/s3control/api_op_GetPublicAccessBlock.go +++ b/service/s3control/api_op_GetPublicAccessBlock.go @@ -15,8 +15,8 @@ import ( "strings" ) -// Retrieves the PublicAccessBlock configuration for an account. For more -// information, see Using Amazon S3 block public access +// Retrieves the PublicAccessBlock configuration for an Amazon Web Services +// account. For more information, see Using Amazon S3 block public access // (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html). // Related actions include: // @@ -43,8 +43,8 @@ func (c *Client) GetPublicAccessBlock(ctx context.Context, params *GetPublicAcce type GetPublicAccessBlockInput struct { - // The account ID for the account whose PublicAccessBlock configuration you want to - // retrieve. + // The account ID for the Amazon Web Services account whose PublicAccessBlock + // configuration you want to retrieve. // // This member is required. AccountId *string @@ -54,7 +54,8 @@ type GetPublicAccessBlockInput struct { type GetPublicAccessBlockOutput struct { - // The PublicAccessBlock configuration currently in effect for this account. + // The PublicAccessBlock configuration currently in effect for this Amazon Web + // Services account. PublicAccessBlockConfiguration *types.PublicAccessBlockConfiguration // Metadata pertaining to the operation's result. diff --git a/service/s3control/api_op_ListAccessPoints.go b/service/s3control/api_op_ListAccessPoints.go index bbd774bd18c..65310a537a4 100644 --- a/service/s3control/api_op_ListAccessPoints.go +++ b/service/s3control/api_op_ListAccessPoints.go @@ -56,7 +56,8 @@ func (c *Client) ListAccessPoints(ctx context.Context, params *ListAccessPointsI type ListAccessPointsInput struct { - // The account ID for owner of the bucket whose access points you want to list. + // The Amazon Web Services account ID for owner of the bucket whose access points + // you want to list. // // This member is required. AccountId *string diff --git a/service/s3control/api_op_ListJobs.go b/service/s3control/api_op_ListJobs.go index 5ca41225b90..6556d02456a 100644 --- a/service/s3control/api_op_ListJobs.go +++ b/service/s3control/api_op_ListJobs.go @@ -16,8 +16,8 @@ import ( ) // Lists current S3 Batch Operations jobs and jobs that have ended within the last -// 30 days for the account making the request. For more information, see S3 Batch -// Operations +// 30 days for the Amazon Web Services account making the request. For more +// information, see S3 Batch Operations // (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html) in the // Amazon S3 User Guide. Related actions include: // @@ -52,7 +52,7 @@ func (c *Client) ListJobs(ctx context.Context, params *ListJobsInput, optFns ... type ListJobsInput struct { - // The account ID associated with the S3 Batch Operations job. + // The Amazon Web Services account ID associated with the S3 Batch Operations job. // // This member is required. AccountId *string diff --git a/service/s3control/api_op_ListMultiRegionAccessPoints.go b/service/s3control/api_op_ListMultiRegionAccessPoints.go new file mode 100644 index 00000000000..029fe776821 --- /dev/null +++ b/service/s3control/api_op_ListMultiRegionAccessPoints.go @@ -0,0 +1,334 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package s3control + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + s3controlcust "github.com/aws/aws-sdk-go-v2/service/s3control/internal/customizations" + "github.com/aws/aws-sdk-go-v2/service/s3control/types" + smithy "github.com/aws/smithy-go" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "strings" +) + +// Returns a list of the Multi-Region Access Points currently associated with the +// specified Amazon Web Services account. Each call can return up to 100 +// Multi-Region Access Points, the maximum number of Multi-Region Access Points +// that can be associated with a single account. This action will always be routed +// to the US West (Oregon) Region. For more information about the restrictions +// around managing Multi-Region Access Points, see Managing Multi-Region Access +// Points +// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html) +// in the Amazon S3 User Guide. The following actions are related to +// ListMultiRegionAccessPoint: +// +// * CreateMultiRegionAccessPoint +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateMultiRegionAccessPoint.html) +// +// * +// DeleteMultiRegionAccessPoint +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteMultiRegionAccessPoint.html) +// +// * +// DescribeMultiRegionAccessPointOperation +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeMultiRegionAccessPointOperation.html) +// +// * +// GetMultiRegionAccessPoint +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPoint.html) +func (c *Client) ListMultiRegionAccessPoints(ctx context.Context, params *ListMultiRegionAccessPointsInput, optFns ...func(*Options)) (*ListMultiRegionAccessPointsOutput, error) { + if params == nil { + params = &ListMultiRegionAccessPointsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListMultiRegionAccessPoints", params, optFns, c.addOperationListMultiRegionAccessPointsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListMultiRegionAccessPointsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListMultiRegionAccessPointsInput struct { + + // The Amazon Web Services account ID for the owner of the Multi-Region Access + // Point. + // + // This member is required. + AccountId *string + + // Not currently used. Do not use this parameter. + MaxResults int32 + + // Not currently used. Do not use this parameter. + NextToken *string + + noSmithyDocumentSerde +} + +type ListMultiRegionAccessPointsOutput struct { + + // The list of Multi-Region Access Points associated with the user. + AccessPoints []types.MultiRegionAccessPointReport + + // If the specified bucket has more Multi-Region Access Points than can be returned + // in one call to this action, this field contains a continuation token. You can + // use this token tin subsequent calls to this action to retrieve additional + // Multi-Region Access Points. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListMultiRegionAccessPointsMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestxml_serializeOpListMultiRegionAccessPoints{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestxml_deserializeOpListMultiRegionAccessPoints{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addEndpointPrefix_opListMultiRegionAccessPointsMiddleware(stack); err != nil { + return err + } + if err = addOpListMultiRegionAccessPointsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListMultiRegionAccessPoints(options.Region), middleware.Before); err != nil { + return err + } + if err = addMetadataRetrieverMiddleware(stack); err != nil { + return err + } + if err = addListMultiRegionAccessPointsUpdateEndpoint(stack, options); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = v4.AddContentSHA256HeaderMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = smithyhttp.AddContentChecksumMiddleware(stack); err != nil { + return err + } + return nil +} + +type endpointPrefix_opListMultiRegionAccessPointsMiddleware struct { +} + +func (*endpointPrefix_opListMultiRegionAccessPointsMiddleware) ID() string { + return "EndpointHostPrefix" +} + +func (m *endpointPrefix_opListMultiRegionAccessPointsMiddleware) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + if smithyhttp.GetHostnameImmutable(ctx) || smithyhttp.IsEndpointHostPrefixDisabled(ctx) { + return next.HandleSerialize(ctx, in) + } + + req, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, fmt.Errorf("unknown transport type %T", in.Request) + } + + input, ok := in.Parameters.(*ListMultiRegionAccessPointsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input type %T", in.Parameters) + } + + var prefix strings.Builder + if input.AccountId == nil { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("AccountId forms part of the endpoint host and so may not be nil")} + } else if !smithyhttp.ValidHostLabel(*input.AccountId) { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("AccountId forms part of the endpoint host and so must match \"[a-zA-Z0-9-]{1,63}\", but was \"%s\"", *input.AccountId)} + } else { + prefix.WriteString(*input.AccountId) + } + prefix.WriteString(".") + req.URL.Host = prefix.String() + req.URL.Host + + return next.HandleSerialize(ctx, in) +} +func addEndpointPrefix_opListMultiRegionAccessPointsMiddleware(stack *middleware.Stack) error { + return stack.Serialize.Insert(&endpointPrefix_opListMultiRegionAccessPointsMiddleware{}, `OperationSerializer`, middleware.After) +} + +// ListMultiRegionAccessPointsAPIClient is a client that implements the +// ListMultiRegionAccessPoints operation. +type ListMultiRegionAccessPointsAPIClient interface { + ListMultiRegionAccessPoints(context.Context, *ListMultiRegionAccessPointsInput, ...func(*Options)) (*ListMultiRegionAccessPointsOutput, error) +} + +var _ ListMultiRegionAccessPointsAPIClient = (*Client)(nil) + +// ListMultiRegionAccessPointsPaginatorOptions is the paginator options for +// ListMultiRegionAccessPoints +type ListMultiRegionAccessPointsPaginatorOptions struct { + // Not currently used. Do not use this parameter. + Limit int32 + + // Set to true if pagination should stop if the service returns a pagination token + // that matches the most recent token provided to the service. + StopOnDuplicateToken bool +} + +// ListMultiRegionAccessPointsPaginator is a paginator for +// ListMultiRegionAccessPoints +type ListMultiRegionAccessPointsPaginator struct { + options ListMultiRegionAccessPointsPaginatorOptions + client ListMultiRegionAccessPointsAPIClient + params *ListMultiRegionAccessPointsInput + nextToken *string + firstPage bool +} + +// NewListMultiRegionAccessPointsPaginator returns a new +// ListMultiRegionAccessPointsPaginator +func NewListMultiRegionAccessPointsPaginator(client ListMultiRegionAccessPointsAPIClient, params *ListMultiRegionAccessPointsInput, optFns ...func(*ListMultiRegionAccessPointsPaginatorOptions)) *ListMultiRegionAccessPointsPaginator { + if params == nil { + params = &ListMultiRegionAccessPointsInput{} + } + + options := ListMultiRegionAccessPointsPaginatorOptions{} + if params.MaxResults != 0 { + options.Limit = params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListMultiRegionAccessPointsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListMultiRegionAccessPointsPaginator) HasMorePages() bool { + return p.firstPage || p.nextToken != nil +} + +// NextPage retrieves the next ListMultiRegionAccessPoints page. +func (p *ListMultiRegionAccessPointsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListMultiRegionAccessPointsOutput, error) { + if !p.HasMorePages() { + return nil, fmt.Errorf("no more pages available") + } + + params := *p.params + params.NextToken = p.nextToken + + params.MaxResults = p.options.Limit + + result, err := p.client.ListMultiRegionAccessPoints(ctx, ¶ms, optFns...) + if err != nil { + return nil, err + } + p.firstPage = false + + prevToken := p.nextToken + p.nextToken = result.NextToken + + if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken { + p.nextToken = nil + } + + return result, nil +} + +func newServiceMetadataMiddleware_opListMultiRegionAccessPoints(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "s3", + OperationName: "ListMultiRegionAccessPoints", + } +} + +func copyListMultiRegionAccessPointsInputForUpdateEndpoint(params interface{}) (interface{}, error) { + input, ok := params.(*ListMultiRegionAccessPointsInput) + if !ok { + return nil, fmt.Errorf("expect *ListMultiRegionAccessPointsInput type, got %T", params) + } + cpy := *input + return &cpy, nil +} +func backFillListMultiRegionAccessPointsAccountID(input interface{}, v string) error { + in := input.(*ListMultiRegionAccessPointsInput) + if in.AccountId != nil { + if !strings.EqualFold(*in.AccountId, v) { + return fmt.Errorf("error backfilling account id") + } + return nil + } + in.AccountId = &v + return nil +} +func addListMultiRegionAccessPointsUpdateEndpoint(stack *middleware.Stack, options Options) error { + return s3controlcust.UpdateEndpoint(stack, s3controlcust.UpdateEndpointOptions{ + Accessor: s3controlcust.UpdateEndpointParameterAccessor{GetARNInput: nopGetARNAccessor, + BackfillAccountID: nopBackfillAccountIDAccessor, + GetOutpostIDInput: nopGetOutpostIDFromInput, + UpdateARNField: nopSetARNAccessor, + CopyInput: copyListMultiRegionAccessPointsInputForUpdateEndpoint, + }, + EndpointResolver: options.EndpointResolver, + EndpointResolverOptions: options.EndpointOptions, + UseDualstack: options.UseDualstack, + UseARNRegion: options.UseARNRegion, + }) +} diff --git a/service/s3control/api_op_ListRegionalBuckets.go b/service/s3control/api_op_ListRegionalBuckets.go index 3c79cdc213e..0b5e62b6c49 100644 --- a/service/s3control/api_op_ListRegionalBuckets.go +++ b/service/s3control/api_op_ListRegionalBuckets.go @@ -41,7 +41,7 @@ func (c *Client) ListRegionalBuckets(ctx context.Context, params *ListRegionalBu type ListRegionalBucketsInput struct { - // The account ID of the Outposts bucket. + // The Amazon Web Services account ID of the Outposts bucket. // // This member is required. AccountId *string diff --git a/service/s3control/api_op_PutAccessPointPolicy.go b/service/s3control/api_op_PutAccessPointPolicy.go index 25d1d2fecb7..15e67d3fec3 100644 --- a/service/s3control/api_op_PutAccessPointPolicy.go +++ b/service/s3control/api_op_PutAccessPointPolicy.go @@ -49,8 +49,8 @@ func (c *Client) PutAccessPointPolicy(ctx context.Context, params *PutAccessPoin type PutAccessPointPolicyInput struct { - // The account ID for owner of the bucket associated with the specified access - // point. + // The Amazon Web Services account ID for owner of the bucket associated with the + // specified access point. // // This member is required. AccountId *string diff --git a/service/s3control/api_op_PutBucketLifecycleConfiguration.go b/service/s3control/api_op_PutBucketLifecycleConfiguration.go index 7acc61e5a2b..b0ce81408af 100644 --- a/service/s3control/api_op_PutBucketLifecycleConfiguration.go +++ b/service/s3control/api_op_PutBucketLifecycleConfiguration.go @@ -55,7 +55,7 @@ func (c *Client) PutBucketLifecycleConfiguration(ctx context.Context, params *Pu type PutBucketLifecycleConfigurationInput struct { - // The account ID of the Outposts bucket. + // The Amazon Web Services account ID of the Outposts bucket. // // This member is required. AccountId *string diff --git a/service/s3control/api_op_PutBucketPolicy.go b/service/s3control/api_op_PutBucketPolicy.go index 821a18bcd36..1f51a296a8e 100644 --- a/service/s3control/api_op_PutBucketPolicy.go +++ b/service/s3control/api_op_PutBucketPolicy.go @@ -21,16 +21,17 @@ import ( // bucket. For more information, see Using Amazon S3 on Outposts // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the // Amazon S3 User Guide. If you are using an identity other than the root user of -// the account that owns the Outposts bucket, the calling identity must have the -// PutBucketPolicy permissions on the specified Outposts bucket and belong to the -// bucket owner's account in order to use this action. If you don't have -// PutBucketPolicy permissions, Amazon S3 returns a 403 Access Denied error. If you -// have the correct permissions, but you're not using an identity that belongs to -// the bucket owner's account, Amazon S3 returns a 405 Method Not Allowed error. As -// a security precaution, the root user of the account that owns a bucket can -// always use this action, even if the policy explicitly denies the root user the -// ability to perform this action. For more information about bucket policies, see -// Using Bucket Policies and User Policies +// the Amazon Web Services account that owns the Outposts bucket, the calling +// identity must have the PutBucketPolicy permissions on the specified Outposts +// bucket and belong to the bucket owner's account in order to use this action. If +// you don't have PutBucketPolicy permissions, Amazon S3 returns a 403 Access +// Denied error. If you have the correct permissions, but you're not using an +// identity that belongs to the bucket owner's account, Amazon S3 returns a 405 +// Method Not Allowed error. As a security precaution, the root user of the Amazon +// Web Services account that owns a bucket can always use this action, even if the +// policy explicitly denies the root user the ability to perform this action. For +// more information about bucket policies, see Using Bucket Policies and User +// Policies // (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html). All // Amazon S3 on Outposts REST API requests for this action require an additional // parameter of x-amz-outpost-id to be passed with the request and an S3 on @@ -65,7 +66,7 @@ func (c *Client) PutBucketPolicy(ctx context.Context, params *PutBucketPolicyInp type PutBucketPolicyInput struct { - // The account ID of the Outposts bucket. + // The Amazon Web Services account ID of the Outposts bucket. // // This member is required. AccountId *string diff --git a/service/s3control/api_op_PutBucketTagging.go b/service/s3control/api_op_PutBucketTagging.go index c9bd15d8b1a..80c6a122f52 100644 --- a/service/s3control/api_op_PutBucketTagging.go +++ b/service/s3control/api_op_PutBucketTagging.go @@ -22,13 +22,13 @@ import ( // more information, see Using Amazon S3 on Outposts // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the // Amazon S3 User Guide. Use tags to organize your Amazon Web Services bill to -// reflect your own cost structure. To do this, sign up to get your account bill -// with tag key values included. Then, to see the cost of combined resources, -// organize your billing information according to resources with the same tag key -// values. For example, you can tag several resources with a specific application -// name, and then organize your billing information to see the total cost of that -// application across several services. For more information, see Cost allocation -// and tagging +// reflect your own cost structure. To do this, sign up to get your Amazon Web +// Services account bill with tag key values included. Then, to see the cost of +// combined resources, organize your billing information according to resources +// with the same tag key values. For example, you can tag several resources with a +// specific application name, and then organize your billing information to see the +// total cost of that application across several services. For more information, +// see Cost allocation and tagging // (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html). // Within a bucket, if you add a tag that has the same key as an existing tag, the // new value overwrites the old value. For more information, see Using cost @@ -104,7 +104,7 @@ func (c *Client) PutBucketTagging(ctx context.Context, params *PutBucketTaggingI type PutBucketTaggingInput struct { - // The account ID of the Outposts bucket. + // The Amazon Web Services account ID of the Outposts bucket. // // This member is required. AccountId *string diff --git a/service/s3control/api_op_PutJobTagging.go b/service/s3control/api_op_PutJobTagging.go index f45d6debbdc..085204fa604 100644 --- a/service/s3control/api_op_PutJobTagging.go +++ b/service/s3control/api_op_PutJobTagging.go @@ -90,7 +90,7 @@ func (c *Client) PutJobTagging(ctx context.Context, params *PutJobTaggingInput, type PutJobTaggingInput struct { - // The account ID associated with the S3 Batch Operations job. + // The Amazon Web Services account ID associated with the S3 Batch Operations job. // // This member is required. AccountId *string diff --git a/service/s3control/api_op_PutMultiRegionAccessPointPolicy.go b/service/s3control/api_op_PutMultiRegionAccessPointPolicy.go new file mode 100644 index 00000000000..e3066c2f42d --- /dev/null +++ b/service/s3control/api_op_PutMultiRegionAccessPointPolicy.go @@ -0,0 +1,279 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package s3control + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + s3controlcust "github.com/aws/aws-sdk-go-v2/service/s3control/internal/customizations" + "github.com/aws/aws-sdk-go-v2/service/s3control/types" + smithy "github.com/aws/smithy-go" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "strings" +) + +// Associates an access control policy with the specified Multi-Region Access +// Point. Each Multi-Region Access Point can have only one policy, so a request +// made to this action replaces any existing policy that is associated with the +// specified Multi-Region Access Point. This action will always be routed to the US +// West (Oregon) Region. For more information about the restrictions around +// managing Multi-Region Access Points, see Managing Multi-Region Access Points +// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html) +// in the Amazon S3 User Guide. The following actions are related to +// PutMultiRegionAccessPointPolicy: +// +// * GetMultiRegionAccessPointPolicy +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointPolicy.html) +// +// * +// GetMultiRegionAccessPointPolicyStatus +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointPolicyStatus.html) +func (c *Client) PutMultiRegionAccessPointPolicy(ctx context.Context, params *PutMultiRegionAccessPointPolicyInput, optFns ...func(*Options)) (*PutMultiRegionAccessPointPolicyOutput, error) { + if params == nil { + params = &PutMultiRegionAccessPointPolicyInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "PutMultiRegionAccessPointPolicy", params, optFns, c.addOperationPutMultiRegionAccessPointPolicyMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*PutMultiRegionAccessPointPolicyOutput) + out.ResultMetadata = metadata + return out, nil +} + +type PutMultiRegionAccessPointPolicyInput struct { + + // The Amazon Web Services account ID for the owner of the Multi-Region Access + // Point. + // + // This member is required. + AccountId *string + + // An idempotency token used to identify the request and guarantee that requests + // are unique. + // + // This member is required. + ClientToken *string + + // A container element containing the details of the policy for the Multi-Region + // Access Point. + // + // This member is required. + Details *types.PutMultiRegionAccessPointPolicyInput + + noSmithyDocumentSerde +} + +type PutMultiRegionAccessPointPolicyOutput struct { + + // The request token associated with the request. You can use this token with + // DescribeMultiRegionAccessPointOperation + // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeMultiRegionAccessPointOperation.html) + // to determine the status of asynchronous requests. + RequestTokenARN *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationPutMultiRegionAccessPointPolicyMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestxml_serializeOpPutMultiRegionAccessPointPolicy{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestxml_deserializeOpPutMultiRegionAccessPointPolicy{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addEndpointPrefix_opPutMultiRegionAccessPointPolicyMiddleware(stack); err != nil { + return err + } + if err = addIdempotencyToken_opPutMultiRegionAccessPointPolicyMiddleware(stack, options); err != nil { + return err + } + if err = addOpPutMultiRegionAccessPointPolicyValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opPutMultiRegionAccessPointPolicy(options.Region), middleware.Before); err != nil { + return err + } + if err = addMetadataRetrieverMiddleware(stack); err != nil { + return err + } + if err = addPutMultiRegionAccessPointPolicyUpdateEndpoint(stack, options); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = v4.AddContentSHA256HeaderMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = smithyhttp.AddContentChecksumMiddleware(stack); err != nil { + return err + } + return nil +} + +type endpointPrefix_opPutMultiRegionAccessPointPolicyMiddleware struct { +} + +func (*endpointPrefix_opPutMultiRegionAccessPointPolicyMiddleware) ID() string { + return "EndpointHostPrefix" +} + +func (m *endpointPrefix_opPutMultiRegionAccessPointPolicyMiddleware) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + if smithyhttp.GetHostnameImmutable(ctx) || smithyhttp.IsEndpointHostPrefixDisabled(ctx) { + return next.HandleSerialize(ctx, in) + } + + req, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, fmt.Errorf("unknown transport type %T", in.Request) + } + + input, ok := in.Parameters.(*PutMultiRegionAccessPointPolicyInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input type %T", in.Parameters) + } + + var prefix strings.Builder + if input.AccountId == nil { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("AccountId forms part of the endpoint host and so may not be nil")} + } else if !smithyhttp.ValidHostLabel(*input.AccountId) { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("AccountId forms part of the endpoint host and so must match \"[a-zA-Z0-9-]{1,63}\", but was \"%s\"", *input.AccountId)} + } else { + prefix.WriteString(*input.AccountId) + } + prefix.WriteString(".") + req.URL.Host = prefix.String() + req.URL.Host + + return next.HandleSerialize(ctx, in) +} +func addEndpointPrefix_opPutMultiRegionAccessPointPolicyMiddleware(stack *middleware.Stack) error { + return stack.Serialize.Insert(&endpointPrefix_opPutMultiRegionAccessPointPolicyMiddleware{}, `OperationSerializer`, middleware.After) +} + +type idempotencyToken_initializeOpPutMultiRegionAccessPointPolicy struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpPutMultiRegionAccessPointPolicy) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpPutMultiRegionAccessPointPolicy) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + if m.tokenProvider == nil { + return next.HandleInitialize(ctx, in) + } + + input, ok := in.Parameters.(*PutMultiRegionAccessPointPolicyInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *PutMultiRegionAccessPointPolicyInput ") + } + + if input.ClientToken == nil { + t, err := m.tokenProvider.GetIdempotencyToken() + if err != nil { + return out, metadata, err + } + input.ClientToken = &t + } + return next.HandleInitialize(ctx, in) +} +func addIdempotencyToken_opPutMultiRegionAccessPointPolicyMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpPutMultiRegionAccessPointPolicy{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opPutMultiRegionAccessPointPolicy(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "s3", + OperationName: "PutMultiRegionAccessPointPolicy", + } +} + +func copyPutMultiRegionAccessPointPolicyInputForUpdateEndpoint(params interface{}) (interface{}, error) { + input, ok := params.(*PutMultiRegionAccessPointPolicyInput) + if !ok { + return nil, fmt.Errorf("expect *PutMultiRegionAccessPointPolicyInput type, got %T", params) + } + cpy := *input + return &cpy, nil +} +func backFillPutMultiRegionAccessPointPolicyAccountID(input interface{}, v string) error { + in := input.(*PutMultiRegionAccessPointPolicyInput) + if in.AccountId != nil { + if !strings.EqualFold(*in.AccountId, v) { + return fmt.Errorf("error backfilling account id") + } + return nil + } + in.AccountId = &v + return nil +} +func addPutMultiRegionAccessPointPolicyUpdateEndpoint(stack *middleware.Stack, options Options) error { + return s3controlcust.UpdateEndpoint(stack, s3controlcust.UpdateEndpointOptions{ + Accessor: s3controlcust.UpdateEndpointParameterAccessor{GetARNInput: nopGetARNAccessor, + BackfillAccountID: nopBackfillAccountIDAccessor, + GetOutpostIDInput: nopGetOutpostIDFromInput, + UpdateARNField: nopSetARNAccessor, + CopyInput: copyPutMultiRegionAccessPointPolicyInputForUpdateEndpoint, + }, + EndpointResolver: options.EndpointResolver, + EndpointResolverOptions: options.EndpointOptions, + UseDualstack: options.UseDualstack, + UseARNRegion: options.UseARNRegion, + }) +} diff --git a/service/s3control/api_op_PutPublicAccessBlock.go b/service/s3control/api_op_PutPublicAccessBlock.go index fbe8a22eefb..d99a4b34db0 100644 --- a/service/s3control/api_op_PutPublicAccessBlock.go +++ b/service/s3control/api_op_PutPublicAccessBlock.go @@ -15,8 +15,8 @@ import ( "strings" ) -// Creates or modifies the PublicAccessBlock configuration for an account. For more -// information, see Using Amazon S3 block public access +// Creates or modifies the PublicAccessBlock configuration for an Amazon Web +// Services account. For more information, see Using Amazon S3 block public access // (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html). // Related actions include: // @@ -43,14 +43,14 @@ func (c *Client) PutPublicAccessBlock(ctx context.Context, params *PutPublicAcce type PutPublicAccessBlockInput struct { - // The account ID for the account whose PublicAccessBlock configuration you want to - // set. + // The account ID for the Amazon Web Services account whose PublicAccessBlock + // configuration you want to set. // // This member is required. AccountId *string // The PublicAccessBlock configuration that you want to apply to the specified - // account. + // Amazon Web Services account. // // This member is required. PublicAccessBlockConfiguration *types.PublicAccessBlockConfiguration diff --git a/service/s3control/api_op_UpdateJobPriority.go b/service/s3control/api_op_UpdateJobPriority.go index f249eda7174..a178006e2aa 100644 --- a/service/s3control/api_op_UpdateJobPriority.go +++ b/service/s3control/api_op_UpdateJobPriority.go @@ -50,7 +50,7 @@ func (c *Client) UpdateJobPriority(ctx context.Context, params *UpdateJobPriorit type UpdateJobPriorityInput struct { - // The account ID associated with the S3 Batch Operations job. + // The Amazon Web Services account ID associated with the S3 Batch Operations job. // // This member is required. AccountId *string diff --git a/service/s3control/api_op_UpdateJobStatus.go b/service/s3control/api_op_UpdateJobStatus.go index 0be01b5b5e6..1d5153e3bc9 100644 --- a/service/s3control/api_op_UpdateJobStatus.go +++ b/service/s3control/api_op_UpdateJobStatus.go @@ -52,7 +52,7 @@ func (c *Client) UpdateJobStatus(ctx context.Context, params *UpdateJobStatusInp type UpdateJobStatusInput struct { - // The account ID associated with the S3 Batch Operations job. + // The Amazon Web Services account ID associated with the S3 Batch Operations job. // // This member is required. AccountId *string diff --git a/service/s3control/deserializers.go b/service/s3control/deserializers.go index 71a55a81256..0ff964902c1 100644 --- a/service/s3control/deserializers.go +++ b/service/s3control/deserializers.go @@ -655,6 +655,152 @@ func awsRestxml_deserializeOpDocumentCreateJobOutput(v **CreateJobOutput, decode return nil } +type awsRestxml_deserializeOpCreateMultiRegionAccessPoint struct { +} + +func (*awsRestxml_deserializeOpCreateMultiRegionAccessPoint) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestxml_deserializeOpCreateMultiRegionAccessPoint) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestxml_deserializeOpErrorCreateMultiRegionAccessPoint(response, &metadata) + } + output := &CreateMultiRegionAccessPointOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + err = awsRestxml_deserializeOpDocumentCreateMultiRegionAccessPointOutput(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestxml_deserializeOpErrorCreateMultiRegionAccessPoint(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + errorComponents, err := s3shared.GetErrorResponseComponents(errorBody, s3shared.ErrorResponseDeserializerOptions{ + IsWrappedWithErrorTag: true, + }) + if err != nil { + return err + } + if hostID := errorComponents.HostID; len(hostID) != 0 { + s3shared.SetHostIDMetadata(metadata, hostID) + } + if reqID := errorComponents.RequestID; len(reqID) != 0 { + awsmiddleware.SetRequestIDMetadata(metadata, reqID) + } + if len(errorComponents.Code) != 0 { + errorCode = errorComponents.Code + } + if len(errorComponents.Message) != 0 { + errorMessage = errorComponents.Message + } + errorBody.Seek(0, io.SeekStart) + switch { + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestxml_deserializeOpDocumentCreateMultiRegionAccessPointOutput(v **CreateMultiRegionAccessPointOutput, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *CreateMultiRegionAccessPointOutput + if *v == nil { + sv = &CreateMultiRegionAccessPointOutput{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("RequestTokenARN", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.RequestTokenARN = ptr.String(xtv) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + type awsRestxml_deserializeOpDeleteAccessPoint struct { } @@ -1333,14 +1479,14 @@ func awsRestxml_deserializeOpErrorDeleteJobTagging(response *smithyhttp.Response } } -type awsRestxml_deserializeOpDeletePublicAccessBlock struct { +type awsRestxml_deserializeOpDeleteMultiRegionAccessPoint struct { } -func (*awsRestxml_deserializeOpDeletePublicAccessBlock) ID() string { +func (*awsRestxml_deserializeOpDeleteMultiRegionAccessPoint) ID() string { return "OperationDeserializer" } -func (m *awsRestxml_deserializeOpDeletePublicAccessBlock) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestxml_deserializeOpDeleteMultiRegionAccessPoint) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1354,21 +1500,43 @@ func (m *awsRestxml_deserializeOpDeletePublicAccessBlock) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestxml_deserializeOpErrorDeletePublicAccessBlock(response, &metadata) + return out, metadata, awsRestxml_deserializeOpErrorDeleteMultiRegionAccessPoint(response, &metadata) } - output := &DeletePublicAccessBlockOutput{} + output := &DeleteMultiRegionAccessPointOutput{} out.Result = output - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + err = awsRestxml_deserializeOpDocumentDeleteMultiRegionAccessPointOutput(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), } } return out, metadata, err } -func awsRestxml_deserializeOpErrorDeletePublicAccessBlock(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestxml_deserializeOpErrorDeleteMultiRegionAccessPoint(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1408,14 +1576,63 @@ func awsRestxml_deserializeOpErrorDeletePublicAccessBlock(response *smithyhttp.R } } -type awsRestxml_deserializeOpDeleteStorageLensConfiguration struct { +func awsRestxml_deserializeOpDocumentDeleteMultiRegionAccessPointOutput(v **DeleteMultiRegionAccessPointOutput, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *DeleteMultiRegionAccessPointOutput + if *v == nil { + sv = &DeleteMultiRegionAccessPointOutput{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("RequestTokenARN", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.RequestTokenARN = ptr.String(xtv) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil } -func (*awsRestxml_deserializeOpDeleteStorageLensConfiguration) ID() string { +type awsRestxml_deserializeOpDeletePublicAccessBlock struct { +} + +func (*awsRestxml_deserializeOpDeletePublicAccessBlock) ID() string { return "OperationDeserializer" } -func (m *awsRestxml_deserializeOpDeleteStorageLensConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestxml_deserializeOpDeletePublicAccessBlock) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1429,9 +1646,9 @@ func (m *awsRestxml_deserializeOpDeleteStorageLensConfiguration) HandleDeseriali } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestxml_deserializeOpErrorDeleteStorageLensConfiguration(response, &metadata) + return out, metadata, awsRestxml_deserializeOpErrorDeletePublicAccessBlock(response, &metadata) } - output := &DeleteStorageLensConfigurationOutput{} + output := &DeletePublicAccessBlockOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -1443,7 +1660,7 @@ func (m *awsRestxml_deserializeOpDeleteStorageLensConfiguration) HandleDeseriali return out, metadata, err } -func awsRestxml_deserializeOpErrorDeleteStorageLensConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestxml_deserializeOpErrorDeletePublicAccessBlock(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1483,14 +1700,14 @@ func awsRestxml_deserializeOpErrorDeleteStorageLensConfiguration(response *smith } } -type awsRestxml_deserializeOpDeleteStorageLensConfigurationTagging struct { +type awsRestxml_deserializeOpDeleteStorageLensConfiguration struct { } -func (*awsRestxml_deserializeOpDeleteStorageLensConfigurationTagging) ID() string { +func (*awsRestxml_deserializeOpDeleteStorageLensConfiguration) ID() string { return "OperationDeserializer" } -func (m *awsRestxml_deserializeOpDeleteStorageLensConfigurationTagging) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestxml_deserializeOpDeleteStorageLensConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1504,15 +1721,21 @@ func (m *awsRestxml_deserializeOpDeleteStorageLensConfigurationTagging) HandleDe } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestxml_deserializeOpErrorDeleteStorageLensConfigurationTagging(response, &metadata) + return out, metadata, awsRestxml_deserializeOpErrorDeleteStorageLensConfiguration(response, &metadata) } - output := &DeleteStorageLensConfigurationTaggingOutput{} + output := &DeleteStorageLensConfigurationOutput{} out.Result = output + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), + } + } + return out, metadata, err } -func awsRestxml_deserializeOpErrorDeleteStorageLensConfigurationTagging(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestxml_deserializeOpErrorDeleteStorageLensConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1552,14 +1775,14 @@ func awsRestxml_deserializeOpErrorDeleteStorageLensConfigurationTagging(response } } -type awsRestxml_deserializeOpDescribeJob struct { +type awsRestxml_deserializeOpDeleteStorageLensConfigurationTagging struct { } -func (*awsRestxml_deserializeOpDescribeJob) ID() string { +func (*awsRestxml_deserializeOpDeleteStorageLensConfigurationTagging) ID() string { return "OperationDeserializer" } -func (m *awsRestxml_deserializeOpDescribeJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestxml_deserializeOpDeleteStorageLensConfigurationTagging) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1573,18 +1796,87 @@ func (m *awsRestxml_deserializeOpDescribeJob) HandleDeserialize(ctx context.Cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestxml_deserializeOpErrorDescribeJob(response, &metadata) + return out, metadata, awsRestxml_deserializeOpErrorDeleteStorageLensConfigurationTagging(response, &metadata) } - output := &DescribeJobOutput{} + output := &DeleteStorageLensConfigurationTaggingOutput{} out.Result = output - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(response.Body, ringBuffer) - rootDecoder := xml.NewDecoder(body) - t, err := smithyxml.FetchRootElement(rootDecoder) - if err == io.EOF { - return out, metadata, nil + return out, metadata, err +} + +func awsRestxml_deserializeOpErrorDeleteStorageLensConfigurationTagging(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + errorComponents, err := s3shared.GetErrorResponseComponents(errorBody, s3shared.ErrorResponseDeserializerOptions{ + IsWrappedWithErrorTag: true, + }) + if err != nil { + return err + } + if hostID := errorComponents.HostID; len(hostID) != 0 { + s3shared.SetHostIDMetadata(metadata, hostID) + } + if reqID := errorComponents.RequestID; len(reqID) != 0 { + awsmiddleware.SetRequestIDMetadata(metadata, reqID) + } + if len(errorComponents.Code) != 0 { + errorCode = errorComponents.Code + } + if len(errorComponents.Message) != 0 { + errorMessage = errorComponents.Message + } + errorBody.Seek(0, io.SeekStart) + switch { + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsRestxml_deserializeOpDescribeJob struct { +} + +func (*awsRestxml_deserializeOpDescribeJob) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestxml_deserializeOpDescribeJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestxml_deserializeOpErrorDescribeJob(response, &metadata) + } + output := &DescribeJobOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil } if err != nil { var snapshot bytes.Buffer @@ -1703,6 +1995,145 @@ func awsRestxml_deserializeOpDocumentDescribeJobOutput(v **DescribeJobOutput, de return nil } +type awsRestxml_deserializeOpDescribeMultiRegionAccessPointOperation struct { +} + +func (*awsRestxml_deserializeOpDescribeMultiRegionAccessPointOperation) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestxml_deserializeOpDescribeMultiRegionAccessPointOperation) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestxml_deserializeOpErrorDescribeMultiRegionAccessPointOperation(response, &metadata) + } + output := &DescribeMultiRegionAccessPointOperationOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + err = awsRestxml_deserializeOpDocumentDescribeMultiRegionAccessPointOperationOutput(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestxml_deserializeOpErrorDescribeMultiRegionAccessPointOperation(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + errorComponents, err := s3shared.GetErrorResponseComponents(errorBody, s3shared.ErrorResponseDeserializerOptions{ + IsWrappedWithErrorTag: true, + }) + if err != nil { + return err + } + if hostID := errorComponents.HostID; len(hostID) != 0 { + s3shared.SetHostIDMetadata(metadata, hostID) + } + if reqID := errorComponents.RequestID; len(reqID) != 0 { + awsmiddleware.SetRequestIDMetadata(metadata, reqID) + } + if len(errorComponents.Code) != 0 { + errorCode = errorComponents.Code + } + if len(errorComponents.Message) != 0 { + errorMessage = errorComponents.Message + } + errorBody.Seek(0, io.SeekStart) + switch { + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestxml_deserializeOpDocumentDescribeMultiRegionAccessPointOperationOutput(v **DescribeMultiRegionAccessPointOperationOutput, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *DescribeMultiRegionAccessPointOperationOutput + if *v == nil { + sv = &DescribeMultiRegionAccessPointOperationOutput{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("AsyncOperation", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentAsyncOperation(&sv.AsyncOperation, nodeDecoder); err != nil { + return err + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + type awsRestxml_deserializeOpGetAccessPoint struct { } @@ -3565,14 +3996,14 @@ func awsRestxml_deserializeOpDocumentGetJobTaggingOutput(v **GetJobTaggingOutput return nil } -type awsRestxml_deserializeOpGetPublicAccessBlock struct { +type awsRestxml_deserializeOpGetMultiRegionAccessPoint struct { } -func (*awsRestxml_deserializeOpGetPublicAccessBlock) ID() string { +func (*awsRestxml_deserializeOpGetMultiRegionAccessPoint) ID() string { return "OperationDeserializer" } -func (m *awsRestxml_deserializeOpGetPublicAccessBlock) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestxml_deserializeOpGetMultiRegionAccessPoint) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -3586,9 +4017,9 @@ func (m *awsRestxml_deserializeOpGetPublicAccessBlock) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestxml_deserializeOpErrorGetPublicAccessBlock(response, &metadata) + return out, metadata, awsRestxml_deserializeOpErrorGetMultiRegionAccessPoint(response, &metadata) } - output := &GetPublicAccessBlockOutput{} + output := &GetMultiRegionAccessPointOutput{} out.Result = output var buff [1024]byte @@ -3609,7 +4040,7 @@ func (m *awsRestxml_deserializeOpGetPublicAccessBlock) HandleDeserialize(ctx con } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsRestxml_deserializeDocumentPublicAccessBlockConfiguration(&output.PublicAccessBlockConfiguration, decoder) + err = awsRestxml_deserializeOpDocumentGetMultiRegionAccessPointOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3622,7 +4053,7 @@ func (m *awsRestxml_deserializeOpGetPublicAccessBlock) HandleDeserialize(ctx con return out, metadata, err } -func awsRestxml_deserializeOpErrorGetPublicAccessBlock(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestxml_deserializeOpErrorGetMultiRegionAccessPoint(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -3652,9 +4083,6 @@ func awsRestxml_deserializeOpErrorGetPublicAccessBlock(response *smithyhttp.Resp } errorBody.Seek(0, io.SeekStart) switch { - case strings.EqualFold("NoSuchPublicAccessBlockConfiguration", errorCode): - return awsRestxml_deserializeErrorNoSuchPublicAccessBlockConfiguration(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -3665,13 +4093,13 @@ func awsRestxml_deserializeOpErrorGetPublicAccessBlock(response *smithyhttp.Resp } } -func awsRestxml_deserializeOpDocumentGetPublicAccessBlockOutput(v **GetPublicAccessBlockOutput, decoder smithyxml.NodeDecoder) error { +func awsRestxml_deserializeOpDocumentGetMultiRegionAccessPointOutput(v **GetMultiRegionAccessPointOutput, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } - var sv *GetPublicAccessBlockOutput + var sv *GetMultiRegionAccessPointOutput if *v == nil { - sv = &GetPublicAccessBlockOutput{} + sv = &GetMultiRegionAccessPointOutput{} } else { sv = *v } @@ -3687,9 +4115,9 @@ func awsRestxml_deserializeOpDocumentGetPublicAccessBlockOutput(v **GetPublicAcc originalDecoder := decoder decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { - case strings.EqualFold("PublicAccessBlockConfiguration", t.Name.Local): + case strings.EqualFold("AccessPoint", t.Name.Local): nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - if err := awsRestxml_deserializeDocumentPublicAccessBlockConfiguration(&sv.PublicAccessBlockConfiguration, nodeDecoder); err != nil { + if err := awsRestxml_deserializeDocumentMultiRegionAccessPointReport(&sv.AccessPoint, nodeDecoder); err != nil { return err } @@ -3707,14 +4135,14 @@ func awsRestxml_deserializeOpDocumentGetPublicAccessBlockOutput(v **GetPublicAcc return nil } -type awsRestxml_deserializeOpGetStorageLensConfiguration struct { +type awsRestxml_deserializeOpGetMultiRegionAccessPointPolicy struct { } -func (*awsRestxml_deserializeOpGetStorageLensConfiguration) ID() string { +func (*awsRestxml_deserializeOpGetMultiRegionAccessPointPolicy) ID() string { return "OperationDeserializer" } -func (m *awsRestxml_deserializeOpGetStorageLensConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestxml_deserializeOpGetMultiRegionAccessPointPolicy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -3728,9 +4156,9 @@ func (m *awsRestxml_deserializeOpGetStorageLensConfiguration) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestxml_deserializeOpErrorGetStorageLensConfiguration(response, &metadata) + return out, metadata, awsRestxml_deserializeOpErrorGetMultiRegionAccessPointPolicy(response, &metadata) } - output := &GetStorageLensConfigurationOutput{} + output := &GetMultiRegionAccessPointPolicyOutput{} out.Result = output var buff [1024]byte @@ -3751,7 +4179,7 @@ func (m *awsRestxml_deserializeOpGetStorageLensConfiguration) HandleDeserialize( } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsRestxml_deserializeDocumentStorageLensConfiguration(&output.StorageLensConfiguration, decoder) + err = awsRestxml_deserializeOpDocumentGetMultiRegionAccessPointPolicyOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3764,7 +4192,7 @@ func (m *awsRestxml_deserializeOpGetStorageLensConfiguration) HandleDeserialize( return out, metadata, err } -func awsRestxml_deserializeOpErrorGetStorageLensConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestxml_deserializeOpErrorGetMultiRegionAccessPointPolicy(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -3804,13 +4232,13 @@ func awsRestxml_deserializeOpErrorGetStorageLensConfiguration(response *smithyht } } -func awsRestxml_deserializeOpDocumentGetStorageLensConfigurationOutput(v **GetStorageLensConfigurationOutput, decoder smithyxml.NodeDecoder) error { +func awsRestxml_deserializeOpDocumentGetMultiRegionAccessPointPolicyOutput(v **GetMultiRegionAccessPointPolicyOutput, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } - var sv *GetStorageLensConfigurationOutput + var sv *GetMultiRegionAccessPointPolicyOutput if *v == nil { - sv = &GetStorageLensConfigurationOutput{} + sv = &GetMultiRegionAccessPointPolicyOutput{} } else { sv = *v } @@ -3826,9 +4254,9 @@ func awsRestxml_deserializeOpDocumentGetStorageLensConfigurationOutput(v **GetSt originalDecoder := decoder decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { - case strings.EqualFold("StorageLensConfiguration", t.Name.Local): + case strings.EqualFold("Policy", t.Name.Local): nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - if err := awsRestxml_deserializeDocumentStorageLensConfiguration(&sv.StorageLensConfiguration, nodeDecoder); err != nil { + if err := awsRestxml_deserializeDocumentMultiRegionAccessPointPolicyDocument(&sv.Policy, nodeDecoder); err != nil { return err } @@ -3846,14 +4274,14 @@ func awsRestxml_deserializeOpDocumentGetStorageLensConfigurationOutput(v **GetSt return nil } -type awsRestxml_deserializeOpGetStorageLensConfigurationTagging struct { +type awsRestxml_deserializeOpGetMultiRegionAccessPointPolicyStatus struct { } -func (*awsRestxml_deserializeOpGetStorageLensConfigurationTagging) ID() string { +func (*awsRestxml_deserializeOpGetMultiRegionAccessPointPolicyStatus) ID() string { return "OperationDeserializer" } -func (m *awsRestxml_deserializeOpGetStorageLensConfigurationTagging) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestxml_deserializeOpGetMultiRegionAccessPointPolicyStatus) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -3867,9 +4295,9 @@ func (m *awsRestxml_deserializeOpGetStorageLensConfigurationTagging) HandleDeser } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestxml_deserializeOpErrorGetStorageLensConfigurationTagging(response, &metadata) + return out, metadata, awsRestxml_deserializeOpErrorGetMultiRegionAccessPointPolicyStatus(response, &metadata) } - output := &GetStorageLensConfigurationTaggingOutput{} + output := &GetMultiRegionAccessPointPolicyStatusOutput{} out.Result = output var buff [1024]byte @@ -3890,7 +4318,7 @@ func (m *awsRestxml_deserializeOpGetStorageLensConfigurationTagging) HandleDeser } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsRestxml_deserializeOpDocumentGetStorageLensConfigurationTaggingOutput(&output, decoder) + err = awsRestxml_deserializeOpDocumentGetMultiRegionAccessPointPolicyStatusOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3903,7 +4331,7 @@ func (m *awsRestxml_deserializeOpGetStorageLensConfigurationTagging) HandleDeser return out, metadata, err } -func awsRestxml_deserializeOpErrorGetStorageLensConfigurationTagging(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestxml_deserializeOpErrorGetMultiRegionAccessPointPolicyStatus(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -3943,13 +4371,13 @@ func awsRestxml_deserializeOpErrorGetStorageLensConfigurationTagging(response *s } } -func awsRestxml_deserializeOpDocumentGetStorageLensConfigurationTaggingOutput(v **GetStorageLensConfigurationTaggingOutput, decoder smithyxml.NodeDecoder) error { +func awsRestxml_deserializeOpDocumentGetMultiRegionAccessPointPolicyStatusOutput(v **GetMultiRegionAccessPointPolicyStatusOutput, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } - var sv *GetStorageLensConfigurationTaggingOutput + var sv *GetMultiRegionAccessPointPolicyStatusOutput if *v == nil { - sv = &GetStorageLensConfigurationTaggingOutput{} + sv = &GetMultiRegionAccessPointPolicyStatusOutput{} } else { sv = *v } @@ -3965,9 +4393,9 @@ func awsRestxml_deserializeOpDocumentGetStorageLensConfigurationTaggingOutput(v originalDecoder := decoder decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { - case strings.EqualFold("Tags", t.Name.Local): + case strings.EqualFold("Established", t.Name.Local): nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - if err := awsRestxml_deserializeDocumentStorageLensTags(&sv.Tags, nodeDecoder); err != nil { + if err := awsRestxml_deserializeDocumentPolicyStatus(&sv.Established, nodeDecoder); err != nil { return err } @@ -3985,14 +4413,14 @@ func awsRestxml_deserializeOpDocumentGetStorageLensConfigurationTaggingOutput(v return nil } -type awsRestxml_deserializeOpListAccessPoints struct { +type awsRestxml_deserializeOpGetPublicAccessBlock struct { } -func (*awsRestxml_deserializeOpListAccessPoints) ID() string { +func (*awsRestxml_deserializeOpGetPublicAccessBlock) ID() string { return "OperationDeserializer" } -func (m *awsRestxml_deserializeOpListAccessPoints) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestxml_deserializeOpGetPublicAccessBlock) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -4006,9 +4434,9 @@ func (m *awsRestxml_deserializeOpListAccessPoints) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestxml_deserializeOpErrorListAccessPoints(response, &metadata) + return out, metadata, awsRestxml_deserializeOpErrorGetPublicAccessBlock(response, &metadata) } - output := &ListAccessPointsOutput{} + output := &GetPublicAccessBlockOutput{} out.Result = output var buff [1024]byte @@ -4029,7 +4457,7 @@ func (m *awsRestxml_deserializeOpListAccessPoints) HandleDeserialize(ctx context } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsRestxml_deserializeOpDocumentListAccessPointsOutput(&output, decoder) + err = awsRestxml_deserializeDocumentPublicAccessBlockConfiguration(&output.PublicAccessBlockConfiguration, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -4042,7 +4470,7 @@ func (m *awsRestxml_deserializeOpListAccessPoints) HandleDeserialize(ctx context return out, metadata, err } -func awsRestxml_deserializeOpErrorListAccessPoints(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestxml_deserializeOpErrorGetPublicAccessBlock(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -4072,6 +4500,9 @@ func awsRestxml_deserializeOpErrorListAccessPoints(response *smithyhttp.Response } errorBody.Seek(0, io.SeekStart) switch { + case strings.EqualFold("NoSuchPublicAccessBlockConfiguration", errorCode): + return awsRestxml_deserializeErrorNoSuchPublicAccessBlockConfiguration(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -4082,13 +4513,13 @@ func awsRestxml_deserializeOpErrorListAccessPoints(response *smithyhttp.Response } } -func awsRestxml_deserializeOpDocumentListAccessPointsOutput(v **ListAccessPointsOutput, decoder smithyxml.NodeDecoder) error { +func awsRestxml_deserializeOpDocumentGetPublicAccessBlockOutput(v **GetPublicAccessBlockOutput, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } - var sv *ListAccessPointsOutput + var sv *GetPublicAccessBlockOutput if *v == nil { - sv = &ListAccessPointsOutput{} + sv = &GetPublicAccessBlockOutput{} } else { sv = *v } @@ -4104,24 +4535,11 @@ func awsRestxml_deserializeOpDocumentListAccessPointsOutput(v **ListAccessPoints originalDecoder := decoder decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { - case strings.EqualFold("AccessPointList", t.Name.Local): + case strings.EqualFold("PublicAccessBlockConfiguration", t.Name.Local): nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - if err := awsRestxml_deserializeDocumentAccessPointList(&sv.AccessPointList, nodeDecoder); err != nil { - return err - } - - case strings.EqualFold("NextToken", t.Name.Local): - val, err := decoder.Value() - if err != nil { + if err := awsRestxml_deserializeDocumentPublicAccessBlockConfiguration(&sv.PublicAccessBlockConfiguration, nodeDecoder); err != nil { return err } - if val == nil { - break - } - { - xtv := string(val) - sv.NextToken = ptr.String(xtv) - } default: // Do nothing and ignore the unexpected tag element @@ -4137,14 +4555,14 @@ func awsRestxml_deserializeOpDocumentListAccessPointsOutput(v **ListAccessPoints return nil } -type awsRestxml_deserializeOpListAccessPointsForObjectLambda struct { +type awsRestxml_deserializeOpGetStorageLensConfiguration struct { } -func (*awsRestxml_deserializeOpListAccessPointsForObjectLambda) ID() string { +func (*awsRestxml_deserializeOpGetStorageLensConfiguration) ID() string { return "OperationDeserializer" } -func (m *awsRestxml_deserializeOpListAccessPointsForObjectLambda) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestxml_deserializeOpGetStorageLensConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -4158,9 +4576,9 @@ func (m *awsRestxml_deserializeOpListAccessPointsForObjectLambda) HandleDeserial } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestxml_deserializeOpErrorListAccessPointsForObjectLambda(response, &metadata) + return out, metadata, awsRestxml_deserializeOpErrorGetStorageLensConfiguration(response, &metadata) } - output := &ListAccessPointsForObjectLambdaOutput{} + output := &GetStorageLensConfigurationOutput{} out.Result = output var buff [1024]byte @@ -4181,7 +4599,7 @@ func (m *awsRestxml_deserializeOpListAccessPointsForObjectLambda) HandleDeserial } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsRestxml_deserializeOpDocumentListAccessPointsForObjectLambdaOutput(&output, decoder) + err = awsRestxml_deserializeDocumentStorageLensConfiguration(&output.StorageLensConfiguration, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -4194,7 +4612,7 @@ func (m *awsRestxml_deserializeOpListAccessPointsForObjectLambda) HandleDeserial return out, metadata, err } -func awsRestxml_deserializeOpErrorListAccessPointsForObjectLambda(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestxml_deserializeOpErrorGetStorageLensConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -4234,13 +4652,13 @@ func awsRestxml_deserializeOpErrorListAccessPointsForObjectLambda(response *smit } } -func awsRestxml_deserializeOpDocumentListAccessPointsForObjectLambdaOutput(v **ListAccessPointsForObjectLambdaOutput, decoder smithyxml.NodeDecoder) error { +func awsRestxml_deserializeOpDocumentGetStorageLensConfigurationOutput(v **GetStorageLensConfigurationOutput, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } - var sv *ListAccessPointsForObjectLambdaOutput + var sv *GetStorageLensConfigurationOutput if *v == nil { - sv = &ListAccessPointsForObjectLambdaOutput{} + sv = &GetStorageLensConfigurationOutput{} } else { sv = *v } @@ -4256,22 +4674,9 @@ func awsRestxml_deserializeOpDocumentListAccessPointsForObjectLambdaOutput(v **L originalDecoder := decoder decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { - case strings.EqualFold("NextToken", t.Name.Local): - val, err := decoder.Value() - if err != nil { - return err - } - if val == nil { - break - } - { - xtv := string(val) - sv.NextToken = ptr.String(xtv) - } - - case strings.EqualFold("ObjectLambdaAccessPointList", t.Name.Local): + case strings.EqualFold("StorageLensConfiguration", t.Name.Local): nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - if err := awsRestxml_deserializeDocumentObjectLambdaAccessPointList(&sv.ObjectLambdaAccessPointList, nodeDecoder); err != nil { + if err := awsRestxml_deserializeDocumentStorageLensConfiguration(&sv.StorageLensConfiguration, nodeDecoder); err != nil { return err } @@ -4289,14 +4694,14 @@ func awsRestxml_deserializeOpDocumentListAccessPointsForObjectLambdaOutput(v **L return nil } -type awsRestxml_deserializeOpListJobs struct { +type awsRestxml_deserializeOpGetStorageLensConfigurationTagging struct { } -func (*awsRestxml_deserializeOpListJobs) ID() string { +func (*awsRestxml_deserializeOpGetStorageLensConfigurationTagging) ID() string { return "OperationDeserializer" } -func (m *awsRestxml_deserializeOpListJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestxml_deserializeOpGetStorageLensConfigurationTagging) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -4310,9 +4715,9 @@ func (m *awsRestxml_deserializeOpListJobs) HandleDeserialize(ctx context.Context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestxml_deserializeOpErrorListJobs(response, &metadata) + return out, metadata, awsRestxml_deserializeOpErrorGetStorageLensConfigurationTagging(response, &metadata) } - output := &ListJobsOutput{} + output := &GetStorageLensConfigurationTaggingOutput{} out.Result = output var buff [1024]byte @@ -4333,7 +4738,7 @@ func (m *awsRestxml_deserializeOpListJobs) HandleDeserialize(ctx context.Context } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsRestxml_deserializeOpDocumentListJobsOutput(&output, decoder) + err = awsRestxml_deserializeOpDocumentGetStorageLensConfigurationTaggingOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -4346,7 +4751,7 @@ func (m *awsRestxml_deserializeOpListJobs) HandleDeserialize(ctx context.Context return out, metadata, err } -func awsRestxml_deserializeOpErrorListJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestxml_deserializeOpErrorGetStorageLensConfigurationTagging(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -4376,15 +4781,6 @@ func awsRestxml_deserializeOpErrorListJobs(response *smithyhttp.Response, metada } errorBody.Seek(0, io.SeekStart) switch { - case strings.EqualFold("InternalServiceException", errorCode): - return awsRestxml_deserializeErrorInternalServiceException(response, errorBody) - - case strings.EqualFold("InvalidNextTokenException", errorCode): - return awsRestxml_deserializeErrorInvalidNextTokenException(response, errorBody) - - case strings.EqualFold("InvalidRequestException", errorCode): - return awsRestxml_deserializeErrorInvalidRequestException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -4395,13 +4791,13 @@ func awsRestxml_deserializeOpErrorListJobs(response *smithyhttp.Response, metada } } -func awsRestxml_deserializeOpDocumentListJobsOutput(v **ListJobsOutput, decoder smithyxml.NodeDecoder) error { +func awsRestxml_deserializeOpDocumentGetStorageLensConfigurationTaggingOutput(v **GetStorageLensConfigurationTaggingOutput, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } - var sv *ListJobsOutput + var sv *GetStorageLensConfigurationTaggingOutput if *v == nil { - sv = &ListJobsOutput{} + sv = &GetStorageLensConfigurationTaggingOutput{} } else { sv = *v } @@ -4417,24 +4813,11 @@ func awsRestxml_deserializeOpDocumentListJobsOutput(v **ListJobsOutput, decoder originalDecoder := decoder decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { - case strings.EqualFold("Jobs", t.Name.Local): + case strings.EqualFold("Tags", t.Name.Local): nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - if err := awsRestxml_deserializeDocumentJobListDescriptorList(&sv.Jobs, nodeDecoder); err != nil { - return err - } - - case strings.EqualFold("NextToken", t.Name.Local): - val, err := decoder.Value() - if err != nil { + if err := awsRestxml_deserializeDocumentStorageLensTags(&sv.Tags, nodeDecoder); err != nil { return err } - if val == nil { - break - } - { - xtv := string(val) - sv.NextToken = ptr.String(xtv) - } default: // Do nothing and ignore the unexpected tag element @@ -4450,14 +4833,14 @@ func awsRestxml_deserializeOpDocumentListJobsOutput(v **ListJobsOutput, decoder return nil } -type awsRestxml_deserializeOpListRegionalBuckets struct { +type awsRestxml_deserializeOpListAccessPoints struct { } -func (*awsRestxml_deserializeOpListRegionalBuckets) ID() string { +func (*awsRestxml_deserializeOpListAccessPoints) ID() string { return "OperationDeserializer" } -func (m *awsRestxml_deserializeOpListRegionalBuckets) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestxml_deserializeOpListAccessPoints) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -4471,9 +4854,9 @@ func (m *awsRestxml_deserializeOpListRegionalBuckets) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestxml_deserializeOpErrorListRegionalBuckets(response, &metadata) + return out, metadata, awsRestxml_deserializeOpErrorListAccessPoints(response, &metadata) } - output := &ListRegionalBucketsOutput{} + output := &ListAccessPointsOutput{} out.Result = output var buff [1024]byte @@ -4494,7 +4877,7 @@ func (m *awsRestxml_deserializeOpListRegionalBuckets) HandleDeserialize(ctx cont } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsRestxml_deserializeOpDocumentListRegionalBucketsOutput(&output, decoder) + err = awsRestxml_deserializeOpDocumentListAccessPointsOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -4507,7 +4890,7 @@ func (m *awsRestxml_deserializeOpListRegionalBuckets) HandleDeserialize(ctx cont return out, metadata, err } -func awsRestxml_deserializeOpErrorListRegionalBuckets(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestxml_deserializeOpErrorListAccessPoints(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -4547,13 +4930,13 @@ func awsRestxml_deserializeOpErrorListRegionalBuckets(response *smithyhttp.Respo } } -func awsRestxml_deserializeOpDocumentListRegionalBucketsOutput(v **ListRegionalBucketsOutput, decoder smithyxml.NodeDecoder) error { +func awsRestxml_deserializeOpDocumentListAccessPointsOutput(v **ListAccessPointsOutput, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } - var sv *ListRegionalBucketsOutput + var sv *ListAccessPointsOutput if *v == nil { - sv = &ListRegionalBucketsOutput{} + sv = &ListAccessPointsOutput{} } else { sv = *v } @@ -4569,6 +4952,12 @@ func awsRestxml_deserializeOpDocumentListRegionalBucketsOutput(v **ListRegionalB originalDecoder := decoder decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { + case strings.EqualFold("AccessPointList", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentAccessPointList(&sv.AccessPointList, nodeDecoder); err != nil { + return err + } + case strings.EqualFold("NextToken", t.Name.Local): val, err := decoder.Value() if err != nil { @@ -4582,12 +4971,6 @@ func awsRestxml_deserializeOpDocumentListRegionalBucketsOutput(v **ListRegionalB sv.NextToken = ptr.String(xtv) } - case strings.EqualFold("RegionalBucketList", t.Name.Local): - nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - if err := awsRestxml_deserializeDocumentRegionalBucketList(&sv.RegionalBucketList, nodeDecoder); err != nil { - return err - } - default: // Do nothing and ignore the unexpected tag element err = decoder.Decoder.Skip() @@ -4602,14 +4985,14 @@ func awsRestxml_deserializeOpDocumentListRegionalBucketsOutput(v **ListRegionalB return nil } -type awsRestxml_deserializeOpListStorageLensConfigurations struct { +type awsRestxml_deserializeOpListAccessPointsForObjectLambda struct { } -func (*awsRestxml_deserializeOpListStorageLensConfigurations) ID() string { +func (*awsRestxml_deserializeOpListAccessPointsForObjectLambda) ID() string { return "OperationDeserializer" } -func (m *awsRestxml_deserializeOpListStorageLensConfigurations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestxml_deserializeOpListAccessPointsForObjectLambda) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -4623,9 +5006,9 @@ func (m *awsRestxml_deserializeOpListStorageLensConfigurations) HandleDeserializ } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestxml_deserializeOpErrorListStorageLensConfigurations(response, &metadata) + return out, metadata, awsRestxml_deserializeOpErrorListAccessPointsForObjectLambda(response, &metadata) } - output := &ListStorageLensConfigurationsOutput{} + output := &ListAccessPointsForObjectLambdaOutput{} out.Result = output var buff [1024]byte @@ -4646,7 +5029,7 @@ func (m *awsRestxml_deserializeOpListStorageLensConfigurations) HandleDeserializ } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsRestxml_deserializeOpDocumentListStorageLensConfigurationsOutput(&output, decoder) + err = awsRestxml_deserializeOpDocumentListAccessPointsForObjectLambdaOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -4659,7 +5042,7 @@ func (m *awsRestxml_deserializeOpListStorageLensConfigurations) HandleDeserializ return out, metadata, err } -func awsRestxml_deserializeOpErrorListStorageLensConfigurations(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestxml_deserializeOpErrorListAccessPointsForObjectLambda(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -4699,13 +5082,13 @@ func awsRestxml_deserializeOpErrorListStorageLensConfigurations(response *smithy } } -func awsRestxml_deserializeOpDocumentListStorageLensConfigurationsOutput(v **ListStorageLensConfigurationsOutput, decoder smithyxml.NodeDecoder) error { +func awsRestxml_deserializeOpDocumentListAccessPointsForObjectLambdaOutput(v **ListAccessPointsForObjectLambdaOutput, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } - var sv *ListStorageLensConfigurationsOutput + var sv *ListAccessPointsForObjectLambdaOutput if *v == nil { - sv = &ListStorageLensConfigurationsOutput{} + sv = &ListAccessPointsForObjectLambdaOutput{} } else { sv = *v } @@ -4734,9 +5117,9 @@ func awsRestxml_deserializeOpDocumentListStorageLensConfigurationsOutput(v **Lis sv.NextToken = ptr.String(xtv) } - case strings.EqualFold("StorageLensConfigurationList", t.Name.Local): + case strings.EqualFold("ObjectLambdaAccessPointList", t.Name.Local): nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - if err := awsRestxml_deserializeDocumentStorageLensConfigurationListUnwrapped(&sv.StorageLensConfigurationList, nodeDecoder); err != nil { + if err := awsRestxml_deserializeDocumentObjectLambdaAccessPointList(&sv.ObjectLambdaAccessPointList, nodeDecoder); err != nil { return err } @@ -4754,14 +5137,14 @@ func awsRestxml_deserializeOpDocumentListStorageLensConfigurationsOutput(v **Lis return nil } -type awsRestxml_deserializeOpPutAccessPointConfigurationForObjectLambda struct { +type awsRestxml_deserializeOpListJobs struct { } -func (*awsRestxml_deserializeOpPutAccessPointConfigurationForObjectLambda) ID() string { +func (*awsRestxml_deserializeOpListJobs) ID() string { return "OperationDeserializer" } -func (m *awsRestxml_deserializeOpPutAccessPointConfigurationForObjectLambda) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestxml_deserializeOpListJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -4775,21 +5158,43 @@ func (m *awsRestxml_deserializeOpPutAccessPointConfigurationForObjectLambda) Han } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestxml_deserializeOpErrorPutAccessPointConfigurationForObjectLambda(response, &metadata) + return out, metadata, awsRestxml_deserializeOpErrorListJobs(response, &metadata) } - output := &PutAccessPointConfigurationForObjectLambdaOutput{} + output := &ListJobsOutput{} out.Result = output - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + err = awsRestxml_deserializeOpDocumentListJobsOutput(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), } } return out, metadata, err } -func awsRestxml_deserializeOpErrorPutAccessPointConfigurationForObjectLambda(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestxml_deserializeOpErrorListJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -4819,6 +5224,15 @@ func awsRestxml_deserializeOpErrorPutAccessPointConfigurationForObjectLambda(res } errorBody.Seek(0, io.SeekStart) switch { + case strings.EqualFold("InternalServiceException", errorCode): + return awsRestxml_deserializeErrorInternalServiceException(response, errorBody) + + case strings.EqualFold("InvalidNextTokenException", errorCode): + return awsRestxml_deserializeErrorInvalidNextTokenException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsRestxml_deserializeErrorInvalidRequestException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -4829,89 +5243,69 @@ func awsRestxml_deserializeOpErrorPutAccessPointConfigurationForObjectLambda(res } } -type awsRestxml_deserializeOpPutAccessPointPolicy struct { -} - -func (*awsRestxml_deserializeOpPutAccessPointPolicy) ID() string { - return "OperationDeserializer" -} - -func (m *awsRestxml_deserializeOpPutAccessPointPolicy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( - out middleware.DeserializeOutput, metadata middleware.Metadata, err error, -) { - out, metadata, err = next.HandleDeserialize(ctx, in) - if err != nil { - return out, metadata, err - } - - response, ok := out.RawResponse.(*smithyhttp.Response) - if !ok { - return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} +func awsRestxml_deserializeOpDocumentListJobsOutput(v **ListJobsOutput, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) } - - if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestxml_deserializeOpErrorPutAccessPointPolicy(response, &metadata) + var sv *ListJobsOutput + if *v == nil { + sv = &ListJobsOutput{} + } else { + sv = *v } - output := &PutAccessPointPolicyOutput{} - out.Result = output - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { - return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), + for { + t, done, err := decoder.Token() + if err != nil { + return err } - } - - return out, metadata, err -} + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("Jobs", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentJobListDescriptorList(&sv.Jobs, nodeDecoder); err != nil { + return err + } -func awsRestxml_deserializeOpErrorPutAccessPointPolicy(response *smithyhttp.Response, metadata *middleware.Metadata) error { - var errorBuffer bytes.Buffer - if _, err := io.Copy(&errorBuffer, response.Body); err != nil { - return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} - } - errorBody := bytes.NewReader(errorBuffer.Bytes()) + case strings.EqualFold("NextToken", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.NextToken = ptr.String(xtv) + } - errorCode := "UnknownError" - errorMessage := errorCode + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } - errorComponents, err := s3shared.GetErrorResponseComponents(errorBody, s3shared.ErrorResponseDeserializerOptions{ - IsWrappedWithErrorTag: true, - }) - if err != nil { - return err - } - if hostID := errorComponents.HostID; len(hostID) != 0 { - s3shared.SetHostIDMetadata(metadata, hostID) - } - if reqID := errorComponents.RequestID; len(reqID) != 0 { - awsmiddleware.SetRequestIDMetadata(metadata, reqID) - } - if len(errorComponents.Code) != 0 { - errorCode = errorComponents.Code - } - if len(errorComponents.Message) != 0 { - errorMessage = errorComponents.Message - } - errorBody.Seek(0, io.SeekStart) - switch { - default: - genericError := &smithy.GenericAPIError{ - Code: errorCode, - Message: errorMessage, } - return genericError - + decoder = originalDecoder } + *v = sv + return nil } -type awsRestxml_deserializeOpPutAccessPointPolicyForObjectLambda struct { +type awsRestxml_deserializeOpListMultiRegionAccessPoints struct { } -func (*awsRestxml_deserializeOpPutAccessPointPolicyForObjectLambda) ID() string { +func (*awsRestxml_deserializeOpListMultiRegionAccessPoints) ID() string { return "OperationDeserializer" } -func (m *awsRestxml_deserializeOpPutAccessPointPolicyForObjectLambda) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestxml_deserializeOpListMultiRegionAccessPoints) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -4925,21 +5319,43 @@ func (m *awsRestxml_deserializeOpPutAccessPointPolicyForObjectLambda) HandleDese } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestxml_deserializeOpErrorPutAccessPointPolicyForObjectLambda(response, &metadata) + return out, metadata, awsRestxml_deserializeOpErrorListMultiRegionAccessPoints(response, &metadata) } - output := &PutAccessPointPolicyForObjectLambdaOutput{} + output := &ListMultiRegionAccessPointsOutput{} out.Result = output - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + err = awsRestxml_deserializeOpDocumentListMultiRegionAccessPointsOutput(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), } } return out, metadata, err } -func awsRestxml_deserializeOpErrorPutAccessPointPolicyForObjectLambda(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestxml_deserializeOpErrorListMultiRegionAccessPoints(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -4979,14 +5395,69 @@ func awsRestxml_deserializeOpErrorPutAccessPointPolicyForObjectLambda(response * } } -type awsRestxml_deserializeOpPutBucketLifecycleConfiguration struct { +func awsRestxml_deserializeOpDocumentListMultiRegionAccessPointsOutput(v **ListMultiRegionAccessPointsOutput, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *ListMultiRegionAccessPointsOutput + if *v == nil { + sv = &ListMultiRegionAccessPointsOutput{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("AccessPoints", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentMultiRegionAccessPointReportList(&sv.AccessPoints, nodeDecoder); err != nil { + return err + } + + case strings.EqualFold("NextToken", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.NextToken = ptr.String(xtv) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil } -func (*awsRestxml_deserializeOpPutBucketLifecycleConfiguration) ID() string { +type awsRestxml_deserializeOpListRegionalBuckets struct { +} + +func (*awsRestxml_deserializeOpListRegionalBuckets) ID() string { return "OperationDeserializer" } -func (m *awsRestxml_deserializeOpPutBucketLifecycleConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestxml_deserializeOpListRegionalBuckets) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -5000,21 +5471,43 @@ func (m *awsRestxml_deserializeOpPutBucketLifecycleConfiguration) HandleDeserial } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestxml_deserializeOpErrorPutBucketLifecycleConfiguration(response, &metadata) + return out, metadata, awsRestxml_deserializeOpErrorListRegionalBuckets(response, &metadata) } - output := &PutBucketLifecycleConfigurationOutput{} + output := &ListRegionalBucketsOutput{} out.Result = output - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + err = awsRestxml_deserializeOpDocumentListRegionalBucketsOutput(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), } } return out, metadata, err } -func awsRestxml_deserializeOpErrorPutBucketLifecycleConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestxml_deserializeOpErrorListRegionalBuckets(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -5054,14 +5547,69 @@ func awsRestxml_deserializeOpErrorPutBucketLifecycleConfiguration(response *smit } } -type awsRestxml_deserializeOpPutBucketPolicy struct { +func awsRestxml_deserializeOpDocumentListRegionalBucketsOutput(v **ListRegionalBucketsOutput, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *ListRegionalBucketsOutput + if *v == nil { + sv = &ListRegionalBucketsOutput{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("NextToken", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.NextToken = ptr.String(xtv) + } + + case strings.EqualFold("RegionalBucketList", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentRegionalBucketList(&sv.RegionalBucketList, nodeDecoder); err != nil { + return err + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil } -func (*awsRestxml_deserializeOpPutBucketPolicy) ID() string { +type awsRestxml_deserializeOpListStorageLensConfigurations struct { +} + +func (*awsRestxml_deserializeOpListStorageLensConfigurations) ID() string { return "OperationDeserializer" } -func (m *awsRestxml_deserializeOpPutBucketPolicy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestxml_deserializeOpListStorageLensConfigurations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -5075,21 +5623,43 @@ func (m *awsRestxml_deserializeOpPutBucketPolicy) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestxml_deserializeOpErrorPutBucketPolicy(response, &metadata) + return out, metadata, awsRestxml_deserializeOpErrorListStorageLensConfigurations(response, &metadata) } - output := &PutBucketPolicyOutput{} + output := &ListStorageLensConfigurationsOutput{} out.Result = output - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { - return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), - } - } - + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + err = awsRestxml_deserializeOpDocumentListStorageLensConfigurationsOutput(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + return out, metadata, err } -func awsRestxml_deserializeOpErrorPutBucketPolicy(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestxml_deserializeOpErrorListStorageLensConfigurations(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -5129,14 +5699,69 @@ func awsRestxml_deserializeOpErrorPutBucketPolicy(response *smithyhttp.Response, } } -type awsRestxml_deserializeOpPutBucketTagging struct { +func awsRestxml_deserializeOpDocumentListStorageLensConfigurationsOutput(v **ListStorageLensConfigurationsOutput, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *ListStorageLensConfigurationsOutput + if *v == nil { + sv = &ListStorageLensConfigurationsOutput{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("NextToken", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.NextToken = ptr.String(xtv) + } + + case strings.EqualFold("StorageLensConfigurationList", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentStorageLensConfigurationListUnwrapped(&sv.StorageLensConfigurationList, nodeDecoder); err != nil { + return err + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil } -func (*awsRestxml_deserializeOpPutBucketTagging) ID() string { +type awsRestxml_deserializeOpPutAccessPointConfigurationForObjectLambda struct { +} + +func (*awsRestxml_deserializeOpPutAccessPointConfigurationForObjectLambda) ID() string { return "OperationDeserializer" } -func (m *awsRestxml_deserializeOpPutBucketTagging) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestxml_deserializeOpPutAccessPointConfigurationForObjectLambda) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -5150,9 +5775,9 @@ func (m *awsRestxml_deserializeOpPutBucketTagging) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestxml_deserializeOpErrorPutBucketTagging(response, &metadata) + return out, metadata, awsRestxml_deserializeOpErrorPutAccessPointConfigurationForObjectLambda(response, &metadata) } - output := &PutBucketTaggingOutput{} + output := &PutAccessPointConfigurationForObjectLambdaOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -5164,7 +5789,7 @@ func (m *awsRestxml_deserializeOpPutBucketTagging) HandleDeserialize(ctx context return out, metadata, err } -func awsRestxml_deserializeOpErrorPutBucketTagging(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestxml_deserializeOpErrorPutAccessPointConfigurationForObjectLambda(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -5204,14 +5829,14 @@ func awsRestxml_deserializeOpErrorPutBucketTagging(response *smithyhttp.Response } } -type awsRestxml_deserializeOpPutJobTagging struct { +type awsRestxml_deserializeOpPutAccessPointPolicy struct { } -func (*awsRestxml_deserializeOpPutJobTagging) ID() string { +func (*awsRestxml_deserializeOpPutAccessPointPolicy) ID() string { return "OperationDeserializer" } -func (m *awsRestxml_deserializeOpPutJobTagging) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestxml_deserializeOpPutAccessPointPolicy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -5225,15 +5850,21 @@ func (m *awsRestxml_deserializeOpPutJobTagging) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestxml_deserializeOpErrorPutJobTagging(response, &metadata) + return out, metadata, awsRestxml_deserializeOpErrorPutAccessPointPolicy(response, &metadata) } - output := &PutJobTaggingOutput{} + output := &PutAccessPointPolicyOutput{} out.Result = output + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), + } + } + return out, metadata, err } -func awsRestxml_deserializeOpErrorPutJobTagging(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestxml_deserializeOpErrorPutAccessPointPolicy(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -5263,18 +5894,6 @@ func awsRestxml_deserializeOpErrorPutJobTagging(response *smithyhttp.Response, m } errorBody.Seek(0, io.SeekStart) switch { - case strings.EqualFold("InternalServiceException", errorCode): - return awsRestxml_deserializeErrorInternalServiceException(response, errorBody) - - case strings.EqualFold("NotFoundException", errorCode): - return awsRestxml_deserializeErrorNotFoundException(response, errorBody) - - case strings.EqualFold("TooManyRequestsException", errorCode): - return awsRestxml_deserializeErrorTooManyRequestsException(response, errorBody) - - case strings.EqualFold("TooManyTagsException", errorCode): - return awsRestxml_deserializeErrorTooManyTagsException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -5285,14 +5904,14 @@ func awsRestxml_deserializeOpErrorPutJobTagging(response *smithyhttp.Response, m } } -type awsRestxml_deserializeOpPutPublicAccessBlock struct { +type awsRestxml_deserializeOpPutAccessPointPolicyForObjectLambda struct { } -func (*awsRestxml_deserializeOpPutPublicAccessBlock) ID() string { +func (*awsRestxml_deserializeOpPutAccessPointPolicyForObjectLambda) ID() string { return "OperationDeserializer" } -func (m *awsRestxml_deserializeOpPutPublicAccessBlock) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestxml_deserializeOpPutAccessPointPolicyForObjectLambda) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -5306,9 +5925,9 @@ func (m *awsRestxml_deserializeOpPutPublicAccessBlock) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestxml_deserializeOpErrorPutPublicAccessBlock(response, &metadata) + return out, metadata, awsRestxml_deserializeOpErrorPutAccessPointPolicyForObjectLambda(response, &metadata) } - output := &PutPublicAccessBlockOutput{} + output := &PutAccessPointPolicyForObjectLambdaOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -5320,7 +5939,7 @@ func (m *awsRestxml_deserializeOpPutPublicAccessBlock) HandleDeserialize(ctx con return out, metadata, err } -func awsRestxml_deserializeOpErrorPutPublicAccessBlock(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestxml_deserializeOpErrorPutAccessPointPolicyForObjectLambda(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -5360,14 +5979,14 @@ func awsRestxml_deserializeOpErrorPutPublicAccessBlock(response *smithyhttp.Resp } } -type awsRestxml_deserializeOpPutStorageLensConfiguration struct { +type awsRestxml_deserializeOpPutBucketLifecycleConfiguration struct { } -func (*awsRestxml_deserializeOpPutStorageLensConfiguration) ID() string { +func (*awsRestxml_deserializeOpPutBucketLifecycleConfiguration) ID() string { return "OperationDeserializer" } -func (m *awsRestxml_deserializeOpPutStorageLensConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestxml_deserializeOpPutBucketLifecycleConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -5381,9 +6000,9 @@ func (m *awsRestxml_deserializeOpPutStorageLensConfiguration) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestxml_deserializeOpErrorPutStorageLensConfiguration(response, &metadata) + return out, metadata, awsRestxml_deserializeOpErrorPutBucketLifecycleConfiguration(response, &metadata) } - output := &PutStorageLensConfigurationOutput{} + output := &PutBucketLifecycleConfigurationOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -5395,7 +6014,7 @@ func (m *awsRestxml_deserializeOpPutStorageLensConfiguration) HandleDeserialize( return out, metadata, err } -func awsRestxml_deserializeOpErrorPutStorageLensConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestxml_deserializeOpErrorPutBucketLifecycleConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -5435,14 +6054,14 @@ func awsRestxml_deserializeOpErrorPutStorageLensConfiguration(response *smithyht } } -type awsRestxml_deserializeOpPutStorageLensConfigurationTagging struct { +type awsRestxml_deserializeOpPutBucketPolicy struct { } -func (*awsRestxml_deserializeOpPutStorageLensConfigurationTagging) ID() string { +func (*awsRestxml_deserializeOpPutBucketPolicy) ID() string { return "OperationDeserializer" } -func (m *awsRestxml_deserializeOpPutStorageLensConfigurationTagging) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestxml_deserializeOpPutBucketPolicy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -5456,15 +6075,21 @@ func (m *awsRestxml_deserializeOpPutStorageLensConfigurationTagging) HandleDeser } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestxml_deserializeOpErrorPutStorageLensConfigurationTagging(response, &metadata) + return out, metadata, awsRestxml_deserializeOpErrorPutBucketPolicy(response, &metadata) } - output := &PutStorageLensConfigurationTaggingOutput{} + output := &PutBucketPolicyOutput{} out.Result = output + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), + } + } + return out, metadata, err } -func awsRestxml_deserializeOpErrorPutStorageLensConfigurationTagging(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestxml_deserializeOpErrorPutBucketPolicy(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -5504,14 +6129,14 @@ func awsRestxml_deserializeOpErrorPutStorageLensConfigurationTagging(response *s } } -type awsRestxml_deserializeOpUpdateJobPriority struct { +type awsRestxml_deserializeOpPutBucketTagging struct { } -func (*awsRestxml_deserializeOpUpdateJobPriority) ID() string { +func (*awsRestxml_deserializeOpPutBucketTagging) ID() string { return "OperationDeserializer" } -func (m *awsRestxml_deserializeOpUpdateJobPriority) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestxml_deserializeOpPutBucketTagging) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -5525,43 +6150,21 @@ func (m *awsRestxml_deserializeOpUpdateJobPriority) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestxml_deserializeOpErrorUpdateJobPriority(response, &metadata) + return out, metadata, awsRestxml_deserializeOpErrorPutBucketTagging(response, &metadata) } - output := &UpdateJobPriorityOutput{} + output := &PutBucketTaggingOutput{} out.Result = output - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(response.Body, ringBuffer) - rootDecoder := xml.NewDecoder(body) - t, err := smithyxml.FetchRootElement(rootDecoder) - if err == io.EOF { - return out, metadata, nil - } - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - } - - decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsRestxml_deserializeOpDocumentUpdateJobPriorityOutput(&output, decoder) - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + Err: fmt.Errorf("failed to discard response body, %w", err), } } return out, metadata, err } -func awsRestxml_deserializeOpErrorUpdateJobPriority(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestxml_deserializeOpErrorPutBucketTagging(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -5591,18 +6194,6 @@ func awsRestxml_deserializeOpErrorUpdateJobPriority(response *smithyhttp.Respons } errorBody.Seek(0, io.SeekStart) switch { - case strings.EqualFold("BadRequestException", errorCode): - return awsRestxml_deserializeErrorBadRequestException(response, errorBody) - - case strings.EqualFold("InternalServiceException", errorCode): - return awsRestxml_deserializeErrorInternalServiceException(response, errorBody) - - case strings.EqualFold("NotFoundException", errorCode): - return awsRestxml_deserializeErrorNotFoundException(response, errorBody) - - case strings.EqualFold("TooManyRequestsException", errorCode): - return awsRestxml_deserializeErrorTooManyRequestsException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -5613,80 +6204,95 @@ func awsRestxml_deserializeOpErrorUpdateJobPriority(response *smithyhttp.Respons } } -func awsRestxml_deserializeOpDocumentUpdateJobPriorityOutput(v **UpdateJobPriorityOutput, decoder smithyxml.NodeDecoder) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) +type awsRestxml_deserializeOpPutJobTagging struct { +} + +func (*awsRestxml_deserializeOpPutJobTagging) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestxml_deserializeOpPutJobTagging) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err } - var sv *UpdateJobPriorityOutput - if *v == nil { - sv = &UpdateJobPriorityOutput{} - } else { - sv = *v + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} } - for { - t, done, err := decoder.Token() - if err != nil { - return err - } - if done { - break - } - originalDecoder := decoder - decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) - switch { - case strings.EqualFold("JobId", t.Name.Local): - val, err := decoder.Value() - if err != nil { - return err - } - if val == nil { - break - } - { - xtv := string(val) - sv.JobId = ptr.String(xtv) - } + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestxml_deserializeOpErrorPutJobTagging(response, &metadata) + } + output := &PutJobTaggingOutput{} + out.Result = output - case strings.EqualFold("Priority", t.Name.Local): - val, err := decoder.Value() - if err != nil { - return err - } - if val == nil { - break - } - { - xtv := string(val) - i64, err := strconv.ParseInt(xtv, 10, 64) - if err != nil { - return err - } - sv.Priority = int32(i64) - } + return out, metadata, err +} - default: - // Do nothing and ignore the unexpected tag element - err = decoder.Decoder.Skip() - if err != nil { - return err - } +func awsRestxml_deserializeOpErrorPutJobTagging(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + errorComponents, err := s3shared.GetErrorResponseComponents(errorBody, s3shared.ErrorResponseDeserializerOptions{ + IsWrappedWithErrorTag: true, + }) + if err != nil { + return err + } + if hostID := errorComponents.HostID; len(hostID) != 0 { + s3shared.SetHostIDMetadata(metadata, hostID) + } + if reqID := errorComponents.RequestID; len(reqID) != 0 { + awsmiddleware.SetRequestIDMetadata(metadata, reqID) + } + if len(errorComponents.Code) != 0 { + errorCode = errorComponents.Code + } + if len(errorComponents.Message) != 0 { + errorMessage = errorComponents.Message + } + errorBody.Seek(0, io.SeekStart) + switch { + case strings.EqualFold("InternalServiceException", errorCode): + return awsRestxml_deserializeErrorInternalServiceException(response, errorBody) + + case strings.EqualFold("NotFoundException", errorCode): + return awsRestxml_deserializeErrorNotFoundException(response, errorBody) + + case strings.EqualFold("TooManyRequestsException", errorCode): + return awsRestxml_deserializeErrorTooManyRequestsException(response, errorBody) + + case strings.EqualFold("TooManyTagsException", errorCode): + return awsRestxml_deserializeErrorTooManyTagsException(response, errorBody) + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, } - decoder = originalDecoder + return genericError + } - *v = sv - return nil } -type awsRestxml_deserializeOpUpdateJobStatus struct { +type awsRestxml_deserializeOpPutMultiRegionAccessPointPolicy struct { } -func (*awsRestxml_deserializeOpUpdateJobStatus) ID() string { +func (*awsRestxml_deserializeOpPutMultiRegionAccessPointPolicy) ID() string { return "OperationDeserializer" } -func (m *awsRestxml_deserializeOpUpdateJobStatus) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestxml_deserializeOpPutMultiRegionAccessPointPolicy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -5700,9 +6306,9 @@ func (m *awsRestxml_deserializeOpUpdateJobStatus) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestxml_deserializeOpErrorUpdateJobStatus(response, &metadata) + return out, metadata, awsRestxml_deserializeOpErrorPutMultiRegionAccessPointPolicy(response, &metadata) } - output := &UpdateJobStatusOutput{} + output := &PutMultiRegionAccessPointPolicyOutput{} out.Result = output var buff [1024]byte @@ -5723,7 +6329,7 @@ func (m *awsRestxml_deserializeOpUpdateJobStatus) HandleDeserialize(ctx context. } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsRestxml_deserializeOpDocumentUpdateJobStatusOutput(&output, decoder) + err = awsRestxml_deserializeOpDocumentPutMultiRegionAccessPointPolicyOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -5736,7 +6342,7 @@ func (m *awsRestxml_deserializeOpUpdateJobStatus) HandleDeserialize(ctx context. return out, metadata, err } -func awsRestxml_deserializeOpErrorUpdateJobStatus(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestxml_deserializeOpErrorPutMultiRegionAccessPointPolicy(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -5766,21 +6372,6 @@ func awsRestxml_deserializeOpErrorUpdateJobStatus(response *smithyhttp.Response, } errorBody.Seek(0, io.SeekStart) switch { - case strings.EqualFold("BadRequestException", errorCode): - return awsRestxml_deserializeErrorBadRequestException(response, errorBody) - - case strings.EqualFold("InternalServiceException", errorCode): - return awsRestxml_deserializeErrorInternalServiceException(response, errorBody) - - case strings.EqualFold("JobStatusException", errorCode): - return awsRestxml_deserializeErrorJobStatusException(response, errorBody) - - case strings.EqualFold("NotFoundException", errorCode): - return awsRestxml_deserializeErrorNotFoundException(response, errorBody) - - case strings.EqualFold("TooManyRequestsException", errorCode): - return awsRestxml_deserializeErrorTooManyRequestsException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -5791,13 +6382,13 @@ func awsRestxml_deserializeOpErrorUpdateJobStatus(response *smithyhttp.Response, } } -func awsRestxml_deserializeOpDocumentUpdateJobStatusOutput(v **UpdateJobStatusOutput, decoder smithyxml.NodeDecoder) error { +func awsRestxml_deserializeOpDocumentPutMultiRegionAccessPointPolicyOutput(v **PutMultiRegionAccessPointPolicyOutput, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } - var sv *UpdateJobStatusOutput + var sv *PutMultiRegionAccessPointPolicyOutput if *v == nil { - sv = &UpdateJobStatusOutput{} + sv = &PutMultiRegionAccessPointPolicyOutput{} } else { sv = *v } @@ -5813,33 +6404,7 @@ func awsRestxml_deserializeOpDocumentUpdateJobStatusOutput(v **UpdateJobStatusOu originalDecoder := decoder decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { - case strings.EqualFold("JobId", t.Name.Local): - val, err := decoder.Value() - if err != nil { - return err - } - if val == nil { - break - } - { - xtv := string(val) - sv.JobId = ptr.String(xtv) - } - - case strings.EqualFold("Status", t.Name.Local): - val, err := decoder.Value() - if err != nil { - return err - } - if val == nil { - break - } - { - xtv := string(val) - sv.Status = types.JobStatus(xtv) - } - - case strings.EqualFold("StatusUpdateReason", t.Name.Local): + case strings.EqualFold("RequestTokenARN", t.Name.Local): val, err := decoder.Value() if err != nil { return err @@ -5849,7 +6414,7 @@ func awsRestxml_deserializeOpDocumentUpdateJobStatusOutput(v **UpdateJobStatusOu } { xtv := string(val) - sv.StatusUpdateReason = ptr.String(xtv) + sv.RequestTokenARN = ptr.String(xtv) } default: @@ -5866,95 +6431,764 @@ func awsRestxml_deserializeOpDocumentUpdateJobStatusOutput(v **UpdateJobStatusOu return nil } -func awsRestxml_deserializeErrorBadRequestException(response *smithyhttp.Response, errorBody *bytes.Reader) error { - output := &types.BadRequestException{} - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(errorBody, ringBuffer) - rootDecoder := xml.NewDecoder(body) - t, err := smithyxml.FetchRootElement(rootDecoder) - if err == io.EOF { - return output - } +type awsRestxml_deserializeOpPutPublicAccessBlock struct { +} + +func (*awsRestxml_deserializeOpPutPublicAccessBlock) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestxml_deserializeOpPutPublicAccessBlock) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - return &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } + return out, metadata, err } - decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - t, err = decoder.GetElement("Error") - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - return &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} } - decoder = smithyxml.WrapNodeDecoder(decoder.Decoder, t) - err = awsRestxml_deserializeDocumentBadRequestException(&output, decoder) - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - return &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestxml_deserializeOpErrorPutPublicAccessBlock(response, &metadata) + } + output := &PutPublicAccessBlockOutput{} + out.Result = output + + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), } } - return output + return out, metadata, err } -func awsRestxml_deserializeErrorBucketAlreadyExists(response *smithyhttp.Response, errorBody *bytes.Reader) error { - output := &types.BucketAlreadyExists{} - return output -} +func awsRestxml_deserializeOpErrorPutPublicAccessBlock(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) -func awsRestxml_deserializeErrorBucketAlreadyOwnedByYou(response *smithyhttp.Response, errorBody *bytes.Reader) error { - output := &types.BucketAlreadyOwnedByYou{} - return output -} + errorCode := "UnknownError" + errorMessage := errorCode -func awsRestxml_deserializeErrorIdempotencyException(response *smithyhttp.Response, errorBody *bytes.Reader) error { - output := &types.IdempotencyException{} - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(errorBody, ringBuffer) - rootDecoder := xml.NewDecoder(body) - t, err := smithyxml.FetchRootElement(rootDecoder) - if err == io.EOF { - return output - } + errorComponents, err := s3shared.GetErrorResponseComponents(errorBody, s3shared.ErrorResponseDeserializerOptions{ + IsWrappedWithErrorTag: true, + }) if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - return &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } + return err } - - decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - t, err = decoder.GetElement("Error") - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - return &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } + if hostID := errorComponents.HostID; len(hostID) != 0 { + s3shared.SetHostIDMetadata(metadata, hostID) } - - decoder = smithyxml.WrapNodeDecoder(decoder.Decoder, t) - err = awsRestxml_deserializeDocumentIdempotencyException(&output, decoder) - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) + if reqID := errorComponents.RequestID; len(reqID) != 0 { + awsmiddleware.SetRequestIDMetadata(metadata, reqID) + } + if len(errorComponents.Code) != 0 { + errorCode = errorComponents.Code + } + if len(errorComponents.Message) != 0 { + errorMessage = errorComponents.Message + } + errorBody.Seek(0, io.SeekStart) + switch { + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsRestxml_deserializeOpPutStorageLensConfiguration struct { +} + +func (*awsRestxml_deserializeOpPutStorageLensConfiguration) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestxml_deserializeOpPutStorageLensConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestxml_deserializeOpErrorPutStorageLensConfiguration(response, &metadata) + } + output := &PutStorageLensConfigurationOutput{} + out.Result = output + + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), + } + } + + return out, metadata, err +} + +func awsRestxml_deserializeOpErrorPutStorageLensConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + errorComponents, err := s3shared.GetErrorResponseComponents(errorBody, s3shared.ErrorResponseDeserializerOptions{ + IsWrappedWithErrorTag: true, + }) + if err != nil { + return err + } + if hostID := errorComponents.HostID; len(hostID) != 0 { + s3shared.SetHostIDMetadata(metadata, hostID) + } + if reqID := errorComponents.RequestID; len(reqID) != 0 { + awsmiddleware.SetRequestIDMetadata(metadata, reqID) + } + if len(errorComponents.Code) != 0 { + errorCode = errorComponents.Code + } + if len(errorComponents.Message) != 0 { + errorMessage = errorComponents.Message + } + errorBody.Seek(0, io.SeekStart) + switch { + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsRestxml_deserializeOpPutStorageLensConfigurationTagging struct { +} + +func (*awsRestxml_deserializeOpPutStorageLensConfigurationTagging) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestxml_deserializeOpPutStorageLensConfigurationTagging) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestxml_deserializeOpErrorPutStorageLensConfigurationTagging(response, &metadata) + } + output := &PutStorageLensConfigurationTaggingOutput{} + out.Result = output + + return out, metadata, err +} + +func awsRestxml_deserializeOpErrorPutStorageLensConfigurationTagging(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + errorComponents, err := s3shared.GetErrorResponseComponents(errorBody, s3shared.ErrorResponseDeserializerOptions{ + IsWrappedWithErrorTag: true, + }) + if err != nil { + return err + } + if hostID := errorComponents.HostID; len(hostID) != 0 { + s3shared.SetHostIDMetadata(metadata, hostID) + } + if reqID := errorComponents.RequestID; len(reqID) != 0 { + awsmiddleware.SetRequestIDMetadata(metadata, reqID) + } + if len(errorComponents.Code) != 0 { + errorCode = errorComponents.Code + } + if len(errorComponents.Message) != 0 { + errorMessage = errorComponents.Message + } + errorBody.Seek(0, io.SeekStart) + switch { + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsRestxml_deserializeOpUpdateJobPriority struct { +} + +func (*awsRestxml_deserializeOpUpdateJobPriority) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestxml_deserializeOpUpdateJobPriority) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestxml_deserializeOpErrorUpdateJobPriority(response, &metadata) + } + output := &UpdateJobPriorityOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + err = awsRestxml_deserializeOpDocumentUpdateJobPriorityOutput(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestxml_deserializeOpErrorUpdateJobPriority(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + errorComponents, err := s3shared.GetErrorResponseComponents(errorBody, s3shared.ErrorResponseDeserializerOptions{ + IsWrappedWithErrorTag: true, + }) + if err != nil { + return err + } + if hostID := errorComponents.HostID; len(hostID) != 0 { + s3shared.SetHostIDMetadata(metadata, hostID) + } + if reqID := errorComponents.RequestID; len(reqID) != 0 { + awsmiddleware.SetRequestIDMetadata(metadata, reqID) + } + if len(errorComponents.Code) != 0 { + errorCode = errorComponents.Code + } + if len(errorComponents.Message) != 0 { + errorMessage = errorComponents.Message + } + errorBody.Seek(0, io.SeekStart) + switch { + case strings.EqualFold("BadRequestException", errorCode): + return awsRestxml_deserializeErrorBadRequestException(response, errorBody) + + case strings.EqualFold("InternalServiceException", errorCode): + return awsRestxml_deserializeErrorInternalServiceException(response, errorBody) + + case strings.EqualFold("NotFoundException", errorCode): + return awsRestxml_deserializeErrorNotFoundException(response, errorBody) + + case strings.EqualFold("TooManyRequestsException", errorCode): + return awsRestxml_deserializeErrorTooManyRequestsException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestxml_deserializeOpDocumentUpdateJobPriorityOutput(v **UpdateJobPriorityOutput, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *UpdateJobPriorityOutput + if *v == nil { + sv = &UpdateJobPriorityOutput{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("JobId", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.JobId = ptr.String(xtv) + } + + case strings.EqualFold("Priority", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + i64, err := strconv.ParseInt(xtv, 10, 64) + if err != nil { + return err + } + sv.Priority = int32(i64) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + +type awsRestxml_deserializeOpUpdateJobStatus struct { +} + +func (*awsRestxml_deserializeOpUpdateJobStatus) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestxml_deserializeOpUpdateJobStatus) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestxml_deserializeOpErrorUpdateJobStatus(response, &metadata) + } + output := &UpdateJobStatusOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + err = awsRestxml_deserializeOpDocumentUpdateJobStatusOutput(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestxml_deserializeOpErrorUpdateJobStatus(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + errorComponents, err := s3shared.GetErrorResponseComponents(errorBody, s3shared.ErrorResponseDeserializerOptions{ + IsWrappedWithErrorTag: true, + }) + if err != nil { + return err + } + if hostID := errorComponents.HostID; len(hostID) != 0 { + s3shared.SetHostIDMetadata(metadata, hostID) + } + if reqID := errorComponents.RequestID; len(reqID) != 0 { + awsmiddleware.SetRequestIDMetadata(metadata, reqID) + } + if len(errorComponents.Code) != 0 { + errorCode = errorComponents.Code + } + if len(errorComponents.Message) != 0 { + errorMessage = errorComponents.Message + } + errorBody.Seek(0, io.SeekStart) + switch { + case strings.EqualFold("BadRequestException", errorCode): + return awsRestxml_deserializeErrorBadRequestException(response, errorBody) + + case strings.EqualFold("InternalServiceException", errorCode): + return awsRestxml_deserializeErrorInternalServiceException(response, errorBody) + + case strings.EqualFold("JobStatusException", errorCode): + return awsRestxml_deserializeErrorJobStatusException(response, errorBody) + + case strings.EqualFold("NotFoundException", errorCode): + return awsRestxml_deserializeErrorNotFoundException(response, errorBody) + + case strings.EqualFold("TooManyRequestsException", errorCode): + return awsRestxml_deserializeErrorTooManyRequestsException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestxml_deserializeOpDocumentUpdateJobStatusOutput(v **UpdateJobStatusOutput, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *UpdateJobStatusOutput + if *v == nil { + sv = &UpdateJobStatusOutput{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("JobId", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.JobId = ptr.String(xtv) + } + + case strings.EqualFold("Status", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.Status = types.JobStatus(xtv) + } + + case strings.EqualFold("StatusUpdateReason", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.StatusUpdateReason = ptr.String(xtv) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsRestxml_deserializeErrorBadRequestException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.BadRequestException{} + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(errorBody, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return output + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + t, err = decoder.GetElement("Error") + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder = smithyxml.WrapNodeDecoder(decoder.Decoder, t) + err = awsRestxml_deserializeDocumentBadRequestException(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return output +} + +func awsRestxml_deserializeErrorBucketAlreadyExists(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.BucketAlreadyExists{} + return output +} + +func awsRestxml_deserializeErrorBucketAlreadyOwnedByYou(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.BucketAlreadyOwnedByYou{} + return output +} + +func awsRestxml_deserializeErrorIdempotencyException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.IdempotencyException{} + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(errorBody, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return output + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + t, err = decoder.GetElement("Error") + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder = smithyxml.WrapNodeDecoder(decoder.Decoder, t) + err = awsRestxml_deserializeDocumentIdempotencyException(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return output +} + +func awsRestxml_deserializeErrorInternalServiceException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.InternalServiceException{} + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(errorBody, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return output + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + t, err = decoder.GetElement("Error") + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder = smithyxml.WrapNodeDecoder(decoder.Decoder, t) + err = awsRestxml_deserializeDocumentInternalServiceException(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return output +} + +func awsRestxml_deserializeErrorInvalidNextTokenException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.InvalidNextTokenException{} + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(errorBody, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return output + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + t, err = decoder.GetElement("Error") + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder = smithyxml.WrapNodeDecoder(decoder.Decoder, t) + err = awsRestxml_deserializeDocumentInvalidNextTokenException(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) return &smithy.DeserializationError{ Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), @@ -5964,8 +7198,8 @@ func awsRestxml_deserializeErrorIdempotencyException(response *smithyhttp.Respon return output } -func awsRestxml_deserializeErrorInternalServiceException(response *smithyhttp.Response, errorBody *bytes.Reader) error { - output := &types.InternalServiceException{} +func awsRestxml_deserializeErrorInvalidRequestException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.InvalidRequestException{} var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) body := io.TeeReader(errorBody, ringBuffer) @@ -5995,7 +7229,7 @@ func awsRestxml_deserializeErrorInternalServiceException(response *smithyhttp.Re } decoder = smithyxml.WrapNodeDecoder(decoder.Decoder, t) - err = awsRestxml_deserializeDocumentInternalServiceException(&output, decoder) + err = awsRestxml_deserializeDocumentInvalidRequestException(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -6008,8 +7242,8 @@ func awsRestxml_deserializeErrorInternalServiceException(response *smithyhttp.Re return output } -func awsRestxml_deserializeErrorInvalidNextTokenException(response *smithyhttp.Response, errorBody *bytes.Reader) error { - output := &types.InvalidNextTokenException{} +func awsRestxml_deserializeErrorJobStatusException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.JobStatusException{} var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) body := io.TeeReader(errorBody, ringBuffer) @@ -6039,7 +7273,7 @@ func awsRestxml_deserializeErrorInvalidNextTokenException(response *smithyhttp.R } decoder = smithyxml.WrapNodeDecoder(decoder.Decoder, t) - err = awsRestxml_deserializeDocumentInvalidNextTokenException(&output, decoder) + err = awsRestxml_deserializeDocumentJobStatusException(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -6052,8 +7286,8 @@ func awsRestxml_deserializeErrorInvalidNextTokenException(response *smithyhttp.R return output } -func awsRestxml_deserializeErrorInvalidRequestException(response *smithyhttp.Response, errorBody *bytes.Reader) error { - output := &types.InvalidRequestException{} +func awsRestxml_deserializeErrorNoSuchPublicAccessBlockConfiguration(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.NoSuchPublicAccessBlockConfiguration{} var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) body := io.TeeReader(errorBody, ringBuffer) @@ -6083,7 +7317,7 @@ func awsRestxml_deserializeErrorInvalidRequestException(response *smithyhttp.Res } decoder = smithyxml.WrapNodeDecoder(decoder.Decoder, t) - err = awsRestxml_deserializeDocumentInvalidRequestException(&output, decoder) + err = awsRestxml_deserializeDocumentNoSuchPublicAccessBlockConfiguration(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -6096,8 +7330,8 @@ func awsRestxml_deserializeErrorInvalidRequestException(response *smithyhttp.Res return output } -func awsRestxml_deserializeErrorJobStatusException(response *smithyhttp.Response, errorBody *bytes.Reader) error { - output := &types.JobStatusException{} +func awsRestxml_deserializeErrorNotFoundException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.NotFoundException{} var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) body := io.TeeReader(errorBody, ringBuffer) @@ -6127,7 +7361,7 @@ func awsRestxml_deserializeErrorJobStatusException(response *smithyhttp.Response } decoder = smithyxml.WrapNodeDecoder(decoder.Decoder, t) - err = awsRestxml_deserializeDocumentJobStatusException(&output, decoder) + err = awsRestxml_deserializeDocumentNotFoundException(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -6140,8 +7374,8 @@ func awsRestxml_deserializeErrorJobStatusException(response *smithyhttp.Response return output } -func awsRestxml_deserializeErrorNoSuchPublicAccessBlockConfiguration(response *smithyhttp.Response, errorBody *bytes.Reader) error { - output := &types.NoSuchPublicAccessBlockConfiguration{} +func awsRestxml_deserializeErrorTooManyRequestsException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.TooManyRequestsException{} var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) body := io.TeeReader(errorBody, ringBuffer) @@ -6171,7 +7405,7 @@ func awsRestxml_deserializeErrorNoSuchPublicAccessBlockConfiguration(response *s } decoder = smithyxml.WrapNodeDecoder(decoder.Decoder, t) - err = awsRestxml_deserializeDocumentNoSuchPublicAccessBlockConfiguration(&output, decoder) + err = awsRestxml_deserializeDocumentTooManyRequestsException(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -6184,8 +7418,8 @@ func awsRestxml_deserializeErrorNoSuchPublicAccessBlockConfiguration(response *s return output } -func awsRestxml_deserializeErrorNotFoundException(response *smithyhttp.Response, errorBody *bytes.Reader) error { - output := &types.NotFoundException{} +func awsRestxml_deserializeErrorTooManyTagsException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.TooManyTagsException{} var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) body := io.TeeReader(errorBody, ringBuffer) @@ -6212,117 +7446,305 @@ func awsRestxml_deserializeErrorNotFoundException(response *smithyhttp.Response, Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - } - - decoder = smithyxml.WrapNodeDecoder(decoder.Decoder, t) - err = awsRestxml_deserializeDocumentNotFoundException(&output, decoder) - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - return &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + } + + decoder = smithyxml.WrapNodeDecoder(decoder.Decoder, t) + err = awsRestxml_deserializeDocumentTooManyTagsException(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return output +} + +func awsRestxml_deserializeDocumentAbortIncompleteMultipartUpload(v **types.AbortIncompleteMultipartUpload, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *types.AbortIncompleteMultipartUpload + if *v == nil { + sv = &types.AbortIncompleteMultipartUpload{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("DaysAfterInitiation", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + i64, err := strconv.ParseInt(xtv, 10, 64) + if err != nil { + return err + } + sv.DaysAfterInitiation = int32(i64) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsRestxml_deserializeDocumentAccessPoint(v **types.AccessPoint, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *types.AccessPoint + if *v == nil { + sv = &types.AccessPoint{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("AccessPointArn", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.AccessPointArn = ptr.String(xtv) + } + + case strings.EqualFold("Alias", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.Alias = ptr.String(xtv) + } + + case strings.EqualFold("Bucket", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.Bucket = ptr.String(xtv) + } + + case strings.EqualFold("Name", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.Name = ptr.String(xtv) + } + + case strings.EqualFold("NetworkOrigin", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.NetworkOrigin = types.NetworkOrigin(xtv) + } + + case strings.EqualFold("VpcConfiguration", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentVpcConfiguration(&sv.VpcConfiguration, nodeDecoder); err != nil { + return err + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsRestxml_deserializeDocumentAccessPointList(v *[]types.AccessPoint, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv []types.AccessPoint + if *v == nil { + sv = make([]types.AccessPoint, 0) + } else { + sv = *v + } + + originalDecoder := decoder + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break } - } + switch { + case strings.EqualFold("AccessPoint", t.Name.Local): + var col types.AccessPoint + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + destAddr := &col + if err := awsRestxml_deserializeDocumentAccessPoint(&destAddr, nodeDecoder); err != nil { + return err + } + col = *destAddr + sv = append(sv, col) - return output -} + default: + err = decoder.Decoder.Skip() + if err != nil { + return err + } -func awsRestxml_deserializeErrorTooManyRequestsException(response *smithyhttp.Response, errorBody *bytes.Reader) error { - output := &types.TooManyRequestsException{} - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(errorBody, ringBuffer) - rootDecoder := xml.NewDecoder(body) - t, err := smithyxml.FetchRootElement(rootDecoder) - if err == io.EOF { - return output - } - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - return &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), } + decoder = originalDecoder } + *v = sv + return nil +} - decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - t, err = decoder.GetElement("Error") - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - return &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } +func awsRestxml_deserializeDocumentAccessPointListUnwrapped(v *[]types.AccessPoint, decoder smithyxml.NodeDecoder) error { + var sv []types.AccessPoint + if *v == nil { + sv = make([]types.AccessPoint, 0) + } else { + sv = *v } - decoder = smithyxml.WrapNodeDecoder(decoder.Decoder, t) - err = awsRestxml_deserializeDocumentTooManyRequestsException(&output, decoder) - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - return &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + switch { + default: + var mv types.AccessPoint + t := decoder.StartEl + _ = t + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + destAddr := &mv + if err := awsRestxml_deserializeDocumentAccessPoint(&destAddr, nodeDecoder); err != nil { + return err } + mv = *destAddr + sv = append(sv, mv) } - - return output + *v = sv + return nil } - -func awsRestxml_deserializeErrorTooManyTagsException(response *smithyhttp.Response, errorBody *bytes.Reader) error { - output := &types.TooManyTagsException{} - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(errorBody, ringBuffer) - rootDecoder := xml.NewDecoder(body) - t, err := smithyxml.FetchRootElement(rootDecoder) - if err == io.EOF { - return output +func awsRestxml_deserializeDocumentAccountLevel(v **types.AccountLevel, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) } - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - return &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } + var sv *types.AccountLevel + if *v == nil { + sv = &types.AccountLevel{} + } else { + sv = *v } - decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - t, err = decoder.GetElement("Error") - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - return &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + for { + t, done, err := decoder.Token() + if err != nil { + return err } - } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("ActivityMetrics", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentActivityMetrics(&sv.ActivityMetrics, nodeDecoder); err != nil { + return err + } + + case strings.EqualFold("BucketLevel", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentBucketLevel(&sv.BucketLevel, nodeDecoder); err != nil { + return err + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } - decoder = smithyxml.WrapNodeDecoder(decoder.Decoder, t) - err = awsRestxml_deserializeDocumentTooManyTagsException(&output, decoder) - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - return &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), } + decoder = originalDecoder } - - return output + *v = sv + return nil } -func awsRestxml_deserializeDocumentAbortIncompleteMultipartUpload(v **types.AbortIncompleteMultipartUpload, decoder smithyxml.NodeDecoder) error { +func awsRestxml_deserializeDocumentActivityMetrics(v **types.ActivityMetrics, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } - var sv *types.AbortIncompleteMultipartUpload + var sv *types.ActivityMetrics if *v == nil { - sv = &types.AbortIncompleteMultipartUpload{} + sv = &types.ActivityMetrics{} } else { sv = *v } @@ -6338,7 +7760,7 @@ func awsRestxml_deserializeDocumentAbortIncompleteMultipartUpload(v **types.Abor originalDecoder := decoder decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { - case strings.EqualFold("DaysAfterInitiation", t.Name.Local): + case strings.EqualFold("IsEnabled", t.Name.Local): val, err := decoder.Value() if err != nil { return err @@ -6347,12 +7769,11 @@ func awsRestxml_deserializeDocumentAbortIncompleteMultipartUpload(v **types.Abor break } { - xtv := string(val) - i64, err := strconv.ParseInt(xtv, 10, 64) + xtv, err := strconv.ParseBool(string(val)) if err != nil { - return err + return fmt.Errorf("expected IsEnabled to be of type *bool, got %T instead", val) } - sv.DaysAfterInitiation = int32(i64) + sv.IsEnabled = xtv } default: @@ -6369,13 +7790,13 @@ func awsRestxml_deserializeDocumentAbortIncompleteMultipartUpload(v **types.Abor return nil } -func awsRestxml_deserializeDocumentAccessPoint(v **types.AccessPoint, decoder smithyxml.NodeDecoder) error { +func awsRestxml_deserializeDocumentAsyncErrorDetails(v **types.AsyncErrorDetails, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } - var sv *types.AccessPoint + var sv *types.AsyncErrorDetails if *v == nil { - sv = &types.AccessPoint{} + sv = &types.AsyncErrorDetails{} } else { sv = *v } @@ -6391,7 +7812,7 @@ func awsRestxml_deserializeDocumentAccessPoint(v **types.AccessPoint, decoder sm originalDecoder := decoder decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { - case strings.EqualFold("AccessPointArn", t.Name.Local): + case strings.EqualFold("Code", t.Name.Local): val, err := decoder.Value() if err != nil { return err @@ -6401,10 +7822,10 @@ func awsRestxml_deserializeDocumentAccessPoint(v **types.AccessPoint, decoder sm } { xtv := string(val) - sv.AccessPointArn = ptr.String(xtv) + sv.Code = ptr.String(xtv) } - case strings.EqualFold("Alias", t.Name.Local): + case strings.EqualFold("Message", t.Name.Local): val, err := decoder.Value() if err != nil { return err @@ -6414,10 +7835,89 @@ func awsRestxml_deserializeDocumentAccessPoint(v **types.AccessPoint, decoder sm } { xtv := string(val) - sv.Alias = ptr.String(xtv) + sv.Message = ptr.String(xtv) + } + + case strings.EqualFold("RequestId", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.RequestId = ptr.String(xtv) + } + + case strings.EqualFold("Resource", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.Resource = ptr.String(xtv) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsRestxml_deserializeDocumentAsyncOperation(v **types.AsyncOperation, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *types.AsyncOperation + if *v == nil { + sv = &types.AsyncOperation{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("CreationTime", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + t, err := smithytime.ParseDateTime(xtv) + if err != nil { + return err + } + sv.CreationTime = ptr.Time(t) } - case strings.EqualFold("Bucket", t.Name.Local): + case strings.EqualFold("Operation", t.Name.Local): val, err := decoder.Value() if err != nil { return err @@ -6427,10 +7927,16 @@ func awsRestxml_deserializeDocumentAccessPoint(v **types.AccessPoint, decoder sm } { xtv := string(val) - sv.Bucket = ptr.String(xtv) + sv.Operation = types.AsyncOperationName(xtv) } - case strings.EqualFold("Name", t.Name.Local): + case strings.EqualFold("RequestParameters", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentAsyncRequestParameters(&sv.RequestParameters, nodeDecoder); err != nil { + return err + } + + case strings.EqualFold("RequestStatus", t.Name.Local): val, err := decoder.Value() if err != nil { return err @@ -6440,10 +7946,10 @@ func awsRestxml_deserializeDocumentAccessPoint(v **types.AccessPoint, decoder sm } { xtv := string(val) - sv.Name = ptr.String(xtv) + sv.RequestStatus = ptr.String(xtv) } - case strings.EqualFold("NetworkOrigin", t.Name.Local): + case strings.EqualFold("RequestTokenARN", t.Name.Local): val, err := decoder.Value() if err != nil { return err @@ -6453,12 +7959,12 @@ func awsRestxml_deserializeDocumentAccessPoint(v **types.AccessPoint, decoder sm } { xtv := string(val) - sv.NetworkOrigin = types.NetworkOrigin(xtv) + sv.RequestTokenARN = ptr.String(xtv) } - case strings.EqualFold("VpcConfiguration", t.Name.Local): + case strings.EqualFold("ResponseDetails", t.Name.Local): nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - if err := awsRestxml_deserializeDocumentVpcConfiguration(&sv.VpcConfiguration, nodeDecoder); err != nil { + if err := awsRestxml_deserializeDocumentAsyncResponseDetails(&sv.ResponseDetails, nodeDecoder); err != nil { return err } @@ -6476,18 +7982,17 @@ func awsRestxml_deserializeDocumentAccessPoint(v **types.AccessPoint, decoder sm return nil } -func awsRestxml_deserializeDocumentAccessPointList(v *[]types.AccessPoint, decoder smithyxml.NodeDecoder) error { +func awsRestxml_deserializeDocumentAsyncRequestParameters(v **types.AsyncRequestParameters, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } - var sv []types.AccessPoint + var sv *types.AsyncRequestParameters if *v == nil { - sv = make([]types.AccessPoint, 0) + sv = &types.AsyncRequestParameters{} } else { sv = *v } - originalDecoder := decoder for { t, done, err := decoder.Token() if err != nil { @@ -6496,85 +8001,24 @@ func awsRestxml_deserializeDocumentAccessPointList(v *[]types.AccessPoint, decod if done { break } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { - case strings.EqualFold("AccessPoint", t.Name.Local): - var col types.AccessPoint + case strings.EqualFold("CreateMultiRegionAccessPointRequest", t.Name.Local): nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - destAddr := &col - if err := awsRestxml_deserializeDocumentAccessPoint(&destAddr, nodeDecoder); err != nil { - return err - } - col = *destAddr - sv = append(sv, col) - - default: - err = decoder.Decoder.Skip() - if err != nil { + if err := awsRestxml_deserializeDocumentCreateMultiRegionAccessPointInput(&sv.CreateMultiRegionAccessPointRequest, nodeDecoder); err != nil { return err } - } - decoder = originalDecoder - } - *v = sv - return nil -} - -func awsRestxml_deserializeDocumentAccessPointListUnwrapped(v *[]types.AccessPoint, decoder smithyxml.NodeDecoder) error { - var sv []types.AccessPoint - if *v == nil { - sv = make([]types.AccessPoint, 0) - } else { - sv = *v - } - - switch { - default: - var mv types.AccessPoint - t := decoder.StartEl - _ = t - nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - destAddr := &mv - if err := awsRestxml_deserializeDocumentAccessPoint(&destAddr, nodeDecoder); err != nil { - return err - } - mv = *destAddr - sv = append(sv, mv) - } - *v = sv - return nil -} -func awsRestxml_deserializeDocumentAccountLevel(v **types.AccountLevel, decoder smithyxml.NodeDecoder) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - var sv *types.AccountLevel - if *v == nil { - sv = &types.AccountLevel{} - } else { - sv = *v - } - - for { - t, done, err := decoder.Token() - if err != nil { - return err - } - if done { - break - } - originalDecoder := decoder - decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) - switch { - case strings.EqualFold("ActivityMetrics", t.Name.Local): + case strings.EqualFold("DeleteMultiRegionAccessPointRequest", t.Name.Local): nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - if err := awsRestxml_deserializeDocumentActivityMetrics(&sv.ActivityMetrics, nodeDecoder); err != nil { + if err := awsRestxml_deserializeDocumentDeleteMultiRegionAccessPointInput(&sv.DeleteMultiRegionAccessPointRequest, nodeDecoder); err != nil { return err } - case strings.EqualFold("BucketLevel", t.Name.Local): + case strings.EqualFold("PutMultiRegionAccessPointPolicyRequest", t.Name.Local): nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - if err := awsRestxml_deserializeDocumentBucketLevel(&sv.BucketLevel, nodeDecoder); err != nil { + if err := awsRestxml_deserializeDocumentPutMultiRegionAccessPointPolicyInput(&sv.PutMultiRegionAccessPointPolicyRequest, nodeDecoder); err != nil { return err } @@ -6592,13 +8036,13 @@ func awsRestxml_deserializeDocumentAccountLevel(v **types.AccountLevel, decoder return nil } -func awsRestxml_deserializeDocumentActivityMetrics(v **types.ActivityMetrics, decoder smithyxml.NodeDecoder) error { +func awsRestxml_deserializeDocumentAsyncResponseDetails(v **types.AsyncResponseDetails, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } - var sv *types.ActivityMetrics + var sv *types.AsyncResponseDetails if *v == nil { - sv = &types.ActivityMetrics{} + sv = &types.AsyncResponseDetails{} } else { sv = *v } @@ -6614,20 +8058,16 @@ func awsRestxml_deserializeDocumentActivityMetrics(v **types.ActivityMetrics, de originalDecoder := decoder decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { - case strings.EqualFold("IsEnabled", t.Name.Local): - val, err := decoder.Value() - if err != nil { + case strings.EqualFold("ErrorDetails", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentAsyncErrorDetails(&sv.ErrorDetails, nodeDecoder); err != nil { return err } - if val == nil { - break - } - { - xtv, err := strconv.ParseBool(string(val)) - if err != nil { - return fmt.Errorf("expected IsEnabled to be of type *bool, got %T instead", val) - } - sv.IsEnabled = xtv + + case strings.EqualFold("MultiRegionAccessPointDetails", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentMultiRegionAccessPointsAsyncResponse(&sv.MultiRegionAccessPointDetails, nodeDecoder); err != nil { + return err } default: @@ -6955,6 +8395,116 @@ func awsRestxml_deserializeDocumentBucketsUnwrapped(v *[]string, decoder smithyx *v = sv return nil } +func awsRestxml_deserializeDocumentCreateMultiRegionAccessPointInput(v **types.CreateMultiRegionAccessPointInput, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *types.CreateMultiRegionAccessPointInput + if *v == nil { + sv = &types.CreateMultiRegionAccessPointInput{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("Name", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.Name = ptr.String(xtv) + } + + case strings.EqualFold("PublicAccessBlock", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentPublicAccessBlockConfiguration(&sv.PublicAccessBlock, nodeDecoder); err != nil { + return err + } + + case strings.EqualFold("Regions", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentRegionCreationList(&sv.Regions, nodeDecoder); err != nil { + return err + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsRestxml_deserializeDocumentDeleteMultiRegionAccessPointInput(v **types.DeleteMultiRegionAccessPointInput, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *types.DeleteMultiRegionAccessPointInput + if *v == nil { + sv = &types.DeleteMultiRegionAccessPointInput{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("Name", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.Name = ptr.String(xtv) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + func awsRestxml_deserializeDocumentEndpoints(v *map[string]string, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -7053,6 +8603,55 @@ func awsRestxml_deserializeDocumentEndpointsUnwrapped(v *map[string]string, deco *v = sv return nil } +func awsRestxml_deserializeDocumentEstablishedMultiRegionAccessPointPolicy(v **types.EstablishedMultiRegionAccessPointPolicy, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *types.EstablishedMultiRegionAccessPointPolicy + if *v == nil { + sv = &types.EstablishedMultiRegionAccessPointPolicy{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("Policy", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.Policy = ptr.String(xtv) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + func awsRestxml_deserializeDocumentExclude(v **types.Exclude, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -7781,20 +9380,305 @@ func awsRestxml_deserializeDocumentJobListDescriptor(v **types.JobListDescriptor sv.JobId = ptr.String(xtv) } - case strings.EqualFold("Operation", t.Name.Local): - val, err := decoder.Value() - if err != nil { - return err - } - if val == nil { - break - } - { - xtv := string(val) - sv.Operation = types.OperationName(xtv) - } + case strings.EqualFold("Operation", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.Operation = types.OperationName(xtv) + } + + case strings.EqualFold("Priority", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + i64, err := strconv.ParseInt(xtv, 10, 64) + if err != nil { + return err + } + sv.Priority = int32(i64) + } + + case strings.EqualFold("ProgressSummary", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentJobProgressSummary(&sv.ProgressSummary, nodeDecoder); err != nil { + return err + } + + case strings.EqualFold("Status", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.Status = types.JobStatus(xtv) + } + + case strings.EqualFold("TerminationDate", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + t, err := smithytime.ParseDateTime(xtv) + if err != nil { + return err + } + sv.TerminationDate = ptr.Time(t) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsRestxml_deserializeDocumentJobListDescriptorList(v *[]types.JobListDescriptor, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv []types.JobListDescriptor + if *v == nil { + sv = make([]types.JobListDescriptor, 0) + } else { + sv = *v + } + + originalDecoder := decoder + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + switch { + case strings.EqualFold("member", t.Name.Local): + var col types.JobListDescriptor + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + destAddr := &col + if err := awsRestxml_deserializeDocumentJobListDescriptor(&destAddr, nodeDecoder); err != nil { + return err + } + col = *destAddr + sv = append(sv, col) + + default: + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsRestxml_deserializeDocumentJobListDescriptorListUnwrapped(v *[]types.JobListDescriptor, decoder smithyxml.NodeDecoder) error { + var sv []types.JobListDescriptor + if *v == nil { + sv = make([]types.JobListDescriptor, 0) + } else { + sv = *v + } + + switch { + default: + var mv types.JobListDescriptor + t := decoder.StartEl + _ = t + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + destAddr := &mv + if err := awsRestxml_deserializeDocumentJobListDescriptor(&destAddr, nodeDecoder); err != nil { + return err + } + mv = *destAddr + sv = append(sv, mv) + } + *v = sv + return nil +} +func awsRestxml_deserializeDocumentJobManifest(v **types.JobManifest, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *types.JobManifest + if *v == nil { + sv = &types.JobManifest{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("Location", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentJobManifestLocation(&sv.Location, nodeDecoder); err != nil { + return err + } + + case strings.EqualFold("Spec", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentJobManifestSpec(&sv.Spec, nodeDecoder); err != nil { + return err + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsRestxml_deserializeDocumentJobManifestFieldList(v *[]types.JobManifestFieldName, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv []types.JobManifestFieldName + if *v == nil { + sv = make([]types.JobManifestFieldName, 0) + } else { + sv = *v + } + + originalDecoder := decoder + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + memberDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + decoder = memberDecoder + switch { + case strings.EqualFold("member", t.Name.Local): + var col types.JobManifestFieldName + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + col = types.JobManifestFieldName(xtv) + } + sv = append(sv, col) + + default: + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsRestxml_deserializeDocumentJobManifestFieldListUnwrapped(v *[]types.JobManifestFieldName, decoder smithyxml.NodeDecoder) error { + var sv []types.JobManifestFieldName + if *v == nil { + sv = make([]types.JobManifestFieldName, 0) + } else { + sv = *v + } + + switch { + default: + var mv types.JobManifestFieldName + t := decoder.StartEl + _ = t + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + mv = types.JobManifestFieldName(xtv) + } + sv = append(sv, mv) + } + *v = sv + return nil +} +func awsRestxml_deserializeDocumentJobManifestLocation(v **types.JobManifestLocation, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *types.JobManifestLocation + if *v == nil { + sv = &types.JobManifestLocation{} + } else { + sv = *v + } - case strings.EqualFold("Priority", t.Name.Local): + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("ETag", t.Name.Local): val, err := decoder.Value() if err != nil { return err @@ -7804,20 +9688,10 @@ func awsRestxml_deserializeDocumentJobListDescriptor(v **types.JobListDescriptor } { xtv := string(val) - i64, err := strconv.ParseInt(xtv, 10, 64) - if err != nil { - return err - } - sv.Priority = int32(i64) - } - - case strings.EqualFold("ProgressSummary", t.Name.Local): - nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - if err := awsRestxml_deserializeDocumentJobProgressSummary(&sv.ProgressSummary, nodeDecoder); err != nil { - return err + sv.ETag = ptr.String(xtv) } - case strings.EqualFold("Status", t.Name.Local): + case strings.EqualFold("ObjectArn", t.Name.Local): val, err := decoder.Value() if err != nil { return err @@ -7827,10 +9701,10 @@ func awsRestxml_deserializeDocumentJobListDescriptor(v **types.JobListDescriptor } { xtv := string(val) - sv.Status = types.JobStatus(xtv) + sv.ObjectArn = ptr.String(xtv) } - case strings.EqualFold("TerminationDate", t.Name.Local): + case strings.EqualFold("ObjectVersionId", t.Name.Local): val, err := decoder.Value() if err != nil { return err @@ -7840,11 +9714,7 @@ func awsRestxml_deserializeDocumentJobListDescriptor(v **types.JobListDescriptor } { xtv := string(val) - t, err := smithytime.ParseDateTime(xtv) - if err != nil { - return err - } - sv.TerminationDate = ptr.Time(t) + sv.ObjectVersionId = ptr.String(xtv) } default: @@ -7861,18 +9731,17 @@ func awsRestxml_deserializeDocumentJobListDescriptor(v **types.JobListDescriptor return nil } -func awsRestxml_deserializeDocumentJobListDescriptorList(v *[]types.JobListDescriptor, decoder smithyxml.NodeDecoder) error { +func awsRestxml_deserializeDocumentJobManifestSpec(v **types.JobManifestSpec, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } - var sv []types.JobListDescriptor + var sv *types.JobManifestSpec if *v == nil { - sv = make([]types.JobListDescriptor, 0) + sv = &types.JobManifestSpec{} } else { sv = *v } - originalDecoder := decoder for { t, done, err := decoder.Token() if err != nil { @@ -7881,18 +9750,30 @@ func awsRestxml_deserializeDocumentJobListDescriptorList(v *[]types.JobListDescr if done { break } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { - case strings.EqualFold("member", t.Name.Local): - var col types.JobListDescriptor + case strings.EqualFold("Fields", t.Name.Local): nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - destAddr := &col - if err := awsRestxml_deserializeDocumentJobListDescriptor(&destAddr, nodeDecoder); err != nil { + if err := awsRestxml_deserializeDocumentJobManifestFieldList(&sv.Fields, nodeDecoder); err != nil { return err } - col = *destAddr - sv = append(sv, col) + + case strings.EqualFold("Format", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.Format = types.JobManifestFormat(xtv) + } default: + // Do nothing and ignore the unexpected tag element err = decoder.Decoder.Skip() if err != nil { return err @@ -7905,37 +9786,13 @@ func awsRestxml_deserializeDocumentJobListDescriptorList(v *[]types.JobListDescr return nil } -func awsRestxml_deserializeDocumentJobListDescriptorListUnwrapped(v *[]types.JobListDescriptor, decoder smithyxml.NodeDecoder) error { - var sv []types.JobListDescriptor - if *v == nil { - sv = make([]types.JobListDescriptor, 0) - } else { - sv = *v - } - - switch { - default: - var mv types.JobListDescriptor - t := decoder.StartEl - _ = t - nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - destAddr := &mv - if err := awsRestxml_deserializeDocumentJobListDescriptor(&destAddr, nodeDecoder); err != nil { - return err - } - mv = *destAddr - sv = append(sv, mv) - } - *v = sv - return nil -} -func awsRestxml_deserializeDocumentJobManifest(v **types.JobManifest, decoder smithyxml.NodeDecoder) error { +func awsRestxml_deserializeDocumentJobOperation(v **types.JobOperation, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } - var sv *types.JobManifest + var sv *types.JobOperation if *v == nil { - sv = &types.JobManifest{} + sv = &types.JobOperation{} } else { sv = *v } @@ -7951,15 +9808,51 @@ func awsRestxml_deserializeDocumentJobManifest(v **types.JobManifest, decoder sm originalDecoder := decoder decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { - case strings.EqualFold("Location", t.Name.Local): + case strings.EqualFold("LambdaInvoke", t.Name.Local): nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - if err := awsRestxml_deserializeDocumentJobManifestLocation(&sv.Location, nodeDecoder); err != nil { + if err := awsRestxml_deserializeDocumentLambdaInvokeOperation(&sv.LambdaInvoke, nodeDecoder); err != nil { return err } - case strings.EqualFold("Spec", t.Name.Local): + case strings.EqualFold("S3DeleteObjectTagging", t.Name.Local): nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - if err := awsRestxml_deserializeDocumentJobManifestSpec(&sv.Spec, nodeDecoder); err != nil { + if err := awsRestxml_deserializeDocumentS3DeleteObjectTaggingOperation(&sv.S3DeleteObjectTagging, nodeDecoder); err != nil { + return err + } + + case strings.EqualFold("S3InitiateRestoreObject", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentS3InitiateRestoreObjectOperation(&sv.S3InitiateRestoreObject, nodeDecoder); err != nil { + return err + } + + case strings.EqualFold("S3PutObjectAcl", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentS3SetObjectAclOperation(&sv.S3PutObjectAcl, nodeDecoder); err != nil { + return err + } + + case strings.EqualFold("S3PutObjectCopy", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentS3CopyObjectOperation(&sv.S3PutObjectCopy, nodeDecoder); err != nil { + return err + } + + case strings.EqualFold("S3PutObjectLegalHold", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentS3SetObjectLegalHoldOperation(&sv.S3PutObjectLegalHold, nodeDecoder); err != nil { + return err + } + + case strings.EqualFold("S3PutObjectRetention", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentS3SetObjectRetentionOperation(&sv.S3PutObjectRetention, nodeDecoder); err != nil { + return err + } + + case strings.EqualFold("S3PutObjectTagging", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentS3SetObjectTaggingOperation(&sv.S3PutObjectTagging, nodeDecoder); err != nil { return err } @@ -7977,18 +9870,17 @@ func awsRestxml_deserializeDocumentJobManifest(v **types.JobManifest, decoder sm return nil } -func awsRestxml_deserializeDocumentJobManifestFieldList(v *[]types.JobManifestFieldName, decoder smithyxml.NodeDecoder) error { +func awsRestxml_deserializeDocumentJobProgressSummary(v **types.JobProgressSummary, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } - var sv []types.JobManifestFieldName + var sv *types.JobProgressSummary if *v == nil { - sv = make([]types.JobManifestFieldName, 0) + sv = &types.JobProgressSummary{} } else { sv = *v } - originalDecoder := decoder for { t, done, err := decoder.Token() if err != nil { @@ -7997,11 +9889,10 @@ func awsRestxml_deserializeDocumentJobManifestFieldList(v *[]types.JobManifestFi if done { break } - memberDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - decoder = memberDecoder + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { - case strings.EqualFold("member", t.Name.Local): - var col types.JobManifestFieldName + case strings.EqualFold("NumberOfTasksFailed", t.Name.Local): val, err := decoder.Value() if err != nil { return err @@ -8011,59 +9902,68 @@ func awsRestxml_deserializeDocumentJobManifestFieldList(v *[]types.JobManifestFi } { xtv := string(val) - col = types.JobManifestFieldName(xtv) + i64, err := strconv.ParseInt(xtv, 10, 64) + if err != nil { + return err + } + sv.NumberOfTasksFailed = i64 } - sv = append(sv, col) - default: - err = decoder.Decoder.Skip() + case strings.EqualFold("NumberOfTasksSucceeded", t.Name.Local): + val, err := decoder.Value() if err != nil { return err } + if val == nil { + break + } + { + xtv := string(val) + i64, err := strconv.ParseInt(xtv, 10, 64) + if err != nil { + return err + } + sv.NumberOfTasksSucceeded = i64 + } - } - decoder = originalDecoder - } - *v = sv - return nil -} + case strings.EqualFold("TotalNumberOfTasks", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + i64, err := strconv.ParseInt(xtv, 10, 64) + if err != nil { + return err + } + sv.TotalNumberOfTasks = i64 + } -func awsRestxml_deserializeDocumentJobManifestFieldListUnwrapped(v *[]types.JobManifestFieldName, decoder smithyxml.NodeDecoder) error { - var sv []types.JobManifestFieldName - if *v == nil { - sv = make([]types.JobManifestFieldName, 0) - } else { - sv = *v - } + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } - switch { - default: - var mv types.JobManifestFieldName - t := decoder.StartEl - _ = t - val, err := decoder.Value() - if err != nil { - return err - } - if val == nil { - break - } - { - xtv := string(val) - mv = types.JobManifestFieldName(xtv) } - sv = append(sv, mv) + decoder = originalDecoder } *v = sv return nil } -func awsRestxml_deserializeDocumentJobManifestLocation(v **types.JobManifestLocation, decoder smithyxml.NodeDecoder) error { + +func awsRestxml_deserializeDocumentJobReport(v **types.JobReport, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } - var sv *types.JobManifestLocation + var sv *types.JobReport if *v == nil { - sv = &types.JobManifestLocation{} + sv = &types.JobReport{} } else { sv = *v } @@ -8079,7 +9979,7 @@ func awsRestxml_deserializeDocumentJobManifestLocation(v **types.JobManifestLoca originalDecoder := decoder decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { - case strings.EqualFold("ETag", t.Name.Local): + case strings.EqualFold("Bucket", t.Name.Local): val, err := decoder.Value() if err != nil { return err @@ -8089,10 +9989,26 @@ func awsRestxml_deserializeDocumentJobManifestLocation(v **types.JobManifestLoca } { xtv := string(val) - sv.ETag = ptr.String(xtv) + sv.Bucket = ptr.String(xtv) } - case strings.EqualFold("ObjectArn", t.Name.Local): + case strings.EqualFold("Enabled", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv, err := strconv.ParseBool(string(val)) + if err != nil { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", val) + } + sv.Enabled = xtv + } + + case strings.EqualFold("Format", t.Name.Local): val, err := decoder.Value() if err != nil { return err @@ -8102,10 +10018,10 @@ func awsRestxml_deserializeDocumentJobManifestLocation(v **types.JobManifestLoca } { xtv := string(val) - sv.ObjectArn = ptr.String(xtv) + sv.Format = types.JobReportFormat(xtv) } - case strings.EqualFold("ObjectVersionId", t.Name.Local): + case strings.EqualFold("Prefix", t.Name.Local): val, err := decoder.Value() if err != nil { return err @@ -8115,7 +10031,20 @@ func awsRestxml_deserializeDocumentJobManifestLocation(v **types.JobManifestLoca } { xtv := string(val) - sv.ObjectVersionId = ptr.String(xtv) + sv.Prefix = ptr.String(xtv) + } + + case strings.EqualFold("ReportScope", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.ReportScope = types.JobReportScope(xtv) } default: @@ -8132,13 +10061,13 @@ func awsRestxml_deserializeDocumentJobManifestLocation(v **types.JobManifestLoca return nil } -func awsRestxml_deserializeDocumentJobManifestSpec(v **types.JobManifestSpec, decoder smithyxml.NodeDecoder) error { +func awsRestxml_deserializeDocumentJobStatusException(v **types.JobStatusException, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } - var sv *types.JobManifestSpec + var sv *types.JobStatusException if *v == nil { - sv = &types.JobManifestSpec{} + sv = &types.JobStatusException{} } else { sv = *v } @@ -8154,13 +10083,7 @@ func awsRestxml_deserializeDocumentJobManifestSpec(v **types.JobManifestSpec, de originalDecoder := decoder decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { - case strings.EqualFold("Fields", t.Name.Local): - nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - if err := awsRestxml_deserializeDocumentJobManifestFieldList(&sv.Fields, nodeDecoder); err != nil { - return err - } - - case strings.EqualFold("Format", t.Name.Local): + case strings.EqualFold("Message", t.Name.Local): val, err := decoder.Value() if err != nil { return err @@ -8170,7 +10093,7 @@ func awsRestxml_deserializeDocumentJobManifestSpec(v **types.JobManifestSpec, de } { xtv := string(val) - sv.Format = types.JobManifestFormat(xtv) + sv.Message = ptr.String(xtv) } default: @@ -8187,13 +10110,13 @@ func awsRestxml_deserializeDocumentJobManifestSpec(v **types.JobManifestSpec, de return nil } -func awsRestxml_deserializeDocumentJobOperation(v **types.JobOperation, decoder smithyxml.NodeDecoder) error { +func awsRestxml_deserializeDocumentLambdaInvokeOperation(v **types.LambdaInvokeOperation, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } - var sv *types.JobOperation + var sv *types.LambdaInvokeOperation if *v == nil { - sv = &types.JobOperation{} + sv = &types.LambdaInvokeOperation{} } else { sv = *v } @@ -8209,52 +10132,17 @@ func awsRestxml_deserializeDocumentJobOperation(v **types.JobOperation, decoder originalDecoder := decoder decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { - case strings.EqualFold("LambdaInvoke", t.Name.Local): - nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - if err := awsRestxml_deserializeDocumentLambdaInvokeOperation(&sv.LambdaInvoke, nodeDecoder); err != nil { - return err - } - - case strings.EqualFold("S3DeleteObjectTagging", t.Name.Local): - nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - if err := awsRestxml_deserializeDocumentS3DeleteObjectTaggingOperation(&sv.S3DeleteObjectTagging, nodeDecoder); err != nil { - return err - } - - case strings.EqualFold("S3InitiateRestoreObject", t.Name.Local): - nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - if err := awsRestxml_deserializeDocumentS3InitiateRestoreObjectOperation(&sv.S3InitiateRestoreObject, nodeDecoder); err != nil { - return err - } - - case strings.EqualFold("S3PutObjectAcl", t.Name.Local): - nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - if err := awsRestxml_deserializeDocumentS3SetObjectAclOperation(&sv.S3PutObjectAcl, nodeDecoder); err != nil { - return err - } - - case strings.EqualFold("S3PutObjectCopy", t.Name.Local): - nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - if err := awsRestxml_deserializeDocumentS3CopyObjectOperation(&sv.S3PutObjectCopy, nodeDecoder); err != nil { - return err - } - - case strings.EqualFold("S3PutObjectLegalHold", t.Name.Local): - nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - if err := awsRestxml_deserializeDocumentS3SetObjectLegalHoldOperation(&sv.S3PutObjectLegalHold, nodeDecoder); err != nil { + case strings.EqualFold("FunctionArn", t.Name.Local): + val, err := decoder.Value() + if err != nil { return err } - - case strings.EqualFold("S3PutObjectRetention", t.Name.Local): - nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - if err := awsRestxml_deserializeDocumentS3SetObjectRetentionOperation(&sv.S3PutObjectRetention, nodeDecoder); err != nil { - return err + if val == nil { + break } - - case strings.EqualFold("S3PutObjectTagging", t.Name.Local): - nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - if err := awsRestxml_deserializeDocumentS3SetObjectTaggingOperation(&sv.S3PutObjectTagging, nodeDecoder); err != nil { - return err + { + xtv := string(val) + sv.FunctionArn = ptr.String(xtv) } default: @@ -8271,13 +10159,13 @@ func awsRestxml_deserializeDocumentJobOperation(v **types.JobOperation, decoder return nil } -func awsRestxml_deserializeDocumentJobProgressSummary(v **types.JobProgressSummary, decoder smithyxml.NodeDecoder) error { +func awsRestxml_deserializeDocumentLifecycleExpiration(v **types.LifecycleExpiration, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } - var sv *types.JobProgressSummary + var sv *types.LifecycleExpiration if *v == nil { - sv = &types.JobProgressSummary{} + sv = &types.LifecycleExpiration{} } else { sv = *v } @@ -8293,7 +10181,7 @@ func awsRestxml_deserializeDocumentJobProgressSummary(v **types.JobProgressSumma originalDecoder := decoder decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { - case strings.EqualFold("NumberOfTasksFailed", t.Name.Local): + case strings.EqualFold("Date", t.Name.Local): val, err := decoder.Value() if err != nil { return err @@ -8303,14 +10191,14 @@ func awsRestxml_deserializeDocumentJobProgressSummary(v **types.JobProgressSumma } { xtv := string(val) - i64, err := strconv.ParseInt(xtv, 10, 64) + t, err := smithytime.ParseDateTime(xtv) if err != nil { return err } - sv.NumberOfTasksFailed = i64 + sv.Date = ptr.Time(t) } - case strings.EqualFold("NumberOfTasksSucceeded", t.Name.Local): + case strings.EqualFold("Days", t.Name.Local): val, err := decoder.Value() if err != nil { return err @@ -8324,10 +10212,10 @@ func awsRestxml_deserializeDocumentJobProgressSummary(v **types.JobProgressSumma if err != nil { return err } - sv.NumberOfTasksSucceeded = i64 + sv.Days = int32(i64) } - case strings.EqualFold("TotalNumberOfTasks", t.Name.Local): + case strings.EqualFold("ExpiredObjectDeleteMarker", t.Name.Local): val, err := decoder.Value() if err != nil { return err @@ -8336,12 +10224,11 @@ func awsRestxml_deserializeDocumentJobProgressSummary(v **types.JobProgressSumma break } { - xtv := string(val) - i64, err := strconv.ParseInt(xtv, 10, 64) + xtv, err := strconv.ParseBool(string(val)) if err != nil { - return err + return fmt.Errorf("expected ExpiredObjectDeleteMarker to be of type *bool, got %T instead", val) } - sv.TotalNumberOfTasks = i64 + sv.ExpiredObjectDeleteMarker = xtv } default: @@ -8358,13 +10245,13 @@ func awsRestxml_deserializeDocumentJobProgressSummary(v **types.JobProgressSumma return nil } -func awsRestxml_deserializeDocumentJobReport(v **types.JobReport, decoder smithyxml.NodeDecoder) error { +func awsRestxml_deserializeDocumentLifecycleRule(v **types.LifecycleRule, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } - var sv *types.JobReport + var sv *types.LifecycleRule if *v == nil { - sv = &types.JobReport{} + sv = &types.LifecycleRule{} } else { sv = *v } @@ -8380,20 +10267,25 @@ func awsRestxml_deserializeDocumentJobReport(v **types.JobReport, decoder smithy originalDecoder := decoder decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { - case strings.EqualFold("Bucket", t.Name.Local): - val, err := decoder.Value() - if err != nil { + case strings.EqualFold("AbortIncompleteMultipartUpload", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentAbortIncompleteMultipartUpload(&sv.AbortIncompleteMultipartUpload, nodeDecoder); err != nil { return err } - if val == nil { - break + + case strings.EqualFold("Expiration", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentLifecycleExpiration(&sv.Expiration, nodeDecoder); err != nil { + return err } - { - xtv := string(val) - sv.Bucket = ptr.String(xtv) + + case strings.EqualFold("Filter", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentLifecycleRuleFilter(&sv.Filter, nodeDecoder); err != nil { + return err } - case strings.EqualFold("Enabled", t.Name.Local): + case strings.EqualFold("ID", t.Name.Local): val, err := decoder.Value() if err != nil { return err @@ -8402,14 +10294,23 @@ func awsRestxml_deserializeDocumentJobReport(v **types.JobReport, decoder smithy break } { - xtv, err := strconv.ParseBool(string(val)) - if err != nil { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", val) - } - sv.Enabled = xtv + xtv := string(val) + sv.ID = ptr.String(xtv) } - case strings.EqualFold("Format", t.Name.Local): + case strings.EqualFold("NoncurrentVersionExpiration", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentNoncurrentVersionExpiration(&sv.NoncurrentVersionExpiration, nodeDecoder); err != nil { + return err + } + + case strings.EqualFold("NoncurrentVersionTransitions", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentNoncurrentVersionTransitionList(&sv.NoncurrentVersionTransitions, nodeDecoder); err != nil { + return err + } + + case strings.EqualFold("Status", t.Name.Local): val, err := decoder.Value() if err != nil { return err @@ -8419,9 +10320,51 @@ func awsRestxml_deserializeDocumentJobReport(v **types.JobReport, decoder smithy } { xtv := string(val) - sv.Format = types.JobReportFormat(xtv) + sv.Status = types.ExpirationStatus(xtv) + } + + case strings.EqualFold("Transitions", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentTransitionList(&sv.Transitions, nodeDecoder); err != nil { + return err + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err } + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsRestxml_deserializeDocumentLifecycleRuleAndOperator(v **types.LifecycleRuleAndOperator, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *types.LifecycleRuleAndOperator + if *v == nil { + sv = &types.LifecycleRuleAndOperator{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { case strings.EqualFold("Prefix", t.Name.Local): val, err := decoder.Value() if err != nil { @@ -8435,18 +10378,11 @@ func awsRestxml_deserializeDocumentJobReport(v **types.JobReport, decoder smithy sv.Prefix = ptr.String(xtv) } - case strings.EqualFold("ReportScope", t.Name.Local): - val, err := decoder.Value() - if err != nil { + case strings.EqualFold("Tags", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentS3TagSet(&sv.Tags, nodeDecoder); err != nil { return err } - if val == nil { - break - } - { - xtv := string(val) - sv.ReportScope = types.JobReportScope(xtv) - } default: // Do nothing and ignore the unexpected tag element @@ -8462,13 +10398,13 @@ func awsRestxml_deserializeDocumentJobReport(v **types.JobReport, decoder smithy return nil } -func awsRestxml_deserializeDocumentJobStatusException(v **types.JobStatusException, decoder smithyxml.NodeDecoder) error { +func awsRestxml_deserializeDocumentLifecycleRuleFilter(v **types.LifecycleRuleFilter, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } - var sv *types.JobStatusException + var sv *types.LifecycleRuleFilter if *v == nil { - sv = &types.JobStatusException{} + sv = &types.LifecycleRuleFilter{} } else { sv = *v } @@ -8484,7 +10420,13 @@ func awsRestxml_deserializeDocumentJobStatusException(v **types.JobStatusExcepti originalDecoder := decoder decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { - case strings.EqualFold("Message", t.Name.Local): + case strings.EqualFold("And", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentLifecycleRuleAndOperator(&sv.And, nodeDecoder); err != nil { + return err + } + + case strings.EqualFold("Prefix", t.Name.Local): val, err := decoder.Value() if err != nil { return err @@ -8494,7 +10436,13 @@ func awsRestxml_deserializeDocumentJobStatusException(v **types.JobStatusExcepti } { xtv := string(val) - sv.Message = ptr.String(xtv) + sv.Prefix = ptr.String(xtv) + } + + case strings.EqualFold("Tag", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentS3Tag(&sv.Tag, nodeDecoder); err != nil { + return err } default: @@ -8511,17 +10459,18 @@ func awsRestxml_deserializeDocumentJobStatusException(v **types.JobStatusExcepti return nil } -func awsRestxml_deserializeDocumentLambdaInvokeOperation(v **types.LambdaInvokeOperation, decoder smithyxml.NodeDecoder) error { +func awsRestxml_deserializeDocumentLifecycleRules(v *[]types.LifecycleRule, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } - var sv *types.LambdaInvokeOperation + var sv []types.LifecycleRule if *v == nil { - sv = &types.LambdaInvokeOperation{} + sv = make([]types.LifecycleRule, 0) } else { sv = *v } + originalDecoder := decoder for { t, done, err := decoder.Token() if err != nil { @@ -8530,24 +10479,18 @@ func awsRestxml_deserializeDocumentLambdaInvokeOperation(v **types.LambdaInvokeO if done { break } - originalDecoder := decoder - decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { - case strings.EqualFold("FunctionArn", t.Name.Local): - val, err := decoder.Value() - if err != nil { + case strings.EqualFold("Rule", t.Name.Local): + var col types.LifecycleRule + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + destAddr := &col + if err := awsRestxml_deserializeDocumentLifecycleRule(&destAddr, nodeDecoder); err != nil { return err } - if val == nil { - break - } - { - xtv := string(val) - sv.FunctionArn = ptr.String(xtv) - } + col = *destAddr + sv = append(sv, col) default: - // Do nothing and ignore the unexpected tag element err = decoder.Decoder.Skip() if err != nil { return err @@ -8560,13 +10503,37 @@ func awsRestxml_deserializeDocumentLambdaInvokeOperation(v **types.LambdaInvokeO return nil } -func awsRestxml_deserializeDocumentLifecycleExpiration(v **types.LifecycleExpiration, decoder smithyxml.NodeDecoder) error { +func awsRestxml_deserializeDocumentLifecycleRulesUnwrapped(v *[]types.LifecycleRule, decoder smithyxml.NodeDecoder) error { + var sv []types.LifecycleRule + if *v == nil { + sv = make([]types.LifecycleRule, 0) + } else { + sv = *v + } + + switch { + default: + var mv types.LifecycleRule + t := decoder.StartEl + _ = t + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + destAddr := &mv + if err := awsRestxml_deserializeDocumentLifecycleRule(&destAddr, nodeDecoder); err != nil { + return err + } + mv = *destAddr + sv = append(sv, mv) + } + *v = sv + return nil +} +func awsRestxml_deserializeDocumentListStorageLensConfigurationEntry(v **types.ListStorageLensConfigurationEntry, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } - var sv *types.LifecycleExpiration + var sv *types.ListStorageLensConfigurationEntry if *v == nil { - sv = &types.LifecycleExpiration{} + sv = &types.ListStorageLensConfigurationEntry{} } else { sv = *v } @@ -8582,7 +10549,7 @@ func awsRestxml_deserializeDocumentLifecycleExpiration(v **types.LifecycleExpira originalDecoder := decoder decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { - case strings.EqualFold("Date", t.Name.Local): + case strings.EqualFold("HomeRegion", t.Name.Local): val, err := decoder.Value() if err != nil { return err @@ -8592,14 +10559,10 @@ func awsRestxml_deserializeDocumentLifecycleExpiration(v **types.LifecycleExpira } { xtv := string(val) - t, err := smithytime.ParseDateTime(xtv) - if err != nil { - return err - } - sv.Date = ptr.Time(t) + sv.HomeRegion = ptr.String(xtv) } - case strings.EqualFold("Days", t.Name.Local): + case strings.EqualFold("Id", t.Name.Local): val, err := decoder.Value() if err != nil { return err @@ -8609,14 +10572,10 @@ func awsRestxml_deserializeDocumentLifecycleExpiration(v **types.LifecycleExpira } { xtv := string(val) - i64, err := strconv.ParseInt(xtv, 10, 64) - if err != nil { - return err - } - sv.Days = int32(i64) + sv.Id = ptr.String(xtv) } - case strings.EqualFold("ExpiredObjectDeleteMarker", t.Name.Local): + case strings.EqualFold("IsEnabled", t.Name.Local): val, err := decoder.Value() if err != nil { return err @@ -8627,9 +10586,22 @@ func awsRestxml_deserializeDocumentLifecycleExpiration(v **types.LifecycleExpira { xtv, err := strconv.ParseBool(string(val)) if err != nil { - return fmt.Errorf("expected ExpiredObjectDeleteMarker to be of type *bool, got %T instead", val) + return fmt.Errorf("expected IsEnabled to be of type *bool, got %T instead", val) } - sv.ExpiredObjectDeleteMarker = xtv + sv.IsEnabled = xtv + } + + case strings.EqualFold("StorageLensArn", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.StorageLensArn = ptr.String(xtv) } default: @@ -8646,13 +10618,13 @@ func awsRestxml_deserializeDocumentLifecycleExpiration(v **types.LifecycleExpira return nil } -func awsRestxml_deserializeDocumentLifecycleRule(v **types.LifecycleRule, decoder smithyxml.NodeDecoder) error { +func awsRestxml_deserializeDocumentMultiRegionAccessPointPolicyDocument(v **types.MultiRegionAccessPointPolicyDocument, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } - var sv *types.LifecycleRule + var sv *types.MultiRegionAccessPointPolicyDocument if *v == nil { - sv = &types.LifecycleRule{} + sv = &types.MultiRegionAccessPointPolicyDocument{} } else { sv = *v } @@ -8668,25 +10640,55 @@ func awsRestxml_deserializeDocumentLifecycleRule(v **types.LifecycleRule, decode originalDecoder := decoder decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { - case strings.EqualFold("AbortIncompleteMultipartUpload", t.Name.Local): + case strings.EqualFold("Established", t.Name.Local): nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - if err := awsRestxml_deserializeDocumentAbortIncompleteMultipartUpload(&sv.AbortIncompleteMultipartUpload, nodeDecoder); err != nil { + if err := awsRestxml_deserializeDocumentEstablishedMultiRegionAccessPointPolicy(&sv.Established, nodeDecoder); err != nil { return err } - case strings.EqualFold("Expiration", t.Name.Local): + case strings.EqualFold("Proposed", t.Name.Local): nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - if err := awsRestxml_deserializeDocumentLifecycleExpiration(&sv.Expiration, nodeDecoder); err != nil { + if err := awsRestxml_deserializeDocumentProposedMultiRegionAccessPointPolicy(&sv.Proposed, nodeDecoder); err != nil { return err } - case strings.EqualFold("Filter", t.Name.Local): - nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - if err := awsRestxml_deserializeDocumentLifecycleRuleFilter(&sv.Filter, nodeDecoder); err != nil { + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { return err } - case strings.EqualFold("ID", t.Name.Local): + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsRestxml_deserializeDocumentMultiRegionAccessPointRegionalResponse(v **types.MultiRegionAccessPointRegionalResponse, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *types.MultiRegionAccessPointRegionalResponse + if *v == nil { + sv = &types.MultiRegionAccessPointRegionalResponse{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("Name", t.Name.Local): val, err := decoder.Value() if err != nil { return err @@ -8696,22 +10698,10 @@ func awsRestxml_deserializeDocumentLifecycleRule(v **types.LifecycleRule, decode } { xtv := string(val) - sv.ID = ptr.String(xtv) - } - - case strings.EqualFold("NoncurrentVersionExpiration", t.Name.Local): - nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - if err := awsRestxml_deserializeDocumentNoncurrentVersionExpiration(&sv.NoncurrentVersionExpiration, nodeDecoder); err != nil { - return err - } - - case strings.EqualFold("NoncurrentVersionTransitions", t.Name.Local): - nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - if err := awsRestxml_deserializeDocumentNoncurrentVersionTransitionList(&sv.NoncurrentVersionTransitions, nodeDecoder); err != nil { - return err + sv.Name = ptr.String(xtv) } - case strings.EqualFold("Status", t.Name.Local): + case strings.EqualFold("RequestStatus", t.Name.Local): val, err := decoder.Value() if err != nil { return err @@ -8721,13 +10711,7 @@ func awsRestxml_deserializeDocumentLifecycleRule(v **types.LifecycleRule, decode } { xtv := string(val) - sv.Status = types.ExpirationStatus(xtv) - } - - case strings.EqualFold("Transitions", t.Name.Local): - nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - if err := awsRestxml_deserializeDocumentTransitionList(&sv.Transitions, nodeDecoder); err != nil { - return err + sv.RequestStatus = ptr.String(xtv) } default: @@ -8744,17 +10728,18 @@ func awsRestxml_deserializeDocumentLifecycleRule(v **types.LifecycleRule, decode return nil } -func awsRestxml_deserializeDocumentLifecycleRuleAndOperator(v **types.LifecycleRuleAndOperator, decoder smithyxml.NodeDecoder) error { +func awsRestxml_deserializeDocumentMultiRegionAccessPointRegionalResponseList(v *[]types.MultiRegionAccessPointRegionalResponse, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } - var sv *types.LifecycleRuleAndOperator + var sv []types.MultiRegionAccessPointRegionalResponse if *v == nil { - sv = &types.LifecycleRuleAndOperator{} + sv = make([]types.MultiRegionAccessPointRegionalResponse, 0) } else { sv = *v } + originalDecoder := decoder for { t, done, err := decoder.Token() if err != nil { @@ -8763,30 +10748,18 @@ func awsRestxml_deserializeDocumentLifecycleRuleAndOperator(v **types.LifecycleR if done { break } - originalDecoder := decoder - decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { - case strings.EqualFold("Prefix", t.Name.Local): - val, err := decoder.Value() - if err != nil { - return err - } - if val == nil { - break - } - { - xtv := string(val) - sv.Prefix = ptr.String(xtv) - } - - case strings.EqualFold("Tags", t.Name.Local): + case strings.EqualFold("Region", t.Name.Local): + var col types.MultiRegionAccessPointRegionalResponse nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - if err := awsRestxml_deserializeDocumentS3TagSet(&sv.Tags, nodeDecoder); err != nil { + destAddr := &col + if err := awsRestxml_deserializeDocumentMultiRegionAccessPointRegionalResponse(&destAddr, nodeDecoder); err != nil { return err } + col = *destAddr + sv = append(sv, col) default: - // Do nothing and ignore the unexpected tag element err = decoder.Decoder.Skip() if err != nil { return err @@ -8799,13 +10772,37 @@ func awsRestxml_deserializeDocumentLifecycleRuleAndOperator(v **types.LifecycleR return nil } -func awsRestxml_deserializeDocumentLifecycleRuleFilter(v **types.LifecycleRuleFilter, decoder smithyxml.NodeDecoder) error { +func awsRestxml_deserializeDocumentMultiRegionAccessPointRegionalResponseListUnwrapped(v *[]types.MultiRegionAccessPointRegionalResponse, decoder smithyxml.NodeDecoder) error { + var sv []types.MultiRegionAccessPointRegionalResponse + if *v == nil { + sv = make([]types.MultiRegionAccessPointRegionalResponse, 0) + } else { + sv = *v + } + + switch { + default: + var mv types.MultiRegionAccessPointRegionalResponse + t := decoder.StartEl + _ = t + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + destAddr := &mv + if err := awsRestxml_deserializeDocumentMultiRegionAccessPointRegionalResponse(&destAddr, nodeDecoder); err != nil { + return err + } + mv = *destAddr + sv = append(sv, mv) + } + *v = sv + return nil +} +func awsRestxml_deserializeDocumentMultiRegionAccessPointReport(v **types.MultiRegionAccessPointReport, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } - var sv *types.LifecycleRuleFilter + var sv *types.MultiRegionAccessPointReport if *v == nil { - sv = &types.LifecycleRuleFilter{} + sv = &types.MultiRegionAccessPointReport{} } else { sv = *v } @@ -8821,13 +10818,37 @@ func awsRestxml_deserializeDocumentLifecycleRuleFilter(v **types.LifecycleRuleFi originalDecoder := decoder decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { - case strings.EqualFold("And", t.Name.Local): - nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - if err := awsRestxml_deserializeDocumentLifecycleRuleAndOperator(&sv.And, nodeDecoder); err != nil { + case strings.EqualFold("Alias", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.Alias = ptr.String(xtv) + } + + case strings.EqualFold("CreatedAt", t.Name.Local): + val, err := decoder.Value() + if err != nil { return err } + if val == nil { + break + } + { + xtv := string(val) + t, err := smithytime.ParseDateTime(xtv) + if err != nil { + return err + } + sv.CreatedAt = ptr.Time(t) + } - case strings.EqualFold("Prefix", t.Name.Local): + case strings.EqualFold("Name", t.Name.Local): val, err := decoder.Value() if err != nil { return err @@ -8837,15 +10858,34 @@ func awsRestxml_deserializeDocumentLifecycleRuleFilter(v **types.LifecycleRuleFi } { xtv := string(val) - sv.Prefix = ptr.String(xtv) + sv.Name = ptr.String(xtv) } - case strings.EqualFold("Tag", t.Name.Local): + case strings.EqualFold("PublicAccessBlock", t.Name.Local): nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - if err := awsRestxml_deserializeDocumentS3Tag(&sv.Tag, nodeDecoder); err != nil { + if err := awsRestxml_deserializeDocumentPublicAccessBlockConfiguration(&sv.PublicAccessBlock, nodeDecoder); err != nil { + return err + } + + case strings.EqualFold("Regions", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentRegionReportList(&sv.Regions, nodeDecoder); err != nil { return err } + case strings.EqualFold("Status", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.Status = types.MultiRegionAccessPointStatus(xtv) + } + default: // Do nothing and ignore the unexpected tag element err = decoder.Decoder.Skip() @@ -8860,13 +10900,13 @@ func awsRestxml_deserializeDocumentLifecycleRuleFilter(v **types.LifecycleRuleFi return nil } -func awsRestxml_deserializeDocumentLifecycleRules(v *[]types.LifecycleRule, decoder smithyxml.NodeDecoder) error { +func awsRestxml_deserializeDocumentMultiRegionAccessPointReportList(v *[]types.MultiRegionAccessPointReport, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } - var sv []types.LifecycleRule + var sv []types.MultiRegionAccessPointReport if *v == nil { - sv = make([]types.LifecycleRule, 0) + sv = make([]types.MultiRegionAccessPointReport, 0) } else { sv = *v } @@ -8881,11 +10921,11 @@ func awsRestxml_deserializeDocumentLifecycleRules(v *[]types.LifecycleRule, deco break } switch { - case strings.EqualFold("Rule", t.Name.Local): - var col types.LifecycleRule + case strings.EqualFold("AccessPoint", t.Name.Local): + var col types.MultiRegionAccessPointReport nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) destAddr := &col - if err := awsRestxml_deserializeDocumentLifecycleRule(&destAddr, nodeDecoder); err != nil { + if err := awsRestxml_deserializeDocumentMultiRegionAccessPointReport(&destAddr, nodeDecoder); err != nil { return err } col = *destAddr @@ -8904,22 +10944,22 @@ func awsRestxml_deserializeDocumentLifecycleRules(v *[]types.LifecycleRule, deco return nil } -func awsRestxml_deserializeDocumentLifecycleRulesUnwrapped(v *[]types.LifecycleRule, decoder smithyxml.NodeDecoder) error { - var sv []types.LifecycleRule +func awsRestxml_deserializeDocumentMultiRegionAccessPointReportListUnwrapped(v *[]types.MultiRegionAccessPointReport, decoder smithyxml.NodeDecoder) error { + var sv []types.MultiRegionAccessPointReport if *v == nil { - sv = make([]types.LifecycleRule, 0) + sv = make([]types.MultiRegionAccessPointReport, 0) } else { sv = *v } switch { default: - var mv types.LifecycleRule + var mv types.MultiRegionAccessPointReport t := decoder.StartEl _ = t nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) destAddr := &mv - if err := awsRestxml_deserializeDocumentLifecycleRule(&destAddr, nodeDecoder); err != nil { + if err := awsRestxml_deserializeDocumentMultiRegionAccessPointReport(&destAddr, nodeDecoder); err != nil { return err } mv = *destAddr @@ -8928,13 +10968,13 @@ func awsRestxml_deserializeDocumentLifecycleRulesUnwrapped(v *[]types.LifecycleR *v = sv return nil } -func awsRestxml_deserializeDocumentListStorageLensConfigurationEntry(v **types.ListStorageLensConfigurationEntry, decoder smithyxml.NodeDecoder) error { +func awsRestxml_deserializeDocumentMultiRegionAccessPointsAsyncResponse(v **types.MultiRegionAccessPointsAsyncResponse, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } - var sv *types.ListStorageLensConfigurationEntry + var sv *types.MultiRegionAccessPointsAsyncResponse if *v == nil { - sv = &types.ListStorageLensConfigurationEntry{} + sv = &types.MultiRegionAccessPointsAsyncResponse{} } else { sv = *v } @@ -8950,60 +10990,11 @@ func awsRestxml_deserializeDocumentListStorageLensConfigurationEntry(v **types.L originalDecoder := decoder decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { - case strings.EqualFold("HomeRegion", t.Name.Local): - val, err := decoder.Value() - if err != nil { - return err - } - if val == nil { - break - } - { - xtv := string(val) - sv.HomeRegion = ptr.String(xtv) - } - - case strings.EqualFold("Id", t.Name.Local): - val, err := decoder.Value() - if err != nil { - return err - } - if val == nil { - break - } - { - xtv := string(val) - sv.Id = ptr.String(xtv) - } - - case strings.EqualFold("IsEnabled", t.Name.Local): - val, err := decoder.Value() - if err != nil { - return err - } - if val == nil { - break - } - { - xtv, err := strconv.ParseBool(string(val)) - if err != nil { - return fmt.Errorf("expected IsEnabled to be of type *bool, got %T instead", val) - } - sv.IsEnabled = xtv - } - - case strings.EqualFold("StorageLensArn", t.Name.Local): - val, err := decoder.Value() - if err != nil { + case strings.EqualFold("Regions", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentMultiRegionAccessPointRegionalResponseList(&sv.Regions, nodeDecoder); err != nil { return err } - if val == nil { - break - } - { - xtv := string(val) - sv.StorageLensArn = ptr.String(xtv) - } default: // Do nothing and ignore the unexpected tag element @@ -9958,15 +11949,164 @@ func awsRestxml_deserializeDocumentPrefixLevelStorageMetrics(v **types.PrefixLev { xtv, err := strconv.ParseBool(string(val)) if err != nil { - return fmt.Errorf("expected IsEnabled to be of type *bool, got %T instead", val) + return fmt.Errorf("expected IsEnabled to be of type *bool, got %T instead", val) + } + sv.IsEnabled = xtv + } + + case strings.EqualFold("SelectionCriteria", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsRestxml_deserializeDocumentSelectionCriteria(&sv.SelectionCriteria, nodeDecoder); err != nil { + return err + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsRestxml_deserializeDocumentProposedMultiRegionAccessPointPolicy(v **types.ProposedMultiRegionAccessPointPolicy, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *types.ProposedMultiRegionAccessPointPolicy + if *v == nil { + sv = &types.ProposedMultiRegionAccessPointPolicy{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("Policy", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.Policy = ptr.String(xtv) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsRestxml_deserializeDocumentPublicAccessBlockConfiguration(v **types.PublicAccessBlockConfiguration, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *types.PublicAccessBlockConfiguration + if *v == nil { + sv = &types.PublicAccessBlockConfiguration{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("BlockPublicAcls", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv, err := strconv.ParseBool(string(val)) + if err != nil { + return fmt.Errorf("expected Setting to be of type *bool, got %T instead", val) + } + sv.BlockPublicAcls = xtv + } + + case strings.EqualFold("BlockPublicPolicy", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv, err := strconv.ParseBool(string(val)) + if err != nil { + return fmt.Errorf("expected Setting to be of type *bool, got %T instead", val) + } + sv.BlockPublicPolicy = xtv + } + + case strings.EqualFold("IgnorePublicAcls", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv, err := strconv.ParseBool(string(val)) + if err != nil { + return fmt.Errorf("expected Setting to be of type *bool, got %T instead", val) + } + sv.IgnorePublicAcls = xtv + } + + case strings.EqualFold("RestrictPublicBuckets", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv, err := strconv.ParseBool(string(val)) + if err != nil { + return fmt.Errorf("expected Setting to be of type *bool, got %T instead", val) } - sv.IsEnabled = xtv - } - - case strings.EqualFold("SelectionCriteria", t.Name.Local): - nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - if err := awsRestxml_deserializeDocumentSelectionCriteria(&sv.SelectionCriteria, nodeDecoder); err != nil { - return err + sv.RestrictPublicBuckets = xtv } default: @@ -9983,13 +12123,13 @@ func awsRestxml_deserializeDocumentPrefixLevelStorageMetrics(v **types.PrefixLev return nil } -func awsRestxml_deserializeDocumentPublicAccessBlockConfiguration(v **types.PublicAccessBlockConfiguration, decoder smithyxml.NodeDecoder) error { +func awsRestxml_deserializeDocumentPutMultiRegionAccessPointPolicyInput(v **types.PutMultiRegionAccessPointPolicyInput, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } - var sv *types.PublicAccessBlockConfiguration + var sv *types.PutMultiRegionAccessPointPolicyInput if *v == nil { - sv = &types.PublicAccessBlockConfiguration{} + sv = &types.PutMultiRegionAccessPointPolicyInput{} } else { sv = *v } @@ -10005,7 +12145,7 @@ func awsRestxml_deserializeDocumentPublicAccessBlockConfiguration(v **types.Publ originalDecoder := decoder decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { - case strings.EqualFold("BlockPublicAcls", t.Name.Local): + case strings.EqualFold("Name", t.Name.Local): val, err := decoder.Value() if err != nil { return err @@ -10014,14 +12154,11 @@ func awsRestxml_deserializeDocumentPublicAccessBlockConfiguration(v **types.Publ break } { - xtv, err := strconv.ParseBool(string(val)) - if err != nil { - return fmt.Errorf("expected Setting to be of type *bool, got %T instead", val) - } - sv.BlockPublicAcls = xtv + xtv := string(val) + sv.Name = ptr.String(xtv) } - case strings.EqualFold("BlockPublicPolicy", t.Name.Local): + case strings.EqualFold("Policy", t.Name.Local): val, err := decoder.Value() if err != nil { return err @@ -10030,30 +12167,47 @@ func awsRestxml_deserializeDocumentPublicAccessBlockConfiguration(v **types.Publ break } { - xtv, err := strconv.ParseBool(string(val)) - if err != nil { - return fmt.Errorf("expected Setting to be of type *bool, got %T instead", val) - } - sv.BlockPublicPolicy = xtv + xtv := string(val) + sv.Policy = ptr.String(xtv) } - case strings.EqualFold("IgnorePublicAcls", t.Name.Local): - val, err := decoder.Value() + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() if err != nil { return err } - if val == nil { - break - } - { - xtv, err := strconv.ParseBool(string(val)) - if err != nil { - return fmt.Errorf("expected Setting to be of type *bool, got %T instead", val) - } - sv.IgnorePublicAcls = xtv - } - case strings.EqualFold("RestrictPublicBuckets", t.Name.Local): + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsRestxml_deserializeDocumentRegion(v **types.Region, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *types.Region + if *v == nil { + sv = &types.Region{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("Bucket", t.Name.Local): val, err := decoder.Value() if err != nil { return err @@ -10062,11 +12216,8 @@ func awsRestxml_deserializeDocumentPublicAccessBlockConfiguration(v **types.Publ break } { - xtv, err := strconv.ParseBool(string(val)) - if err != nil { - return fmt.Errorf("expected Setting to be of type *bool, got %T instead", val) - } - sv.RestrictPublicBuckets = xtv + xtv := string(val) + sv.Bucket = ptr.String(xtv) } default: @@ -10259,6 +12410,204 @@ func awsRestxml_deserializeDocumentRegionalBucketListUnwrapped(v *[]types.Region *v = sv return nil } +func awsRestxml_deserializeDocumentRegionCreationList(v *[]types.Region, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv []types.Region + if *v == nil { + sv = make([]types.Region, 0) + } else { + sv = *v + } + + originalDecoder := decoder + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + switch { + case strings.EqualFold("Region", t.Name.Local): + var col types.Region + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + destAddr := &col + if err := awsRestxml_deserializeDocumentRegion(&destAddr, nodeDecoder); err != nil { + return err + } + col = *destAddr + sv = append(sv, col) + + default: + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsRestxml_deserializeDocumentRegionCreationListUnwrapped(v *[]types.Region, decoder smithyxml.NodeDecoder) error { + var sv []types.Region + if *v == nil { + sv = make([]types.Region, 0) + } else { + sv = *v + } + + switch { + default: + var mv types.Region + t := decoder.StartEl + _ = t + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + destAddr := &mv + if err := awsRestxml_deserializeDocumentRegion(&destAddr, nodeDecoder); err != nil { + return err + } + mv = *destAddr + sv = append(sv, mv) + } + *v = sv + return nil +} +func awsRestxml_deserializeDocumentRegionReport(v **types.RegionReport, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *types.RegionReport + if *v == nil { + sv = &types.RegionReport{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("Bucket", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.Bucket = ptr.String(xtv) + } + + case strings.EqualFold("Region", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.Region = ptr.String(xtv) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsRestxml_deserializeDocumentRegionReportList(v *[]types.RegionReport, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv []types.RegionReport + if *v == nil { + sv = make([]types.RegionReport, 0) + } else { + sv = *v + } + + originalDecoder := decoder + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + switch { + case strings.EqualFold("Region", t.Name.Local): + var col types.RegionReport + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + destAddr := &col + if err := awsRestxml_deserializeDocumentRegionReport(&destAddr, nodeDecoder); err != nil { + return err + } + col = *destAddr + sv = append(sv, col) + + default: + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsRestxml_deserializeDocumentRegionReportListUnwrapped(v *[]types.RegionReport, decoder smithyxml.NodeDecoder) error { + var sv []types.RegionReport + if *v == nil { + sv = make([]types.RegionReport, 0) + } else { + sv = *v + } + + switch { + default: + var mv types.RegionReport + t := decoder.StartEl + _ = t + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + destAddr := &mv + if err := awsRestxml_deserializeDocumentRegionReport(&destAddr, nodeDecoder); err != nil { + return err + } + mv = *destAddr + sv = append(sv, mv) + } + *v = sv + return nil +} func awsRestxml_deserializeDocumentRegions(v *[]string, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/s3control/generated.json b/service/s3control/generated.json index 4e3ba094389..db96dff1a33 100644 --- a/service/s3control/generated.json +++ b/service/s3control/generated.json @@ -10,6 +10,7 @@ "api_op_CreateAccessPointForObjectLambda.go", "api_op_CreateBucket.go", "api_op_CreateJob.go", + "api_op_CreateMultiRegionAccessPoint.go", "api_op_DeleteAccessPoint.go", "api_op_DeleteAccessPointForObjectLambda.go", "api_op_DeleteAccessPointPolicy.go", @@ -19,10 +20,12 @@ "api_op_DeleteBucketPolicy.go", "api_op_DeleteBucketTagging.go", "api_op_DeleteJobTagging.go", + "api_op_DeleteMultiRegionAccessPoint.go", "api_op_DeletePublicAccessBlock.go", "api_op_DeleteStorageLensConfiguration.go", "api_op_DeleteStorageLensConfigurationTagging.go", "api_op_DescribeJob.go", + "api_op_DescribeMultiRegionAccessPointOperation.go", "api_op_GetAccessPoint.go", "api_op_GetAccessPointConfigurationForObjectLambda.go", "api_op_GetAccessPointForObjectLambda.go", @@ -35,12 +38,16 @@ "api_op_GetBucketPolicy.go", "api_op_GetBucketTagging.go", "api_op_GetJobTagging.go", + "api_op_GetMultiRegionAccessPoint.go", + "api_op_GetMultiRegionAccessPointPolicy.go", + "api_op_GetMultiRegionAccessPointPolicyStatus.go", "api_op_GetPublicAccessBlock.go", "api_op_GetStorageLensConfiguration.go", "api_op_GetStorageLensConfigurationTagging.go", "api_op_ListAccessPoints.go", "api_op_ListAccessPointsForObjectLambda.go", "api_op_ListJobs.go", + "api_op_ListMultiRegionAccessPoints.go", "api_op_ListRegionalBuckets.go", "api_op_ListStorageLensConfigurations.go", "api_op_PutAccessPointConfigurationForObjectLambda.go", @@ -50,6 +57,7 @@ "api_op_PutBucketPolicy.go", "api_op_PutBucketTagging.go", "api_op_PutJobTagging.go", + "api_op_PutMultiRegionAccessPointPolicy.go", "api_op_PutPublicAccessBlock.go", "api_op_PutStorageLensConfiguration.go", "api_op_PutStorageLensConfigurationTagging.go", diff --git a/service/s3control/serializers.go b/service/s3control/serializers.go index 616e8db1dc1..aeb3384e6e1 100644 --- a/service/s3control/serializers.go +++ b/service/s3control/serializers.go @@ -543,6 +543,107 @@ func awsRestxml_serializeOpDocumentCreateJobInput(v *CreateJobInput, value smith return nil } +type awsRestxml_serializeOpCreateMultiRegionAccessPoint struct { +} + +func (*awsRestxml_serializeOpCreateMultiRegionAccessPoint) ID() string { + return "OperationSerializer" +} + +func (m *awsRestxml_serializeOpCreateMultiRegionAccessPoint) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*CreateMultiRegionAccessPointInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/v20180820/async-requests/mrap/create") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestxml_serializeOpHttpBindingsCreateMultiRegionAccessPointInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/xml") + + xmlEncoder := smithyxml.NewEncoder(bytes.NewBuffer(nil)) + rootAttr := []smithyxml.Attr{} + root := smithyxml.StartElement{ + Name: smithyxml.Name{ + Local: "CreateMultiRegionAccessPointRequest", + }, + Attr: rootAttr, + } + root.Attr = append(root.Attr, smithyxml.NewNamespaceAttribute("", "http://awss3control.amazonaws.com/doc/2018-08-20/")) + if err := awsRestxml_serializeOpDocumentCreateMultiRegionAccessPointInput(input, xmlEncoder.RootElement(root)); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + if request, err = request.SetStream(bytes.NewReader(xmlEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestxml_serializeOpHttpBindingsCreateMultiRegionAccessPointInput(v *CreateMultiRegionAccessPointInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.AccountId != nil && len(*v.AccountId) > 0 { + locationName := "X-Amz-Account-Id" + encoder.SetHeader(locationName).String(*v.AccountId) + } + + return nil +} + +func awsRestxml_serializeOpDocumentCreateMultiRegionAccessPointInput(v *CreateMultiRegionAccessPointInput, value smithyxml.Value) error { + defer value.Close() + if v.ClientToken != nil { + rootAttr := []smithyxml.Attr{} + root := smithyxml.StartElement{ + Name: smithyxml.Name{ + Local: "ClientToken", + }, + Attr: rootAttr, + } + el := value.MemberElement(root) + el.String(*v.ClientToken) + } + if v.Details != nil { + rootAttr := []smithyxml.Attr{} + root := smithyxml.StartElement{ + Name: smithyxml.Name{ + Local: "Details", + }, + Attr: rootAttr, + } + el := value.MemberElement(root) + if err := awsRestxml_serializeDocumentCreateMultiRegionAccessPointInput(v.Details, el); err != nil { + return err + } + } + return nil +} + type awsRestxml_serializeOpDeleteAccessPoint struct { } @@ -1110,6 +1211,107 @@ func awsRestxml_serializeOpHttpBindingsDeleteJobTaggingInput(v *DeleteJobTagging return nil } +type awsRestxml_serializeOpDeleteMultiRegionAccessPoint struct { +} + +func (*awsRestxml_serializeOpDeleteMultiRegionAccessPoint) ID() string { + return "OperationSerializer" +} + +func (m *awsRestxml_serializeOpDeleteMultiRegionAccessPoint) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*DeleteMultiRegionAccessPointInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/v20180820/async-requests/mrap/delete") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestxml_serializeOpHttpBindingsDeleteMultiRegionAccessPointInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/xml") + + xmlEncoder := smithyxml.NewEncoder(bytes.NewBuffer(nil)) + rootAttr := []smithyxml.Attr{} + root := smithyxml.StartElement{ + Name: smithyxml.Name{ + Local: "DeleteMultiRegionAccessPointRequest", + }, + Attr: rootAttr, + } + root.Attr = append(root.Attr, smithyxml.NewNamespaceAttribute("", "http://awss3control.amazonaws.com/doc/2018-08-20/")) + if err := awsRestxml_serializeOpDocumentDeleteMultiRegionAccessPointInput(input, xmlEncoder.RootElement(root)); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + if request, err = request.SetStream(bytes.NewReader(xmlEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestxml_serializeOpHttpBindingsDeleteMultiRegionAccessPointInput(v *DeleteMultiRegionAccessPointInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.AccountId != nil && len(*v.AccountId) > 0 { + locationName := "X-Amz-Account-Id" + encoder.SetHeader(locationName).String(*v.AccountId) + } + + return nil +} + +func awsRestxml_serializeOpDocumentDeleteMultiRegionAccessPointInput(v *DeleteMultiRegionAccessPointInput, value smithyxml.Value) error { + defer value.Close() + if v.ClientToken != nil { + rootAttr := []smithyxml.Attr{} + root := smithyxml.StartElement{ + Name: smithyxml.Name{ + Local: "ClientToken", + }, + Attr: rootAttr, + } + el := value.MemberElement(root) + el.String(*v.ClientToken) + } + if v.Details != nil { + rootAttr := []smithyxml.Attr{} + root := smithyxml.StartElement{ + Name: smithyxml.Name{ + Local: "Details", + }, + Attr: rootAttr, + } + el := value.MemberElement(root) + if err := awsRestxml_serializeDocumentDeleteMultiRegionAccessPointInput(v.Details, el); err != nil { + return err + } + } + return nil +} + type awsRestxml_serializeOpDeletePublicAccessBlock struct { } @@ -1353,6 +1555,69 @@ func awsRestxml_serializeOpHttpBindingsDescribeJobInput(v *DescribeJobInput, enc return nil } +type awsRestxml_serializeOpDescribeMultiRegionAccessPointOperation struct { +} + +func (*awsRestxml_serializeOpDescribeMultiRegionAccessPointOperation) ID() string { + return "OperationSerializer" +} + +func (m *awsRestxml_serializeOpDescribeMultiRegionAccessPointOperation) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*DescribeMultiRegionAccessPointOperationInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/v20180820/async-requests/mrap/{RequestTokenARN+}") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "GET" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestxml_serializeOpHttpBindingsDescribeMultiRegionAccessPointOperationInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestxml_serializeOpHttpBindingsDescribeMultiRegionAccessPointOperationInput(v *DescribeMultiRegionAccessPointOperationInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.AccountId != nil && len(*v.AccountId) > 0 { + locationName := "X-Amz-Account-Id" + encoder.SetHeader(locationName).String(*v.AccountId) + } + + if v.RequestTokenARN == nil || len(*v.RequestTokenARN) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member RequestTokenARN must not be empty")} + } + if v.RequestTokenARN != nil { + if err := encoder.SetURI("RequestTokenARN").String(*v.RequestTokenARN); err != nil { + return err + } + } + + return nil +} + type awsRestxml_serializeOpGetAccessPoint struct { } @@ -2087,7 +2352,196 @@ func (m *awsRestxml_serializeOpGetJobTagging) HandleSerialize(ctx context.Contex return next.HandleSerialize(ctx, in) } -func awsRestxml_serializeOpHttpBindingsGetJobTaggingInput(v *GetJobTaggingInput, encoder *httpbinding.Encoder) error { +func awsRestxml_serializeOpHttpBindingsGetJobTaggingInput(v *GetJobTaggingInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.AccountId != nil && len(*v.AccountId) > 0 { + locationName := "X-Amz-Account-Id" + encoder.SetHeader(locationName).String(*v.AccountId) + } + + if v.JobId == nil || len(*v.JobId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member JobId must not be empty")} + } + if v.JobId != nil { + if err := encoder.SetURI("JobId").String(*v.JobId); err != nil { + return err + } + } + + return nil +} + +type awsRestxml_serializeOpGetMultiRegionAccessPoint struct { +} + +func (*awsRestxml_serializeOpGetMultiRegionAccessPoint) ID() string { + return "OperationSerializer" +} + +func (m *awsRestxml_serializeOpGetMultiRegionAccessPoint) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*GetMultiRegionAccessPointInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/v20180820/mrap/instances/{Name}") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "GET" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestxml_serializeOpHttpBindingsGetMultiRegionAccessPointInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestxml_serializeOpHttpBindingsGetMultiRegionAccessPointInput(v *GetMultiRegionAccessPointInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.AccountId != nil && len(*v.AccountId) > 0 { + locationName := "X-Amz-Account-Id" + encoder.SetHeader(locationName).String(*v.AccountId) + } + + if v.Name == nil || len(*v.Name) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member Name must not be empty")} + } + if v.Name != nil { + if err := encoder.SetURI("Name").String(*v.Name); err != nil { + return err + } + } + + return nil +} + +type awsRestxml_serializeOpGetMultiRegionAccessPointPolicy struct { +} + +func (*awsRestxml_serializeOpGetMultiRegionAccessPointPolicy) ID() string { + return "OperationSerializer" +} + +func (m *awsRestxml_serializeOpGetMultiRegionAccessPointPolicy) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*GetMultiRegionAccessPointPolicyInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/v20180820/mrap/instances/{Name}/policy") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "GET" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestxml_serializeOpHttpBindingsGetMultiRegionAccessPointPolicyInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestxml_serializeOpHttpBindingsGetMultiRegionAccessPointPolicyInput(v *GetMultiRegionAccessPointPolicyInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.AccountId != nil && len(*v.AccountId) > 0 { + locationName := "X-Amz-Account-Id" + encoder.SetHeader(locationName).String(*v.AccountId) + } + + if v.Name == nil || len(*v.Name) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member Name must not be empty")} + } + if v.Name != nil { + if err := encoder.SetURI("Name").String(*v.Name); err != nil { + return err + } + } + + return nil +} + +type awsRestxml_serializeOpGetMultiRegionAccessPointPolicyStatus struct { +} + +func (*awsRestxml_serializeOpGetMultiRegionAccessPointPolicyStatus) ID() string { + return "OperationSerializer" +} + +func (m *awsRestxml_serializeOpGetMultiRegionAccessPointPolicyStatus) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*GetMultiRegionAccessPointPolicyStatusInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/v20180820/mrap/instances/{Name}/policystatus") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "GET" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestxml_serializeOpHttpBindingsGetMultiRegionAccessPointPolicyStatusInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestxml_serializeOpHttpBindingsGetMultiRegionAccessPointPolicyStatusInput(v *GetMultiRegionAccessPointPolicyStatusInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -2097,11 +2551,11 @@ func awsRestxml_serializeOpHttpBindingsGetJobTaggingInput(v *GetJobTaggingInput, encoder.SetHeader(locationName).String(*v.AccountId) } - if v.JobId == nil || len(*v.JobId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member JobId must not be empty")} + if v.Name == nil || len(*v.Name) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member Name must not be empty")} } - if v.JobId != nil { - if err := encoder.SetURI("JobId").String(*v.JobId); err != nil { + if v.Name != nil { + if err := encoder.SetURI("Name").String(*v.Name); err != nil { return err } } @@ -2485,6 +2939,68 @@ func awsRestxml_serializeOpHttpBindingsListJobsInput(v *ListJobsInput, encoder * return nil } +type awsRestxml_serializeOpListMultiRegionAccessPoints struct { +} + +func (*awsRestxml_serializeOpListMultiRegionAccessPoints) ID() string { + return "OperationSerializer" +} + +func (m *awsRestxml_serializeOpListMultiRegionAccessPoints) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*ListMultiRegionAccessPointsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/v20180820/mrap/instances") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "GET" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestxml_serializeOpHttpBindingsListMultiRegionAccessPointsInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestxml_serializeOpHttpBindingsListMultiRegionAccessPointsInput(v *ListMultiRegionAccessPointsInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.AccountId != nil && len(*v.AccountId) > 0 { + locationName := "X-Amz-Account-Id" + encoder.SetHeader(locationName).String(*v.AccountId) + } + + if v.MaxResults != 0 { + encoder.SetQuery("maxResults").Integer(v.MaxResults) + } + + if v.NextToken != nil { + encoder.SetQuery("nextToken").String(*v.NextToken) + } + + return nil +} + type awsRestxml_serializeOpListRegionalBuckets struct { } @@ -3276,6 +3792,107 @@ func awsRestxml_serializeOpDocumentPutJobTaggingInput(v *PutJobTaggingInput, val return nil } +type awsRestxml_serializeOpPutMultiRegionAccessPointPolicy struct { +} + +func (*awsRestxml_serializeOpPutMultiRegionAccessPointPolicy) ID() string { + return "OperationSerializer" +} + +func (m *awsRestxml_serializeOpPutMultiRegionAccessPointPolicy) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*PutMultiRegionAccessPointPolicyInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/v20180820/async-requests/mrap/put-policy") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestxml_serializeOpHttpBindingsPutMultiRegionAccessPointPolicyInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/xml") + + xmlEncoder := smithyxml.NewEncoder(bytes.NewBuffer(nil)) + rootAttr := []smithyxml.Attr{} + root := smithyxml.StartElement{ + Name: smithyxml.Name{ + Local: "PutMultiRegionAccessPointPolicyRequest", + }, + Attr: rootAttr, + } + root.Attr = append(root.Attr, smithyxml.NewNamespaceAttribute("", "http://awss3control.amazonaws.com/doc/2018-08-20/")) + if err := awsRestxml_serializeOpDocumentPutMultiRegionAccessPointPolicyInput(input, xmlEncoder.RootElement(root)); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + if request, err = request.SetStream(bytes.NewReader(xmlEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestxml_serializeOpHttpBindingsPutMultiRegionAccessPointPolicyInput(v *PutMultiRegionAccessPointPolicyInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.AccountId != nil && len(*v.AccountId) > 0 { + locationName := "X-Amz-Account-Id" + encoder.SetHeader(locationName).String(*v.AccountId) + } + + return nil +} + +func awsRestxml_serializeOpDocumentPutMultiRegionAccessPointPolicyInput(v *PutMultiRegionAccessPointPolicyInput, value smithyxml.Value) error { + defer value.Close() + if v.ClientToken != nil { + rootAttr := []smithyxml.Attr{} + root := smithyxml.StartElement{ + Name: smithyxml.Name{ + Local: "ClientToken", + }, + Attr: rootAttr, + } + el := value.MemberElement(root) + el.String(*v.ClientToken) + } + if v.Details != nil { + rootAttr := []smithyxml.Attr{} + root := smithyxml.StartElement{ + Name: smithyxml.Name{ + Local: "Details", + }, + Attr: rootAttr, + } + el := value.MemberElement(root) + if err := awsRestxml_serializeDocumentPutMultiRegionAccessPointPolicyInput(v.Details, el); err != nil { + return err + } + } + return nil +} + type awsRestxml_serializeOpPutPublicAccessBlock struct { } @@ -3859,6 +4476,64 @@ func awsRestxml_serializeDocumentCreateBucketConfiguration(v *types.CreateBucket return nil } +func awsRestxml_serializeDocumentCreateMultiRegionAccessPointInput(v *types.CreateMultiRegionAccessPointInput, value smithyxml.Value) error { + defer value.Close() + if v.Name != nil { + rootAttr := []smithyxml.Attr{} + root := smithyxml.StartElement{ + Name: smithyxml.Name{ + Local: "Name", + }, + Attr: rootAttr, + } + el := value.MemberElement(root) + el.String(*v.Name) + } + if v.PublicAccessBlock != nil { + rootAttr := []smithyxml.Attr{} + root := smithyxml.StartElement{ + Name: smithyxml.Name{ + Local: "PublicAccessBlock", + }, + Attr: rootAttr, + } + el := value.MemberElement(root) + if err := awsRestxml_serializeDocumentPublicAccessBlockConfiguration(v.PublicAccessBlock, el); err != nil { + return err + } + } + if v.Regions != nil { + rootAttr := []smithyxml.Attr{} + root := smithyxml.StartElement{ + Name: smithyxml.Name{ + Local: "Regions", + }, + Attr: rootAttr, + } + el := value.MemberElement(root) + if err := awsRestxml_serializeDocumentRegionCreationList(v.Regions, el); err != nil { + return err + } + } + return nil +} + +func awsRestxml_serializeDocumentDeleteMultiRegionAccessPointInput(v *types.DeleteMultiRegionAccessPointInput, value smithyxml.Value) error { + defer value.Close() + if v.Name != nil { + rootAttr := []smithyxml.Attr{} + root := smithyxml.StartElement{ + Name: smithyxml.Name{ + Local: "Name", + }, + Attr: rootAttr, + } + el := value.MemberElement(root) + el.String(*v.Name) + } + return nil +} + func awsRestxml_serializeDocumentExclude(v *types.Exclude, value smithyxml.Value) error { defer value.Close() if v.Buckets != nil { @@ -4801,6 +5476,71 @@ func awsRestxml_serializeDocumentPublicAccessBlockConfiguration(v *types.PublicA return nil } +func awsRestxml_serializeDocumentPutMultiRegionAccessPointPolicyInput(v *types.PutMultiRegionAccessPointPolicyInput, value smithyxml.Value) error { + defer value.Close() + if v.Name != nil { + rootAttr := []smithyxml.Attr{} + root := smithyxml.StartElement{ + Name: smithyxml.Name{ + Local: "Name", + }, + Attr: rootAttr, + } + el := value.MemberElement(root) + el.String(*v.Name) + } + if v.Policy != nil { + rootAttr := []smithyxml.Attr{} + root := smithyxml.StartElement{ + Name: smithyxml.Name{ + Local: "Policy", + }, + Attr: rootAttr, + } + el := value.MemberElement(root) + el.String(*v.Policy) + } + return nil +} + +func awsRestxml_serializeDocumentRegion(v *types.Region, value smithyxml.Value) error { + defer value.Close() + if v.Bucket != nil { + rootAttr := []smithyxml.Attr{} + root := smithyxml.StartElement{ + Name: smithyxml.Name{ + Local: "Bucket", + }, + Attr: rootAttr, + } + el := value.MemberElement(root) + el.String(*v.Bucket) + } + return nil +} + +func awsRestxml_serializeDocumentRegionCreationList(v []types.Region, value smithyxml.Value) error { + var array *smithyxml.Array + if !value.IsFlattened() { + defer value.Close() + } + customMemberNameAttr := []smithyxml.Attr{} + customMemberName := smithyxml.StartElement{ + Name: smithyxml.Name{ + Local: "Region", + }, + Attr: customMemberNameAttr, + } + array = value.ArrayWithCustomName(customMemberName) + for i := range v { + am := array.Member() + if err := awsRestxml_serializeDocumentRegion(&v[i], am); err != nil { + return err + } + } + return nil +} + func awsRestxml_serializeDocumentRegions(v []string, value smithyxml.Value) error { var array *smithyxml.Array if !value.IsFlattened() { diff --git a/service/s3control/types/enums.go b/service/s3control/types/enums.go index 20d5e933703..f55ed942ee8 100644 --- a/service/s3control/types/enums.go +++ b/service/s3control/types/enums.go @@ -2,6 +2,26 @@ package types +type AsyncOperationName string + +// Enum values for AsyncOperationName +const ( + AsyncOperationNameCreateMultiRegionAccessPoint AsyncOperationName = "CreateMultiRegionAccessPoint" + AsyncOperationNameDeleteMultiRegionAccessPoint AsyncOperationName = "DeleteMultiRegionAccessPoint" + AsyncOperationNamePutMultiRegionAccessPointPolicy AsyncOperationName = "PutMultiRegionAccessPointPolicy" +) + +// Values returns all known values for AsyncOperationName. Note that this can be +// expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (AsyncOperationName) Values() []AsyncOperationName { + return []AsyncOperationName{ + "CreateMultiRegionAccessPoint", + "DeleteMultiRegionAccessPoint", + "PutMultiRegionAccessPointPolicy", + } +} + type BucketCannedACL string // Enum values for BucketCannedACL @@ -210,6 +230,32 @@ func (JobStatus) Values() []JobStatus { } } +type MultiRegionAccessPointStatus string + +// Enum values for MultiRegionAccessPointStatus +const ( + MultiRegionAccessPointStatusReady MultiRegionAccessPointStatus = "READY" + MultiRegionAccessPointStatusInconsistentAcrossRegions MultiRegionAccessPointStatus = "INCONSISTENT_ACROSS_REGIONS" + MultiRegionAccessPointStatusCreating MultiRegionAccessPointStatus = "CREATING" + MultiRegionAccessPointStatusPartiallyCreated MultiRegionAccessPointStatus = "PARTIALLY_CREATED" + MultiRegionAccessPointStatusPartiallyDeleted MultiRegionAccessPointStatus = "PARTIALLY_DELETED" + MultiRegionAccessPointStatusDeleting MultiRegionAccessPointStatus = "DELETING" +) + +// Values returns all known values for MultiRegionAccessPointStatus. Note that this +// can be expanded in the future, and so it is only as up to date as the client. +// The ordering of this slice is not guaranteed to be stable across updates. +func (MultiRegionAccessPointStatus) Values() []MultiRegionAccessPointStatus { + return []MultiRegionAccessPointStatus{ + "READY", + "INCONSISTENT_ACROSS_REGIONS", + "CREATING", + "PARTIALLY_CREATED", + "PARTIALLY_DELETED", + "DELETING", + } +} + type NetworkOrigin string // Enum values for NetworkOrigin diff --git a/service/s3control/types/types.go b/service/s3control/types/types.go index 7a86891fabd..71845ee9858 100644 --- a/service/s3control/types/types.go +++ b/service/s3control/types/types.go @@ -76,6 +76,82 @@ type ActivityMetrics struct { noSmithyDocumentSerde } +// Error details for the failed asynchronous operation. +type AsyncErrorDetails struct { + + // A string that uniquely identifies the error condition. + Code *string + + // A generic descritpion of the error condition in English. + Message *string + + // The ID of the request associated with the error. + RequestId *string + + // The identifier of the resource associated with the error. + Resource *string + + noSmithyDocumentSerde +} + +// A container for the information about an asynchronous operation. +type AsyncOperation struct { + + // The time that the request was sent to the service. + CreationTime *time.Time + + // The specific operation for the asynchronous request. + Operation AsyncOperationName + + // The parameters associated with the request. + RequestParameters *AsyncRequestParameters + + // The current status of the request. + RequestStatus *string + + // The request token associated with the request. + RequestTokenARN *string + + // The details of the response. + ResponseDetails *AsyncResponseDetails + + noSmithyDocumentSerde +} + +// A container for the request parameters associated with an asynchronous request. +type AsyncRequestParameters struct { + + // A container of the parameters for a CreateMultiRegionAccessPoint + // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateMultiRegionAccessPoint.html) + // request. + CreateMultiRegionAccessPointRequest *CreateMultiRegionAccessPointInput + + // A container of the parameters for a DeleteMultiRegionAccessPoint + // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteMultiRegionAccessPoint.html) + // request. + DeleteMultiRegionAccessPointRequest *DeleteMultiRegionAccessPointInput + + // A container of the parameters for a PutMultiRegionAccessPoint + // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutMultiRegionAccessPoint.html) + // request. + PutMultiRegionAccessPointPolicyRequest *PutMultiRegionAccessPointPolicyInput + + noSmithyDocumentSerde +} + +// A container for the response details that are returned when querying about an +// asynchronous request. +type AsyncResponseDetails struct { + + // Error details for an asynchronous request. + ErrorDetails *AsyncErrorDetails + + // The details for the Multi-Region Access Point. + MultiRegionAccessPointDetails *MultiRegionAccessPointsAsyncResponse + + noSmithyDocumentSerde +} + // Lambda function used to transform objects through an Object Lambda Access Point. type AwsLambdaTransformation struct { @@ -115,6 +191,59 @@ type CreateBucketConfiguration struct { noSmithyDocumentSerde } +// A container for the information associated with a CreateMultiRegionAccessPoint +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateMultiRegionAccessPoint.html) +// request. +type CreateMultiRegionAccessPointInput struct { + + // The name of the Multi-Region Access Point associated with this request. + // + // This member is required. + Name *string + + // The buckets in different Regions that are associated with the Multi-Region + // Access Point. + // + // This member is required. + Regions []Region + + // The PublicAccessBlock configuration that you want to apply to this Amazon S3 + // account. You can enable the configuration options in any combination. For more + // information about when Amazon S3 considers a bucket or object public, see The + // Meaning of "Public" + // (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) + // in the Amazon S3 User Guide. This is not supported for Amazon S3 on Outposts. + PublicAccessBlock *PublicAccessBlockConfiguration + + noSmithyDocumentSerde +} + +// A container for the information associated with a DeleteMultiRegionAccessPoint +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteMultiRegionAccessPoint.html) +// request. +type DeleteMultiRegionAccessPointInput struct { + + // The name of the Multi-Region Access Point associated with this request. + // + // This member is required. + Name *string + + noSmithyDocumentSerde +} + +// The last established access control policy for a Multi-Region Access Point. When +// you update the policy, the update is first listed as the proposed policy. After +// the update is finished and all Regions have been updated, the proposed policy is +// listed as the established policy. If both policies have the same version number, +// the proposed policy is the established policy. +type EstablishedMultiRegionAccessPointPolicy struct { + + // The details of the last established policy. + Policy *string + + noSmithyDocumentSerde +} + // A container for what Amazon S3 Storage Lens will exclude. type Exclude struct { @@ -549,6 +678,84 @@ type ListStorageLensConfigurationEntry struct { noSmithyDocumentSerde } +// The Multi-Region Access Point access control policy. When you update the policy, +// the update is first listed as the proposed policy. After the update is finished +// and all Regions have been updated, the proposed policy is listed as the +// established policy. If both policies have the same version number, the proposed +// policy is the established policy. +type MultiRegionAccessPointPolicyDocument struct { + + // The last established policy for the Multi-Region Access Point. + Established *EstablishedMultiRegionAccessPointPolicy + + // The proposed policy for the Multi-Region Access Point. + Proposed *ProposedMultiRegionAccessPointPolicy + + noSmithyDocumentSerde +} + +// Status information for a single Multi-Region Access Point Region. +type MultiRegionAccessPointRegionalResponse struct { + + // The name of the Region in the Multi-Region Access Point. + Name *string + + // The current status of the Multi-Region Access Point in this Region. + RequestStatus *string + + noSmithyDocumentSerde +} + +// A collection of statuses for a Multi-Region Access Point in the various Regions +// it supports. +type MultiRegionAccessPointReport struct { + + // The alias for the Multi-Region Access Point. For more information about the + // distinction between the name and the alias of an Multi-Region Access Point, see + // Managing Multi-Region Access Points + // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingMultiRegionAccessPoints.html#multi-region-access-point-naming). + Alias *string + + // When the Multi-Region Access Point create request was received. + CreatedAt *time.Time + + // The name of the Multi-Region Access Point. + Name *string + + // The PublicAccessBlock configuration that you want to apply to this Amazon S3 + // account. You can enable the configuration options in any combination. For more + // information about when Amazon S3 considers a bucket or object public, see The + // Meaning of "Public" + // (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) + // in the Amazon S3 User Guide. This is not supported for Amazon S3 on Outposts. + PublicAccessBlock *PublicAccessBlockConfiguration + + // A collection of the Regions and buckets associated with the Multi-Region Access + // Point. + Regions []RegionReport + + // The current status of the Multi-Region Access Point. CREATING and DELETING are + // temporary states that exist while the request is propogating and being + // completed. If a Multi-Region Access Point has a status of PARTIALLY_CREATED, you + // can retry creation or send a request to delete the Multi-Region Access Point. If + // a Multi-Region Access Point has a status of PARTIALLY_DELETED, you can retry a + // delete request to finish the deletion of the Multi-Region Access Point. + Status MultiRegionAccessPointStatus + + noSmithyDocumentSerde +} + +// The Multi-Region Access Point details that are returned when querying about an +// asynchronous request. +type MultiRegionAccessPointsAsyncResponse struct { + + // A collection of status information for the different Regions that a Multi-Region + // Access Point supports. + Regions []MultiRegionAccessPointRegionalResponse + + noSmithyDocumentSerde +} + // The container of the noncurrent version expiration. type NoncurrentVersionExpiration struct { @@ -688,6 +895,19 @@ type PrefixLevelStorageMetrics struct { noSmithyDocumentSerde } +// The proposed access control policy for the Multi-Region Access Point. When you +// update the policy, the update is first listed as the proposed policy. After the +// update is finished and all Regions have been updated, the proposed policy is +// listed as the established policy. If both policies have the same version number, +// the proposed policy is the established policy. +type ProposedMultiRegionAccessPointPolicy struct { + + // The details of the proposed policy. + Policy *string + + noSmithyDocumentSerde +} + // The PublicAccessBlock configuration that you want to apply to this Amazon S3 // account. You can enable the configuration options in any combination. For more // information about when Amazon S3 considers a bucket or object public, see The @@ -739,6 +959,36 @@ type PublicAccessBlockConfiguration struct { noSmithyDocumentSerde } +// A container for the information associated with a PutMultiRegionAccessPoint +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutMultiRegionAccessPoint.html) +// request. +type PutMultiRegionAccessPointPolicyInput struct { + + // The name of the Multi-Region Access Point associated with the request. + // + // This member is required. + Name *string + + // The policy details for the PutMultiRegionAccessPoint request. + // + // This member is required. + Policy *string + + noSmithyDocumentSerde +} + +// A Region that supports a Multi-Region Access Point as well as the associated +// bucket for the Region. +type Region struct { + + // The name of the associated bucket for the Region. + // + // This member is required. + Bucket *string + + noSmithyDocumentSerde +} + // The container for the regional bucket. type RegionalBucket struct { @@ -766,6 +1016,18 @@ type RegionalBucket struct { noSmithyDocumentSerde } +// A combination of a bucket and Region that's part of a Multi-Region Access Point. +type RegionReport struct { + + // The name of the bucket. + Bucket *string + + // The name of the Region. + Region *string + + noSmithyDocumentSerde +} + // type S3AccessControlList struct { diff --git a/service/s3control/validators.go b/service/s3control/validators.go index 6ce64ec9853..6819a8e44e7 100644 --- a/service/s3control/validators.go +++ b/service/s3control/validators.go @@ -90,6 +90,26 @@ func (m *validateOpCreateJob) HandleInitialize(ctx context.Context, in middlewar return next.HandleInitialize(ctx, in) } +type validateOpCreateMultiRegionAccessPoint struct { +} + +func (*validateOpCreateMultiRegionAccessPoint) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateMultiRegionAccessPoint) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateMultiRegionAccessPointInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateMultiRegionAccessPointInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDeleteAccessPointForObjectLambda struct { } @@ -270,6 +290,26 @@ func (m *validateOpDeleteJobTagging) HandleInitialize(ctx context.Context, in mi return next.HandleInitialize(ctx, in) } +type validateOpDeleteMultiRegionAccessPoint struct { +} + +func (*validateOpDeleteMultiRegionAccessPoint) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeleteMultiRegionAccessPoint) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeleteMultiRegionAccessPointInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeleteMultiRegionAccessPointInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDeletePublicAccessBlock struct { } @@ -350,6 +390,26 @@ func (m *validateOpDescribeJob) HandleInitialize(ctx context.Context, in middlew return next.HandleInitialize(ctx, in) } +type validateOpDescribeMultiRegionAccessPointOperation struct { +} + +func (*validateOpDescribeMultiRegionAccessPointOperation) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDescribeMultiRegionAccessPointOperation) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DescribeMultiRegionAccessPointOperationInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDescribeMultiRegionAccessPointOperationInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpGetAccessPointConfigurationForObjectLambda struct { } @@ -590,6 +650,66 @@ func (m *validateOpGetJobTagging) HandleInitialize(ctx context.Context, in middl return next.HandleInitialize(ctx, in) } +type validateOpGetMultiRegionAccessPoint struct { +} + +func (*validateOpGetMultiRegionAccessPoint) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpGetMultiRegionAccessPoint) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*GetMultiRegionAccessPointInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpGetMultiRegionAccessPointInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpGetMultiRegionAccessPointPolicy struct { +} + +func (*validateOpGetMultiRegionAccessPointPolicy) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpGetMultiRegionAccessPointPolicy) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*GetMultiRegionAccessPointPolicyInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpGetMultiRegionAccessPointPolicyInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpGetMultiRegionAccessPointPolicyStatus struct { +} + +func (*validateOpGetMultiRegionAccessPointPolicyStatus) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpGetMultiRegionAccessPointPolicyStatus) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*GetMultiRegionAccessPointPolicyStatusInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpGetMultiRegionAccessPointPolicyStatusInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpGetPublicAccessBlock struct { } @@ -710,6 +830,26 @@ func (m *validateOpListJobs) HandleInitialize(ctx context.Context, in middleware return next.HandleInitialize(ctx, in) } +type validateOpListMultiRegionAccessPoints struct { +} + +func (*validateOpListMultiRegionAccessPoints) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpListMultiRegionAccessPoints) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListMultiRegionAccessPointsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpListMultiRegionAccessPointsInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpListRegionalBuckets struct { } @@ -890,6 +1030,26 @@ func (m *validateOpPutJobTagging) HandleInitialize(ctx context.Context, in middl return next.HandleInitialize(ctx, in) } +type validateOpPutMultiRegionAccessPointPolicy struct { +} + +func (*validateOpPutMultiRegionAccessPointPolicy) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpPutMultiRegionAccessPointPolicy) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*PutMultiRegionAccessPointPolicyInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpPutMultiRegionAccessPointPolicyInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpPutPublicAccessBlock struct { } @@ -1006,6 +1166,10 @@ func addOpCreateJobValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateJob{}, middleware.After) } +func addOpCreateMultiRegionAccessPointValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateMultiRegionAccessPoint{}, middleware.After) +} + func addOpDeleteAccessPointForObjectLambdaValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteAccessPointForObjectLambda{}, middleware.After) } @@ -1042,6 +1206,10 @@ func addOpDeleteJobTaggingValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteJobTagging{}, middleware.After) } +func addOpDeleteMultiRegionAccessPointValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeleteMultiRegionAccessPoint{}, middleware.After) +} + func addOpDeletePublicAccessBlockValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeletePublicAccessBlock{}, middleware.After) } @@ -1058,6 +1226,10 @@ func addOpDescribeJobValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDescribeJob{}, middleware.After) } +func addOpDescribeMultiRegionAccessPointOperationValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDescribeMultiRegionAccessPointOperation{}, middleware.After) +} + func addOpGetAccessPointConfigurationForObjectLambdaValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpGetAccessPointConfigurationForObjectLambda{}, middleware.After) } @@ -1106,6 +1278,18 @@ func addOpGetJobTaggingValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpGetJobTagging{}, middleware.After) } +func addOpGetMultiRegionAccessPointValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpGetMultiRegionAccessPoint{}, middleware.After) +} + +func addOpGetMultiRegionAccessPointPolicyValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpGetMultiRegionAccessPointPolicy{}, middleware.After) +} + +func addOpGetMultiRegionAccessPointPolicyStatusValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpGetMultiRegionAccessPointPolicyStatus{}, middleware.After) +} + func addOpGetPublicAccessBlockValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpGetPublicAccessBlock{}, middleware.After) } @@ -1130,6 +1314,10 @@ func addOpListJobsValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpListJobs{}, middleware.After) } +func addOpListMultiRegionAccessPointsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListMultiRegionAccessPoints{}, middleware.After) +} + func addOpListRegionalBucketsValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpListRegionalBuckets{}, middleware.After) } @@ -1166,6 +1354,10 @@ func addOpPutJobTaggingValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpPutJobTagging{}, middleware.After) } +func addOpPutMultiRegionAccessPointPolicyValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpPutMultiRegionAccessPointPolicy{}, middleware.After) +} + func addOpPutPublicAccessBlockValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpPutPublicAccessBlock{}, middleware.After) } @@ -1237,6 +1429,43 @@ func validateBucketLevel(v *types.BucketLevel) error { } } +func validateCreateMultiRegionAccessPointInput(v *types.CreateMultiRegionAccessPointInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateMultiRegionAccessPointInput"} + if v.Name == nil { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if v.Regions == nil { + invalidParams.Add(smithy.NewErrParamRequired("Regions")) + } else if v.Regions != nil { + if err := validateRegionCreationList(v.Regions); err != nil { + invalidParams.AddNested("Regions", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateDeleteMultiRegionAccessPointInput(v *types.DeleteMultiRegionAccessPointInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteMultiRegionAccessPointInput"} + if v.Name == nil { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateJobManifest(v *types.JobManifest) error { if v == nil { return nil @@ -1533,6 +1762,56 @@ func validatePrefixLevel(v *types.PrefixLevel) error { } } +func validatePutMultiRegionAccessPointPolicyInput(v *types.PutMultiRegionAccessPointPolicyInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "PutMultiRegionAccessPointPolicyInput"} + if v.Name == nil { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if v.Policy == nil { + invalidParams.Add(smithy.NewErrParamRequired("Policy")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateRegion(v *types.Region) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "Region"} + if v.Bucket == nil { + invalidParams.Add(smithy.NewErrParamRequired("Bucket")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateRegionCreationList(v []types.Region) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "RegionCreationList"} + for i := range v { + if err := validateRegion(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateS3AccessControlList(v *types.S3AccessControlList) error { if v == nil { return nil @@ -2009,6 +2288,31 @@ func validateOpCreateJobInput(v *CreateJobInput) error { } } +func validateOpCreateMultiRegionAccessPointInput(v *CreateMultiRegionAccessPointInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateMultiRegionAccessPointInput"} + if v.AccountId == nil { + invalidParams.Add(smithy.NewErrParamRequired("AccountId")) + } + if v.ClientToken == nil { + invalidParams.Add(smithy.NewErrParamRequired("ClientToken")) + } + if v.Details == nil { + invalidParams.Add(smithy.NewErrParamRequired("Details")) + } else if v.Details != nil { + if err := validateCreateMultiRegionAccessPointInput(v.Details); err != nil { + invalidParams.AddNested("Details", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDeleteAccessPointForObjectLambdaInput(v *DeleteAccessPointForObjectLambdaInput) error { if v == nil { return nil @@ -2171,6 +2475,31 @@ func validateOpDeleteJobTaggingInput(v *DeleteJobTaggingInput) error { } } +func validateOpDeleteMultiRegionAccessPointInput(v *DeleteMultiRegionAccessPointInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteMultiRegionAccessPointInput"} + if v.AccountId == nil { + invalidParams.Add(smithy.NewErrParamRequired("AccountId")) + } + if v.ClientToken == nil { + invalidParams.Add(smithy.NewErrParamRequired("ClientToken")) + } + if v.Details == nil { + invalidParams.Add(smithy.NewErrParamRequired("Details")) + } else if v.Details != nil { + if err := validateDeleteMultiRegionAccessPointInput(v.Details); err != nil { + invalidParams.AddNested("Details", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDeletePublicAccessBlockInput(v *DeletePublicAccessBlockInput) error { if v == nil { return nil @@ -2240,6 +2569,24 @@ func validateOpDescribeJobInput(v *DescribeJobInput) error { } } +func validateOpDescribeMultiRegionAccessPointOperationInput(v *DescribeMultiRegionAccessPointOperationInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DescribeMultiRegionAccessPointOperationInput"} + if v.AccountId == nil { + invalidParams.Add(smithy.NewErrParamRequired("AccountId")) + } + if v.RequestTokenARN == nil { + invalidParams.Add(smithy.NewErrParamRequired("RequestTokenARN")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpGetAccessPointConfigurationForObjectLambdaInput(v *GetAccessPointConfigurationForObjectLambdaInput) error { if v == nil { return nil @@ -2456,6 +2803,60 @@ func validateOpGetJobTaggingInput(v *GetJobTaggingInput) error { } } +func validateOpGetMultiRegionAccessPointInput(v *GetMultiRegionAccessPointInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GetMultiRegionAccessPointInput"} + if v.AccountId == nil { + invalidParams.Add(smithy.NewErrParamRequired("AccountId")) + } + if v.Name == nil { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpGetMultiRegionAccessPointPolicyInput(v *GetMultiRegionAccessPointPolicyInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GetMultiRegionAccessPointPolicyInput"} + if v.AccountId == nil { + invalidParams.Add(smithy.NewErrParamRequired("AccountId")) + } + if v.Name == nil { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpGetMultiRegionAccessPointPolicyStatusInput(v *GetMultiRegionAccessPointPolicyStatusInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GetMultiRegionAccessPointPolicyStatusInput"} + if v.AccountId == nil { + invalidParams.Add(smithy.NewErrParamRequired("AccountId")) + } + if v.Name == nil { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpGetPublicAccessBlockInput(v *GetPublicAccessBlockInput) error { if v == nil { return nil @@ -2552,6 +2953,21 @@ func validateOpListJobsInput(v *ListJobsInput) error { } } +func validateOpListMultiRegionAccessPointsInput(v *ListMultiRegionAccessPointsInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ListMultiRegionAccessPointsInput"} + if v.AccountId == nil { + invalidParams.Add(smithy.NewErrParamRequired("AccountId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpListRegionalBucketsInput(v *ListRegionalBucketsInput) error { if v == nil { return nil @@ -2743,6 +3159,31 @@ func validateOpPutJobTaggingInput(v *PutJobTaggingInput) error { } } +func validateOpPutMultiRegionAccessPointPolicyInput(v *PutMultiRegionAccessPointPolicyInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "PutMultiRegionAccessPointPolicyInput"} + if v.AccountId == nil { + invalidParams.Add(smithy.NewErrParamRequired("AccountId")) + } + if v.ClientToken == nil { + invalidParams.Add(smithy.NewErrParamRequired("ClientToken")) + } + if v.Details == nil { + invalidParams.Add(smithy.NewErrParamRequired("Details")) + } else if v.Details != nil { + if err := validatePutMultiRegionAccessPointPolicyInput(v.Details); err != nil { + invalidParams.AddNested("Details", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpPutPublicAccessBlockInput(v *PutPublicAccessBlockInput) error { if v == nil { return nil diff --git a/service/sagemakerruntime/internal/endpoints/endpoints.go b/service/sagemakerruntime/internal/endpoints/endpoints.go index 0d88783842b..bcabfd26e66 100644 --- a/service/sagemakerruntime/internal/endpoints/endpoints.go +++ b/service/sagemakerruntime/internal/endpoints/endpoints.go @@ -67,6 +67,7 @@ var defaultPartitions = endpoints.Partitions{ "ap-east-1": endpoints.Endpoint{}, "ap-northeast-1": endpoints.Endpoint{}, "ap-northeast-2": endpoints.Endpoint{}, + "ap-northeast-3": endpoints.Endpoint{}, "ap-south-1": endpoints.Endpoint{}, "ap-southeast-1": endpoints.Endpoint{}, "ap-southeast-2": endpoints.Endpoint{}, diff --git a/service/schemas/api_op_CreateDiscoverer.go b/service/schemas/api_op_CreateDiscoverer.go index 7f75dca2fdc..33985fd0018 100644 --- a/service/schemas/api_op_CreateDiscoverer.go +++ b/service/schemas/api_op_CreateDiscoverer.go @@ -34,6 +34,10 @@ type CreateDiscovererInput struct { // This member is required. SourceArn *string + // Support discovery of schemas in events sent to the bus from another account. + // (default: true). + CrossAccount bool + // A description for the discoverer. Description *string @@ -45,6 +49,10 @@ type CreateDiscovererInput struct { type CreateDiscovererOutput struct { + // The Status if the discoverer will discover schemas from events sent from another + // account. + CrossAccount bool + // The description of the discoverer. Description *string diff --git a/service/schemas/api_op_DescribeDiscoverer.go b/service/schemas/api_op_DescribeDiscoverer.go index 6ec508c5e86..e871ddb89ed 100644 --- a/service/schemas/api_op_DescribeDiscoverer.go +++ b/service/schemas/api_op_DescribeDiscoverer.go @@ -39,6 +39,10 @@ type DescribeDiscovererInput struct { type DescribeDiscovererOutput struct { + // The Status if the discoverer will discover schemas from events sent from another + // account. + CrossAccount bool + // The description of the discoverer. Description *string diff --git a/service/schemas/api_op_UpdateDiscoverer.go b/service/schemas/api_op_UpdateDiscoverer.go index 46a2ce44fab..41547ae3f1d 100644 --- a/service/schemas/api_op_UpdateDiscoverer.go +++ b/service/schemas/api_op_UpdateDiscoverer.go @@ -34,6 +34,10 @@ type UpdateDiscovererInput struct { // This member is required. DiscovererId *string + // Support discovery of schemas in events sent to the bus from another account. + // (default: true) + CrossAccount bool + // The description of the discoverer to update. Description *string @@ -42,6 +46,10 @@ type UpdateDiscovererInput struct { type UpdateDiscovererOutput struct { + // The Status if the discoverer will discover schemas from events sent from another + // account. + CrossAccount bool + // The description of the discoverer. Description *string diff --git a/service/schemas/deserializers.go b/service/schemas/deserializers.go index 2b7a863a80b..79a02431be9 100644 --- a/service/schemas/deserializers.go +++ b/service/schemas/deserializers.go @@ -168,6 +168,15 @@ func awsRestjson1_deserializeOpDocumentCreateDiscovererOutput(v **CreateDiscover for key, value := range shape { switch key { + case "CrossAccount": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected __boolean to be of type *bool, got %T instead", value) + } + sv.CrossAccount = jtv + } + case "Description": if value != nil { jtv, ok := value.(string) @@ -1512,6 +1521,15 @@ func awsRestjson1_deserializeOpDocumentDescribeDiscovererOutput(v **DescribeDisc for key, value := range shape { switch key { + case "CrossAccount": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected __boolean to be of type *bool, got %T instead", value) + } + sv.CrossAccount = jtv + } + case "Description": if value != nil { jtv, ok := value.(string) @@ -4738,6 +4756,15 @@ func awsRestjson1_deserializeOpDocumentUpdateDiscovererOutput(v **UpdateDiscover for key, value := range shape { switch key { + case "CrossAccount": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected __boolean to be of type *bool, got %T instead", value) + } + sv.CrossAccount = jtv + } + case "Description": if value != nil { jtv, ok := value.(string) @@ -5900,6 +5927,15 @@ func awsRestjson1_deserializeDocumentDiscovererSummary(v **types.DiscovererSumma for key, value := range shape { switch key { + case "CrossAccount": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected __boolean to be of type *bool, got %T instead", value) + } + sv.CrossAccount = jtv + } + case "DiscovererArn": if value != nil { jtv, ok := value.(string) diff --git a/service/schemas/serializers.go b/service/schemas/serializers.go index a24fe6af95b..21f401bedd4 100644 --- a/service/schemas/serializers.go +++ b/service/schemas/serializers.go @@ -73,6 +73,11 @@ func awsRestjson1_serializeOpDocumentCreateDiscovererInput(v *CreateDiscovererIn object := value.Object() defer object.Close() + if v.CrossAccount { + ok := object.Key("CrossAccount") + ok.Boolean(v.CrossAccount) + } + if v.Description != nil { ok := object.Key("Description") ok.String(*v.Description) @@ -2050,6 +2055,11 @@ func awsRestjson1_serializeOpDocumentUpdateDiscovererInput(v *UpdateDiscovererIn object := value.Object() defer object.Close() + if v.CrossAccount { + ok := object.Key("CrossAccount") + ok.Boolean(v.CrossAccount) + } + if v.Description != nil { ok := object.Key("Description") ok.String(*v.Description) diff --git a/service/schemas/types/types.go b/service/schemas/types/types.go index ecc8ef3292b..731d3cd7ab8 100644 --- a/service/schemas/types/types.go +++ b/service/schemas/types/types.go @@ -9,6 +9,10 @@ import ( type DiscovererSummary struct { + // The Status if the discoverer will discover schemas from events sent from another + // account. + CrossAccount bool + // The ARN of the discoverer. DiscovererArn *string diff --git a/service/securityhub/deserializers.go b/service/securityhub/deserializers.go index f3084054e88..0c671ffacc6 100644 --- a/service/securityhub/deserializers.go +++ b/service/securityhub/deserializers.go @@ -7738,6 +7738,89 @@ func awsRestjson1_deserializeDocumentActionTargetList(v *[]types.ActionTarget, v return nil } +func awsRestjson1_deserializeDocumentAdjustment(v **types.Adjustment, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.Adjustment + if *v == nil { + sv = &types.Adjustment{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Metric": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Metric = ptr.String(jtv) + } + + case "Reason": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Reason = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAdjustmentList(v *[]types.Adjustment, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.Adjustment + if *v == nil { + cv = []types.Adjustment{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.Adjustment + destAddr := &col + if err := awsRestjson1_deserializeDocumentAdjustment(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentAdminAccount(v **types.AdminAccount, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -9111,7 +9194,7 @@ func awsRestjson1_deserializeDocumentAwsAutoScalingAutoScalingGroupDetails(v **t return nil } -func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDetails(v **types.AwsCertificateManagerCertificateDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails(v **types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -9124,192 +9207,138 @@ func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDetails(v * return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCertificateManagerCertificateDetails + var sv *types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails if *v == nil { - sv = &types.AwsCertificateManagerCertificateDetails{} + sv = &types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "CertificateAuthorityArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.CertificateAuthorityArn = ptr.String(jtv) - } - - case "CreatedAt": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.CreatedAt = ptr.String(jtv) - } - - case "DomainName": + case "DeviceName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DomainName = ptr.String(jtv) - } - - case "DomainValidationOptions": - if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDomainValidationOptions(&sv.DomainValidationOptions, value); err != nil { - return err + sv.DeviceName = ptr.String(jtv) } - case "ExtendedKeyUsages": - if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateExtendedKeyUsages(&sv.ExtendedKeyUsages, value); err != nil { + case "Ebs": + if err := awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails(&sv.Ebs, value); err != nil { return err } - case "FailureReason": + case "NoDevice": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.FailureReason = ptr.String(jtv) + sv.NoDevice = jtv } - case "ImportedAt": + case "VirtualName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ImportedAt = ptr.String(jtv) + sv.VirtualName = ptr.String(jtv) } - case "InUseBy": - if err := awsRestjson1_deserializeDocumentStringList(&sv.InUseBy, value); err != nil { - return err - } + default: + _, _ = key, value - case "IssuedAt": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.IssuedAt = ptr.String(jtv) - } + } + } + *v = sv + return nil +} - case "Issuer": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Issuer = ptr.String(jtv) - } +func awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails(v **types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } - case "KeyAlgorithm": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.KeyAlgorithm = ptr.String(jtv) - } + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } - case "KeyUsages": - if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateKeyUsages(&sv.KeyUsages, value); err != nil { - return err - } + var sv *types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails + if *v == nil { + sv = &types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails{} + } else { + sv = *v + } - case "NotAfter": + for key, value := range shape { + switch key { + case "DeleteOnTermination": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.NotAfter = ptr.String(jtv) + sv.DeleteOnTermination = jtv } - case "NotBefore": + case "Encrypted": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.NotBefore = ptr.String(jtv) - } - - case "Options": - if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateOptions(&sv.Options, value); err != nil { - return err + sv.Encrypted = jtv } - case "RenewalEligibility": + case "Iops": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.RenewalEligibility = ptr.String(jtv) - } - - case "RenewalSummary": - if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateRenewalSummary(&sv.RenewalSummary, value); err != nil { - return err - } - - case "Serial": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + i64, err := jtv.Int64() + if err != nil { + return err } - sv.Serial = ptr.String(jtv) + sv.Iops = int32(i64) } - case "SignatureAlgorithm": + case "SnapshotId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.SignatureAlgorithm = ptr.String(jtv) + sv.SnapshotId = ptr.String(jtv) } - case "Status": + case "VolumeSize": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.Status = ptr.String(jtv) - } - - case "Subject": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + i64, err := jtv.Int64() + if err != nil { + return err } - sv.Subject = ptr.String(jtv) - } - - case "SubjectAlternativeNames": - if err := awsRestjson1_deserializeDocumentStringList(&sv.SubjectAlternativeNames, value); err != nil { - return err + sv.VolumeSize = int32(i64) } - case "Type": + case "VolumeType": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Type = ptr.String(jtv) + sv.VolumeType = ptr.String(jtv) } default: @@ -9321,7 +9350,7 @@ func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDetails(v * return nil } -func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDomainValidationOption(v **types.AwsCertificateManagerCertificateDomainValidationOption, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsList(v *[]types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -9329,147 +9358,198 @@ func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDomainValid return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCertificateManagerCertificateDomainValidationOption + var cv []types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails if *v == nil { - sv = &types.AwsCertificateManagerCertificateDomainValidationOption{} + cv = []types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "DomainName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.DomainName = ptr.String(jtv) + for _, value := range shape { + var col types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationDetails(v **types.AwsAutoScalingLaunchConfigurationDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsAutoScalingLaunchConfigurationDetails + if *v == nil { + sv = &types.AwsAutoScalingLaunchConfigurationDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AssociatePublicIpAddress": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.AssociatePublicIpAddress = jtv } - case "ResourceRecord": - if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateResourceRecord(&sv.ResourceRecord, value); err != nil { + case "BlockDeviceMappings": + if err := awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsList(&sv.BlockDeviceMappings, value); err != nil { return err } - case "ValidationDomain": + case "ClassicLinkVpcId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ValidationDomain = ptr.String(jtv) + sv.ClassicLinkVpcId = ptr.String(jtv) } - case "ValidationEmails": - if err := awsRestjson1_deserializeDocumentStringList(&sv.ValidationEmails, value); err != nil { + case "ClassicLinkVpcSecurityGroups": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.ClassicLinkVpcSecurityGroups, value); err != nil { return err } - case "ValidationMethod": + case "CreatedTime": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ValidationMethod = ptr.String(jtv) + sv.CreatedTime = ptr.String(jtv) } - case "ValidationStatus": + case "EbsOptimized": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.EbsOptimized = jtv + } + + case "IamInstanceProfile": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ValidationStatus = ptr.String(jtv) + sv.IamInstanceProfile = ptr.String(jtv) } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} + case "ImageId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ImageId = ptr.String(jtv) + } -func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDomainValidationOptions(v *[]types.AwsCertificateManagerCertificateDomainValidationOption, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } + case "InstanceMonitoring": + if err := awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationInstanceMonitoringDetails(&sv.InstanceMonitoring, value); err != nil { + return err + } - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + case "InstanceType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.InstanceType = ptr.String(jtv) + } - var cv []types.AwsCertificateManagerCertificateDomainValidationOption - if *v == nil { - cv = []types.AwsCertificateManagerCertificateDomainValidationOption{} - } else { - cv = *v - } + case "KernelId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.KernelId = ptr.String(jtv) + } - for _, value := range shape { - var col types.AwsCertificateManagerCertificateDomainValidationOption - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDomainValidationOption(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + case "KeyName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.KeyName = ptr.String(jtv) + } - } - *v = cv - return nil -} + case "LaunchConfigurationName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.LaunchConfigurationName = ptr.String(jtv) + } -func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateExtendedKeyUsage(v **types.AwsCertificateManagerCertificateExtendedKeyUsage, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } + case "PlacementTenancy": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.PlacementTenancy = ptr.String(jtv) + } - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + case "RamdiskId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.RamdiskId = ptr.String(jtv) + } - var sv *types.AwsCertificateManagerCertificateExtendedKeyUsage - if *v == nil { - sv = &types.AwsCertificateManagerCertificateExtendedKeyUsage{} - } else { - sv = *v - } + case "SecurityGroups": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SecurityGroups, value); err != nil { + return err + } - for key, value := range shape { - switch key { - case "Name": + case "SpotPrice": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Name = ptr.String(jtv) + sv.SpotPrice = ptr.String(jtv) } - case "OId": + case "UserData": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.OId = ptr.String(jtv) + sv.UserData = ptr.String(jtv) } default: @@ -9481,7 +9561,7 @@ func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateExtendedKey return nil } -func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateExtendedKeyUsages(v *[]types.AwsCertificateManagerCertificateExtendedKeyUsage, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationInstanceMonitoringDetails(v **types.AwsAutoScalingLaunchConfigurationInstanceMonitoringDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -9489,33 +9569,39 @@ func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateExtendedKey return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsCertificateManagerCertificateExtendedKeyUsage + var sv *types.AwsAutoScalingLaunchConfigurationInstanceMonitoringDetails if *v == nil { - cv = []types.AwsCertificateManagerCertificateExtendedKeyUsage{} + sv = &types.AwsAutoScalingLaunchConfigurationInstanceMonitoringDetails{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col types.AwsCertificateManagerCertificateExtendedKeyUsage - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateExtendedKeyUsage(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + for key, value := range shape { + switch key { + case "Enabled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.Enabled = jtv + } + + default: + _, _ = key, value + } } - *v = cv + *v = sv return nil } -func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateKeyUsage(v **types.AwsCertificateManagerCertificateKeyUsage, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDetails(v **types.AwsCertificateManagerCertificateDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -9528,159 +9614,192 @@ func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateKeyUsage(v return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCertificateManagerCertificateKeyUsage + var sv *types.AwsCertificateManagerCertificateDetails if *v == nil { - sv = &types.AwsCertificateManagerCertificateKeyUsage{} + sv = &types.AwsCertificateManagerCertificateDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Name": + case "CertificateAuthorityArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Name = ptr.String(jtv) + sv.CertificateAuthorityArn = ptr.String(jtv) } - default: - _, _ = key, value + case "CreatedAt": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.CreatedAt = ptr.String(jtv) + } - } - } - *v = sv - return nil -} + case "DomainName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.DomainName = ptr.String(jtv) + } -func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateKeyUsages(v *[]types.AwsCertificateManagerCertificateKeyUsage, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } + case "DomainValidationOptions": + if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDomainValidationOptions(&sv.DomainValidationOptions, value); err != nil { + return err + } - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + case "ExtendedKeyUsages": + if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateExtendedKeyUsages(&sv.ExtendedKeyUsages, value); err != nil { + return err + } - var cv []types.AwsCertificateManagerCertificateKeyUsage - if *v == nil { - cv = []types.AwsCertificateManagerCertificateKeyUsage{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.AwsCertificateManagerCertificateKeyUsage - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateKeyUsage(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + case "FailureReason": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.FailureReason = ptr.String(jtv) + } - } - *v = cv - return nil -} + case "ImportedAt": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ImportedAt = ptr.String(jtv) + } -func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateOptions(v **types.AwsCertificateManagerCertificateOptions, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } + case "InUseBy": + if err := awsRestjson1_deserializeDocumentStringList(&sv.InUseBy, value); err != nil { + return err + } - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + case "IssuedAt": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.IssuedAt = ptr.String(jtv) + } - var sv *types.AwsCertificateManagerCertificateOptions - if *v == nil { - sv = &types.AwsCertificateManagerCertificateOptions{} - } else { - sv = *v - } + case "Issuer": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Issuer = ptr.String(jtv) + } - for key, value := range shape { - switch key { - case "CertificateTransparencyLoggingPreference": + case "KeyAlgorithm": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CertificateTransparencyLoggingPreference = ptr.String(jtv) + sv.KeyAlgorithm = ptr.String(jtv) } - default: - _, _ = key, value + case "KeyUsages": + if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateKeyUsages(&sv.KeyUsages, value); err != nil { + return err + } - } - } - *v = sv - return nil -} + case "NotAfter": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.NotAfter = ptr.String(jtv) + } -func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateRenewalSummary(v **types.AwsCertificateManagerCertificateRenewalSummary, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } + case "NotBefore": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.NotBefore = ptr.String(jtv) + } - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + case "Options": + if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateOptions(&sv.Options, value); err != nil { + return err + } - var sv *types.AwsCertificateManagerCertificateRenewalSummary - if *v == nil { - sv = &types.AwsCertificateManagerCertificateRenewalSummary{} - } else { - sv = *v - } + case "RenewalEligibility": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.RenewalEligibility = ptr.String(jtv) + } - for key, value := range shape { - switch key { - case "DomainValidationOptions": - if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDomainValidationOptions(&sv.DomainValidationOptions, value); err != nil { + case "RenewalSummary": + if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateRenewalSummary(&sv.RenewalSummary, value); err != nil { return err } - case "RenewalStatus": + case "Serial": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.RenewalStatus = ptr.String(jtv) + sv.Serial = ptr.String(jtv) } - case "RenewalStatusReason": + case "SignatureAlgorithm": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.RenewalStatusReason = ptr.String(jtv) + sv.SignatureAlgorithm = ptr.String(jtv) } - case "UpdatedAt": + case "Status": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.UpdatedAt = ptr.String(jtv) + sv.Status = ptr.String(jtv) + } + + case "Subject": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Subject = ptr.String(jtv) + } + + case "SubjectAlternativeNames": + if err := awsRestjson1_deserializeDocumentStringList(&sv.SubjectAlternativeNames, value); err != nil { + return err + } + + case "Type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Type = ptr.String(jtv) } default: @@ -9692,7 +9811,7 @@ func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateRenewalSumm return nil } -func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateResourceRecord(v **types.AwsCertificateManagerCertificateResourceRecord, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDomainValidationOption(v **types.AwsCertificateManagerCertificateDomainValidationOption, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -9705,40 +9824,59 @@ func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateResourceRec return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCertificateManagerCertificateResourceRecord + var sv *types.AwsCertificateManagerCertificateDomainValidationOption if *v == nil { - sv = &types.AwsCertificateManagerCertificateResourceRecord{} + sv = &types.AwsCertificateManagerCertificateDomainValidationOption{} } else { sv = *v } for key, value := range shape { switch key { - case "Name": + case "DomainName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Name = ptr.String(jtv) + sv.DomainName = ptr.String(jtv) } - case "Type": + case "ResourceRecord": + if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateResourceRecord(&sv.ResourceRecord, value); err != nil { + return err + } + + case "ValidationDomain": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Type = ptr.String(jtv) + sv.ValidationDomain = ptr.String(jtv) } - case "Value": + case "ValidationEmails": + if err := awsRestjson1_deserializeDocumentStringList(&sv.ValidationEmails, value); err != nil { + return err + } + + case "ValidationMethod": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Value = ptr.String(jtv) + sv.ValidationMethod = ptr.String(jtv) + } + + case "ValidationStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ValidationStatus = ptr.String(jtv) } default: @@ -9750,7 +9888,7 @@ func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateResourceRec return nil } -func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehavior(v **types.AwsCloudFrontDistributionCacheBehavior, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDomainValidationOptions(v *[]types.AwsCertificateManagerCertificateDomainValidationOption, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -9758,39 +9896,33 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehavior(v ** return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCloudFrontDistributionCacheBehavior + var cv []types.AwsCertificateManagerCertificateDomainValidationOption if *v == nil { - sv = &types.AwsCloudFrontDistributionCacheBehavior{} + cv = []types.AwsCertificateManagerCertificateDomainValidationOption{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "ViewerProtocolPolicy": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.ViewerProtocolPolicy = ptr.String(jtv) - } - - default: - _, _ = key, value - + for _, value := range shape { + var col types.AwsCertificateManagerCertificateDomainValidationOption + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDomainValidationOption(&destAddr, value); err != nil { + return err } + col = *destAddr + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehaviors(v **types.AwsCloudFrontDistributionCacheBehaviors, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateExtendedKeyUsage(v **types.AwsCertificateManagerCertificateExtendedKeyUsage, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -9803,20 +9935,33 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehaviors(v * return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCloudFrontDistributionCacheBehaviors + var sv *types.AwsCertificateManagerCertificateExtendedKeyUsage if *v == nil { - sv = &types.AwsCloudFrontDistributionCacheBehaviors{} + sv = &types.AwsCertificateManagerCertificateExtendedKeyUsage{} } else { sv = *v } for key, value := range shape { switch key { - case "Items": - if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehaviorsItemList(&sv.Items, value); err != nil { - return err - } - + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "OId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.OId = ptr.String(jtv) + } + default: _, _ = key, value @@ -9826,7 +9971,7 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehaviors(v * return nil } -func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehaviorsItemList(v *[]types.AwsCloudFrontDistributionCacheBehavior, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateExtendedKeyUsages(v *[]types.AwsCertificateManagerCertificateExtendedKeyUsage, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -9839,17 +9984,17 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehaviorsItem return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsCloudFrontDistributionCacheBehavior + var cv []types.AwsCertificateManagerCertificateExtendedKeyUsage if *v == nil { - cv = []types.AwsCloudFrontDistributionCacheBehavior{} + cv = []types.AwsCertificateManagerCertificateExtendedKeyUsage{} } else { cv = *v } for _, value := range shape { - var col types.AwsCloudFrontDistributionCacheBehavior + var col types.AwsCertificateManagerCertificateExtendedKeyUsage destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehavior(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateExtendedKeyUsage(&destAddr, value); err != nil { return err } col = *destAddr @@ -9860,7 +10005,7 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehaviorsItem return nil } -func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionDefaultCacheBehavior(v **types.AwsCloudFrontDistributionDefaultCacheBehavior, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateKeyUsage(v **types.AwsCertificateManagerCertificateKeyUsage, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -9873,22 +10018,22 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionDefaultCacheBehavi return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCloudFrontDistributionDefaultCacheBehavior + var sv *types.AwsCertificateManagerCertificateKeyUsage if *v == nil { - sv = &types.AwsCloudFrontDistributionDefaultCacheBehavior{} + sv = &types.AwsCertificateManagerCertificateKeyUsage{} } else { sv = *v } for key, value := range shape { switch key { - case "ViewerProtocolPolicy": + case "Name": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ViewerProtocolPolicy = ptr.String(jtv) + sv.Name = ptr.String(jtv) } default: @@ -9900,7 +10045,41 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionDefaultCacheBehavi return nil } -func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionDetails(v **types.AwsCloudFrontDistributionDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateKeyUsages(v *[]types.AwsCertificateManagerCertificateKeyUsage, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsCertificateManagerCertificateKeyUsage + if *v == nil { + cv = []types.AwsCertificateManagerCertificateKeyUsage{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsCertificateManagerCertificateKeyUsage + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateKeyUsage(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateOptions(v **types.AwsCertificateManagerCertificateOptions, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -9913,92 +10092,85 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionDetails(v **types. return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCloudFrontDistributionDetails + var sv *types.AwsCertificateManagerCertificateOptions if *v == nil { - sv = &types.AwsCloudFrontDistributionDetails{} + sv = &types.AwsCertificateManagerCertificateOptions{} } else { sv = *v } for key, value := range shape { switch key { - case "CacheBehaviors": - if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehaviors(&sv.CacheBehaviors, value); err != nil { - return err - } - - case "DefaultCacheBehavior": - if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionDefaultCacheBehavior(&sv.DefaultCacheBehavior, value); err != nil { - return err - } - - case "DefaultRootObject": + case "CertificateTransparencyLoggingPreference": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DefaultRootObject = ptr.String(jtv) + sv.CertificateTransparencyLoggingPreference = ptr.String(jtv) } - case "DomainName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.DomainName = ptr.String(jtv) - } + default: + _, _ = key, value - case "ETag": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.ETag = ptr.String(jtv) + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateRenewalSummary(v **types.AwsCertificateManagerCertificateRenewalSummary, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsCertificateManagerCertificateRenewalSummary + if *v == nil { + sv = &types.AwsCertificateManagerCertificateRenewalSummary{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "DomainValidationOptions": + if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDomainValidationOptions(&sv.DomainValidationOptions, value); err != nil { + return err } - case "LastModifiedTime": + case "RenewalStatus": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.LastModifiedTime = ptr.String(jtv) - } - - case "Logging": - if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionLogging(&sv.Logging, value); err != nil { - return err - } - - case "OriginGroups": - if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroups(&sv.OriginGroups, value); err != nil { - return err - } - - case "Origins": - if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOrigins(&sv.Origins, value); err != nil { - return err + sv.RenewalStatus = ptr.String(jtv) } - case "Status": + case "RenewalStatusReason": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Status = ptr.String(jtv) + sv.RenewalStatusReason = ptr.String(jtv) } - case "WebAclId": + case "UpdatedAt": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.WebAclId = ptr.String(jtv) + sv.UpdatedAt = ptr.String(jtv) } default: @@ -10010,7 +10182,7 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionDetails(v **types. return nil } -func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionLogging(v **types.AwsCloudFrontDistributionLogging, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateResourceRecord(v **types.AwsCertificateManagerCertificateResourceRecord, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -10023,49 +10195,40 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionLogging(v **types. return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCloudFrontDistributionLogging + var sv *types.AwsCertificateManagerCertificateResourceRecord if *v == nil { - sv = &types.AwsCloudFrontDistributionLogging{} + sv = &types.AwsCertificateManagerCertificateResourceRecord{} } else { sv = *v } for key, value := range shape { switch key { - case "Bucket": + case "Name": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Bucket = ptr.String(jtv) - } - - case "Enabled": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.Enabled = jtv + sv.Name = ptr.String(jtv) } - case "IncludeCookies": + case "Type": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.IncludeCookies = jtv + sv.Type = ptr.String(jtv) } - case "Prefix": + case "Value": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Prefix = ptr.String(jtv) + sv.Value = ptr.String(jtv) } default: @@ -10077,7 +10240,7 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionLogging(v **types. return nil } -func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroup(v **types.AwsCloudFrontDistributionOriginGroup, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehavior(v **types.AwsCloudFrontDistributionCacheBehavior, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -10090,18 +10253,22 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroup(v **ty return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCloudFrontDistributionOriginGroup + var sv *types.AwsCloudFrontDistributionCacheBehavior if *v == nil { - sv = &types.AwsCloudFrontDistributionOriginGroup{} + sv = &types.AwsCloudFrontDistributionCacheBehavior{} } else { sv = *v } for key, value := range shape { switch key { - case "FailoverCriteria": - if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailover(&sv.FailoverCriteria, value); err != nil { - return err + case "ViewerProtocolPolicy": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ViewerProtocolPolicy = ptr.String(jtv) } default: @@ -10113,7 +10280,7 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroup(v **ty return nil } -func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailover(v **types.AwsCloudFrontDistributionOriginGroupFailover, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehaviors(v **types.AwsCloudFrontDistributionCacheBehaviors, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -10126,17 +10293,17 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailove return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCloudFrontDistributionOriginGroupFailover + var sv *types.AwsCloudFrontDistributionCacheBehaviors if *v == nil { - sv = &types.AwsCloudFrontDistributionOriginGroupFailover{} + sv = &types.AwsCloudFrontDistributionCacheBehaviors{} } else { sv = *v } for key, value := range shape { switch key { - case "StatusCodes": - if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailoverStatusCodes(&sv.StatusCodes, value); err != nil { + case "Items": + if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehaviorsItemList(&sv.Items, value); err != nil { return err } @@ -10149,7 +10316,7 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailove return nil } -func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailoverStatusCodes(v **types.AwsCloudFrontDistributionOriginGroupFailoverStatusCodes, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehaviorsItemList(v *[]types.AwsCloudFrontDistributionCacheBehavior, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -10157,88 +10324,33 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailove return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCloudFrontDistributionOriginGroupFailoverStatusCodes + var cv []types.AwsCloudFrontDistributionCacheBehavior if *v == nil { - sv = &types.AwsCloudFrontDistributionOriginGroupFailoverStatusCodes{} + cv = []types.AwsCloudFrontDistributionCacheBehavior{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "Items": - if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailoverStatusCodesItemList(&sv.Items, value); err != nil { - return err - } - - case "Quantity": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.Quantity = int32(i64) - } - - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailoverStatusCodesItemList(v *[]int32, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var cv []int32 - if *v == nil { - cv = []int32{} - } else { - cv = *v - } - - for _, value := range shape { - var col int32 - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - col = int32(i64) - } - cv = append(cv, col) + for _, value := range shape { + var col types.AwsCloudFrontDistributionCacheBehavior + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehavior(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) } *v = cv return nil } -func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroups(v **types.AwsCloudFrontDistributionOriginGroups, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionDefaultCacheBehavior(v **types.AwsCloudFrontDistributionDefaultCacheBehavior, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -10251,18 +10363,22 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroups(v **t return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCloudFrontDistributionOriginGroups + var sv *types.AwsCloudFrontDistributionDefaultCacheBehavior if *v == nil { - sv = &types.AwsCloudFrontDistributionOriginGroups{} + sv = &types.AwsCloudFrontDistributionDefaultCacheBehavior{} } else { sv = *v } for key, value := range shape { switch key { - case "Items": - if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupsItemList(&sv.Items, value); err != nil { - return err + case "ViewerProtocolPolicy": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ViewerProtocolPolicy = ptr.String(jtv) } default: @@ -10274,41 +10390,7 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroups(v **t return nil } -func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupsItemList(v *[]types.AwsCloudFrontDistributionOriginGroup, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var cv []types.AwsCloudFrontDistributionOriginGroup - if *v == nil { - cv = []types.AwsCloudFrontDistributionOriginGroup{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.AwsCloudFrontDistributionOriginGroup - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroup(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginItem(v **types.AwsCloudFrontDistributionOriginItem, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionDetails(v **types.AwsCloudFrontDistributionDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -10321,15 +10403,34 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginItem(v **typ return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCloudFrontDistributionOriginItem + var sv *types.AwsCloudFrontDistributionDetails if *v == nil { - sv = &types.AwsCloudFrontDistributionOriginItem{} + sv = &types.AwsCloudFrontDistributionDetails{} } else { sv = *v } for key, value := range shape { switch key { + case "CacheBehaviors": + if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehaviors(&sv.CacheBehaviors, value); err != nil { + return err + } + + case "DefaultCacheBehavior": + if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionDefaultCacheBehavior(&sv.DefaultCacheBehavior, value); err != nil { + return err + } + + case "DefaultRootObject": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.DefaultRootObject = ptr.String(jtv) + } + case "DomainName": if value != nil { jtv, ok := value.(string) @@ -10339,29 +10440,57 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginItem(v **typ sv.DomainName = ptr.String(jtv) } - case "Id": + case "ETag": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Id = ptr.String(jtv) + sv.ETag = ptr.String(jtv) } - case "OriginPath": + case "LastModifiedTime": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.OriginPath = ptr.String(jtv) + sv.LastModifiedTime = ptr.String(jtv) } - case "S3OriginConfig": - if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginS3OriginConfig(&sv.S3OriginConfig, value); err != nil { + case "Logging": + if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionLogging(&sv.Logging, value); err != nil { + return err + } + + case "OriginGroups": + if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroups(&sv.OriginGroups, value); err != nil { + return err + } + + case "Origins": + if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOrigins(&sv.Origins, value); err != nil { return err } + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Status = ptr.String(jtv) + } + + case "WebAclId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.WebAclId = ptr.String(jtv) + } + default: _, _ = key, value @@ -10371,7 +10500,7 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginItem(v **typ return nil } -func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginItemList(v *[]types.AwsCloudFrontDistributionOriginItem, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionLogging(v **types.AwsCloudFrontDistributionLogging, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -10379,33 +10508,66 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginItemList(v * return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsCloudFrontDistributionOriginItem + var sv *types.AwsCloudFrontDistributionLogging if *v == nil { - cv = []types.AwsCloudFrontDistributionOriginItem{} + sv = &types.AwsCloudFrontDistributionLogging{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col types.AwsCloudFrontDistributionOriginItem - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginItem(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + for key, value := range shape { + switch key { + case "Bucket": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Bucket = ptr.String(jtv) + } + case "Enabled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.Enabled = jtv + } + + case "IncludeCookies": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.IncludeCookies = jtv + } + + case "Prefix": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Prefix = ptr.String(jtv) + } + + default: + _, _ = key, value + + } } - *v = cv + *v = sv return nil } -func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOrigins(v **types.AwsCloudFrontDistributionOrigins, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroup(v **types.AwsCloudFrontDistributionOriginGroup, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -10418,17 +10580,17 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOrigins(v **types. return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCloudFrontDistributionOrigins + var sv *types.AwsCloudFrontDistributionOriginGroup if *v == nil { - sv = &types.AwsCloudFrontDistributionOrigins{} + sv = &types.AwsCloudFrontDistributionOriginGroup{} } else { sv = *v } for key, value := range shape { switch key { - case "Items": - if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginItemList(&sv.Items, value); err != nil { + case "FailoverCriteria": + if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailover(&sv.FailoverCriteria, value); err != nil { return err } @@ -10441,7 +10603,7 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOrigins(v **types. return nil } -func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginS3OriginConfig(v **types.AwsCloudFrontDistributionOriginS3OriginConfig, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailover(v **types.AwsCloudFrontDistributionOriginGroupFailover, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -10454,22 +10616,18 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginS3OriginConf return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCloudFrontDistributionOriginS3OriginConfig + var sv *types.AwsCloudFrontDistributionOriginGroupFailover if *v == nil { - sv = &types.AwsCloudFrontDistributionOriginS3OriginConfig{} + sv = &types.AwsCloudFrontDistributionOriginGroupFailover{} } else { sv = *v } for key, value := range shape { switch key { - case "OriginAccessIdentity": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.OriginAccessIdentity = ptr.String(jtv) + case "StatusCodes": + if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailoverStatusCodes(&sv.StatusCodes, value); err != nil { + return err } default: @@ -10481,7 +10639,7 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginS3OriginConf return nil } -func awsRestjson1_deserializeDocumentAwsCloudTrailTrailDetails(v **types.AwsCloudTrailTrailDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailoverStatusCodes(v **types.AwsCloudFrontDistributionOriginGroupFailoverStatusCodes, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -10494,148 +10652,107 @@ func awsRestjson1_deserializeDocumentAwsCloudTrailTrailDetails(v **types.AwsClou return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCloudTrailTrailDetails + var sv *types.AwsCloudFrontDistributionOriginGroupFailoverStatusCodes if *v == nil { - sv = &types.AwsCloudTrailTrailDetails{} + sv = &types.AwsCloudFrontDistributionOriginGroupFailoverStatusCodes{} } else { sv = *v } for key, value := range shape { switch key { - case "CloudWatchLogsLogGroupArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.CloudWatchLogsLogGroupArn = ptr.String(jtv) + case "Items": + if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailoverStatusCodesItemList(&sv.Items, value); err != nil { + return err } - case "CloudWatchLogsRoleArn": + case "Quantity": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.CloudWatchLogsRoleArn = ptr.String(jtv) - } - - case "HasCustomEventSelectors": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + i64, err := jtv.Int64() + if err != nil { + return err } - sv.HasCustomEventSelectors = jtv + sv.Quantity = int32(i64) } - case "HomeRegion": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.HomeRegion = ptr.String(jtv) - } + default: + _, _ = key, value - case "IncludeGlobalServiceEvents": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.IncludeGlobalServiceEvents = jtv - } + } + } + *v = sv + return nil +} - case "IsMultiRegionTrail": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.IsMultiRegionTrail = jtv - } +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailoverStatusCodesItemList(v *[]int32, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } - case "IsOrganizationTrail": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.IsOrganizationTrail = jtv - } + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } - case "KmsKeyId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.KmsKeyId = ptr.String(jtv) - } + var cv []int32 + if *v == nil { + cv = []int32{} + } else { + cv = *v + } - case "LogFileValidationEnabled": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.LogFileValidationEnabled = jtv + for _, value := range shape { + var col int32 + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - - case "Name": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Name = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err } + col = int32(i64) + } + cv = append(cv, col) - case "S3BucketName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.S3BucketName = ptr.String(jtv) - } + } + *v = cv + return nil +} - case "S3KeyPrefix": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.S3KeyPrefix = ptr.String(jtv) - } +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroups(v **types.AwsCloudFrontDistributionOriginGroups, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } - case "SnsTopicArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.SnsTopicArn = ptr.String(jtv) - } + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } - case "SnsTopicName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.SnsTopicName = ptr.String(jtv) - } + var sv *types.AwsCloudFrontDistributionOriginGroups + if *v == nil { + sv = &types.AwsCloudFrontDistributionOriginGroups{} + } else { + sv = *v + } - case "TrailArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.TrailArn = ptr.String(jtv) + for key, value := range shape { + switch key { + case "Items": + if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupsItemList(&sv.Items, value); err != nil { + return err } default: @@ -10647,7 +10764,41 @@ func awsRestjson1_deserializeDocumentAwsCloudTrailTrailDetails(v **types.AwsClou return nil } -func awsRestjson1_deserializeDocumentAwsCodeBuildProjectDetails(v **types.AwsCodeBuildProjectDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupsItemList(v *[]types.AwsCloudFrontDistributionOriginGroup, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsCloudFrontDistributionOriginGroup + if *v == nil { + cv = []types.AwsCloudFrontDistributionOriginGroup{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsCloudFrontDistributionOriginGroup + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroup(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginItem(v **types.AwsCloudFrontDistributionOriginItem, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -10660,54 +10811,44 @@ func awsRestjson1_deserializeDocumentAwsCodeBuildProjectDetails(v **types.AwsCod return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCodeBuildProjectDetails + var sv *types.AwsCloudFrontDistributionOriginItem if *v == nil { - sv = &types.AwsCodeBuildProjectDetails{} + sv = &types.AwsCloudFrontDistributionOriginItem{} } else { sv = *v } for key, value := range shape { switch key { - case "EncryptionKey": + case "DomainName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.EncryptionKey = ptr.String(jtv) - } - - case "Environment": - if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironment(&sv.Environment, value); err != nil { - return err + sv.DomainName = ptr.String(jtv) } - case "Name": + case "Id": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Name = ptr.String(jtv) + sv.Id = ptr.String(jtv) } - case "ServiceRole": + case "OriginPath": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ServiceRole = ptr.String(jtv) - } - - case "Source": - if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectSource(&sv.Source, value); err != nil { - return err + sv.OriginPath = ptr.String(jtv) } - case "VpcConfig": - if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectVpcConfig(&sv.VpcConfig, value); err != nil { + case "S3OriginConfig": + if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginS3OriginConfig(&sv.S3OriginConfig, value); err != nil { return err } @@ -10720,7 +10861,7 @@ func awsRestjson1_deserializeDocumentAwsCodeBuildProjectDetails(v **types.AwsCod return nil } -func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironment(v **types.AwsCodeBuildProjectEnvironment, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginItemList(v *[]types.AwsCloudFrontDistributionOriginItem, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -10728,52 +10869,59 @@ func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironment(v **types.Aw return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCodeBuildProjectEnvironment + var cv []types.AwsCloudFrontDistributionOriginItem if *v == nil { - sv = &types.AwsCodeBuildProjectEnvironment{} + cv = []types.AwsCloudFrontDistributionOriginItem{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsCloudFrontDistributionOriginItem + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginItem(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOrigins(v **types.AwsCloudFrontDistributionOrigins, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsCloudFrontDistributionOrigins + if *v == nil { + sv = &types.AwsCloudFrontDistributionOrigins{} } else { sv = *v } for key, value := range shape { switch key { - case "Certificate": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Certificate = ptr.String(jtv) - } - - case "ImagePullCredentialsType": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.ImagePullCredentialsType = ptr.String(jtv) - } - - case "RegistryCredential": - if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentRegistryCredential(&sv.RegistryCredential, value); err != nil { + case "Items": + if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginItemList(&sv.Items, value); err != nil { return err } - case "Type": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Type = ptr.String(jtv) - } - default: _, _ = key, value @@ -10783,7 +10931,7 @@ func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironment(v **types.Aw return nil } -func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentRegistryCredential(v **types.AwsCodeBuildProjectEnvironmentRegistryCredential, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginS3OriginConfig(v **types.AwsCloudFrontDistributionOriginS3OriginConfig, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -10796,31 +10944,22 @@ func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentRegistryCrede return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCodeBuildProjectEnvironmentRegistryCredential + var sv *types.AwsCloudFrontDistributionOriginS3OriginConfig if *v == nil { - sv = &types.AwsCodeBuildProjectEnvironmentRegistryCredential{} + sv = &types.AwsCloudFrontDistributionOriginS3OriginConfig{} } else { sv = *v } for key, value := range shape { switch key { - case "Credential": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Credential = ptr.String(jtv) - } - - case "CredentialProvider": + case "OriginAccessIdentity": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CredentialProvider = ptr.String(jtv) + sv.OriginAccessIdentity = ptr.String(jtv) } default: @@ -10832,7 +10971,7 @@ func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentRegistryCrede return nil } -func awsRestjson1_deserializeDocumentAwsCodeBuildProjectSource(v **types.AwsCodeBuildProjectSource, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCloudTrailTrailDetails(v **types.AwsCloudTrailTrailDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -10845,103 +10984,148 @@ func awsRestjson1_deserializeDocumentAwsCodeBuildProjectSource(v **types.AwsCode return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCodeBuildProjectSource + var sv *types.AwsCloudTrailTrailDetails if *v == nil { - sv = &types.AwsCodeBuildProjectSource{} + sv = &types.AwsCloudTrailTrailDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "GitCloneDepth": + case "CloudWatchLogsLogGroupArn": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - i64, err := jtv.Int64() - if err != nil { - return err + sv.CloudWatchLogsLogGroupArn = ptr.String(jtv) + } + + case "CloudWatchLogsRoleArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.GitCloneDepth = int32(i64) + sv.CloudWatchLogsRoleArn = ptr.String(jtv) } - case "InsecureSsl": + case "HasCustomEventSelectors": if value != nil { jtv, ok := value.(bool) if !ok { return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.InsecureSsl = jtv + sv.HasCustomEventSelectors = jtv } - case "Location": + case "HomeRegion": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Location = ptr.String(jtv) + sv.HomeRegion = ptr.String(jtv) } - case "Type": + case "IncludeGlobalServiceEvents": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.IncludeGlobalServiceEvents = jtv + } + + case "IsMultiRegionTrail": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.IsMultiRegionTrail = jtv + } + + case "IsOrganizationTrail": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.IsOrganizationTrail = jtv + } + + case "KmsKeyId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Type = ptr.String(jtv) + sv.KmsKeyId = ptr.String(jtv) } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} + case "LogFileValidationEnabled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.LogFileValidationEnabled = jtv + } -func awsRestjson1_deserializeDocumentAwsCodeBuildProjectVpcConfig(v **types.AwsCodeBuildProjectVpcConfig, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + case "S3BucketName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.S3BucketName = ptr.String(jtv) + } - var sv *types.AwsCodeBuildProjectVpcConfig - if *v == nil { - sv = &types.AwsCodeBuildProjectVpcConfig{} - } else { - sv = *v - } + case "S3KeyPrefix": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.S3KeyPrefix = ptr.String(jtv) + } - for key, value := range shape { - switch key { - case "SecurityGroupIds": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SecurityGroupIds, value); err != nil { - return err + case "SnsTopicArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.SnsTopicArn = ptr.String(jtv) } - case "Subnets": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Subnets, value); err != nil { - return err + case "SnsTopicName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.SnsTopicName = ptr.String(jtv) } - case "VpcId": + case "TrailArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.VpcId = ptr.String(jtv) + sv.TrailArn = ptr.String(jtv) } default: @@ -10953,7 +11137,7 @@ func awsRestjson1_deserializeDocumentAwsCodeBuildProjectVpcConfig(v **types.AwsC return nil } -func awsRestjson1_deserializeDocumentAwsCorsConfiguration(v **types.AwsCorsConfiguration, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCodeBuildProjectDetails(v **types.AwsCodeBuildProjectDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -10966,55 +11150,55 @@ func awsRestjson1_deserializeDocumentAwsCorsConfiguration(v **types.AwsCorsConfi return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCorsConfiguration + var sv *types.AwsCodeBuildProjectDetails if *v == nil { - sv = &types.AwsCorsConfiguration{} + sv = &types.AwsCodeBuildProjectDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "AllowCredentials": + case "EncryptionKey": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.AllowCredentials = jtv + sv.EncryptionKey = ptr.String(jtv) } - case "AllowHeaders": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.AllowHeaders, value); err != nil { + case "Environment": + if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironment(&sv.Environment, value); err != nil { return err } - case "AllowMethods": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.AllowMethods, value); err != nil { - return err + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) } - case "AllowOrigins": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.AllowOrigins, value); err != nil { - return err + case "ServiceRole": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ServiceRole = ptr.String(jtv) } - case "ExposeHeaders": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.ExposeHeaders, value); err != nil { + case "Source": + if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectSource(&sv.Source, value); err != nil { return err } - case "MaxAge": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.MaxAge = int32(i64) + case "VpcConfig": + if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectVpcConfig(&sv.VpcConfig, value); err != nil { + return err } default: @@ -11026,7 +11210,7 @@ func awsRestjson1_deserializeDocumentAwsCorsConfiguration(v **types.AwsCorsConfi return nil } -func awsRestjson1_deserializeDocumentAwsDynamoDbTableAttributeDefinition(v **types.AwsDynamoDbTableAttributeDefinition, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironment(v **types.AwsCodeBuildProjectEnvironment, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11039,31 +11223,45 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableAttributeDefinition(v **typ return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsDynamoDbTableAttributeDefinition + var sv *types.AwsCodeBuildProjectEnvironment if *v == nil { - sv = &types.AwsDynamoDbTableAttributeDefinition{} + sv = &types.AwsCodeBuildProjectEnvironment{} } else { sv = *v } for key, value := range shape { switch key { - case "AttributeName": + case "Certificate": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.AttributeName = ptr.String(jtv) + sv.Certificate = ptr.String(jtv) } - case "AttributeType": + case "ImagePullCredentialsType": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.AttributeType = ptr.String(jtv) + sv.ImagePullCredentialsType = ptr.String(jtv) + } + + case "RegistryCredential": + if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentRegistryCredential(&sv.RegistryCredential, value); err != nil { + return err + } + + case "Type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Type = ptr.String(jtv) } default: @@ -11075,41 +11273,7 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableAttributeDefinition(v **typ return nil } -func awsRestjson1_deserializeDocumentAwsDynamoDbTableAttributeDefinitionList(v *[]types.AwsDynamoDbTableAttributeDefinition, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var cv []types.AwsDynamoDbTableAttributeDefinition - if *v == nil { - cv = []types.AwsDynamoDbTableAttributeDefinition{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.AwsDynamoDbTableAttributeDefinition - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableAttributeDefinition(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsRestjson1_deserializeDocumentAwsDynamoDbTableBillingModeSummary(v **types.AwsDynamoDbTableBillingModeSummary, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentRegistryCredential(v **types.AwsCodeBuildProjectEnvironmentRegistryCredential, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11122,31 +11286,31 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableBillingModeSummary(v **type return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsDynamoDbTableBillingModeSummary + var sv *types.AwsCodeBuildProjectEnvironmentRegistryCredential if *v == nil { - sv = &types.AwsDynamoDbTableBillingModeSummary{} + sv = &types.AwsCodeBuildProjectEnvironmentRegistryCredential{} } else { sv = *v } for key, value := range shape { switch key { - case "BillingMode": + case "Credential": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.BillingMode = ptr.String(jtv) + sv.Credential = ptr.String(jtv) } - case "LastUpdateToPayPerRequestDateTime": + case "CredentialProvider": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.LastUpdateToPayPerRequestDateTime = ptr.String(jtv) + sv.CredentialProvider = ptr.String(jtv) } default: @@ -11158,7 +11322,7 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableBillingModeSummary(v **type return nil } -func awsRestjson1_deserializeDocumentAwsDynamoDbTableDetails(v **types.AwsDynamoDbTableDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCodeBuildProjectSource(v **types.AwsCodeBuildProjectSource, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11171,49 +11335,16 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableDetails(v **types.AwsDynamo return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsDynamoDbTableDetails + var sv *types.AwsCodeBuildProjectSource if *v == nil { - sv = &types.AwsDynamoDbTableDetails{} + sv = &types.AwsCodeBuildProjectSource{} } else { sv = *v } for key, value := range shape { switch key { - case "AttributeDefinitions": - if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableAttributeDefinitionList(&sv.AttributeDefinitions, value); err != nil { - return err - } - - case "BillingModeSummary": - if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableBillingModeSummary(&sv.BillingModeSummary, value); err != nil { - return err - } - - case "CreationDateTime": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.CreationDateTime = ptr.String(jtv) - } - - case "GlobalSecondaryIndexes": - if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableGlobalSecondaryIndexList(&sv.GlobalSecondaryIndexes, value); err != nil { - return err - } - - case "GlobalTableVersion": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.GlobalTableVersion = ptr.String(jtv) - } - - case "ItemCount": + case "GitCloneDepth": if value != nil { jtv, ok := value.(json.Number) if !ok { @@ -11223,100 +11354,34 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableDetails(v **types.AwsDynamo if err != nil { return err } - sv.ItemCount = int32(i64) - } - - case "KeySchema": - if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableKeySchemaList(&sv.KeySchema, value); err != nil { - return err - } - - case "LatestStreamArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.LatestStreamArn = ptr.String(jtv) - } - - case "LatestStreamLabel": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.LatestStreamLabel = ptr.String(jtv) - } - - case "LocalSecondaryIndexes": - if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableLocalSecondaryIndexList(&sv.LocalSecondaryIndexes, value); err != nil { - return err - } - - case "ProvisionedThroughput": - if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableProvisionedThroughput(&sv.ProvisionedThroughput, value); err != nil { - return err - } - - case "Replicas": - if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableReplicaList(&sv.Replicas, value); err != nil { - return err - } - - case "RestoreSummary": - if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableRestoreSummary(&sv.RestoreSummary, value); err != nil { - return err - } - - case "SseDescription": - if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableSseDescription(&sv.SseDescription, value); err != nil { - return err - } - - case "StreamSpecification": - if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableStreamSpecification(&sv.StreamSpecification, value); err != nil { - return err + sv.GitCloneDepth = int32(i64) } - case "TableId": + case "InsecureSsl": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.TableId = ptr.String(jtv) + sv.InsecureSsl = jtv } - case "TableName": + case "Location": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.TableName = ptr.String(jtv) - } - - case "TableSizeBytes": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected SizeBytes to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.TableSizeBytes = i64 + sv.Location = ptr.String(jtv) } - case "TableStatus": + case "Type": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.TableStatus = ptr.String(jtv) + sv.Type = ptr.String(jtv) } default: @@ -11328,7 +11393,7 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableDetails(v **types.AwsDynamo return nil } -func awsRestjson1_deserializeDocumentAwsDynamoDbTableGlobalSecondaryIndex(v **types.AwsDynamoDbTableGlobalSecondaryIndex, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCodeBuildProjectVpcConfig(v **types.AwsCodeBuildProjectVpcConfig, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11341,90 +11406,32 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableGlobalSecondaryIndex(v **ty return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsDynamoDbTableGlobalSecondaryIndex + var sv *types.AwsCodeBuildProjectVpcConfig if *v == nil { - sv = &types.AwsDynamoDbTableGlobalSecondaryIndex{} + sv = &types.AwsCodeBuildProjectVpcConfig{} } else { sv = *v } for key, value := range shape { switch key { - case "Backfilling": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.Backfilling = jtv + case "SecurityGroupIds": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SecurityGroupIds, value); err != nil { + return err } - case "IndexArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.IndexArn = ptr.String(jtv) - } - - case "IndexName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.IndexName = ptr.String(jtv) - } - - case "IndexSizeBytes": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected SizeBytes to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.IndexSizeBytes = i64 + case "Subnets": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Subnets, value); err != nil { + return err } - case "IndexStatus": + case "VpcId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.IndexStatus = ptr.String(jtv) - } - - case "ItemCount": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.ItemCount = int32(i64) - } - - case "KeySchema": - if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableKeySchemaList(&sv.KeySchema, value); err != nil { - return err - } - - case "Projection": - if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableProjection(&sv.Projection, value); err != nil { - return err - } - - case "ProvisionedThroughput": - if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableProvisionedThroughput(&sv.ProvisionedThroughput, value); err != nil { - return err + sv.VpcId = ptr.String(jtv) } default: @@ -11436,41 +11443,7 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableGlobalSecondaryIndex(v **ty return nil } -func awsRestjson1_deserializeDocumentAwsDynamoDbTableGlobalSecondaryIndexList(v *[]types.AwsDynamoDbTableGlobalSecondaryIndex, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var cv []types.AwsDynamoDbTableGlobalSecondaryIndex - if *v == nil { - cv = []types.AwsDynamoDbTableGlobalSecondaryIndex{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.AwsDynamoDbTableGlobalSecondaryIndex - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableGlobalSecondaryIndex(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsRestjson1_deserializeDocumentAwsDynamoDbTableKeySchema(v **types.AwsDynamoDbTableKeySchema, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCorsConfiguration(v **types.AwsCorsConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11483,31 +11456,55 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableKeySchema(v **types.AwsDyna return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsDynamoDbTableKeySchema + var sv *types.AwsCorsConfiguration if *v == nil { - sv = &types.AwsDynamoDbTableKeySchema{} + sv = &types.AwsCorsConfiguration{} } else { sv = *v } for key, value := range shape { switch key { - case "AttributeName": + case "AllowCredentials": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.AttributeName = ptr.String(jtv) + sv.AllowCredentials = jtv } - case "KeyType": + case "AllowHeaders": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.AllowHeaders, value); err != nil { + return err + } + + case "AllowMethods": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.AllowMethods, value); err != nil { + return err + } + + case "AllowOrigins": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.AllowOrigins, value); err != nil { + return err + } + + case "ExposeHeaders": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.ExposeHeaders, value); err != nil { + return err + } + + case "MaxAge": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.KeyType = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.MaxAge = int32(i64) } default: @@ -11519,41 +11516,7 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableKeySchema(v **types.AwsDyna return nil } -func awsRestjson1_deserializeDocumentAwsDynamoDbTableKeySchemaList(v *[]types.AwsDynamoDbTableKeySchema, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var cv []types.AwsDynamoDbTableKeySchema - if *v == nil { - cv = []types.AwsDynamoDbTableKeySchema{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.AwsDynamoDbTableKeySchema - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableKeySchema(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsRestjson1_deserializeDocumentAwsDynamoDbTableLocalSecondaryIndex(v **types.AwsDynamoDbTableLocalSecondaryIndex, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsDynamoDbTableAttributeDefinition(v **types.AwsDynamoDbTableAttributeDefinition, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11566,41 +11529,31 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableLocalSecondaryIndex(v **typ return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsDynamoDbTableLocalSecondaryIndex + var sv *types.AwsDynamoDbTableAttributeDefinition if *v == nil { - sv = &types.AwsDynamoDbTableLocalSecondaryIndex{} + sv = &types.AwsDynamoDbTableAttributeDefinition{} } else { sv = *v } for key, value := range shape { switch key { - case "IndexArn": + case "AttributeName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.IndexArn = ptr.String(jtv) + sv.AttributeName = ptr.String(jtv) } - case "IndexName": + case "AttributeType": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.IndexName = ptr.String(jtv) - } - - case "KeySchema": - if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableKeySchemaList(&sv.KeySchema, value); err != nil { - return err - } - - case "Projection": - if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableProjection(&sv.Projection, value); err != nil { - return err + sv.AttributeType = ptr.String(jtv) } default: @@ -11612,7 +11565,7 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableLocalSecondaryIndex(v **typ return nil } -func awsRestjson1_deserializeDocumentAwsDynamoDbTableLocalSecondaryIndexList(v *[]types.AwsDynamoDbTableLocalSecondaryIndex, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsDynamoDbTableAttributeDefinitionList(v *[]types.AwsDynamoDbTableAttributeDefinition, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11625,17 +11578,17 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableLocalSecondaryIndexList(v * return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsDynamoDbTableLocalSecondaryIndex + var cv []types.AwsDynamoDbTableAttributeDefinition if *v == nil { - cv = []types.AwsDynamoDbTableLocalSecondaryIndex{} + cv = []types.AwsDynamoDbTableAttributeDefinition{} } else { cv = *v } for _, value := range shape { - var col types.AwsDynamoDbTableLocalSecondaryIndex + var col types.AwsDynamoDbTableAttributeDefinition destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableLocalSecondaryIndex(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableAttributeDefinition(&destAddr, value); err != nil { return err } col = *destAddr @@ -11646,7 +11599,7 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableLocalSecondaryIndexList(v * return nil } -func awsRestjson1_deserializeDocumentAwsDynamoDbTableProjection(v **types.AwsDynamoDbTableProjection, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsDynamoDbTableBillingModeSummary(v **types.AwsDynamoDbTableBillingModeSummary, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11659,27 +11612,31 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableProjection(v **types.AwsDyn return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsDynamoDbTableProjection + var sv *types.AwsDynamoDbTableBillingModeSummary if *v == nil { - sv = &types.AwsDynamoDbTableProjection{} + sv = &types.AwsDynamoDbTableBillingModeSummary{} } else { sv = *v } for key, value := range shape { switch key { - case "NonKeyAttributes": - if err := awsRestjson1_deserializeDocumentStringList(&sv.NonKeyAttributes, value); err != nil { - return err + case "BillingMode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.BillingMode = ptr.String(jtv) } - case "ProjectionType": + case "LastUpdateToPayPerRequestDateTime": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ProjectionType = ptr.String(jtv) + sv.LastUpdateToPayPerRequestDateTime = ptr.String(jtv) } default: @@ -11691,7 +11648,7 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableProjection(v **types.AwsDyn return nil } -func awsRestjson1_deserializeDocumentAwsDynamoDbTableProvisionedThroughput(v **types.AwsDynamoDbTableProvisionedThroughput, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsDynamoDbTableDetails(v **types.AwsDynamoDbTableDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11704,34 +11661,49 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableProvisionedThroughput(v **t return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsDynamoDbTableProvisionedThroughput + var sv *types.AwsDynamoDbTableDetails if *v == nil { - sv = &types.AwsDynamoDbTableProvisionedThroughput{} + sv = &types.AwsDynamoDbTableDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "LastDecreaseDateTime": + case "AttributeDefinitions": + if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableAttributeDefinitionList(&sv.AttributeDefinitions, value); err != nil { + return err + } + + case "BillingModeSummary": + if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableBillingModeSummary(&sv.BillingModeSummary, value); err != nil { + return err + } + + case "CreationDateTime": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.LastDecreaseDateTime = ptr.String(jtv) + sv.CreationDateTime = ptr.String(jtv) } - case "LastIncreaseDateTime": + case "GlobalSecondaryIndexes": + if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableGlobalSecondaryIndexList(&sv.GlobalSecondaryIndexes, value); err != nil { + return err + } + + case "GlobalTableVersion": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.LastIncreaseDateTime = ptr.String(jtv) + sv.GlobalTableVersion = ptr.String(jtv) } - case "NumberOfDecreasesToday": + case "ItemCount": if value != nil { jtv, ok := value.(json.Number) if !ok { @@ -11741,77 +11713,100 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableProvisionedThroughput(v **t if err != nil { return err } - sv.NumberOfDecreasesToday = int32(i64) + sv.ItemCount = int32(i64) } - case "ReadCapacityUnits": + case "KeySchema": + if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableKeySchemaList(&sv.KeySchema, value); err != nil { + return err + } + + case "LatestStreamArn": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ReadCapacityUnits = int32(i64) + sv.LatestStreamArn = ptr.String(jtv) } - case "WriteCapacityUnits": + case "LatestStreamLabel": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.WriteCapacityUnits = int32(i64) + sv.LatestStreamLabel = ptr.String(jtv) } - default: - _, _ = key, value + case "LocalSecondaryIndexes": + if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableLocalSecondaryIndexList(&sv.LocalSecondaryIndexes, value); err != nil { + return err + } - } - } - *v = sv - return nil -} + case "ProvisionedThroughput": + if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableProvisionedThroughput(&sv.ProvisionedThroughput, value); err != nil { + return err + } -func awsRestjson1_deserializeDocumentAwsDynamoDbTableProvisionedThroughputOverride(v **types.AwsDynamoDbTableProvisionedThroughputOverride, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } + case "Replicas": + if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableReplicaList(&sv.Replicas, value); err != nil { + return err + } - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + case "RestoreSummary": + if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableRestoreSummary(&sv.RestoreSummary, value); err != nil { + return err + } - var sv *types.AwsDynamoDbTableProvisionedThroughputOverride - if *v == nil { - sv = &types.AwsDynamoDbTableProvisionedThroughputOverride{} - } else { - sv = *v - } + case "SseDescription": + if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableSseDescription(&sv.SseDescription, value); err != nil { + return err + } - for key, value := range shape { - switch key { - case "ReadCapacityUnits": + case "StreamSpecification": + if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableStreamSpecification(&sv.StreamSpecification, value); err != nil { + return err + } + + case "TableId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.TableId = ptr.String(jtv) + } + + case "TableName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.TableName = ptr.String(jtv) + } + + case "TableSizeBytes": if value != nil { jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + return fmt.Errorf("expected SizeBytes to be json.Number, got %T instead", value) } i64, err := jtv.Int64() if err != nil { return err } - sv.ReadCapacityUnits = int32(i64) + sv.TableSizeBytes = i64 + } + + case "TableStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.TableStatus = ptr.String(jtv) } default: @@ -11823,7 +11818,7 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableProvisionedThroughputOverri return nil } -func awsRestjson1_deserializeDocumentAwsDynamoDbTableReplica(v **types.AwsDynamoDbTableReplica, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsDynamoDbTableGlobalSecondaryIndex(v **types.AwsDynamoDbTableGlobalSecondaryIndex, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11836,59 +11831,90 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableReplica(v **types.AwsDynamo return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsDynamoDbTableReplica + var sv *types.AwsDynamoDbTableGlobalSecondaryIndex if *v == nil { - sv = &types.AwsDynamoDbTableReplica{} + sv = &types.AwsDynamoDbTableGlobalSecondaryIndex{} } else { sv = *v } for key, value := range shape { switch key { - case "GlobalSecondaryIndexes": - if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableReplicaGlobalSecondaryIndexList(&sv.GlobalSecondaryIndexes, value); err != nil { - return err + case "Backfilling": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.Backfilling = jtv } - case "KmsMasterKeyId": + case "IndexArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.KmsMasterKeyId = ptr.String(jtv) - } - - case "ProvisionedThroughputOverride": - if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableProvisionedThroughputOverride(&sv.ProvisionedThroughputOverride, value); err != nil { - return err + sv.IndexArn = ptr.String(jtv) } - case "RegionName": + case "IndexName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.RegionName = ptr.String(jtv) + sv.IndexName = ptr.String(jtv) } - case "ReplicaStatus": + case "IndexSizeBytes": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected SizeBytes to be json.Number, got %T instead", value) } - sv.ReplicaStatus = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.IndexSizeBytes = i64 } - case "ReplicaStatusDescription": + case "IndexStatus": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ReplicaStatusDescription = ptr.String(jtv) + sv.IndexStatus = ptr.String(jtv) + } + + case "ItemCount": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ItemCount = int32(i64) + } + + case "KeySchema": + if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableKeySchemaList(&sv.KeySchema, value); err != nil { + return err + } + + case "Projection": + if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableProjection(&sv.Projection, value); err != nil { + return err + } + + case "ProvisionedThroughput": + if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableProvisionedThroughput(&sv.ProvisionedThroughput, value); err != nil { + return err } default: @@ -11900,7 +11926,41 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableReplica(v **types.AwsDynamo return nil } -func awsRestjson1_deserializeDocumentAwsDynamoDbTableReplicaGlobalSecondaryIndex(v **types.AwsDynamoDbTableReplicaGlobalSecondaryIndex, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsDynamoDbTableGlobalSecondaryIndexList(v *[]types.AwsDynamoDbTableGlobalSecondaryIndex, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsDynamoDbTableGlobalSecondaryIndex + if *v == nil { + cv = []types.AwsDynamoDbTableGlobalSecondaryIndex{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsDynamoDbTableGlobalSecondaryIndex + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableGlobalSecondaryIndex(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsDynamoDbTableKeySchema(v **types.AwsDynamoDbTableKeySchema, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11913,27 +11973,31 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableReplicaGlobalSecondaryIndex return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsDynamoDbTableReplicaGlobalSecondaryIndex + var sv *types.AwsDynamoDbTableKeySchema if *v == nil { - sv = &types.AwsDynamoDbTableReplicaGlobalSecondaryIndex{} + sv = &types.AwsDynamoDbTableKeySchema{} } else { sv = *v } for key, value := range shape { switch key { - case "IndexName": + case "AttributeName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.IndexName = ptr.String(jtv) + sv.AttributeName = ptr.String(jtv) } - case "ProvisionedThroughputOverride": - if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableProvisionedThroughputOverride(&sv.ProvisionedThroughputOverride, value); err != nil { - return err + case "KeyType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.KeyType = ptr.String(jtv) } default: @@ -11945,7 +12009,7 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableReplicaGlobalSecondaryIndex return nil } -func awsRestjson1_deserializeDocumentAwsDynamoDbTableReplicaGlobalSecondaryIndexList(v *[]types.AwsDynamoDbTableReplicaGlobalSecondaryIndex, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsDynamoDbTableKeySchemaList(v *[]types.AwsDynamoDbTableKeySchema, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11958,17 +12022,17 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableReplicaGlobalSecondaryIndex return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsDynamoDbTableReplicaGlobalSecondaryIndex + var cv []types.AwsDynamoDbTableKeySchema if *v == nil { - cv = []types.AwsDynamoDbTableReplicaGlobalSecondaryIndex{} + cv = []types.AwsDynamoDbTableKeySchema{} } else { cv = *v } for _, value := range shape { - var col types.AwsDynamoDbTableReplicaGlobalSecondaryIndex + var col types.AwsDynamoDbTableKeySchema destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableReplicaGlobalSecondaryIndex(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableKeySchema(&destAddr, value); err != nil { return err } col = *destAddr @@ -11979,7 +12043,66 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableReplicaGlobalSecondaryIndex return nil } -func awsRestjson1_deserializeDocumentAwsDynamoDbTableReplicaList(v *[]types.AwsDynamoDbTableReplica, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsDynamoDbTableLocalSecondaryIndex(v **types.AwsDynamoDbTableLocalSecondaryIndex, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsDynamoDbTableLocalSecondaryIndex + if *v == nil { + sv = &types.AwsDynamoDbTableLocalSecondaryIndex{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "IndexArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.IndexArn = ptr.String(jtv) + } + + case "IndexName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.IndexName = ptr.String(jtv) + } + + case "KeySchema": + if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableKeySchemaList(&sv.KeySchema, value); err != nil { + return err + } + + case "Projection": + if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableProjection(&sv.Projection, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsDynamoDbTableLocalSecondaryIndexList(v *[]types.AwsDynamoDbTableLocalSecondaryIndex, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11992,17 +12115,17 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableReplicaList(v *[]types.AwsD return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsDynamoDbTableReplica + var cv []types.AwsDynamoDbTableLocalSecondaryIndex if *v == nil { - cv = []types.AwsDynamoDbTableReplica{} + cv = []types.AwsDynamoDbTableLocalSecondaryIndex{} } else { cv = *v } for _, value := range shape { - var col types.AwsDynamoDbTableReplica + var col types.AwsDynamoDbTableLocalSecondaryIndex destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableReplica(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableLocalSecondaryIndex(&destAddr, value); err != nil { return err } col = *destAddr @@ -12013,7 +12136,7 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableReplicaList(v *[]types.AwsD return nil } -func awsRestjson1_deserializeDocumentAwsDynamoDbTableRestoreSummary(v **types.AwsDynamoDbTableRestoreSummary, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsDynamoDbTableProjection(v **types.AwsDynamoDbTableProjection, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -12026,49 +12149,27 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableRestoreSummary(v **types.Aw return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsDynamoDbTableRestoreSummary + var sv *types.AwsDynamoDbTableProjection if *v == nil { - sv = &types.AwsDynamoDbTableRestoreSummary{} + sv = &types.AwsDynamoDbTableProjection{} } else { sv = *v } for key, value := range shape { switch key { - case "RestoreDateTime": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.RestoreDateTime = ptr.String(jtv) - } - - case "RestoreInProgress": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.RestoreInProgress = jtv - } - - case "SourceBackupArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.SourceBackupArn = ptr.String(jtv) + case "NonKeyAttributes": + if err := awsRestjson1_deserializeDocumentStringList(&sv.NonKeyAttributes, value); err != nil { + return err } - case "SourceTableArn": + case "ProjectionType": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.SourceTableArn = ptr.String(jtv) + sv.ProjectionType = ptr.String(jtv) } default: @@ -12080,7 +12181,7 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableRestoreSummary(v **types.Aw return nil } -func awsRestjson1_deserializeDocumentAwsDynamoDbTableSseDescription(v **types.AwsDynamoDbTableSseDescription, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsDynamoDbTableProvisionedThroughput(v **types.AwsDynamoDbTableProvisionedThroughput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -12093,49 +12194,70 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableSseDescription(v **types.Aw return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsDynamoDbTableSseDescription + var sv *types.AwsDynamoDbTableProvisionedThroughput if *v == nil { - sv = &types.AwsDynamoDbTableSseDescription{} + sv = &types.AwsDynamoDbTableProvisionedThroughput{} } else { sv = *v } for key, value := range shape { switch key { - case "InaccessibleEncryptionDateTime": + case "LastDecreaseDateTime": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.InaccessibleEncryptionDateTime = ptr.String(jtv) + sv.LastDecreaseDateTime = ptr.String(jtv) } - case "KmsMasterKeyArn": + case "LastIncreaseDateTime": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.KmsMasterKeyArn = ptr.String(jtv) + sv.LastIncreaseDateTime = ptr.String(jtv) } - case "SseType": + case "NumberOfDecreasesToday": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.SseType = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.NumberOfDecreasesToday = int32(i64) } - case "Status": + case "ReadCapacityUnits": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.Status = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ReadCapacityUnits = int32(i64) + } + + case "WriteCapacityUnits": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.WriteCapacityUnits = int32(i64) } default: @@ -12147,7 +12269,7 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableSseDescription(v **types.Aw return nil } -func awsRestjson1_deserializeDocumentAwsDynamoDbTableStreamSpecification(v **types.AwsDynamoDbTableStreamSpecification, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsDynamoDbTableProvisionedThroughputOverride(v **types.AwsDynamoDbTableProvisionedThroughputOverride, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -12160,31 +12282,26 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableStreamSpecification(v **typ return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsDynamoDbTableStreamSpecification + var sv *types.AwsDynamoDbTableProvisionedThroughputOverride if *v == nil { - sv = &types.AwsDynamoDbTableStreamSpecification{} + sv = &types.AwsDynamoDbTableProvisionedThroughputOverride{} } else { sv = *v } for key, value := range shape { switch key { - case "StreamEnabled": + case "ReadCapacityUnits": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.StreamEnabled = jtv - } - - case "StreamViewType": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + i64, err := jtv.Int64() + if err != nil { + return err } - sv.StreamViewType = ptr.String(jtv) + sv.ReadCapacityUnits = int32(i64) } default: @@ -12196,7 +12313,7 @@ func awsRestjson1_deserializeDocumentAwsDynamoDbTableStreamSpecification(v **typ return nil } -func awsRestjson1_deserializeDocumentAwsEc2EipDetails(v **types.AwsEc2EipDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsDynamoDbTableReplica(v **types.AwsDynamoDbTableReplica, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -12209,103 +12326,239 @@ func awsRestjson1_deserializeDocumentAwsEc2EipDetails(v **types.AwsEc2EipDetails return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEc2EipDetails + var sv *types.AwsDynamoDbTableReplica if *v == nil { - sv = &types.AwsEc2EipDetails{} + sv = &types.AwsDynamoDbTableReplica{} } else { sv = *v } for key, value := range shape { switch key { - case "AllocationId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.AllocationId = ptr.String(jtv) + case "GlobalSecondaryIndexes": + if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableReplicaGlobalSecondaryIndexList(&sv.GlobalSecondaryIndexes, value); err != nil { + return err } - case "AssociationId": + case "KmsMasterKeyId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.AssociationId = ptr.String(jtv) + sv.KmsMasterKeyId = ptr.String(jtv) } - case "Domain": + case "ProvisionedThroughputOverride": + if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableProvisionedThroughputOverride(&sv.ProvisionedThroughputOverride, value); err != nil { + return err + } + + case "RegionName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Domain = ptr.String(jtv) + sv.RegionName = ptr.String(jtv) } - case "InstanceId": + case "ReplicaStatus": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.InstanceId = ptr.String(jtv) + sv.ReplicaStatus = ptr.String(jtv) } - case "NetworkBorderGroup": + case "ReplicaStatusDescription": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.NetworkBorderGroup = ptr.String(jtv) + sv.ReplicaStatusDescription = ptr.String(jtv) } - case "NetworkInterfaceId": + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsDynamoDbTableReplicaGlobalSecondaryIndex(v **types.AwsDynamoDbTableReplicaGlobalSecondaryIndex, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsDynamoDbTableReplicaGlobalSecondaryIndex + if *v == nil { + sv = &types.AwsDynamoDbTableReplicaGlobalSecondaryIndex{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "IndexName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.NetworkInterfaceId = ptr.String(jtv) + sv.IndexName = ptr.String(jtv) } - case "NetworkInterfaceOwnerId": - if value != nil { + case "ProvisionedThroughputOverride": + if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableProvisionedThroughputOverride(&sv.ProvisionedThroughputOverride, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsDynamoDbTableReplicaGlobalSecondaryIndexList(v *[]types.AwsDynamoDbTableReplicaGlobalSecondaryIndex, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsDynamoDbTableReplicaGlobalSecondaryIndex + if *v == nil { + cv = []types.AwsDynamoDbTableReplicaGlobalSecondaryIndex{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsDynamoDbTableReplicaGlobalSecondaryIndex + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableReplicaGlobalSecondaryIndex(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsDynamoDbTableReplicaList(v *[]types.AwsDynamoDbTableReplica, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsDynamoDbTableReplica + if *v == nil { + cv = []types.AwsDynamoDbTableReplica{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsDynamoDbTableReplica + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableReplica(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsDynamoDbTableRestoreSummary(v **types.AwsDynamoDbTableRestoreSummary, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsDynamoDbTableRestoreSummary + if *v == nil { + sv = &types.AwsDynamoDbTableRestoreSummary{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "RestoreDateTime": + if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.NetworkInterfaceOwnerId = ptr.String(jtv) + sv.RestoreDateTime = ptr.String(jtv) } - case "PrivateIpAddress": + case "RestoreInProgress": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.PrivateIpAddress = ptr.String(jtv) + sv.RestoreInProgress = jtv } - case "PublicIp": + case "SourceBackupArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PublicIp = ptr.String(jtv) + sv.SourceBackupArn = ptr.String(jtv) } - case "PublicIpv4Pool": + case "SourceTableArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PublicIpv4Pool = ptr.String(jtv) + sv.SourceTableArn = ptr.String(jtv) } default: @@ -12317,7 +12570,7 @@ func awsRestjson1_deserializeDocumentAwsEc2EipDetails(v **types.AwsEc2EipDetails return nil } -func awsRestjson1_deserializeDocumentAwsEc2InstanceDetails(v **types.AwsEc2InstanceDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsDynamoDbTableSseDescription(v **types.AwsDynamoDbTableSseDescription, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -12330,91 +12583,49 @@ func awsRestjson1_deserializeDocumentAwsEc2InstanceDetails(v **types.AwsEc2Insta return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEc2InstanceDetails + var sv *types.AwsDynamoDbTableSseDescription if *v == nil { - sv = &types.AwsEc2InstanceDetails{} + sv = &types.AwsDynamoDbTableSseDescription{} } else { sv = *v } for key, value := range shape { switch key { - case "IamInstanceProfileArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.IamInstanceProfileArn = ptr.String(jtv) - } - - case "ImageId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.ImageId = ptr.String(jtv) - } - - case "IpV4Addresses": - if err := awsRestjson1_deserializeDocumentStringList(&sv.IpV4Addresses, value); err != nil { - return err - } - - case "IpV6Addresses": - if err := awsRestjson1_deserializeDocumentStringList(&sv.IpV6Addresses, value); err != nil { - return err - } - - case "KeyName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.KeyName = ptr.String(jtv) - } - - case "LaunchedAt": + case "InaccessibleEncryptionDateTime": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.LaunchedAt = ptr.String(jtv) - } - - case "NetworkInterfaces": - if err := awsRestjson1_deserializeDocumentAwsEc2InstanceNetworkInterfacesList(&sv.NetworkInterfaces, value); err != nil { - return err + sv.InaccessibleEncryptionDateTime = ptr.String(jtv) } - case "SubnetId": + case "KmsMasterKeyArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.SubnetId = ptr.String(jtv) + sv.KmsMasterKeyArn = ptr.String(jtv) } - case "Type": + case "SseType": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Type = ptr.String(jtv) + sv.SseType = ptr.String(jtv) } - case "VpcId": + case "Status": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.VpcId = ptr.String(jtv) + sv.Status = ptr.String(jtv) } default: @@ -12426,7 +12637,7 @@ func awsRestjson1_deserializeDocumentAwsEc2InstanceDetails(v **types.AwsEc2Insta return nil } -func awsRestjson1_deserializeDocumentAwsEc2InstanceNetworkInterfacesDetails(v **types.AwsEc2InstanceNetworkInterfacesDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsDynamoDbTableStreamSpecification(v **types.AwsDynamoDbTableStreamSpecification, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -12439,22 +12650,31 @@ func awsRestjson1_deserializeDocumentAwsEc2InstanceNetworkInterfacesDetails(v ** return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEc2InstanceNetworkInterfacesDetails + var sv *types.AwsDynamoDbTableStreamSpecification if *v == nil { - sv = &types.AwsEc2InstanceNetworkInterfacesDetails{} + sv = &types.AwsDynamoDbTableStreamSpecification{} } else { sv = *v } for key, value := range shape { switch key { - case "NetworkInterfaceId": + case "StreamEnabled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.StreamEnabled = jtv + } + + case "StreamViewType": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.NetworkInterfaceId = ptr.String(jtv) + sv.StreamViewType = ptr.String(jtv) } default: @@ -12466,41 +12686,7 @@ func awsRestjson1_deserializeDocumentAwsEc2InstanceNetworkInterfacesDetails(v ** return nil } -func awsRestjson1_deserializeDocumentAwsEc2InstanceNetworkInterfacesList(v *[]types.AwsEc2InstanceNetworkInterfacesDetails, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var cv []types.AwsEc2InstanceNetworkInterfacesDetails - if *v == nil { - cv = []types.AwsEc2InstanceNetworkInterfacesDetails{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.AwsEc2InstanceNetworkInterfacesDetails - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEc2InstanceNetworkInterfacesDetails(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsRestjson1_deserializeDocumentAwsEc2NetworkAclAssociation(v **types.AwsEc2NetworkAclAssociation, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2EipDetails(v **types.AwsEc2EipDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -12513,151 +12699,103 @@ func awsRestjson1_deserializeDocumentAwsEc2NetworkAclAssociation(v **types.AwsEc return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEc2NetworkAclAssociation + var sv *types.AwsEc2EipDetails if *v == nil { - sv = &types.AwsEc2NetworkAclAssociation{} + sv = &types.AwsEc2EipDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "NetworkAclAssociationId": + case "AllocationId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.NetworkAclAssociationId = ptr.String(jtv) + sv.AllocationId = ptr.String(jtv) } - case "NetworkAclId": + case "AssociationId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.NetworkAclId = ptr.String(jtv) + sv.AssociationId = ptr.String(jtv) } - case "SubnetId": + case "Domain": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.SubnetId = ptr.String(jtv) + sv.Domain = ptr.String(jtv) } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsEc2NetworkAclAssociationList(v *[]types.AwsEc2NetworkAclAssociation, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var cv []types.AwsEc2NetworkAclAssociation - if *v == nil { - cv = []types.AwsEc2NetworkAclAssociation{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.AwsEc2NetworkAclAssociation - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEc2NetworkAclAssociation(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsRestjson1_deserializeDocumentAwsEc2NetworkAclDetails(v **types.AwsEc2NetworkAclDetails, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.AwsEc2NetworkAclDetails - if *v == nil { - sv = &types.AwsEc2NetworkAclDetails{} - } else { - sv = *v - } + case "InstanceId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.InstanceId = ptr.String(jtv) + } - for key, value := range shape { - switch key { - case "Associations": - if err := awsRestjson1_deserializeDocumentAwsEc2NetworkAclAssociationList(&sv.Associations, value); err != nil { - return err + case "NetworkBorderGroup": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.NetworkBorderGroup = ptr.String(jtv) } - case "Entries": - if err := awsRestjson1_deserializeDocumentAwsEc2NetworkAclEntryList(&sv.Entries, value); err != nil { - return err + case "NetworkInterfaceId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.NetworkInterfaceId = ptr.String(jtv) } - case "IsDefault": + case "NetworkInterfaceOwnerId": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.IsDefault = jtv + sv.NetworkInterfaceOwnerId = ptr.String(jtv) } - case "NetworkAclId": + case "PrivateIpAddress": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.NetworkAclId = ptr.String(jtv) + sv.PrivateIpAddress = ptr.String(jtv) } - case "OwnerId": + case "PublicIp": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.OwnerId = ptr.String(jtv) + sv.PublicIp = ptr.String(jtv) } - case "VpcId": + case "PublicIpv4Pool": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.VpcId = ptr.String(jtv) + sv.PublicIpv4Pool = ptr.String(jtv) } default: @@ -12669,7 +12807,7 @@ func awsRestjson1_deserializeDocumentAwsEc2NetworkAclDetails(v **types.AwsEc2Net return nil } -func awsRestjson1_deserializeDocumentAwsEc2NetworkAclEntry(v **types.AwsEc2NetworkAclEntry, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2InstanceDetails(v **types.AwsEc2InstanceDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -12682,81 +12820,131 @@ func awsRestjson1_deserializeDocumentAwsEc2NetworkAclEntry(v **types.AwsEc2Netwo return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEc2NetworkAclEntry + var sv *types.AwsEc2InstanceDetails if *v == nil { - sv = &types.AwsEc2NetworkAclEntry{} + sv = &types.AwsEc2InstanceDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "CidrBlock": + case "IamInstanceProfileArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CidrBlock = ptr.String(jtv) + sv.IamInstanceProfileArn = ptr.String(jtv) } - case "Egress": + case "ImageId": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Egress = jtv + sv.ImageId = ptr.String(jtv) } - case "IcmpTypeCode": - if err := awsRestjson1_deserializeDocumentIcmpTypeCode(&sv.IcmpTypeCode, value); err != nil { + case "IpV4Addresses": + if err := awsRestjson1_deserializeDocumentStringList(&sv.IpV4Addresses, value); err != nil { return err } - case "Ipv6CidrBlock": + case "IpV6Addresses": + if err := awsRestjson1_deserializeDocumentStringList(&sv.IpV6Addresses, value); err != nil { + return err + } + + case "KeyName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Ipv6CidrBlock = ptr.String(jtv) + sv.KeyName = ptr.String(jtv) } - case "PortRange": - if err := awsRestjson1_deserializeDocumentPortRangeFromTo(&sv.PortRange, value); err != nil { + case "LaunchedAt": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.LaunchedAt = ptr.String(jtv) + } + + case "NetworkInterfaces": + if err := awsRestjson1_deserializeDocumentAwsEc2InstanceNetworkInterfacesList(&sv.NetworkInterfaces, value); err != nil { return err } - case "Protocol": + case "SubnetId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Protocol = ptr.String(jtv) + sv.SubnetId = ptr.String(jtv) } - case "RuleAction": + case "Type": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.RuleAction = ptr.String(jtv) + sv.Type = ptr.String(jtv) } - case "RuleNumber": + case "VpcId": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - i64, err := jtv.Int64() - if err != nil { - return err + sv.VpcId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEc2InstanceNetworkInterfacesDetails(v **types.AwsEc2InstanceNetworkInterfacesDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsEc2InstanceNetworkInterfacesDetails + if *v == nil { + sv = &types.AwsEc2InstanceNetworkInterfacesDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "NetworkInterfaceId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.RuleNumber = int32(i64) + sv.NetworkInterfaceId = ptr.String(jtv) } default: @@ -12768,7 +12956,7 @@ func awsRestjson1_deserializeDocumentAwsEc2NetworkAclEntry(v **types.AwsEc2Netwo return nil } -func awsRestjson1_deserializeDocumentAwsEc2NetworkAclEntryList(v *[]types.AwsEc2NetworkAclEntry, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2InstanceNetworkInterfacesList(v *[]types.AwsEc2InstanceNetworkInterfacesDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -12781,17 +12969,17 @@ func awsRestjson1_deserializeDocumentAwsEc2NetworkAclEntryList(v *[]types.AwsEc2 return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsEc2NetworkAclEntry + var cv []types.AwsEc2InstanceNetworkInterfacesDetails if *v == nil { - cv = []types.AwsEc2NetworkAclEntry{} + cv = []types.AwsEc2InstanceNetworkInterfacesDetails{} } else { cv = *v } for _, value := range shape { - var col types.AwsEc2NetworkAclEntry + var col types.AwsEc2InstanceNetworkInterfacesDetails destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEc2NetworkAclEntry(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsEc2InstanceNetworkInterfacesDetails(&destAddr, value); err != nil { return err } col = *destAddr @@ -12802,7 +12990,7 @@ func awsRestjson1_deserializeDocumentAwsEc2NetworkAclEntryList(v *[]types.AwsEc2 return nil } -func awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceAttachment(v **types.AwsEc2NetworkInterfaceAttachment, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2NetworkAclAssociation(v **types.AwsEc2NetworkAclAssociation, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -12815,92 +13003,86 @@ func awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceAttachment(v **types. return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEc2NetworkInterfaceAttachment + var sv *types.AwsEc2NetworkAclAssociation if *v == nil { - sv = &types.AwsEc2NetworkInterfaceAttachment{} + sv = &types.AwsEc2NetworkAclAssociation{} } else { sv = *v } for key, value := range shape { switch key { - case "AttachmentId": + case "NetworkAclAssociationId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.AttachmentId = ptr.String(jtv) + sv.NetworkAclAssociationId = ptr.String(jtv) } - case "AttachTime": + case "NetworkAclId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.AttachTime = ptr.String(jtv) + sv.NetworkAclId = ptr.String(jtv) } - case "DeleteOnTermination": + case "SubnetId": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DeleteOnTermination = jtv + sv.SubnetId = ptr.String(jtv) } - case "DeviceIndex": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.DeviceIndex = int32(i64) - } + default: + _, _ = key, value - case "InstanceId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.InstanceId = ptr.String(jtv) - } + } + } + *v = sv + return nil +} - case "InstanceOwnerId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.InstanceOwnerId = ptr.String(jtv) - } +func awsRestjson1_deserializeDocumentAwsEc2NetworkAclAssociationList(v *[]types.AwsEc2NetworkAclAssociation, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } - case "Status": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Status = ptr.String(jtv) - } + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } - default: - _, _ = key, value + var cv []types.AwsEc2NetworkAclAssociation + if *v == nil { + cv = []types.AwsEc2NetworkAclAssociation{} + } else { + cv = *v + } + for _, value := range shape { + var col types.AwsEc2NetworkAclAssociation + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsEc2NetworkAclAssociation(&destAddr, value); err != nil { + return err } + col = *destAddr + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceDetails(v **types.AwsEc2NetworkInterfaceDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2NetworkAclDetails(v **types.AwsEc2NetworkAclDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -12913,69 +13095,59 @@ func awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceDetails(v **types.Aws return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEc2NetworkInterfaceDetails + var sv *types.AwsEc2NetworkAclDetails if *v == nil { - sv = &types.AwsEc2NetworkInterfaceDetails{} + sv = &types.AwsEc2NetworkAclDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Attachment": - if err := awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceAttachment(&sv.Attachment, value); err != nil { + case "Associations": + if err := awsRestjson1_deserializeDocumentAwsEc2NetworkAclAssociationList(&sv.Associations, value); err != nil { return err } - case "IpV6Addresses": - if err := awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceIpV6AddressList(&sv.IpV6Addresses, value); err != nil { + case "Entries": + if err := awsRestjson1_deserializeDocumentAwsEc2NetworkAclEntryList(&sv.Entries, value); err != nil { return err } - case "NetworkInterfaceId": + case "IsDefault": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.NetworkInterfaceId = ptr.String(jtv) - } - - case "PrivateIpAddresses": - if err := awsRestjson1_deserializeDocumentAwsEc2NetworkInterfacePrivateIpAddressList(&sv.PrivateIpAddresses, value); err != nil { - return err + sv.IsDefault = jtv } - case "PublicDnsName": + case "NetworkAclId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PublicDnsName = ptr.String(jtv) + sv.NetworkAclId = ptr.String(jtv) } - case "PublicIp": + case "OwnerId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PublicIp = ptr.String(jtv) - } - - case "SecurityGroups": - if err := awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceSecurityGroupList(&sv.SecurityGroups, value); err != nil { - return err + sv.OwnerId = ptr.String(jtv) } - case "SourceDestCheck": + case "VpcId": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.SourceDestCheck = jtv + sv.VpcId = ptr.String(jtv) } default: @@ -12987,7 +13159,7 @@ func awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceDetails(v **types.Aws return nil } -func awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceIpV6AddressDetail(v **types.AwsEc2NetworkInterfaceIpV6AddressDetail, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2NetworkAclEntry(v **types.AwsEc2NetworkAclEntry, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -13000,105 +13172,81 @@ func awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceIpV6AddressDetail(v * return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEc2NetworkInterfaceIpV6AddressDetail + var sv *types.AwsEc2NetworkAclEntry if *v == nil { - sv = &types.AwsEc2NetworkInterfaceIpV6AddressDetail{} + sv = &types.AwsEc2NetworkAclEntry{} } else { sv = *v } for key, value := range shape { switch key { - case "IpV6Address": + case "CidrBlock": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.IpV6Address = ptr.String(jtv) + sv.CidrBlock = ptr.String(jtv) } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceIpV6AddressList(v *[]types.AwsEc2NetworkInterfaceIpV6AddressDetail, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var cv []types.AwsEc2NetworkInterfaceIpV6AddressDetail - if *v == nil { - cv = []types.AwsEc2NetworkInterfaceIpV6AddressDetail{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.AwsEc2NetworkInterfaceIpV6AddressDetail - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceIpV6AddressDetail(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} + case "Egress": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.Egress = jtv + } -func awsRestjson1_deserializeDocumentAwsEc2NetworkInterfacePrivateIpAddressDetail(v **types.AwsEc2NetworkInterfacePrivateIpAddressDetail, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } + case "IcmpTypeCode": + if err := awsRestjson1_deserializeDocumentIcmpTypeCode(&sv.IcmpTypeCode, value); err != nil { + return err + } - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + case "Ipv6CidrBlock": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Ipv6CidrBlock = ptr.String(jtv) + } - var sv *types.AwsEc2NetworkInterfacePrivateIpAddressDetail - if *v == nil { - sv = &types.AwsEc2NetworkInterfacePrivateIpAddressDetail{} - } else { - sv = *v - } + case "PortRange": + if err := awsRestjson1_deserializeDocumentPortRangeFromTo(&sv.PortRange, value); err != nil { + return err + } - for key, value := range shape { - switch key { - case "PrivateDnsName": + case "Protocol": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PrivateDnsName = ptr.String(jtv) + sv.Protocol = ptr.String(jtv) } - case "PrivateIpAddress": + case "RuleAction": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PrivateIpAddress = ptr.String(jtv) + sv.RuleAction = ptr.String(jtv) + } + + case "RuleNumber": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.RuleNumber = int32(i64) } default: @@ -13110,7 +13258,7 @@ func awsRestjson1_deserializeDocumentAwsEc2NetworkInterfacePrivateIpAddressDetai return nil } -func awsRestjson1_deserializeDocumentAwsEc2NetworkInterfacePrivateIpAddressList(v *[]types.AwsEc2NetworkInterfacePrivateIpAddressDetail, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2NetworkAclEntryList(v *[]types.AwsEc2NetworkAclEntry, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -13123,17 +13271,17 @@ func awsRestjson1_deserializeDocumentAwsEc2NetworkInterfacePrivateIpAddressList( return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsEc2NetworkInterfacePrivateIpAddressDetail + var cv []types.AwsEc2NetworkAclEntry if *v == nil { - cv = []types.AwsEc2NetworkInterfacePrivateIpAddressDetail{} + cv = []types.AwsEc2NetworkAclEntry{} } else { cv = *v } for _, value := range shape { - var col types.AwsEc2NetworkInterfacePrivateIpAddressDetail + var col types.AwsEc2NetworkAclEntry destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEc2NetworkInterfacePrivateIpAddressDetail(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsEc2NetworkAclEntry(&destAddr, value); err != nil { return err } col = *destAddr @@ -13144,7 +13292,7 @@ func awsRestjson1_deserializeDocumentAwsEc2NetworkInterfacePrivateIpAddressList( return nil } -func awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceSecurityGroup(v **types.AwsEc2NetworkInterfaceSecurityGroup, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceAttachment(v **types.AwsEc2NetworkInterfaceAttachment, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -13157,77 +13305,92 @@ func awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceSecurityGroup(v **typ return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEc2NetworkInterfaceSecurityGroup + var sv *types.AwsEc2NetworkInterfaceAttachment if *v == nil { - sv = &types.AwsEc2NetworkInterfaceSecurityGroup{} + sv = &types.AwsEc2NetworkInterfaceAttachment{} } else { sv = *v } for key, value := range shape { switch key { - case "GroupId": + case "AttachmentId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.GroupId = ptr.String(jtv) + sv.AttachmentId = ptr.String(jtv) } - case "GroupName": + case "AttachTime": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.GroupName = ptr.String(jtv) + sv.AttachTime = ptr.String(jtv) } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} + case "DeleteOnTermination": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.DeleteOnTermination = jtv + } -func awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceSecurityGroupList(v *[]types.AwsEc2NetworkInterfaceSecurityGroup, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } + case "DeviceIndex": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.DeviceIndex = int32(i64) + } - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + case "InstanceId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.InstanceId = ptr.String(jtv) + } - var cv []types.AwsEc2NetworkInterfaceSecurityGroup - if *v == nil { - cv = []types.AwsEc2NetworkInterfaceSecurityGroup{} - } else { - cv = *v - } + case "InstanceOwnerId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.InstanceOwnerId = ptr.String(jtv) + } - for _, value := range shape { - var col types.AwsEc2NetworkInterfaceSecurityGroup - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceSecurityGroup(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Status = ptr.String(jtv) + } + + default: + _, _ = key, value + } } - *v = cv + *v = sv return nil } -func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupDetails(v **types.AwsEc2SecurityGroupDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceDetails(v **types.AwsEc2NetworkInterfaceDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -13240,59 +13403,69 @@ func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupDetails(v **types.AwsEc2 return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEc2SecurityGroupDetails + var sv *types.AwsEc2NetworkInterfaceDetails if *v == nil { - sv = &types.AwsEc2SecurityGroupDetails{} + sv = &types.AwsEc2NetworkInterfaceDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "GroupId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.GroupId = ptr.String(jtv) + case "Attachment": + if err := awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceAttachment(&sv.Attachment, value); err != nil { + return err } - case "GroupName": + case "IpV6Addresses": + if err := awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceIpV6AddressList(&sv.IpV6Addresses, value); err != nil { + return err + } + + case "NetworkInterfaceId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.GroupName = ptr.String(jtv) - } - - case "IpPermissions": - if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpPermissionList(&sv.IpPermissions, value); err != nil { - return err + sv.NetworkInterfaceId = ptr.String(jtv) } - case "IpPermissionsEgress": - if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpPermissionList(&sv.IpPermissionsEgress, value); err != nil { + case "PrivateIpAddresses": + if err := awsRestjson1_deserializeDocumentAwsEc2NetworkInterfacePrivateIpAddressList(&sv.PrivateIpAddresses, value); err != nil { return err } - case "OwnerId": + case "PublicDnsName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.OwnerId = ptr.String(jtv) + sv.PublicDnsName = ptr.String(jtv) } - case "VpcId": + case "PublicIp": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.VpcId = ptr.String(jtv) + sv.PublicIp = ptr.String(jtv) + } + + case "SecurityGroups": + if err := awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceSecurityGroupList(&sv.SecurityGroups, value); err != nil { + return err + } + + case "SourceDestCheck": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.SourceDestCheck = jtv } default: @@ -13304,7 +13477,7 @@ func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupDetails(v **types.AwsEc2 return nil } -func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpPermission(v **types.AwsEc2SecurityGroupIpPermission, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceIpV6AddressDetail(v **types.AwsEc2NetworkInterfaceIpV6AddressDetail, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -13317,68 +13490,22 @@ func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpPermission(v **types.A return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEc2SecurityGroupIpPermission + var sv *types.AwsEc2NetworkInterfaceIpV6AddressDetail if *v == nil { - sv = &types.AwsEc2SecurityGroupIpPermission{} + sv = &types.AwsEc2NetworkInterfaceIpV6AddressDetail{} } else { sv = *v } for key, value := range shape { switch key { - case "FromPort": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.FromPort = int32(i64) - } - - case "IpProtocol": + case "IpV6Address": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.IpProtocol = ptr.String(jtv) - } - - case "IpRanges": - if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpRangeList(&sv.IpRanges, value); err != nil { - return err - } - - case "Ipv6Ranges": - if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpv6RangeList(&sv.Ipv6Ranges, value); err != nil { - return err - } - - case "PrefixListIds": - if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupPrefixListIdList(&sv.PrefixListIds, value); err != nil { - return err - } - - case "ToPort": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.ToPort = int32(i64) - } - - case "UserIdGroupPairs": - if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupUserIdGroupPairList(&sv.UserIdGroupPairs, value); err != nil { - return err + sv.IpV6Address = ptr.String(jtv) } default: @@ -13390,7 +13517,7 @@ func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpPermission(v **types.A return nil } -func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpPermissionList(v *[]types.AwsEc2SecurityGroupIpPermission, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceIpV6AddressList(v *[]types.AwsEc2NetworkInterfaceIpV6AddressDetail, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -13403,17 +13530,17 @@ func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpPermissionList(v *[]ty return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsEc2SecurityGroupIpPermission + var cv []types.AwsEc2NetworkInterfaceIpV6AddressDetail if *v == nil { - cv = []types.AwsEc2SecurityGroupIpPermission{} + cv = []types.AwsEc2NetworkInterfaceIpV6AddressDetail{} } else { cv = *v } for _, value := range shape { - var col types.AwsEc2SecurityGroupIpPermission + var col types.AwsEc2NetworkInterfaceIpV6AddressDetail destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpPermission(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceIpV6AddressDetail(&destAddr, value); err != nil { return err } col = *destAddr @@ -13424,7 +13551,7 @@ func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpPermissionList(v *[]ty return nil } -func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpRange(v **types.AwsEc2SecurityGroupIpRange, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2NetworkInterfacePrivateIpAddressDetail(v **types.AwsEc2NetworkInterfacePrivateIpAddressDetail, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -13437,22 +13564,31 @@ func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpRange(v **types.AwsEc2 return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEc2SecurityGroupIpRange + var sv *types.AwsEc2NetworkInterfacePrivateIpAddressDetail if *v == nil { - sv = &types.AwsEc2SecurityGroupIpRange{} + sv = &types.AwsEc2NetworkInterfacePrivateIpAddressDetail{} } else { sv = *v } for key, value := range shape { switch key { - case "CidrIp": + case "PrivateDnsName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CidrIp = ptr.String(jtv) + sv.PrivateDnsName = ptr.String(jtv) + } + + case "PrivateIpAddress": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.PrivateIpAddress = ptr.String(jtv) } default: @@ -13464,7 +13600,7 @@ func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpRange(v **types.AwsEc2 return nil } -func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpRangeList(v *[]types.AwsEc2SecurityGroupIpRange, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2NetworkInterfacePrivateIpAddressList(v *[]types.AwsEc2NetworkInterfacePrivateIpAddressDetail, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -13477,17 +13613,17 @@ func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpRangeList(v *[]types.A return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsEc2SecurityGroupIpRange + var cv []types.AwsEc2NetworkInterfacePrivateIpAddressDetail if *v == nil { - cv = []types.AwsEc2SecurityGroupIpRange{} + cv = []types.AwsEc2NetworkInterfacePrivateIpAddressDetail{} } else { cv = *v } for _, value := range shape { - var col types.AwsEc2SecurityGroupIpRange + var col types.AwsEc2NetworkInterfacePrivateIpAddressDetail destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpRange(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsEc2NetworkInterfacePrivateIpAddressDetail(&destAddr, value); err != nil { return err } col = *destAddr @@ -13498,7 +13634,7 @@ func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpRangeList(v *[]types.A return nil } -func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpv6Range(v **types.AwsEc2SecurityGroupIpv6Range, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceSecurityGroup(v **types.AwsEc2NetworkInterfaceSecurityGroup, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -13511,22 +13647,31 @@ func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpv6Range(v **types.AwsE return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEc2SecurityGroupIpv6Range + var sv *types.AwsEc2NetworkInterfaceSecurityGroup if *v == nil { - sv = &types.AwsEc2SecurityGroupIpv6Range{} + sv = &types.AwsEc2NetworkInterfaceSecurityGroup{} } else { sv = *v } for key, value := range shape { switch key { - case "CidrIpv6": + case "GroupId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CidrIpv6 = ptr.String(jtv) + sv.GroupId = ptr.String(jtv) + } + + case "GroupName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.GroupName = ptr.String(jtv) } default: @@ -13538,7 +13683,7 @@ func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpv6Range(v **types.AwsE return nil } -func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpv6RangeList(v *[]types.AwsEc2SecurityGroupIpv6Range, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceSecurityGroupList(v *[]types.AwsEc2NetworkInterfaceSecurityGroup, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -13551,17 +13696,17 @@ func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpv6RangeList(v *[]types return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsEc2SecurityGroupIpv6Range + var cv []types.AwsEc2NetworkInterfaceSecurityGroup if *v == nil { - cv = []types.AwsEc2SecurityGroupIpv6Range{} + cv = []types.AwsEc2NetworkInterfaceSecurityGroup{} } else { cv = *v } for _, value := range shape { - var col types.AwsEc2SecurityGroupIpv6Range + var col types.AwsEc2NetworkInterfaceSecurityGroup destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpv6Range(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceSecurityGroup(&destAddr, value); err != nil { return err } col = *destAddr @@ -13572,7 +13717,7 @@ func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpv6RangeList(v *[]types return nil } -func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupPrefixListId(v **types.AwsEc2SecurityGroupPrefixListId, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupDetails(v **types.AwsEc2SecurityGroupDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -13585,22 +13730,59 @@ func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupPrefixListId(v **types.A return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEc2SecurityGroupPrefixListId + var sv *types.AwsEc2SecurityGroupDetails if *v == nil { - sv = &types.AwsEc2SecurityGroupPrefixListId{} + sv = &types.AwsEc2SecurityGroupDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "PrefixListId": + case "GroupId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PrefixListId = ptr.String(jtv) + sv.GroupId = ptr.String(jtv) + } + + case "GroupName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.GroupName = ptr.String(jtv) + } + + case "IpPermissions": + if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpPermissionList(&sv.IpPermissions, value); err != nil { + return err + } + + case "IpPermissionsEgress": + if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpPermissionList(&sv.IpPermissionsEgress, value); err != nil { + return err + } + + case "OwnerId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.OwnerId = ptr.String(jtv) + } + + case "VpcId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.VpcId = ptr.String(jtv) } default: @@ -13612,7 +13794,93 @@ func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupPrefixListId(v **types.A return nil } -func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupPrefixListIdList(v *[]types.AwsEc2SecurityGroupPrefixListId, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpPermission(v **types.AwsEc2SecurityGroupIpPermission, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsEc2SecurityGroupIpPermission + if *v == nil { + sv = &types.AwsEc2SecurityGroupIpPermission{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "FromPort": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.FromPort = int32(i64) + } + + case "IpProtocol": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.IpProtocol = ptr.String(jtv) + } + + case "IpRanges": + if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpRangeList(&sv.IpRanges, value); err != nil { + return err + } + + case "Ipv6Ranges": + if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpv6RangeList(&sv.Ipv6Ranges, value); err != nil { + return err + } + + case "PrefixListIds": + if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupPrefixListIdList(&sv.PrefixListIds, value); err != nil { + return err + } + + case "ToPort": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ToPort = int32(i64) + } + + case "UserIdGroupPairs": + if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupUserIdGroupPairList(&sv.UserIdGroupPairs, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpPermissionList(v *[]types.AwsEc2SecurityGroupIpPermission, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -13625,17 +13893,17 @@ func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupPrefixListIdList(v *[]ty return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsEc2SecurityGroupPrefixListId + var cv []types.AwsEc2SecurityGroupIpPermission if *v == nil { - cv = []types.AwsEc2SecurityGroupPrefixListId{} + cv = []types.AwsEc2SecurityGroupIpPermission{} } else { cv = *v } for _, value := range shape { - var col types.AwsEc2SecurityGroupPrefixListId + var col types.AwsEc2SecurityGroupIpPermission destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupPrefixListId(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpPermission(&destAddr, value); err != nil { return err } col = *destAddr @@ -13646,7 +13914,7 @@ func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupPrefixListIdList(v *[]ty return nil } -func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupUserIdGroupPair(v **types.AwsEc2SecurityGroupUserIdGroupPair, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpRange(v **types.AwsEc2SecurityGroupIpRange, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -13659,67 +13927,22 @@ func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupUserIdGroupPair(v **type return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEc2SecurityGroupUserIdGroupPair + var sv *types.AwsEc2SecurityGroupIpRange if *v == nil { - sv = &types.AwsEc2SecurityGroupUserIdGroupPair{} + sv = &types.AwsEc2SecurityGroupIpRange{} } else { sv = *v } for key, value := range shape { switch key { - case "GroupId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.GroupId = ptr.String(jtv) - } - - case "GroupName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.GroupName = ptr.String(jtv) - } - - case "PeeringStatus": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.PeeringStatus = ptr.String(jtv) - } - - case "UserId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.UserId = ptr.String(jtv) - } - - case "VpcId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.VpcId = ptr.String(jtv) - } - - case "VpcPeeringConnectionId": + case "CidrIp": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.VpcPeeringConnectionId = ptr.String(jtv) + sv.CidrIp = ptr.String(jtv) } default: @@ -13731,7 +13954,7 @@ func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupUserIdGroupPair(v **type return nil } -func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupUserIdGroupPairList(v *[]types.AwsEc2SecurityGroupUserIdGroupPair, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpRangeList(v *[]types.AwsEc2SecurityGroupIpRange, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -13744,17 +13967,17 @@ func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupUserIdGroupPairList(v *[ return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsEc2SecurityGroupUserIdGroupPair + var cv []types.AwsEc2SecurityGroupIpRange if *v == nil { - cv = []types.AwsEc2SecurityGroupUserIdGroupPair{} + cv = []types.AwsEc2SecurityGroupIpRange{} } else { cv = *v } for _, value := range shape { - var col types.AwsEc2SecurityGroupUserIdGroupPair + var col types.AwsEc2SecurityGroupIpRange destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupUserIdGroupPair(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpRange(&destAddr, value); err != nil { return err } col = *destAddr @@ -13765,7 +13988,7 @@ func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupUserIdGroupPairList(v *[ return nil } -func awsRestjson1_deserializeDocumentAwsEc2SubnetDetails(v **types.AwsEc2SubnetDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpv6Range(v **types.AwsEc2SecurityGroupIpv6Range, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -13778,142 +14001,68 @@ func awsRestjson1_deserializeDocumentAwsEc2SubnetDetails(v **types.AwsEc2SubnetD return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEc2SubnetDetails + var sv *types.AwsEc2SecurityGroupIpv6Range if *v == nil { - sv = &types.AwsEc2SubnetDetails{} + sv = &types.AwsEc2SecurityGroupIpv6Range{} } else { sv = *v } for key, value := range shape { switch key { - case "AssignIpv6AddressOnCreation": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.AssignIpv6AddressOnCreation = jtv - } - - case "AvailabilityZone": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.AvailabilityZone = ptr.String(jtv) - } - - case "AvailabilityZoneId": + case "CidrIpv6": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.AvailabilityZoneId = ptr.String(jtv) + sv.CidrIpv6 = ptr.String(jtv) } - case "AvailableIpAddressCount": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.AvailableIpAddressCount = int32(i64) - } + default: + _, _ = key, value - case "CidrBlock": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.CidrBlock = ptr.String(jtv) - } - - case "DefaultForAz": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.DefaultForAz = jtv - } - - case "Ipv6CidrBlockAssociationSet": - if err := awsRestjson1_deserializeDocumentIpv6CidrBlockAssociationList(&sv.Ipv6CidrBlockAssociationSet, value); err != nil { - return err - } - - case "MapPublicIpOnLaunch": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.MapPublicIpOnLaunch = jtv - } - - case "OwnerId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.OwnerId = ptr.String(jtv) - } - - case "State": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.State = ptr.String(jtv) - } - - case "SubnetArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.SubnetArn = ptr.String(jtv) - } + } + } + *v = sv + return nil +} - case "SubnetId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.SubnetId = ptr.String(jtv) - } +func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpv6RangeList(v *[]types.AwsEc2SecurityGroupIpv6Range, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } - case "VpcId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.VpcId = ptr.String(jtv) - } + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } - default: - _, _ = key, value + var cv []types.AwsEc2SecurityGroupIpv6Range + if *v == nil { + cv = []types.AwsEc2SecurityGroupIpv6Range{} + } else { + cv = *v + } + for _, value := range shape { + var col types.AwsEc2SecurityGroupIpv6Range + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpv6Range(&destAddr, value); err != nil { + return err } + col = *destAddr + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsRestjson1_deserializeDocumentAwsEc2VolumeAttachment(v **types.AwsEc2VolumeAttachment, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupPrefixListId(v **types.AwsEc2SecurityGroupPrefixListId, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -13926,49 +14075,22 @@ func awsRestjson1_deserializeDocumentAwsEc2VolumeAttachment(v **types.AwsEc2Volu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEc2VolumeAttachment + var sv *types.AwsEc2SecurityGroupPrefixListId if *v == nil { - sv = &types.AwsEc2VolumeAttachment{} + sv = &types.AwsEc2SecurityGroupPrefixListId{} } else { sv = *v } for key, value := range shape { switch key { - case "AttachTime": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.AttachTime = ptr.String(jtv) - } - - case "DeleteOnTermination": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.DeleteOnTermination = jtv - } - - case "InstanceId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.InstanceId = ptr.String(jtv) - } - - case "Status": + case "PrefixListId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Status = ptr.String(jtv) + sv.PrefixListId = ptr.String(jtv) } default: @@ -13980,7 +14102,7 @@ func awsRestjson1_deserializeDocumentAwsEc2VolumeAttachment(v **types.AwsEc2Volu return nil } -func awsRestjson1_deserializeDocumentAwsEc2VolumeAttachmentList(v *[]types.AwsEc2VolumeAttachment, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupPrefixListIdList(v *[]types.AwsEc2SecurityGroupPrefixListId, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -13993,17 +14115,17 @@ func awsRestjson1_deserializeDocumentAwsEc2VolumeAttachmentList(v *[]types.AwsEc return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsEc2VolumeAttachment + var cv []types.AwsEc2SecurityGroupPrefixListId if *v == nil { - cv = []types.AwsEc2VolumeAttachment{} + cv = []types.AwsEc2SecurityGroupPrefixListId{} } else { cv = *v } for _, value := range shape { - var col types.AwsEc2VolumeAttachment + var col types.AwsEc2SecurityGroupPrefixListId destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEc2VolumeAttachment(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupPrefixListId(&destAddr, value); err != nil { return err } col = *destAddr @@ -14014,7 +14136,7 @@ func awsRestjson1_deserializeDocumentAwsEc2VolumeAttachmentList(v *[]types.AwsEc return nil } -func awsRestjson1_deserializeDocumentAwsEc2VolumeDetails(v **types.AwsEc2VolumeDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupUserIdGroupPair(v **types.AwsEc2SecurityGroupUserIdGroupPair, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -14027,76 +14149,67 @@ func awsRestjson1_deserializeDocumentAwsEc2VolumeDetails(v **types.AwsEc2VolumeD return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEc2VolumeDetails + var sv *types.AwsEc2SecurityGroupUserIdGroupPair if *v == nil { - sv = &types.AwsEc2VolumeDetails{} + sv = &types.AwsEc2SecurityGroupUserIdGroupPair{} } else { sv = *v } for key, value := range shape { switch key { - case "Attachments": - if err := awsRestjson1_deserializeDocumentAwsEc2VolumeAttachmentList(&sv.Attachments, value); err != nil { - return err - } - - case "CreateTime": + case "GroupId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CreateTime = ptr.String(jtv) + sv.GroupId = ptr.String(jtv) } - case "Encrypted": + case "GroupName": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Encrypted = jtv + sv.GroupName = ptr.String(jtv) } - case "KmsKeyId": + case "PeeringStatus": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.KmsKeyId = ptr.String(jtv) + sv.PeeringStatus = ptr.String(jtv) } - case "Size": + case "UserId": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Size = int32(i64) + sv.UserId = ptr.String(jtv) } - case "SnapshotId": + case "VpcId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.SnapshotId = ptr.String(jtv) + sv.VpcId = ptr.String(jtv) } - case "Status": + case "VpcPeeringConnectionId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Status = ptr.String(jtv) + sv.VpcPeeringConnectionId = ptr.String(jtv) } default: @@ -14108,7 +14221,7 @@ func awsRestjson1_deserializeDocumentAwsEc2VolumeDetails(v **types.AwsEc2VolumeD return nil } -func awsRestjson1_deserializeDocumentAwsEc2VpcDetails(v **types.AwsEc2VpcDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupUserIdGroupPairList(v *[]types.AwsEc2SecurityGroupUserIdGroupPair, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -14116,58 +14229,33 @@ func awsRestjson1_deserializeDocumentAwsEc2VpcDetails(v **types.AwsEc2VpcDetails return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEc2VpcDetails + var cv []types.AwsEc2SecurityGroupUserIdGroupPair if *v == nil { - sv = &types.AwsEc2VpcDetails{} + cv = []types.AwsEc2SecurityGroupUserIdGroupPair{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "CidrBlockAssociationSet": - if err := awsRestjson1_deserializeDocumentCidrBlockAssociationList(&sv.CidrBlockAssociationSet, value); err != nil { - return err - } - - case "DhcpOptionsId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.DhcpOptionsId = ptr.String(jtv) - } - - case "Ipv6CidrBlockAssociationSet": - if err := awsRestjson1_deserializeDocumentIpv6CidrBlockAssociationList(&sv.Ipv6CidrBlockAssociationSet, value); err != nil { - return err - } - - case "State": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.State = ptr.String(jtv) - } - - default: - _, _ = key, value - + for _, value := range shape { + var col types.AwsEc2SecurityGroupUserIdGroupPair + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupUserIdGroupPair(&destAddr, value); err != nil { + return err } + col = *destAddr + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsRestjson1_deserializeDocumentAwsEcsClusterClusterSettingsDetails(v **types.AwsEcsClusterClusterSettingsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2SubnetDetails(v **types.AwsEc2SubnetDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -14180,231 +14268,130 @@ func awsRestjson1_deserializeDocumentAwsEcsClusterClusterSettingsDetails(v **typ return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsClusterClusterSettingsDetails + var sv *types.AwsEc2SubnetDetails if *v == nil { - sv = &types.AwsEcsClusterClusterSettingsDetails{} + sv = &types.AwsEc2SubnetDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Name": + case "AssignIpv6AddressOnCreation": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.Name = ptr.String(jtv) + sv.AssignIpv6AddressOnCreation = jtv } - case "Value": + case "AvailabilityZone": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Value = ptr.String(jtv) - } - - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsEcsClusterClusterSettingsList(v *[]types.AwsEcsClusterClusterSettingsDetails, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var cv []types.AwsEcsClusterClusterSettingsDetails - if *v == nil { - cv = []types.AwsEcsClusterClusterSettingsDetails{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.AwsEcsClusterClusterSettingsDetails - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEcsClusterClusterSettingsDetails(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationDetails(v **types.AwsEcsClusterConfigurationDetails, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.AwsEcsClusterConfigurationDetails - if *v == nil { - sv = &types.AwsEcsClusterConfigurationDetails{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "ExecuteCommandConfiguration": - if err := awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationExecuteCommandConfigurationDetails(&sv.ExecuteCommandConfiguration, value); err != nil { - return err + sv.AvailabilityZone = ptr.String(jtv) } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationExecuteCommandConfigurationDetails(v **types.AwsEcsClusterConfigurationExecuteCommandConfigurationDetails, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.AwsEcsClusterConfigurationExecuteCommandConfigurationDetails - if *v == nil { - sv = &types.AwsEcsClusterConfigurationExecuteCommandConfigurationDetails{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "KmsKeyId": + case "AvailabilityZoneId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.KmsKeyId = ptr.String(jtv) + sv.AvailabilityZoneId = ptr.String(jtv) } - case "LogConfiguration": - if err := awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails(&sv.LogConfiguration, value); err != nil { - return err + case "AvailableIpAddressCount": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.AvailableIpAddressCount = int32(i64) } - case "Logging": + case "CidrBlock": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Logging = ptr.String(jtv) + sv.CidrBlock = ptr.String(jtv) } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails(v **types.AwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + case "DefaultForAz": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.DefaultForAz = jtv + } - var sv *types.AwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails - if *v == nil { - sv = &types.AwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails{} - } else { - sv = *v - } + case "Ipv6CidrBlockAssociationSet": + if err := awsRestjson1_deserializeDocumentIpv6CidrBlockAssociationList(&sv.Ipv6CidrBlockAssociationSet, value); err != nil { + return err + } - for key, value := range shape { - switch key { - case "CloudWatchEncryptionEnabled": + case "MapPublicIpOnLaunch": if value != nil { jtv, ok := value.(bool) if !ok { return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.CloudWatchEncryptionEnabled = jtv + sv.MapPublicIpOnLaunch = jtv } - case "CloudWatchLogGroupName": + case "OwnerId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CloudWatchLogGroupName = ptr.String(jtv) + sv.OwnerId = ptr.String(jtv) } - case "S3BucketName": + case "State": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.S3BucketName = ptr.String(jtv) + sv.State = ptr.String(jtv) } - case "S3EncryptionEnabled": + case "SubnetArn": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.S3EncryptionEnabled = jtv + sv.SubnetArn = ptr.String(jtv) } - case "S3KeyPrefix": + case "SubnetId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.S3KeyPrefix = ptr.String(jtv) + sv.SubnetId = ptr.String(jtv) + } + + case "VpcId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.VpcId = ptr.String(jtv) } default: @@ -14416,7 +14403,7 @@ func awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationExecuteCommandCon return nil } -func awsRestjson1_deserializeDocumentAwsEcsClusterDefaultCapacityProviderStrategyDetails(v **types.AwsEcsClusterDefaultCapacityProviderStrategyDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2VolumeAttachment(v **types.AwsEc2VolumeAttachment, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -14429,48 +14416,49 @@ func awsRestjson1_deserializeDocumentAwsEcsClusterDefaultCapacityProviderStrateg return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsClusterDefaultCapacityProviderStrategyDetails + var sv *types.AwsEc2VolumeAttachment if *v == nil { - sv = &types.AwsEcsClusterDefaultCapacityProviderStrategyDetails{} + sv = &types.AwsEc2VolumeAttachment{} } else { sv = *v } for key, value := range shape { switch key { - case "Base": + case "AttachTime": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - i64, err := jtv.Int64() - if err != nil { - return err + sv.AttachTime = ptr.String(jtv) + } + + case "DeleteOnTermination": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.Base = int32(i64) + sv.DeleteOnTermination = jtv } - case "CapacityProvider": + case "InstanceId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CapacityProvider = ptr.String(jtv) + sv.InstanceId = ptr.String(jtv) } - case "Weight": + case "Status": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Weight = int32(i64) + sv.Status = ptr.String(jtv) } default: @@ -14482,7 +14470,7 @@ func awsRestjson1_deserializeDocumentAwsEcsClusterDefaultCapacityProviderStrateg return nil } -func awsRestjson1_deserializeDocumentAwsEcsClusterDefaultCapacityProviderStrategyList(v *[]types.AwsEcsClusterDefaultCapacityProviderStrategyDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2VolumeAttachmentList(v *[]types.AwsEc2VolumeAttachment, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -14495,17 +14483,17 @@ func awsRestjson1_deserializeDocumentAwsEcsClusterDefaultCapacityProviderStrateg return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsEcsClusterDefaultCapacityProviderStrategyDetails + var cv []types.AwsEc2VolumeAttachment if *v == nil { - cv = []types.AwsEcsClusterDefaultCapacityProviderStrategyDetails{} + cv = []types.AwsEc2VolumeAttachment{} } else { cv = *v } for _, value := range shape { - var col types.AwsEcsClusterDefaultCapacityProviderStrategyDetails + var col types.AwsEc2VolumeAttachment destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEcsClusterDefaultCapacityProviderStrategyDetails(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsEc2VolumeAttachment(&destAddr, value); err != nil { return err } col = *destAddr @@ -14516,7 +14504,7 @@ func awsRestjson1_deserializeDocumentAwsEcsClusterDefaultCapacityProviderStrateg return nil } -func awsRestjson1_deserializeDocumentAwsEcsClusterDetails(v **types.AwsEcsClusterDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2VolumeDetails(v **types.AwsEc2VolumeDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -14529,67 +14517,48 @@ func awsRestjson1_deserializeDocumentAwsEcsClusterDetails(v **types.AwsEcsCluste return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsClusterDetails + var sv *types.AwsEc2VolumeDetails if *v == nil { - sv = &types.AwsEcsClusterDetails{} + sv = &types.AwsEc2VolumeDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "CapacityProviders": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.CapacityProviders, value); err != nil { + case "Attachments": + if err := awsRestjson1_deserializeDocumentAwsEc2VolumeAttachmentList(&sv.Attachments, value); err != nil { return err } - case "ClusterSettings": - if err := awsRestjson1_deserializeDocumentAwsEcsClusterClusterSettingsList(&sv.ClusterSettings, value); err != nil { - return err + case "CreateTime": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.CreateTime = ptr.String(jtv) } - case "Configuration": - if err := awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationDetails(&sv.Configuration, value); err != nil { - return err + case "Encrypted": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.Encrypted = jtv } - case "DefaultCapacityProviderStrategy": - if err := awsRestjson1_deserializeDocumentAwsEcsClusterDefaultCapacityProviderStrategyList(&sv.DefaultCapacityProviderStrategy, value); err != nil { - return err + case "KmsKeyId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.KmsKeyId = ptr.String(jtv) } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsEcsServiceCapacityProviderStrategyDetails(v **types.AwsEcsServiceCapacityProviderStrategyDetails, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.AwsEcsServiceCapacityProviderStrategyDetails - if *v == nil { - sv = &types.AwsEcsServiceCapacityProviderStrategyDetails{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "Base": + case "Size": if value != nil { jtv, ok := value.(json.Number) if !ok { @@ -14599,29 +14568,25 @@ func awsRestjson1_deserializeDocumentAwsEcsServiceCapacityProviderStrategyDetail if err != nil { return err } - sv.Base = int32(i64) + sv.Size = int32(i64) } - case "CapacityProvider": + case "SnapshotId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CapacityProvider = ptr.String(jtv) + sv.SnapshotId = ptr.String(jtv) } - case "Weight": + case "Status": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Weight = int32(i64) + sv.Status = ptr.String(jtv) } default: @@ -14633,41 +14598,7 @@ func awsRestjson1_deserializeDocumentAwsEcsServiceCapacityProviderStrategyDetail return nil } -func awsRestjson1_deserializeDocumentAwsEcsServiceCapacityProviderStrategyList(v *[]types.AwsEcsServiceCapacityProviderStrategyDetails, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var cv []types.AwsEcsServiceCapacityProviderStrategyDetails - if *v == nil { - cv = []types.AwsEcsServiceCapacityProviderStrategyDetails{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.AwsEcsServiceCapacityProviderStrategyDetails - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEcsServiceCapacityProviderStrategyDetails(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsRestjson1_deserializeDocumentAwsEcsServiceDeploymentConfigurationDeploymentCircuitBreakerDetails(v **types.AwsEcsServiceDeploymentConfigurationDeploymentCircuitBreakerDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2VpcDetails(v **types.AwsEc2VpcDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -14680,31 +14611,41 @@ func awsRestjson1_deserializeDocumentAwsEcsServiceDeploymentConfigurationDeploym return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsServiceDeploymentConfigurationDeploymentCircuitBreakerDetails + var sv *types.AwsEc2VpcDetails if *v == nil { - sv = &types.AwsEcsServiceDeploymentConfigurationDeploymentCircuitBreakerDetails{} + sv = &types.AwsEc2VpcDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Enable": + case "CidrBlockAssociationSet": + if err := awsRestjson1_deserializeDocumentCidrBlockAssociationList(&sv.CidrBlockAssociationSet, value); err != nil { + return err + } + + case "DhcpOptionsId": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Enable = jtv + sv.DhcpOptionsId = ptr.String(jtv) } - case "Rollback": + case "Ipv6CidrBlockAssociationSet": + if err := awsRestjson1_deserializeDocumentIpv6CidrBlockAssociationList(&sv.Ipv6CidrBlockAssociationSet, value); err != nil { + return err + } + + case "State": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Rollback = jtv + sv.State = ptr.String(jtv) } default: @@ -14716,7 +14657,7 @@ func awsRestjson1_deserializeDocumentAwsEcsServiceDeploymentConfigurationDeploym return nil } -func awsRestjson1_deserializeDocumentAwsEcsServiceDeploymentConfigurationDetails(v **types.AwsEcsServiceDeploymentConfigurationDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2VpnConnectionDetails(v **types.AwsEc2VpnConnectionDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -14729,44 +14670,100 @@ func awsRestjson1_deserializeDocumentAwsEcsServiceDeploymentConfigurationDetails return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsServiceDeploymentConfigurationDetails + var sv *types.AwsEc2VpnConnectionDetails if *v == nil { - sv = &types.AwsEcsServiceDeploymentConfigurationDetails{} + sv = &types.AwsEc2VpnConnectionDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "DeploymentCircuitBreaker": - if err := awsRestjson1_deserializeDocumentAwsEcsServiceDeploymentConfigurationDeploymentCircuitBreakerDetails(&sv.DeploymentCircuitBreaker, value); err != nil { + case "Category": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Category = ptr.String(jtv) + } + + case "CustomerGatewayConfiguration": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.CustomerGatewayConfiguration = ptr.String(jtv) + } + + case "CustomerGatewayId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.CustomerGatewayId = ptr.String(jtv) + } + + case "Options": + if err := awsRestjson1_deserializeDocumentAwsEc2VpnConnectionOptionsDetails(&sv.Options, value); err != nil { return err } - case "MaximumPercent": + case "Routes": + if err := awsRestjson1_deserializeDocumentAwsEc2VpnConnectionRoutesList(&sv.Routes, value); err != nil { + return err + } + + case "State": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - i64, err := jtv.Int64() - if err != nil { - return err + sv.State = ptr.String(jtv) + } + + case "TransitGatewayId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.MaximumPercent = int32(i64) + sv.TransitGatewayId = ptr.String(jtv) } - case "MinimumHealthyPercent": + case "Type": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - i64, err := jtv.Int64() - if err != nil { - return err + sv.Type = ptr.String(jtv) + } + + case "VgwTelemetry": + if err := awsRestjson1_deserializeDocumentAwsEc2VpnConnectionVgwTelemetryList(&sv.VgwTelemetry, value); err != nil { + return err + } + + case "VpnConnectionId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.MinimumHealthyPercent = int32(i64) + sv.VpnConnectionId = ptr.String(jtv) + } + + case "VpnGatewayId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.VpnGatewayId = ptr.String(jtv) } default: @@ -14778,7 +14775,7 @@ func awsRestjson1_deserializeDocumentAwsEcsServiceDeploymentConfigurationDetails return nil } -func awsRestjson1_deserializeDocumentAwsEcsServiceDeploymentControllerDetails(v **types.AwsEcsServiceDeploymentControllerDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2VpnConnectionOptionsDetails(v **types.AwsEc2VpnConnectionOptionsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -14791,22 +14788,27 @@ func awsRestjson1_deserializeDocumentAwsEcsServiceDeploymentControllerDetails(v return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsServiceDeploymentControllerDetails + var sv *types.AwsEc2VpnConnectionOptionsDetails if *v == nil { - sv = &types.AwsEcsServiceDeploymentControllerDetails{} + sv = &types.AwsEc2VpnConnectionOptionsDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Type": + case "StaticRoutesOnly": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.Type = ptr.String(jtv) + sv.StaticRoutesOnly = jtv + } + + case "TunnelOptions": + if err := awsRestjson1_deserializeDocumentAwsEc2VpnConnectionOptionsTunnelOptionsList(&sv.TunnelOptions, value); err != nil { + return err } default: @@ -14818,7 +14820,7 @@ func awsRestjson1_deserializeDocumentAwsEcsServiceDeploymentControllerDetails(v return nil } -func awsRestjson1_deserializeDocumentAwsEcsServiceDetails(v **types.AwsEcsServiceDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2VpnConnectionOptionsTunnelOptionsDetails(v **types.AwsEc2VpnConnectionOptionsTunnelOptionsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -14831,71 +14833,16 @@ func awsRestjson1_deserializeDocumentAwsEcsServiceDetails(v **types.AwsEcsServic return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsServiceDetails + var sv *types.AwsEc2VpnConnectionOptionsTunnelOptionsDetails if *v == nil { - sv = &types.AwsEcsServiceDetails{} + sv = &types.AwsEc2VpnConnectionOptionsTunnelOptionsDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "CapacityProviderStrategy": - if err := awsRestjson1_deserializeDocumentAwsEcsServiceCapacityProviderStrategyList(&sv.CapacityProviderStrategy, value); err != nil { - return err - } - - case "Cluster": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Cluster = ptr.String(jtv) - } - - case "DeploymentConfiguration": - if err := awsRestjson1_deserializeDocumentAwsEcsServiceDeploymentConfigurationDetails(&sv.DeploymentConfiguration, value); err != nil { - return err - } - - case "DeploymentController": - if err := awsRestjson1_deserializeDocumentAwsEcsServiceDeploymentControllerDetails(&sv.DeploymentController, value); err != nil { - return err - } - - case "DesiredCount": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.DesiredCount = int32(i64) - } - - case "EnableEcsManagedTags": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.EnableEcsManagedTags = jtv - } - - case "EnableExecuteCommand": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.EnableExecuteCommand = jtv - } - - case "HealthCheckGracePeriodSeconds": + case "DpdTimeoutSeconds": if value != nil { jtv, ok := value.(json.Number) if !ok { @@ -14905,156 +14852,102 @@ func awsRestjson1_deserializeDocumentAwsEcsServiceDetails(v **types.AwsEcsServic if err != nil { return err } - sv.HealthCheckGracePeriodSeconds = int32(i64) - } - - case "LaunchType": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.LaunchType = ptr.String(jtv) + sv.DpdTimeoutSeconds = int32(i64) } - case "LoadBalancers": - if err := awsRestjson1_deserializeDocumentAwsEcsServiceLoadBalancersList(&sv.LoadBalancers, value); err != nil { + case "IkeVersions": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.IkeVersions, value); err != nil { return err } - case "Name": + case "OutsideIpAddress": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Name = ptr.String(jtv) + sv.OutsideIpAddress = ptr.String(jtv) } - case "NetworkConfiguration": - if err := awsRestjson1_deserializeDocumentAwsEcsServiceNetworkConfigurationDetails(&sv.NetworkConfiguration, value); err != nil { + case "Phase1DhGroupNumbers": + if err := awsRestjson1_deserializeDocumentIntegerList(&sv.Phase1DhGroupNumbers, value); err != nil { return err } - case "PlacementConstraints": - if err := awsRestjson1_deserializeDocumentAwsEcsServicePlacementConstraintsList(&sv.PlacementConstraints, value); err != nil { + case "Phase1EncryptionAlgorithms": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Phase1EncryptionAlgorithms, value); err != nil { return err } - case "PlacementStrategies": - if err := awsRestjson1_deserializeDocumentAwsEcsServicePlacementStrategiesList(&sv.PlacementStrategies, value); err != nil { + case "Phase1IntegrityAlgorithms": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Phase1IntegrityAlgorithms, value); err != nil { return err } - case "PlatformVersion": + case "Phase1LifetimeSeconds": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.PlatformVersion = ptr.String(jtv) - } - - case "PropagateTags": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + i64, err := jtv.Int64() + if err != nil { + return err } - sv.PropagateTags = ptr.String(jtv) + sv.Phase1LifetimeSeconds = int32(i64) } - case "Role": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Role = ptr.String(jtv) + case "Phase2DhGroupNumbers": + if err := awsRestjson1_deserializeDocumentIntegerList(&sv.Phase2DhGroupNumbers, value); err != nil { + return err } - case "SchedulingStrategy": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.SchedulingStrategy = ptr.String(jtv) + case "Phase2EncryptionAlgorithms": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Phase2EncryptionAlgorithms, value); err != nil { + return err } - case "ServiceArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.ServiceArn = ptr.String(jtv) + case "Phase2IntegrityAlgorithms": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Phase2IntegrityAlgorithms, value); err != nil { + return err } - case "ServiceName": + case "Phase2LifetimeSeconds": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.ServiceName = ptr.String(jtv) - } - - case "ServiceRegistries": - if err := awsRestjson1_deserializeDocumentAwsEcsServiceServiceRegistriesList(&sv.ServiceRegistries, value); err != nil { - return err + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Phase2LifetimeSeconds = int32(i64) } - case "TaskDefinition": + case "PreSharedKey": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.TaskDefinition = ptr.String(jtv) + sv.PreSharedKey = ptr.String(jtv) } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsEcsServiceLoadBalancersDetails(v **types.AwsEcsServiceLoadBalancersDetails, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.AwsEcsServiceLoadBalancersDetails - if *v == nil { - sv = &types.AwsEcsServiceLoadBalancersDetails{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "ContainerName": + case "RekeyFuzzPercentage": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.ContainerName = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.RekeyFuzzPercentage = int32(i64) } - case "ContainerPort": + case "RekeyMarginTimeSeconds": if value != nil { jtv, ok := value.(json.Number) if !ok { @@ -15064,25 +14957,29 @@ func awsRestjson1_deserializeDocumentAwsEcsServiceLoadBalancersDetails(v **types if err != nil { return err } - sv.ContainerPort = int32(i64) + sv.RekeyMarginTimeSeconds = int32(i64) } - case "LoadBalancerName": + case "ReplayWindowSize": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.LoadBalancerName = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ReplayWindowSize = int32(i64) } - case "TargetGroupArn": + case "TunnelInsideCidr": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.TargetGroupArn = ptr.String(jtv) + sv.TunnelInsideCidr = ptr.String(jtv) } default: @@ -15094,7 +14991,7 @@ func awsRestjson1_deserializeDocumentAwsEcsServiceLoadBalancersDetails(v **types return nil } -func awsRestjson1_deserializeDocumentAwsEcsServiceLoadBalancersList(v *[]types.AwsEcsServiceLoadBalancersDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2VpnConnectionOptionsTunnelOptionsList(v *[]types.AwsEc2VpnConnectionOptionsTunnelOptionsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -15107,17 +15004,17 @@ func awsRestjson1_deserializeDocumentAwsEcsServiceLoadBalancersList(v *[]types.A return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsEcsServiceLoadBalancersDetails + var cv []types.AwsEc2VpnConnectionOptionsTunnelOptionsDetails if *v == nil { - cv = []types.AwsEcsServiceLoadBalancersDetails{} + cv = []types.AwsEc2VpnConnectionOptionsTunnelOptionsDetails{} } else { cv = *v } for _, value := range shape { - var col types.AwsEcsServiceLoadBalancersDetails + var col types.AwsEc2VpnConnectionOptionsTunnelOptionsDetails destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEcsServiceLoadBalancersDetails(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsEc2VpnConnectionOptionsTunnelOptionsDetails(&destAddr, value); err != nil { return err } col = *destAddr @@ -15128,7 +15025,7 @@ func awsRestjson1_deserializeDocumentAwsEcsServiceLoadBalancersList(v *[]types.A return nil } -func awsRestjson1_deserializeDocumentAwsEcsServiceNetworkConfigurationAwsVpcConfigurationDetails(v **types.AwsEcsServiceNetworkConfigurationAwsVpcConfigurationDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2VpnConnectionRoutesDetails(v **types.AwsEc2VpnConnectionRoutesDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -15141,32 +15038,31 @@ func awsRestjson1_deserializeDocumentAwsEcsServiceNetworkConfigurationAwsVpcConf return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsServiceNetworkConfigurationAwsVpcConfigurationDetails + var sv *types.AwsEc2VpnConnectionRoutesDetails if *v == nil { - sv = &types.AwsEcsServiceNetworkConfigurationAwsVpcConfigurationDetails{} + sv = &types.AwsEc2VpnConnectionRoutesDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "AssignPublicIp": + case "DestinationCidrBlock": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.AssignPublicIp = ptr.String(jtv) - } - - case "SecurityGroups": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SecurityGroups, value); err != nil { - return err + sv.DestinationCidrBlock = ptr.String(jtv) } - case "Subnets": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Subnets, value); err != nil { - return err + case "State": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.State = ptr.String(jtv) } default: @@ -15178,7 +15074,7 @@ func awsRestjson1_deserializeDocumentAwsEcsServiceNetworkConfigurationAwsVpcConf return nil } -func awsRestjson1_deserializeDocumentAwsEcsServiceNetworkConfigurationDetails(v **types.AwsEcsServiceNetworkConfigurationDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2VpnConnectionRoutesList(v *[]types.AwsEc2VpnConnectionRoutesDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -15186,35 +15082,33 @@ func awsRestjson1_deserializeDocumentAwsEcsServiceNetworkConfigurationDetails(v return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsServiceNetworkConfigurationDetails + var cv []types.AwsEc2VpnConnectionRoutesDetails if *v == nil { - sv = &types.AwsEcsServiceNetworkConfigurationDetails{} + cv = []types.AwsEc2VpnConnectionRoutesDetails{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "AwsVpcConfiguration": - if err := awsRestjson1_deserializeDocumentAwsEcsServiceNetworkConfigurationAwsVpcConfigurationDetails(&sv.AwsVpcConfiguration, value); err != nil { - return err - } - - default: - _, _ = key, value - + for _, value := range shape { + var col types.AwsEc2VpnConnectionRoutesDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsEc2VpnConnectionRoutesDetails(&destAddr, value); err != nil { + return err } + col = *destAddr + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsRestjson1_deserializeDocumentAwsEcsServicePlacementConstraintsDetails(v **types.AwsEcsServicePlacementConstraintsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2VpnConnectionVgwTelemetryDetails(v **types.AwsEc2VpnConnectionVgwTelemetryDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -15227,31 +15121,71 @@ func awsRestjson1_deserializeDocumentAwsEcsServicePlacementConstraintsDetails(v return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsServicePlacementConstraintsDetails + var sv *types.AwsEc2VpnConnectionVgwTelemetryDetails if *v == nil { - sv = &types.AwsEcsServicePlacementConstraintsDetails{} + sv = &types.AwsEc2VpnConnectionVgwTelemetryDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Expression": + case "AcceptedRouteCount": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.AcceptedRouteCount = int32(i64) + } + + case "CertificateArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Expression = ptr.String(jtv) + sv.CertificateArn = ptr.String(jtv) } - case "Type": + case "LastStatusChange": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Type = ptr.String(jtv) + sv.LastStatusChange = ptr.String(jtv) + } + + case "OutsideIpAddress": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.OutsideIpAddress = ptr.String(jtv) + } + + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Status = ptr.String(jtv) + } + + case "StatusMessage": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.StatusMessage = ptr.String(jtv) } default: @@ -15263,7 +15197,7 @@ func awsRestjson1_deserializeDocumentAwsEcsServicePlacementConstraintsDetails(v return nil } -func awsRestjson1_deserializeDocumentAwsEcsServicePlacementConstraintsList(v *[]types.AwsEcsServicePlacementConstraintsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2VpnConnectionVgwTelemetryList(v *[]types.AwsEc2VpnConnectionVgwTelemetryDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -15276,17 +15210,17 @@ func awsRestjson1_deserializeDocumentAwsEcsServicePlacementConstraintsList(v *[] return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsEcsServicePlacementConstraintsDetails + var cv []types.AwsEc2VpnConnectionVgwTelemetryDetails if *v == nil { - cv = []types.AwsEcsServicePlacementConstraintsDetails{} + cv = []types.AwsEc2VpnConnectionVgwTelemetryDetails{} } else { cv = *v } for _, value := range shape { - var col types.AwsEcsServicePlacementConstraintsDetails + var col types.AwsEc2VpnConnectionVgwTelemetryDetails destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEcsServicePlacementConstraintsDetails(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsEc2VpnConnectionVgwTelemetryDetails(&destAddr, value); err != nil { return err } col = *destAddr @@ -15297,7 +15231,7 @@ func awsRestjson1_deserializeDocumentAwsEcsServicePlacementConstraintsList(v *[] return nil } -func awsRestjson1_deserializeDocumentAwsEcsServicePlacementStrategiesDetails(v **types.AwsEcsServicePlacementStrategiesDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcrContainerImageDetails(v **types.AwsEcrContainerImageDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -15310,77 +15244,75 @@ func awsRestjson1_deserializeDocumentAwsEcsServicePlacementStrategiesDetails(v * return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsServicePlacementStrategiesDetails + var sv *types.AwsEcrContainerImageDetails if *v == nil { - sv = &types.AwsEcsServicePlacementStrategiesDetails{} + sv = &types.AwsEcrContainerImageDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Field": + case "Architecture": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Field = ptr.String(jtv) + sv.Architecture = ptr.String(jtv) } - case "Type": + case "ImageDigest": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Type = ptr.String(jtv) + sv.ImageDigest = ptr.String(jtv) } - default: - _, _ = key, value + case "ImagePublishedAt": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ImagePublishedAt = ptr.String(jtv) + } - } - } - *v = sv - return nil -} + case "ImageTags": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.ImageTags, value); err != nil { + return err + } -func awsRestjson1_deserializeDocumentAwsEcsServicePlacementStrategiesList(v *[]types.AwsEcsServicePlacementStrategiesDetails, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } + case "RegistryId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.RegistryId = ptr.String(jtv) + } - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + case "RepositoryName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.RepositoryName = ptr.String(jtv) + } - var cv []types.AwsEcsServicePlacementStrategiesDetails - if *v == nil { - cv = []types.AwsEcsServicePlacementStrategiesDetails{} - } else { - cv = *v - } + default: + _, _ = key, value - for _, value := range shape { - var col types.AwsEcsServicePlacementStrategiesDetails - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEcsServicePlacementStrategiesDetails(&destAddr, value); err != nil { - return err } - col = *destAddr - cv = append(cv, col) - } - *v = cv + *v = sv return nil } -func awsRestjson1_deserializeDocumentAwsEcsServiceServiceRegistriesDetails(v **types.AwsEcsServiceServiceRegistriesDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsClusterClusterSettingsDetails(v **types.AwsEcsClusterClusterSettingsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -15393,57 +15325,31 @@ func awsRestjson1_deserializeDocumentAwsEcsServiceServiceRegistriesDetails(v **t return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsServiceServiceRegistriesDetails + var sv *types.AwsEcsClusterClusterSettingsDetails if *v == nil { - sv = &types.AwsEcsServiceServiceRegistriesDetails{} + sv = &types.AwsEcsClusterClusterSettingsDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "ContainerName": + case "Name": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ContainerName = ptr.String(jtv) - } - - case "ContainerPort": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.ContainerPort = int32(i64) - } - - case "Port": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.Port = int32(i64) + sv.Name = ptr.String(jtv) } - case "RegistryArn": + case "Value": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.RegistryArn = ptr.String(jtv) + sv.Value = ptr.String(jtv) } default: @@ -15455,7 +15361,7 @@ func awsRestjson1_deserializeDocumentAwsEcsServiceServiceRegistriesDetails(v **t return nil } -func awsRestjson1_deserializeDocumentAwsEcsServiceServiceRegistriesList(v *[]types.AwsEcsServiceServiceRegistriesDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsClusterClusterSettingsList(v *[]types.AwsEcsClusterClusterSettingsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -15468,17 +15374,17 @@ func awsRestjson1_deserializeDocumentAwsEcsServiceServiceRegistriesList(v *[]typ return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsEcsServiceServiceRegistriesDetails + var cv []types.AwsEcsClusterClusterSettingsDetails if *v == nil { - cv = []types.AwsEcsServiceServiceRegistriesDetails{} + cv = []types.AwsEcsClusterClusterSettingsDetails{} } else { cv = *v } for _, value := range shape { - var col types.AwsEcsServiceServiceRegistriesDetails + var col types.AwsEcsClusterClusterSettingsDetails destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEcsServiceServiceRegistriesDetails(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsEcsClusterClusterSettingsDetails(&destAddr, value); err != nil { return err } col = *destAddr @@ -15489,7 +15395,7 @@ func awsRestjson1_deserializeDocumentAwsEcsServiceServiceRegistriesList(v *[]typ return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationDetails(v **types.AwsEcsClusterConfigurationDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -15502,31 +15408,18 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsDep return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails + var sv *types.AwsEcsClusterConfigurationDetails if *v == nil { - sv = &types.AwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails{} + sv = &types.AwsEcsClusterConfigurationDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Condition": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Condition = ptr.String(jtv) - } - - case "ContainerName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.ContainerName = ptr.String(jtv) + case "ExecuteCommandConfiguration": + if err := awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationExecuteCommandConfigurationDetails(&sv.ExecuteCommandConfiguration, value); err != nil { + return err } default: @@ -15538,7 +15431,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsDep return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsDependsOnList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationExecuteCommandConfigurationDetails(v **types.AwsEcsClusterConfigurationExecuteCommandConfigurationDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -15546,33 +15439,53 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsDep return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails + var sv *types.AwsEcsClusterConfigurationExecuteCommandConfigurationDetails if *v == nil { - cv = []types.AwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails{} + sv = &types.AwsEcsClusterConfigurationExecuteCommandConfigurationDetails{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col types.AwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + for key, value := range shape { + switch key { + case "KmsKeyId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.KmsKeyId = ptr.String(jtv) + } + + case "LogConfiguration": + if err := awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails(&sv.LogConfiguration, value); err != nil { + return err + } + + case "Logging": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Logging = ptr.String(jtv) + } + + default: + _, _ = key, value + } } - *v = cv + *v = sv return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails(v **types.AwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -15585,39 +15498,1271 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsDet return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsTaskDefinitionContainerDefinitionsDetails + var sv *types.AwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails if *v == nil { - sv = &types.AwsEcsTaskDefinitionContainerDefinitionsDetails{} + sv = &types.AwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Command": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Command, value); err != nil { - return err + case "CloudWatchEncryptionEnabled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.CloudWatchEncryptionEnabled = jtv } - case "Cpu": + case "CloudWatchLogGroupName": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Cpu = int32(i64) + sv.CloudWatchLogGroupName = ptr.String(jtv) } - case "DependsOn": - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsDependsOnList(&sv.DependsOn, value); err != nil { - return err + case "S3BucketName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.S3BucketName = ptr.String(jtv) } - case "DisableNetworking": + case "S3EncryptionEnabled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.S3EncryptionEnabled = jtv + } + + case "S3KeyPrefix": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.S3KeyPrefix = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsClusterDefaultCapacityProviderStrategyDetails(v **types.AwsEcsClusterDefaultCapacityProviderStrategyDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsEcsClusterDefaultCapacityProviderStrategyDetails + if *v == nil { + sv = &types.AwsEcsClusterDefaultCapacityProviderStrategyDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Base": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Base = int32(i64) + } + + case "CapacityProvider": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.CapacityProvider = ptr.String(jtv) + } + + case "Weight": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Weight = int32(i64) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsClusterDefaultCapacityProviderStrategyList(v *[]types.AwsEcsClusterDefaultCapacityProviderStrategyDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsEcsClusterDefaultCapacityProviderStrategyDetails + if *v == nil { + cv = []types.AwsEcsClusterDefaultCapacityProviderStrategyDetails{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsEcsClusterDefaultCapacityProviderStrategyDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsEcsClusterDefaultCapacityProviderStrategyDetails(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsClusterDetails(v **types.AwsEcsClusterDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsEcsClusterDetails + if *v == nil { + sv = &types.AwsEcsClusterDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "CapacityProviders": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.CapacityProviders, value); err != nil { + return err + } + + case "ClusterSettings": + if err := awsRestjson1_deserializeDocumentAwsEcsClusterClusterSettingsList(&sv.ClusterSettings, value); err != nil { + return err + } + + case "Configuration": + if err := awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationDetails(&sv.Configuration, value); err != nil { + return err + } + + case "DefaultCapacityProviderStrategy": + if err := awsRestjson1_deserializeDocumentAwsEcsClusterDefaultCapacityProviderStrategyList(&sv.DefaultCapacityProviderStrategy, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsServiceCapacityProviderStrategyDetails(v **types.AwsEcsServiceCapacityProviderStrategyDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsEcsServiceCapacityProviderStrategyDetails + if *v == nil { + sv = &types.AwsEcsServiceCapacityProviderStrategyDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Base": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Base = int32(i64) + } + + case "CapacityProvider": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.CapacityProvider = ptr.String(jtv) + } + + case "Weight": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Weight = int32(i64) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsServiceCapacityProviderStrategyList(v *[]types.AwsEcsServiceCapacityProviderStrategyDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsEcsServiceCapacityProviderStrategyDetails + if *v == nil { + cv = []types.AwsEcsServiceCapacityProviderStrategyDetails{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsEcsServiceCapacityProviderStrategyDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsEcsServiceCapacityProviderStrategyDetails(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsServiceDeploymentConfigurationDeploymentCircuitBreakerDetails(v **types.AwsEcsServiceDeploymentConfigurationDeploymentCircuitBreakerDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsEcsServiceDeploymentConfigurationDeploymentCircuitBreakerDetails + if *v == nil { + sv = &types.AwsEcsServiceDeploymentConfigurationDeploymentCircuitBreakerDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Enable": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.Enable = jtv + } + + case "Rollback": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.Rollback = jtv + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsServiceDeploymentConfigurationDetails(v **types.AwsEcsServiceDeploymentConfigurationDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsEcsServiceDeploymentConfigurationDetails + if *v == nil { + sv = &types.AwsEcsServiceDeploymentConfigurationDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "DeploymentCircuitBreaker": + if err := awsRestjson1_deserializeDocumentAwsEcsServiceDeploymentConfigurationDeploymentCircuitBreakerDetails(&sv.DeploymentCircuitBreaker, value); err != nil { + return err + } + + case "MaximumPercent": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.MaximumPercent = int32(i64) + } + + case "MinimumHealthyPercent": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.MinimumHealthyPercent = int32(i64) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsServiceDeploymentControllerDetails(v **types.AwsEcsServiceDeploymentControllerDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsEcsServiceDeploymentControllerDetails + if *v == nil { + sv = &types.AwsEcsServiceDeploymentControllerDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Type = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsServiceDetails(v **types.AwsEcsServiceDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsEcsServiceDetails + if *v == nil { + sv = &types.AwsEcsServiceDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "CapacityProviderStrategy": + if err := awsRestjson1_deserializeDocumentAwsEcsServiceCapacityProviderStrategyList(&sv.CapacityProviderStrategy, value); err != nil { + return err + } + + case "Cluster": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Cluster = ptr.String(jtv) + } + + case "DeploymentConfiguration": + if err := awsRestjson1_deserializeDocumentAwsEcsServiceDeploymentConfigurationDetails(&sv.DeploymentConfiguration, value); err != nil { + return err + } + + case "DeploymentController": + if err := awsRestjson1_deserializeDocumentAwsEcsServiceDeploymentControllerDetails(&sv.DeploymentController, value); err != nil { + return err + } + + case "DesiredCount": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.DesiredCount = int32(i64) + } + + case "EnableEcsManagedTags": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.EnableEcsManagedTags = jtv + } + + case "EnableExecuteCommand": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.EnableExecuteCommand = jtv + } + + case "HealthCheckGracePeriodSeconds": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.HealthCheckGracePeriodSeconds = int32(i64) + } + + case "LaunchType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.LaunchType = ptr.String(jtv) + } + + case "LoadBalancers": + if err := awsRestjson1_deserializeDocumentAwsEcsServiceLoadBalancersList(&sv.LoadBalancers, value); err != nil { + return err + } + + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "NetworkConfiguration": + if err := awsRestjson1_deserializeDocumentAwsEcsServiceNetworkConfigurationDetails(&sv.NetworkConfiguration, value); err != nil { + return err + } + + case "PlacementConstraints": + if err := awsRestjson1_deserializeDocumentAwsEcsServicePlacementConstraintsList(&sv.PlacementConstraints, value); err != nil { + return err + } + + case "PlacementStrategies": + if err := awsRestjson1_deserializeDocumentAwsEcsServicePlacementStrategiesList(&sv.PlacementStrategies, value); err != nil { + return err + } + + case "PlatformVersion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.PlatformVersion = ptr.String(jtv) + } + + case "PropagateTags": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.PropagateTags = ptr.String(jtv) + } + + case "Role": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Role = ptr.String(jtv) + } + + case "SchedulingStrategy": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.SchedulingStrategy = ptr.String(jtv) + } + + case "ServiceArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ServiceArn = ptr.String(jtv) + } + + case "ServiceName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ServiceName = ptr.String(jtv) + } + + case "ServiceRegistries": + if err := awsRestjson1_deserializeDocumentAwsEcsServiceServiceRegistriesList(&sv.ServiceRegistries, value); err != nil { + return err + } + + case "TaskDefinition": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.TaskDefinition = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsServiceLoadBalancersDetails(v **types.AwsEcsServiceLoadBalancersDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsEcsServiceLoadBalancersDetails + if *v == nil { + sv = &types.AwsEcsServiceLoadBalancersDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ContainerName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ContainerName = ptr.String(jtv) + } + + case "ContainerPort": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ContainerPort = int32(i64) + } + + case "LoadBalancerName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.LoadBalancerName = ptr.String(jtv) + } + + case "TargetGroupArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.TargetGroupArn = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsServiceLoadBalancersList(v *[]types.AwsEcsServiceLoadBalancersDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsEcsServiceLoadBalancersDetails + if *v == nil { + cv = []types.AwsEcsServiceLoadBalancersDetails{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsEcsServiceLoadBalancersDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsEcsServiceLoadBalancersDetails(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsServiceNetworkConfigurationAwsVpcConfigurationDetails(v **types.AwsEcsServiceNetworkConfigurationAwsVpcConfigurationDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsEcsServiceNetworkConfigurationAwsVpcConfigurationDetails + if *v == nil { + sv = &types.AwsEcsServiceNetworkConfigurationAwsVpcConfigurationDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AssignPublicIp": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.AssignPublicIp = ptr.String(jtv) + } + + case "SecurityGroups": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SecurityGroups, value); err != nil { + return err + } + + case "Subnets": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Subnets, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsServiceNetworkConfigurationDetails(v **types.AwsEcsServiceNetworkConfigurationDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsEcsServiceNetworkConfigurationDetails + if *v == nil { + sv = &types.AwsEcsServiceNetworkConfigurationDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AwsVpcConfiguration": + if err := awsRestjson1_deserializeDocumentAwsEcsServiceNetworkConfigurationAwsVpcConfigurationDetails(&sv.AwsVpcConfiguration, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsServicePlacementConstraintsDetails(v **types.AwsEcsServicePlacementConstraintsDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsEcsServicePlacementConstraintsDetails + if *v == nil { + sv = &types.AwsEcsServicePlacementConstraintsDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Expression": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Expression = ptr.String(jtv) + } + + case "Type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Type = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsServicePlacementConstraintsList(v *[]types.AwsEcsServicePlacementConstraintsDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsEcsServicePlacementConstraintsDetails + if *v == nil { + cv = []types.AwsEcsServicePlacementConstraintsDetails{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsEcsServicePlacementConstraintsDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsEcsServicePlacementConstraintsDetails(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsServicePlacementStrategiesDetails(v **types.AwsEcsServicePlacementStrategiesDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsEcsServicePlacementStrategiesDetails + if *v == nil { + sv = &types.AwsEcsServicePlacementStrategiesDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Field": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Field = ptr.String(jtv) + } + + case "Type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Type = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsServicePlacementStrategiesList(v *[]types.AwsEcsServicePlacementStrategiesDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsEcsServicePlacementStrategiesDetails + if *v == nil { + cv = []types.AwsEcsServicePlacementStrategiesDetails{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsEcsServicePlacementStrategiesDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsEcsServicePlacementStrategiesDetails(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsServiceServiceRegistriesDetails(v **types.AwsEcsServiceServiceRegistriesDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsEcsServiceServiceRegistriesDetails + if *v == nil { + sv = &types.AwsEcsServiceServiceRegistriesDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ContainerName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ContainerName = ptr.String(jtv) + } + + case "ContainerPort": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ContainerPort = int32(i64) + } + + case "Port": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Port = int32(i64) + } + + case "RegistryArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.RegistryArn = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsServiceServiceRegistriesList(v *[]types.AwsEcsServiceServiceRegistriesDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsEcsServiceServiceRegistriesDetails + if *v == nil { + cv = []types.AwsEcsServiceServiceRegistriesDetails{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsEcsServiceServiceRegistriesDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsEcsServiceServiceRegistriesDetails(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails + if *v == nil { + sv = &types.AwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Condition": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Condition = ptr.String(jtv) + } + + case "ContainerName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ContainerName = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsDependsOnList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails + if *v == nil { + cv = []types.AwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsEcsTaskDefinitionContainerDefinitionsDetails + if *v == nil { + sv = &types.AwsEcsTaskDefinitionContainerDefinitionsDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Command": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Command, value); err != nil { + return err + } + + case "Cpu": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Cpu = int32(i64) + } + + case "DependsOn": + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsDependsOnList(&sv.DependsOn, value); err != nil { + return err + } + + case "DisableNetworking": if value != nil { jtv, ok := value.(bool) if !ok { @@ -15626,108 +16771,740 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsDet sv.DisableNetworking = jtv } - case "DnsSearchDomains": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.DnsSearchDomains, value); err != nil { - return err - } + case "DnsSearchDomains": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.DnsSearchDomains, value); err != nil { + return err + } + + case "DnsServers": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.DnsServers, value); err != nil { + return err + } + + case "DockerLabels": + if err := awsRestjson1_deserializeDocumentFieldMap(&sv.DockerLabels, value); err != nil { + return err + } + + case "DockerSecurityOptions": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.DockerSecurityOptions, value); err != nil { + return err + } + + case "EntryPoint": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.EntryPoint, value); err != nil { + return err + } + + case "Environment": + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnvironmentList(&sv.Environment, value); err != nil { + return err + } + + case "EnvironmentFiles": + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesList(&sv.EnvironmentFiles, value); err != nil { + return err + } + + case "Essential": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.Essential = jtv + } + + case "ExtraHosts": + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsExtraHostsList(&sv.ExtraHosts, value); err != nil { + return err + } + + case "FirelensConfiguration": + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsFirelensConfigurationDetails(&sv.FirelensConfiguration, value); err != nil { + return err + } + + case "HealthCheck": + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsHealthCheckDetails(&sv.HealthCheck, value); err != nil { + return err + } + + case "Hostname": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Hostname = ptr.String(jtv) + } + + case "Image": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Image = ptr.String(jtv) + } + + case "Interactive": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.Interactive = jtv + } + + case "Links": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Links, value); err != nil { + return err + } + + case "LinuxParameters": + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDetails(&sv.LinuxParameters, value); err != nil { + return err + } + + case "LogConfiguration": + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails(&sv.LogConfiguration, value); err != nil { + return err + } + + case "Memory": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Memory = int32(i64) + } + + case "MemoryReservation": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.MemoryReservation = int32(i64) + } + + case "MountPoints": + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsMountPointsList(&sv.MountPoints, value); err != nil { + return err + } + + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "PortMappings": + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsPortMappingsList(&sv.PortMappings, value); err != nil { + return err + } + + case "Privileged": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.Privileged = jtv + } + + case "PseudoTerminal": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.PseudoTerminal = jtv + } + + case "ReadonlyRootFilesystem": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.ReadonlyRootFilesystem = jtv + } + + case "RepositoryCredentials": + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsRepositoryCredentialsDetails(&sv.RepositoryCredentials, value); err != nil { + return err + } + + case "ResourceRequirements": + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsList(&sv.ResourceRequirements, value); err != nil { + return err + } + + case "Secrets": + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSecretsList(&sv.Secrets, value); err != nil { + return err + } + + case "StartTimeout": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.StartTimeout = int32(i64) + } + + case "StopTimeout": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.StopTimeout = int32(i64) + } + + case "SystemControls": + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSystemControlsList(&sv.SystemControls, value); err != nil { + return err + } + + case "Ulimits": + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsUlimitsList(&sv.Ulimits, value); err != nil { + return err + } + + case "User": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.User = ptr.String(jtv) + } + + case "VolumesFrom": + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsVolumesFromList(&sv.VolumesFrom, value); err != nil { + return err + } + + case "WorkingDirectory": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.WorkingDirectory = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails + if *v == nil { + sv = &types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "Value": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Value = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails + if *v == nil { + sv = &types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Type = ptr.String(jtv) + } + + case "Value": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Value = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails + if *v == nil { + cv = []types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnvironmentList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails + if *v == nil { + cv = []types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails + if *v == nil { + sv = &types.AwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Hostname": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Hostname = ptr.String(jtv) + } + + case "IpAddress": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.IpAddress = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsExtraHostsList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails + if *v == nil { + cv = []types.AwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsFirelensConfigurationDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsFirelensConfigurationDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsEcsTaskDefinitionContainerDefinitionsFirelensConfigurationDetails + if *v == nil { + sv = &types.AwsEcsTaskDefinitionContainerDefinitionsFirelensConfigurationDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Options": + if err := awsRestjson1_deserializeDocumentFieldMap(&sv.Options, value); err != nil { + return err + } + + case "Type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Type = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsHealthCheckDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsHealthCheckDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsEcsTaskDefinitionContainerDefinitionsHealthCheckDetails + if *v == nil { + sv = &types.AwsEcsTaskDefinitionContainerDefinitionsHealthCheckDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Command": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Command, value); err != nil { + return err + } + + case "Interval": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Interval = int32(i64) + } + + case "Retries": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Retries = int32(i64) + } + + case "StartPeriod": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.StartPeriod = int32(i64) + } + + case "Timeout": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Timeout = int32(i64) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersCapabilitiesDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersCapabilitiesDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } - case "DnsServers": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.DnsServers, value); err != nil { - return err - } + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } - case "DockerLabels": - if err := awsRestjson1_deserializeDocumentFieldMap(&sv.DockerLabels, value); err != nil { - return err - } + var sv *types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersCapabilitiesDetails + if *v == nil { + sv = &types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersCapabilitiesDetails{} + } else { + sv = *v + } - case "DockerSecurityOptions": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.DockerSecurityOptions, value); err != nil { + for key, value := range shape { + switch key { + case "Add": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Add, value); err != nil { return err } - case "EntryPoint": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.EntryPoint, value); err != nil { + case "Drop": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Drop, value); err != nil { return err } - case "Environment": - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnvironmentList(&sv.Environment, value); err != nil { - return err - } + default: + _, _ = key, value - case "EnvironmentFiles": - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesList(&sv.EnvironmentFiles, value); err != nil { - return err - } + } + } + *v = sv + return nil +} - case "Essential": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.Essential = jtv - } +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } - case "ExtraHosts": - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsExtraHostsList(&sv.ExtraHosts, value); err != nil { - return err - } + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } - case "FirelensConfiguration": - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsFirelensConfigurationDetails(&sv.FirelensConfiguration, value); err != nil { + var sv *types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDetails + if *v == nil { + sv = &types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Capabilities": + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersCapabilitiesDetails(&sv.Capabilities, value); err != nil { return err } - case "HealthCheck": - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsHealthCheckDetails(&sv.HealthCheck, value); err != nil { + case "Devices": + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesList(&sv.Devices, value); err != nil { return err } - case "Hostname": + case "InitProcessEnabled": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.Hostname = ptr.String(jtv) + sv.InitProcessEnabled = jtv } - case "Image": + case "MaxSwap": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.Image = ptr.String(jtv) - } - - case "Interactive": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + i64, err := jtv.Int64() + if err != nil { + return err } - sv.Interactive = jtv - } - - case "Links": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Links, value); err != nil { - return err - } - - case "LinuxParameters": - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDetails(&sv.LinuxParameters, value); err != nil { - return err - } - - case "LogConfiguration": - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails(&sv.LogConfiguration, value); err != nil { - return err + sv.MaxSwap = int32(i64) } - case "Memory": + case "SharedMemorySize": if value != nil { jtv, ok := value.(json.Number) if !ok { @@ -15737,10 +17514,10 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsDet if err != nil { return err } - sv.Memory = int32(i64) + sv.SharedMemorySize = int32(i64) } - case "MemoryReservation": + case "Swappiness": if value != nil { jtv, ok := value.(json.Number) if !ok { @@ -15750,71 +17527,148 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsDet if err != nil { return err } - sv.MemoryReservation = int32(i64) + sv.Swappiness = int32(i64) } - case "MountPoints": - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsMountPointsList(&sv.MountPoints, value); err != nil { + case "Tmpfs": + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsList(&sv.Tmpfs, value); err != nil { return err } - case "Name": + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails + if *v == nil { + sv = &types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ContainerPath": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Name = ptr.String(jtv) - } - - case "PortMappings": - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsPortMappingsList(&sv.PortMappings, value); err != nil { - return err + sv.ContainerPath = ptr.String(jtv) } - case "Privileged": + case "HostPath": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Privileged = jtv + sv.HostPath = ptr.String(jtv) + } + + case "Permissions": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Permissions, value); err != nil { + return err } - case "PseudoTerminal": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.PseudoTerminal = jtv - } + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails + if *v == nil { + cv = []types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails + if *v == nil { + sv = &types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails{} + } else { + sv = *v + } - case "ReadonlyRootFilesystem": + for key, value := range shape { + switch key { + case "ContainerPath": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ReadonlyRootFilesystem = jtv - } - - case "RepositoryCredentials": - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsRepositoryCredentialsDetails(&sv.RepositoryCredentials, value); err != nil { - return err - } - - case "ResourceRequirements": - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsList(&sv.ResourceRequirements, value); err != nil { - return err + sv.ContainerPath = ptr.String(jtv) } - case "Secrets": - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSecretsList(&sv.Secrets, value); err != nil { + case "MountOptions": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.MountOptions, value); err != nil { return err } - case "StartTimeout": + case "Size": if value != nil { jtv, ok := value.(json.Number) if !ok { @@ -15824,65 +17678,87 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsDet if err != nil { return err } - sv.StartTimeout = int32(i64) + sv.Size = int32(i64) } - case "StopTimeout": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.StopTimeout = int32(i64) - } + default: + _, _ = key, value - case "SystemControls": - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSystemControlsList(&sv.SystemControls, value); err != nil { - return err - } + } + } + *v = sv + return nil +} - case "Ulimits": - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsUlimitsList(&sv.Ulimits, value); err != nil { - return err - } +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } - case "User": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.User = ptr.String(jtv) - } + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } - case "VolumesFrom": - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsVolumesFromList(&sv.VolumesFrom, value); err != nil { - return err - } + var cv []types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails + if *v == nil { + cv = []types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails{} + } else { + cv = *v + } - case "WorkingDirectory": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.WorkingDirectory = ptr.String(jtv) - } + for _, value := range shape { + var col types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) - default: - _, _ = key, value + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsEcsTaskDefinitionContainerDefinitionsDetails + if *v == nil { + cv = []types.AwsEcsTaskDefinitionContainerDefinitionsDetails{} + } else { + cv = *v + } + for _, value := range shape { + var col types.AwsEcsTaskDefinitionContainerDefinitionsDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsDetails(&destAddr, value); err != nil { + return err } + col = *destAddr + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -15895,31 +17771,32 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnv return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails + var sv *types.AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails if *v == nil { - sv = &types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails{} + sv = &types.AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Name": + case "LogDriver": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Name = ptr.String(jtv) + sv.LogDriver = ptr.String(jtv) } - case "Value": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Value = ptr.String(jtv) + case "Options": + if err := awsRestjson1_deserializeDocumentFieldMap(&sv.Options, value); err != nil { + return err + } + + case "SecretOptions": + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsList(&sv.SecretOptions, value); err != nil { + return err } default: @@ -15931,7 +17808,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnv return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -15944,31 +17821,31 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnv return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails + var sv *types.AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails if *v == nil { - sv = &types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails{} + sv = &types.AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Type": + case "Name": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Type = ptr.String(jtv) + sv.Name = ptr.String(jtv) } - case "Value": + case "ValueFrom": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Value = ptr.String(jtv) + sv.ValueFrom = ptr.String(jtv) } default: @@ -15980,7 +17857,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnv return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -15993,28 +17870,86 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnv return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails - if *v == nil { - cv = []types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails{} - } else { - cv = *v - } + var cv []types.AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails + if *v == nil { + cv = []types.AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails + if *v == nil { + sv = &types.AwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ContainerPath": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ContainerPath = ptr.String(jtv) + } + + case "ReadOnly": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.ReadOnly = jtv + } + + case "SourceVolume": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.SourceVolume = ptr.String(jtv) + } + + default: + _, _ = key, value - for _, value := range shape { - var col types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails(&destAddr, value); err != nil { - return err } - col = *destAddr - cv = append(cv, col) - } - *v = cv + *v = sv return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnvironmentList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsMountPointsList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -16027,17 +17962,17 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnv return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails + var cv []types.AwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails if *v == nil { - cv = []types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails{} + cv = []types.AwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails{} } else { cv = *v } for _, value := range shape { - var col types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails + var col types.AwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails(&destAddr, value); err != nil { return err } col = *destAddr @@ -16048,7 +17983,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnv return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -16061,31 +17996,48 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsExt return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails + var sv *types.AwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails if *v == nil { - sv = &types.AwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails{} + sv = &types.AwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Hostname": + case "ContainerPort": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.Hostname = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ContainerPort = int32(i64) } - case "IpAddress": + case "HostPort": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.HostPort = int32(i64) + } + + case "Protocol": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.IpAddress = ptr.String(jtv) + sv.Protocol = ptr.String(jtv) } default: @@ -16097,7 +18049,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsExt return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsExtraHostsList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsPortMappingsList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -16110,17 +18062,17 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsExt return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails + var cv []types.AwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails if *v == nil { - cv = []types.AwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails{} + cv = []types.AwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails{} } else { cv = *v } for _, value := range shape { - var col types.AwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails + var col types.AwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails(&destAddr, value); err != nil { return err } col = *destAddr @@ -16131,7 +18083,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsExt return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsFirelensConfigurationDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsFirelensConfigurationDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsRepositoryCredentialsDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsRepositoryCredentialsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -16144,27 +18096,22 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsFir return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsTaskDefinitionContainerDefinitionsFirelensConfigurationDetails + var sv *types.AwsEcsTaskDefinitionContainerDefinitionsRepositoryCredentialsDetails if *v == nil { - sv = &types.AwsEcsTaskDefinitionContainerDefinitionsFirelensConfigurationDetails{} + sv = &types.AwsEcsTaskDefinitionContainerDefinitionsRepositoryCredentialsDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Options": - if err := awsRestjson1_deserializeDocumentFieldMap(&sv.Options, value); err != nil { - return err - } - - case "Type": + case "CredentialsParameter": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Type = ptr.String(jtv) + sv.CredentialsParameter = ptr.String(jtv) } default: @@ -16176,7 +18123,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsFir return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsHealthCheckDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsHealthCheckDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -16189,70 +18136,31 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsHea return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsTaskDefinitionContainerDefinitionsHealthCheckDetails + var sv *types.AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails if *v == nil { - sv = &types.AwsEcsTaskDefinitionContainerDefinitionsHealthCheckDetails{} + sv = &types.AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Command": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Command, value); err != nil { - return err - } - - case "Interval": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.Interval = int32(i64) - } - - case "Retries": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.Retries = int32(i64) - } - - case "StartPeriod": + case "Type": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.StartPeriod = int32(i64) + sv.Type = ptr.String(jtv) } - case "Timeout": + case "Value": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Timeout = int32(i64) + sv.Value = ptr.String(jtv) } default: @@ -16264,7 +18172,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsHea return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersCapabilitiesDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersCapabilitiesDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -16272,40 +18180,33 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLin return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersCapabilitiesDetails + var cv []types.AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails if *v == nil { - sv = &types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersCapabilitiesDetails{} + cv = []types.AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "Add": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Add, value); err != nil { - return err - } - - case "Drop": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Drop, value); err != nil { - return err - } - - default: - _, _ = key, value - + for _, value := range shape { + var col types.AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails(&destAddr, value); err != nil { + return err } + col = *destAddr + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSecretsDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsSecretsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -16318,76 +18219,31 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLin return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDetails + var sv *types.AwsEcsTaskDefinitionContainerDefinitionsSecretsDetails if *v == nil { - sv = &types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDetails{} + sv = &types.AwsEcsTaskDefinitionContainerDefinitionsSecretsDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Capabilities": - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersCapabilitiesDetails(&sv.Capabilities, value); err != nil { - return err - } - - case "Devices": - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesList(&sv.Devices, value); err != nil { - return err - } - - case "InitProcessEnabled": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.InitProcessEnabled = jtv - } - - case "MaxSwap": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.MaxSwap = int32(i64) - } - - case "SharedMemorySize": + case "Name": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.SharedMemorySize = int32(i64) + sv.Name = ptr.String(jtv) } - case "Swappiness": + case "ValueFrom": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Swappiness = int32(i64) - } - - case "Tmpfs": - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsList(&sv.Tmpfs, value); err != nil { - return err + sv.ValueFrom = ptr.String(jtv) } default: @@ -16399,7 +18255,41 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLin return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSecretsList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsSecretsDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsEcsTaskDefinitionContainerDefinitionsSecretsDetails + if *v == nil { + cv = []types.AwsEcsTaskDefinitionContainerDefinitionsSecretsDetails{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsEcsTaskDefinitionContainerDefinitionsSecretsDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSecretsDetails(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -16412,36 +18302,31 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLin return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails + var sv *types.AwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails if *v == nil { - sv = &types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails{} + sv = &types.AwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "ContainerPath": + case "Namespace": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ContainerPath = ptr.String(jtv) + sv.Namespace = ptr.String(jtv) } - case "HostPath": + case "Value": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.HostPath = ptr.String(jtv) - } - - case "Permissions": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Permissions, value); err != nil { - return err + sv.Value = ptr.String(jtv) } default: @@ -16453,7 +18338,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLin return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSystemControlsList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -16466,17 +18351,17 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLin return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails + var cv []types.AwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails if *v == nil { - cv = []types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails{} + cv = []types.AwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails{} } else { cv = *v } for _, value := range shape { - var col types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails + var col types.AwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails(&destAddr, value); err != nil { return err } col = *destAddr @@ -16487,7 +18372,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLin return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -16500,30 +18385,38 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLin return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails + var sv *types.AwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails if *v == nil { - sv = &types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails{} + sv = &types.AwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "ContainerPath": + case "HardLimit": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.ContainerPath = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.HardLimit = int32(i64) } - case "MountOptions": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.MountOptions, value); err != nil { - return err + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) } - case "Size": + case "SoftLimit": if value != nil { jtv, ok := value.(json.Number) if !ok { @@ -16533,7 +18426,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLin if err != nil { return err } - sv.Size = int32(i64) + sv.SoftLimit = int32(i64) } default: @@ -16545,7 +18438,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLin return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsUlimitsList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -16558,17 +18451,17 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLin return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails + var cv []types.AwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails if *v == nil { - cv = []types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails{} + cv = []types.AwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails{} } else { cv = *v } for _, value := range shape { - var col types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails + var col types.AwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails(&destAddr, value); err != nil { return err } col = *destAddr @@ -16579,7 +18472,56 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLin return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails + if *v == nil { + sv = &types.AwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ReadOnly": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.ReadOnly = jtv + } + + case "SourceContainer": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.SourceContainer = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsVolumesFromList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -16592,17 +18534,17 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLis return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsEcsTaskDefinitionContainerDefinitionsDetails + var cv []types.AwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails if *v == nil { - cv = []types.AwsEcsTaskDefinitionContainerDefinitionsDetails{} + cv = []types.AwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails{} } else { cv = *v } for _, value := range shape { - var col types.AwsEcsTaskDefinitionContainerDefinitionsDetails + var col types.AwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsDetails(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails(&destAddr, value); err != nil { return err } col = *destAddr @@ -16613,7 +18555,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLis return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionDetails(v **types.AwsEcsTaskDefinitionDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -16626,31 +18568,114 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLog return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails + var sv *types.AwsEcsTaskDefinitionDetails if *v == nil { - sv = &types.AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails{} + sv = &types.AwsEcsTaskDefinitionDetails{} } else { sv = *v } - for key, value := range shape { - switch key { - case "LogDriver": + for key, value := range shape { + switch key { + case "ContainerDefinitions": + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsList(&sv.ContainerDefinitions, value); err != nil { + return err + } + + case "Cpu": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Cpu = ptr.String(jtv) + } + + case "ExecutionRoleArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ExecutionRoleArn = ptr.String(jtv) + } + + case "Family": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Family = ptr.String(jtv) + } + + case "InferenceAccelerators": + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionInferenceAcceleratorsList(&sv.InferenceAccelerators, value); err != nil { + return err + } + + case "IpcMode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.IpcMode = ptr.String(jtv) + } + + case "Memory": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Memory = ptr.String(jtv) + } + + case "NetworkMode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.NetworkMode = ptr.String(jtv) + } + + case "PidMode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.PidMode = ptr.String(jtv) + } + + case "PlacementConstraints": + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionPlacementConstraintsList(&sv.PlacementConstraints, value); err != nil { + return err + } + + case "ProxyConfiguration": + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionProxyConfigurationDetails(&sv.ProxyConfiguration, value); err != nil { + return err + } + + case "RequiresCompatibilities": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.RequiresCompatibilities, value); err != nil { + return err + } + + case "TaskRoleArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.LogDriver = ptr.String(jtv) - } - - case "Options": - if err := awsRestjson1_deserializeDocumentFieldMap(&sv.Options, value); err != nil { - return err + sv.TaskRoleArn = ptr.String(jtv) } - case "SecretOptions": - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsList(&sv.SecretOptions, value); err != nil { + case "Volumes": + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesList(&sv.Volumes, value); err != nil { return err } @@ -16663,7 +18688,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLog return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionInferenceAcceleratorsDetails(v **types.AwsEcsTaskDefinitionInferenceAcceleratorsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -16676,31 +18701,31 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLog return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails + var sv *types.AwsEcsTaskDefinitionInferenceAcceleratorsDetails if *v == nil { - sv = &types.AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails{} + sv = &types.AwsEcsTaskDefinitionInferenceAcceleratorsDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Name": + case "DeviceName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Name = ptr.String(jtv) + sv.DeviceName = ptr.String(jtv) } - case "ValueFrom": + case "DeviceType": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ValueFrom = ptr.String(jtv) + sv.DeviceType = ptr.String(jtv) } default: @@ -16712,7 +18737,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLog return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionInferenceAcceleratorsList(v *[]types.AwsEcsTaskDefinitionInferenceAcceleratorsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -16725,17 +18750,17 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLog return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails + var cv []types.AwsEcsTaskDefinitionInferenceAcceleratorsDetails if *v == nil { - cv = []types.AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails{} + cv = []types.AwsEcsTaskDefinitionInferenceAcceleratorsDetails{} } else { cv = *v } for _, value := range shape { - var col types.AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails + var col types.AwsEcsTaskDefinitionInferenceAcceleratorsDetails destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionInferenceAcceleratorsDetails(&destAddr, value); err != nil { return err } col = *destAddr @@ -16746,7 +18771,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLog return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionPlacementConstraintsDetails(v **types.AwsEcsTaskDefinitionPlacementConstraintsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -16759,40 +18784,31 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsMou return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails + var sv *types.AwsEcsTaskDefinitionPlacementConstraintsDetails if *v == nil { - sv = &types.AwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails{} + sv = &types.AwsEcsTaskDefinitionPlacementConstraintsDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "ContainerPath": + case "Expression": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ContainerPath = ptr.String(jtv) - } - - case "ReadOnly": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.ReadOnly = jtv + sv.Expression = ptr.String(jtv) } - case "SourceVolume": + case "Type": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.SourceVolume = ptr.String(jtv) + sv.Type = ptr.String(jtv) } default: @@ -16804,7 +18820,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsMou return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsMountPointsList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionPlacementConstraintsList(v *[]types.AwsEcsTaskDefinitionPlacementConstraintsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -16817,17 +18833,17 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsMou return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails + var cv []types.AwsEcsTaskDefinitionPlacementConstraintsDetails if *v == nil { - cv = []types.AwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails{} + cv = []types.AwsEcsTaskDefinitionPlacementConstraintsDetails{} } else { cv = *v } for _, value := range shape { - var col types.AwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails + var col types.AwsEcsTaskDefinitionPlacementConstraintsDetails destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionPlacementConstraintsDetails(&destAddr, value); err != nil { return err } col = *destAddr @@ -16838,7 +18854,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsMou return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionProxyConfigurationDetails(v **types.AwsEcsTaskDefinitionProxyConfigurationDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -16851,48 +18867,36 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsPor return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails + var sv *types.AwsEcsTaskDefinitionProxyConfigurationDetails if *v == nil { - sv = &types.AwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails{} + sv = &types.AwsEcsTaskDefinitionProxyConfigurationDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "ContainerPort": + case "ContainerName": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ContainerPort = int32(i64) + sv.ContainerName = ptr.String(jtv) } - case "HostPort": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.HostPort = int32(i64) + case "ProxyConfigurationProperties": + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesList(&sv.ProxyConfigurationProperties, value); err != nil { + return err } - case "Protocol": + case "Type": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Protocol = ptr.String(jtv) + sv.Type = ptr.String(jtv) } default: @@ -16904,7 +18908,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsPor return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsPortMappingsList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails(v **types.AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -16912,33 +18916,48 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsPor return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails + var sv *types.AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails if *v == nil { - cv = []types.AwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails{} + sv = &types.AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col types.AwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + for key, value := range shape { + switch key { + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "Value": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Value = ptr.String(jtv) + } + + default: + _, _ = key, value + } } - *v = cv + *v = sv return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsRepositoryCredentialsDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsRepositoryCredentialsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesList(v *[]types.AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -16946,39 +18965,33 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsRep return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsTaskDefinitionContainerDefinitionsRepositoryCredentialsDetails + var cv []types.AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails if *v == nil { - sv = &types.AwsEcsTaskDefinitionContainerDefinitionsRepositoryCredentialsDetails{} + cv = []types.AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "CredentialsParameter": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.CredentialsParameter = ptr.String(jtv) - } - - default: - _, _ = key, value - + for _, value := range shape { + var col types.AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails(&destAddr, value); err != nil { + return err } + col = *destAddr + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesDetails(v **types.AwsEcsTaskDefinitionVolumesDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -16991,31 +19004,37 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsRes return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails + var sv *types.AwsEcsTaskDefinitionVolumesDetails if *v == nil { - sv = &types.AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails{} + sv = &types.AwsEcsTaskDefinitionVolumesDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Type": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Type = ptr.String(jtv) + case "DockerVolumeConfiguration": + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesDockerVolumeConfigurationDetails(&sv.DockerVolumeConfiguration, value); err != nil { + return err } - case "Value": + case "EfsVolumeConfiguration": + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails(&sv.EfsVolumeConfiguration, value); err != nil { + return err + } + + case "Host": + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesHostDetails(&sv.Host, value); err != nil { + return err + } + + case "Name": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Value = ptr.String(jtv) + sv.Name = ptr.String(jtv) } default: @@ -17027,41 +19046,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsRes return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var cv []types.AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails - if *v == nil { - cv = []types.AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSecretsDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsSecretsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesDockerVolumeConfigurationDetails(v **types.AwsEcsTaskDefinitionVolumesDockerVolumeConfigurationDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -17074,31 +19059,50 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSec return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsTaskDefinitionContainerDefinitionsSecretsDetails + var sv *types.AwsEcsTaskDefinitionVolumesDockerVolumeConfigurationDetails if *v == nil { - sv = &types.AwsEcsTaskDefinitionContainerDefinitionsSecretsDetails{} + sv = &types.AwsEcsTaskDefinitionVolumesDockerVolumeConfigurationDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Name": + case "Autoprovision": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.Autoprovision = jtv + } + + case "Driver": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Name = ptr.String(jtv) + sv.Driver = ptr.String(jtv) } - case "ValueFrom": + case "DriverOpts": + if err := awsRestjson1_deserializeDocumentFieldMap(&sv.DriverOpts, value); err != nil { + return err + } + + case "Labels": + if err := awsRestjson1_deserializeDocumentFieldMap(&sv.Labels, value); err != nil { + return err + } + + case "Scope": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ValueFrom = ptr.String(jtv) + sv.Scope = ptr.String(jtv) } default: @@ -17110,41 +19114,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSec return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSecretsList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsSecretsDetails, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var cv []types.AwsEcsTaskDefinitionContainerDefinitionsSecretsDetails - if *v == nil { - cv = []types.AwsEcsTaskDefinitionContainerDefinitionsSecretsDetails{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.AwsEcsTaskDefinitionContainerDefinitionsSecretsDetails - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSecretsDetails(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails(v **types.AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -17157,31 +19127,31 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSys return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails + var sv *types.AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails if *v == nil { - sv = &types.AwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails{} + sv = &types.AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Namespace": + case "AccessPointId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Namespace = ptr.String(jtv) + sv.AccessPointId = ptr.String(jtv) } - case "Value": + case "Iam": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Value = ptr.String(jtv) + sv.Iam = ptr.String(jtv) } default: @@ -17193,41 +19163,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSys return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSystemControlsList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var cv []types.AwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails - if *v == nil { - cv = []types.AwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.AwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails(v **types.AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -17240,38 +19176,48 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsUli return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails + var sv *types.AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails if *v == nil { - sv = &types.AwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails{} + sv = &types.AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "HardLimit": + case "AuthorizationConfig": + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails(&sv.AuthorizationConfig, value); err != nil { + return err + } + + case "FilesystemId": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - i64, err := jtv.Int64() - if err != nil { - return err + sv.FilesystemId = ptr.String(jtv) + } + + case "RootDirectory": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.HardLimit = int32(i64) + sv.RootDirectory = ptr.String(jtv) } - case "Name": + case "TransitEncryption": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Name = ptr.String(jtv) + sv.TransitEncryption = ptr.String(jtv) } - case "SoftLimit": + case "TransitEncryptionPort": if value != nil { jtv, ok := value.(json.Number) if !ok { @@ -17281,7 +19227,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsUli if err != nil { return err } - sv.SoftLimit = int32(i64) + sv.TransitEncryptionPort = int32(i64) } default: @@ -17293,41 +19239,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsUli return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsUlimitsList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var cv []types.AwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails - if *v == nil { - cv = []types.AwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.AwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesHostDetails(v **types.AwsEcsTaskDefinitionVolumesHostDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -17340,31 +19252,22 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsVol return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails + var sv *types.AwsEcsTaskDefinitionVolumesHostDetails if *v == nil { - sv = &types.AwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails{} + sv = &types.AwsEcsTaskDefinitionVolumesHostDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "ReadOnly": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.ReadOnly = jtv - } - - case "SourceContainer": + case "SourcePath": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.SourceContainer = ptr.String(jtv) + sv.SourcePath = ptr.String(jtv) } default: @@ -17376,7 +19279,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsVol return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsVolumesFromList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesList(v *[]types.AwsEcsTaskDefinitionVolumesDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -17389,17 +19292,17 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsVol return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails + var cv []types.AwsEcsTaskDefinitionVolumesDetails if *v == nil { - cv = []types.AwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails{} + cv = []types.AwsEcsTaskDefinitionVolumesDetails{} } else { cv = *v } for _, value := range shape { - var col types.AwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails + var col types.AwsEcsTaskDefinitionVolumesDetails destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesDetails(&destAddr, value); err != nil { return err } col = *destAddr @@ -17410,7 +19313,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsVol return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionDetails(v **types.AwsEcsTaskDefinitionDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentDetails(v **types.AwsElasticBeanstalkEnvironmentDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -17423,164 +19326,145 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionDetails(v **types.AwsEc return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsTaskDefinitionDetails + var sv *types.AwsElasticBeanstalkEnvironmentDetails if *v == nil { - sv = &types.AwsEcsTaskDefinitionDetails{} + sv = &types.AwsElasticBeanstalkEnvironmentDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "ContainerDefinitions": - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsList(&sv.ContainerDefinitions, value); err != nil { - return err - } - - case "Cpu": + case "ApplicationName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Cpu = ptr.String(jtv) + sv.ApplicationName = ptr.String(jtv) } - case "ExecutionRoleArn": + case "Cname": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ExecutionRoleArn = ptr.String(jtv) + sv.Cname = ptr.String(jtv) } - case "Family": + case "DateCreated": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Family = ptr.String(jtv) + sv.DateCreated = ptr.String(jtv) } - case "InferenceAccelerators": - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionInferenceAcceleratorsList(&sv.InferenceAccelerators, value); err != nil { - return err + case "DateUpdated": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.DateUpdated = ptr.String(jtv) } - case "IpcMode": + case "Description": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.IpcMode = ptr.String(jtv) + sv.Description = ptr.String(jtv) } - case "Memory": + case "EndpointUrl": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Memory = ptr.String(jtv) + sv.EndpointUrl = ptr.String(jtv) } - case "NetworkMode": + case "EnvironmentArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.NetworkMode = ptr.String(jtv) + sv.EnvironmentArn = ptr.String(jtv) } - case "PidMode": + case "EnvironmentId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PidMode = ptr.String(jtv) + sv.EnvironmentId = ptr.String(jtv) } - case "PlacementConstraints": - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionPlacementConstraintsList(&sv.PlacementConstraints, value); err != nil { + case "EnvironmentLinks": + if err := awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentEnvironmentLinks(&sv.EnvironmentLinks, value); err != nil { return err } - case "ProxyConfiguration": - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionProxyConfigurationDetails(&sv.ProxyConfiguration, value); err != nil { - return err + case "EnvironmentName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.EnvironmentName = ptr.String(jtv) } - case "RequiresCompatibilities": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.RequiresCompatibilities, value); err != nil { + case "OptionSettings": + if err := awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentOptionSettings(&sv.OptionSettings, value); err != nil { return err } - case "TaskRoleArn": + case "PlatformArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.TaskRoleArn = ptr.String(jtv) + sv.PlatformArn = ptr.String(jtv) } - case "Volumes": - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesList(&sv.Volumes, value); err != nil { - return err + case "SolutionStackName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.SolutionStackName = ptr.String(jtv) } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionInferenceAcceleratorsDetails(v **types.AwsEcsTaskDefinitionInferenceAcceleratorsDetails, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.AwsEcsTaskDefinitionInferenceAcceleratorsDetails - if *v == nil { - sv = &types.AwsEcsTaskDefinitionInferenceAcceleratorsDetails{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "DeviceName": + case "Status": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DeviceName = ptr.String(jtv) + sv.Status = ptr.String(jtv) } - case "DeviceType": + case "Tier": + if err := awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentTier(&sv.Tier, value); err != nil { + return err + } + + case "VersionLabel": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DeviceType = ptr.String(jtv) + sv.VersionLabel = ptr.String(jtv) } default: @@ -17592,41 +19476,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionInferenceAcceleratorsDe return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionInferenceAcceleratorsList(v *[]types.AwsEcsTaskDefinitionInferenceAcceleratorsDetails, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var cv []types.AwsEcsTaskDefinitionInferenceAcceleratorsDetails - if *v == nil { - cv = []types.AwsEcsTaskDefinitionInferenceAcceleratorsDetails{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.AwsEcsTaskDefinitionInferenceAcceleratorsDetails - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionInferenceAcceleratorsDetails(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionPlacementConstraintsDetails(v **types.AwsEcsTaskDefinitionPlacementConstraintsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentEnvironmentLink(v **types.AwsElasticBeanstalkEnvironmentEnvironmentLink, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -17639,31 +19489,31 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionPlacementConstraintsDet return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsTaskDefinitionPlacementConstraintsDetails + var sv *types.AwsElasticBeanstalkEnvironmentEnvironmentLink if *v == nil { - sv = &types.AwsEcsTaskDefinitionPlacementConstraintsDetails{} + sv = &types.AwsElasticBeanstalkEnvironmentEnvironmentLink{} } else { sv = *v } for key, value := range shape { switch key { - case "Expression": + case "EnvironmentName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Expression = ptr.String(jtv) + sv.EnvironmentName = ptr.String(jtv) } - case "Type": + case "LinkName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Type = ptr.String(jtv) + sv.LinkName = ptr.String(jtv) } default: @@ -17675,7 +19525,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionPlacementConstraintsDet return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionPlacementConstraintsList(v *[]types.AwsEcsTaskDefinitionPlacementConstraintsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentEnvironmentLinks(v *[]types.AwsElasticBeanstalkEnvironmentEnvironmentLink, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -17688,17 +19538,17 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionPlacementConstraintsLis return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsEcsTaskDefinitionPlacementConstraintsDetails + var cv []types.AwsElasticBeanstalkEnvironmentEnvironmentLink if *v == nil { - cv = []types.AwsEcsTaskDefinitionPlacementConstraintsDetails{} + cv = []types.AwsElasticBeanstalkEnvironmentEnvironmentLink{} } else { cv = *v } for _, value := range shape { - var col types.AwsEcsTaskDefinitionPlacementConstraintsDetails + var col types.AwsElasticBeanstalkEnvironmentEnvironmentLink destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionPlacementConstraintsDetails(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentEnvironmentLink(&destAddr, value); err != nil { return err } col = *destAddr @@ -17709,7 +19559,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionPlacementConstraintsLis return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionProxyConfigurationDetails(v **types.AwsEcsTaskDefinitionProxyConfigurationDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentOptionSetting(v **types.AwsElasticBeanstalkEnvironmentOptionSetting, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -17722,76 +19572,40 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionProxyConfigurationDetai return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsTaskDefinitionProxyConfigurationDetails + var sv *types.AwsElasticBeanstalkEnvironmentOptionSetting if *v == nil { - sv = &types.AwsEcsTaskDefinitionProxyConfigurationDetails{} + sv = &types.AwsElasticBeanstalkEnvironmentOptionSetting{} } else { sv = *v } for key, value := range shape { switch key { - case "ContainerName": + case "Namespace": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ContainerName = ptr.String(jtv) - } - - case "ProxyConfigurationProperties": - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesList(&sv.ProxyConfigurationProperties, value); err != nil { - return err + sv.Namespace = ptr.String(jtv) } - case "Type": + case "OptionName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Type = ptr.String(jtv) + sv.OptionName = ptr.String(jtv) } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails(v **types.AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails - if *v == nil { - sv = &types.AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "Name": + case "ResourceName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Name = ptr.String(jtv) + sv.ResourceName = ptr.String(jtv) } case "Value": @@ -17812,7 +19626,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionProxyConfigurationProxy return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesList(v *[]types.AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentOptionSettings(v *[]types.AwsElasticBeanstalkEnvironmentOptionSetting, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -17825,17 +19639,17 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionProxyConfigurationProxy return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails + var cv []types.AwsElasticBeanstalkEnvironmentOptionSetting if *v == nil { - cv = []types.AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails{} + cv = []types.AwsElasticBeanstalkEnvironmentOptionSetting{} } else { cv = *v } for _, value := range shape { - var col types.AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails + var col types.AwsElasticBeanstalkEnvironmentOptionSetting destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentOptionSetting(&destAddr, value); err != nil { return err } col = *destAddr @@ -17846,7 +19660,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionProxyConfigurationProxy return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesDetails(v **types.AwsEcsTaskDefinitionVolumesDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentTier(v **types.AwsElasticBeanstalkEnvironmentTier, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -17859,37 +19673,40 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesDetails(v **type return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsTaskDefinitionVolumesDetails + var sv *types.AwsElasticBeanstalkEnvironmentTier if *v == nil { - sv = &types.AwsEcsTaskDefinitionVolumesDetails{} + sv = &types.AwsElasticBeanstalkEnvironmentTier{} } else { sv = *v } for key, value := range shape { switch key { - case "DockerVolumeConfiguration": - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesDockerVolumeConfigurationDetails(&sv.DockerVolumeConfiguration, value); err != nil { - return err - } - - case "EfsVolumeConfiguration": - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails(&sv.EfsVolumeConfiguration, value); err != nil { - return err + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) } - case "Host": - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesHostDetails(&sv.Host, value); err != nil { - return err + case "Type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Type = ptr.String(jtv) } - case "Name": + case "Version": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Name = ptr.String(jtv) + sv.Version = ptr.String(jtv) } default: @@ -17901,7 +19718,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesDetails(v **type return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesDockerVolumeConfigurationDetails(v **types.AwsEcsTaskDefinitionVolumesDockerVolumeConfigurationDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElasticsearchDomainDetails(v **types.AwsElasticsearchDomainDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -17914,50 +19731,98 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesDockerVolumeConf return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsTaskDefinitionVolumesDockerVolumeConfigurationDetails + var sv *types.AwsElasticsearchDomainDetails if *v == nil { - sv = &types.AwsEcsTaskDefinitionVolumesDockerVolumeConfigurationDetails{} + sv = &types.AwsElasticsearchDomainDetails{} } else { sv = *v } - for key, value := range shape { - switch key { - case "Autoprovision": + for key, value := range shape { + switch key { + case "AccessPolicies": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.AccessPolicies = ptr.String(jtv) + } + + case "DomainEndpointOptions": + if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainDomainEndpointOptions(&sv.DomainEndpointOptions, value); err != nil { + return err + } + + case "DomainId": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Autoprovision = jtv + sv.DomainId = ptr.String(jtv) } - case "Driver": + case "DomainName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Driver = ptr.String(jtv) + sv.DomainName = ptr.String(jtv) } - case "DriverOpts": - if err := awsRestjson1_deserializeDocumentFieldMap(&sv.DriverOpts, value); err != nil { + case "ElasticsearchClusterConfig": + if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainElasticsearchClusterConfigDetails(&sv.ElasticsearchClusterConfig, value); err != nil { return err } - case "Labels": - if err := awsRestjson1_deserializeDocumentFieldMap(&sv.Labels, value); err != nil { + case "ElasticsearchVersion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ElasticsearchVersion = ptr.String(jtv) + } + + case "EncryptionAtRestOptions": + if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainEncryptionAtRestOptions(&sv.EncryptionAtRestOptions, value); err != nil { return err } - case "Scope": + case "Endpoint": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Scope = ptr.String(jtv) + sv.Endpoint = ptr.String(jtv) + } + + case "Endpoints": + if err := awsRestjson1_deserializeDocumentFieldMap(&sv.Endpoints, value); err != nil { + return err + } + + case "LogPublishingOptions": + if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptions(&sv.LogPublishingOptions, value); err != nil { + return err + } + + case "NodeToNodeEncryptionOptions": + if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainNodeToNodeEncryptionOptions(&sv.NodeToNodeEncryptionOptions, value); err != nil { + return err + } + + case "ServiceSoftwareOptions": + if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainServiceSoftwareOptions(&sv.ServiceSoftwareOptions, value); err != nil { + return err + } + + case "VPCOptions": + if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainVPCOptions(&sv.VPCOptions, value); err != nil { + return err } default: @@ -17969,7 +19834,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesDockerVolumeConf return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails(v **types.AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElasticsearchDomainDomainEndpointOptions(v **types.AwsElasticsearchDomainDomainEndpointOptions, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -17982,31 +19847,31 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesEfsVolumeConfigu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails + var sv *types.AwsElasticsearchDomainDomainEndpointOptions if *v == nil { - sv = &types.AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails{} + sv = &types.AwsElasticsearchDomainDomainEndpointOptions{} } else { sv = *v } for key, value := range shape { switch key { - case "AccessPointId": + case "EnforceHTTPS": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.AccessPointId = ptr.String(jtv) + sv.EnforceHTTPS = jtv } - case "Iam": + case "TLSSecurityPolicy": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Iam = ptr.String(jtv) + sv.TLSSecurityPolicy = ptr.String(jtv) } default: @@ -18018,7 +19883,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesEfsVolumeConfigu return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails(v **types.AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElasticsearchDomainElasticsearchClusterConfigDetails(v **types.AwsElasticsearchDomainElasticsearchClusterConfigDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -18031,48 +19896,47 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesEfsVolumeConfigu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails + var sv *types.AwsElasticsearchDomainElasticsearchClusterConfigDetails if *v == nil { - sv = &types.AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails{} + sv = &types.AwsElasticsearchDomainElasticsearchClusterConfigDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "AuthorizationConfig": - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails(&sv.AuthorizationConfig, value); err != nil { - return err - } - - case "FilesystemId": + case "DedicatedMasterCount": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.FilesystemId = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.DedicatedMasterCount = int32(i64) } - case "RootDirectory": + case "DedicatedMasterEnabled": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.RootDirectory = ptr.String(jtv) + sv.DedicatedMasterEnabled = jtv } - case "TransitEncryption": + case "DedicatedMasterType": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.TransitEncryption = ptr.String(jtv) + sv.DedicatedMasterType = ptr.String(jtv) } - case "TransitEncryptionPort": + case "InstanceCount": if value != nil { jtv, ok := value.(json.Number) if !ok { @@ -18082,7 +19946,30 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesEfsVolumeConfigu if err != nil { return err } - sv.TransitEncryptionPort = int32(i64) + sv.InstanceCount = int32(i64) + } + + case "InstanceType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.InstanceType = ptr.String(jtv) + } + + case "ZoneAwarenessConfig": + if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails(&sv.ZoneAwarenessConfig, value); err != nil { + return err + } + + case "ZoneAwarenessEnabled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.ZoneAwarenessEnabled = jtv } default: @@ -18094,7 +19981,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesEfsVolumeConfigu return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesHostDetails(v **types.AwsEcsTaskDefinitionVolumesHostDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails(v **types.AwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -18107,22 +19994,26 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesHostDetails(v ** return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsTaskDefinitionVolumesHostDetails + var sv *types.AwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails if *v == nil { - sv = &types.AwsEcsTaskDefinitionVolumesHostDetails{} + sv = &types.AwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "SourcePath": + case "AvailabilityZoneCount": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.SourcePath = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.AvailabilityZoneCount = int32(i64) } default: @@ -18134,41 +20025,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesHostDetails(v ** return nil } -func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesList(v *[]types.AwsEcsTaskDefinitionVolumesDetails, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var cv []types.AwsEcsTaskDefinitionVolumesDetails - if *v == nil { - cv = []types.AwsEcsTaskDefinitionVolumesDetails{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.AwsEcsTaskDefinitionVolumesDetails - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesDetails(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentDetails(v **types.AwsElasticBeanstalkEnvironmentDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElasticsearchDomainEncryptionAtRestOptions(v **types.AwsElasticsearchDomainEncryptionAtRestOptions, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -18178,148 +20035,80 @@ func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentDetails(v **t shape, ok := value.(map[string]interface{}) if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.AwsElasticBeanstalkEnvironmentDetails - if *v == nil { - sv = &types.AwsElasticBeanstalkEnvironmentDetails{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "ApplicationName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.ApplicationName = ptr.String(jtv) - } - - case "Cname": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Cname = ptr.String(jtv) - } - - case "DateCreated": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.DateCreated = ptr.String(jtv) - } - - case "DateUpdated": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.DateUpdated = ptr.String(jtv) - } - - case "Description": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Description = ptr.String(jtv) - } + return fmt.Errorf("unexpected JSON type %v", value) + } - case "EndpointUrl": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.EndpointUrl = ptr.String(jtv) - } + var sv *types.AwsElasticsearchDomainEncryptionAtRestOptions + if *v == nil { + sv = &types.AwsElasticsearchDomainEncryptionAtRestOptions{} + } else { + sv = *v + } - case "EnvironmentArn": + for key, value := range shape { + switch key { + case "Enabled": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.EnvironmentArn = ptr.String(jtv) + sv.Enabled = jtv } - case "EnvironmentId": + case "KmsKeyId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.EnvironmentId = ptr.String(jtv) + sv.KmsKeyId = ptr.String(jtv) } - case "EnvironmentLinks": - if err := awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentEnvironmentLinks(&sv.EnvironmentLinks, value); err != nil { - return err - } + default: + _, _ = key, value - case "EnvironmentName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.EnvironmentName = ptr.String(jtv) - } + } + } + *v = sv + return nil +} - case "OptionSettings": - if err := awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentOptionSettings(&sv.OptionSettings, value); err != nil { - return err - } +func awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptions(v **types.AwsElasticsearchDomainLogPublishingOptions, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } - case "PlatformArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.PlatformArn = ptr.String(jtv) - } + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } - case "SolutionStackName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.SolutionStackName = ptr.String(jtv) - } + var sv *types.AwsElasticsearchDomainLogPublishingOptions + if *v == nil { + sv = &types.AwsElasticsearchDomainLogPublishingOptions{} + } else { + sv = *v + } - case "Status": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Status = ptr.String(jtv) + for key, value := range shape { + switch key { + case "AuditLogs": + if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptionsLogConfig(&sv.AuditLogs, value); err != nil { + return err } - case "Tier": - if err := awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentTier(&sv.Tier, value); err != nil { + case "IndexSlowLogs": + if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptionsLogConfig(&sv.IndexSlowLogs, value); err != nil { return err } - case "VersionLabel": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.VersionLabel = ptr.String(jtv) + case "SearchSlowLogs": + if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptionsLogConfig(&sv.SearchSlowLogs, value); err != nil { + return err } default: @@ -18331,7 +20120,7 @@ func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentDetails(v **t return nil } -func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentEnvironmentLink(v **types.AwsElasticBeanstalkEnvironmentEnvironmentLink, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptionsLogConfig(v **types.AwsElasticsearchDomainLogPublishingOptionsLogConfig, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -18344,31 +20133,31 @@ func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentEnvironmentLi return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElasticBeanstalkEnvironmentEnvironmentLink + var sv *types.AwsElasticsearchDomainLogPublishingOptionsLogConfig if *v == nil { - sv = &types.AwsElasticBeanstalkEnvironmentEnvironmentLink{} + sv = &types.AwsElasticsearchDomainLogPublishingOptionsLogConfig{} } else { sv = *v } for key, value := range shape { switch key { - case "EnvironmentName": + case "CloudWatchLogsLogGroupArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.EnvironmentName = ptr.String(jtv) + sv.CloudWatchLogsLogGroupArn = ptr.String(jtv) } - case "LinkName": + case "Enabled": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.LinkName = ptr.String(jtv) + sv.Enabled = jtv } default: @@ -18380,7 +20169,7 @@ func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentEnvironmentLi return nil } -func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentEnvironmentLinks(v *[]types.AwsElasticBeanstalkEnvironmentEnvironmentLink, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElasticsearchDomainNodeToNodeEncryptionOptions(v **types.AwsElasticsearchDomainNodeToNodeEncryptionOptions, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -18388,33 +20177,39 @@ func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentEnvironmentLi return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsElasticBeanstalkEnvironmentEnvironmentLink + var sv *types.AwsElasticsearchDomainNodeToNodeEncryptionOptions if *v == nil { - cv = []types.AwsElasticBeanstalkEnvironmentEnvironmentLink{} + sv = &types.AwsElasticsearchDomainNodeToNodeEncryptionOptions{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col types.AwsElasticBeanstalkEnvironmentEnvironmentLink - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentEnvironmentLink(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + for key, value := range shape { + switch key { + case "Enabled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.Enabled = jtv + } + + default: + _, _ = key, value + } } - *v = cv + *v = sv return nil } -func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentOptionSetting(v **types.AwsElasticBeanstalkEnvironmentOptionSetting, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElasticsearchDomainServiceSoftwareOptions(v **types.AwsElasticsearchDomainServiceSoftwareOptions, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -18427,49 +20222,131 @@ func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentOptionSetting return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElasticBeanstalkEnvironmentOptionSetting + var sv *types.AwsElasticsearchDomainServiceSoftwareOptions if *v == nil { - sv = &types.AwsElasticBeanstalkEnvironmentOptionSetting{} + sv = &types.AwsElasticsearchDomainServiceSoftwareOptions{} } else { sv = *v } for key, value := range shape { switch key { - case "Namespace": + case "AutomatedUpdateDate": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Namespace = ptr.String(jtv) + sv.AutomatedUpdateDate = ptr.String(jtv) } - case "OptionName": + case "Cancellable": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.Cancellable = jtv + } + + case "CurrentVersion": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.OptionName = ptr.String(jtv) + sv.CurrentVersion = ptr.String(jtv) } - case "ResourceName": + case "Description": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ResourceName = ptr.String(jtv) + sv.Description = ptr.String(jtv) + } + + case "NewVersion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.NewVersion = ptr.String(jtv) + } + + case "UpdateAvailable": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.UpdateAvailable = jtv + } + + case "UpdateStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.UpdateStatus = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsElasticsearchDomainVPCOptions(v **types.AwsElasticsearchDomainVPCOptions, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsElasticsearchDomainVPCOptions + if *v == nil { + sv = &types.AwsElasticsearchDomainVPCOptions{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AvailabilityZones": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.AvailabilityZones, value); err != nil { + return err + } + + case "SecurityGroupIds": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SecurityGroupIds, value); err != nil { + return err } - case "Value": + case "SubnetIds": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SubnetIds, value); err != nil { + return err + } + + case "VPCId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Value = ptr.String(jtv) + sv.VPCId = ptr.String(jtv) } default: @@ -18481,7 +20358,7 @@ func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentOptionSetting return nil } -func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentOptionSettings(v *[]types.AwsElasticBeanstalkEnvironmentOptionSetting, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElbAppCookieStickinessPolicies(v *[]types.AwsElbAppCookieStickinessPolicy, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -18494,17 +20371,17 @@ func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentOptionSetting return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsElasticBeanstalkEnvironmentOptionSetting + var cv []types.AwsElbAppCookieStickinessPolicy if *v == nil { - cv = []types.AwsElasticBeanstalkEnvironmentOptionSetting{} + cv = []types.AwsElbAppCookieStickinessPolicy{} } else { cv = *v } for _, value := range shape { - var col types.AwsElasticBeanstalkEnvironmentOptionSetting + var col types.AwsElbAppCookieStickinessPolicy destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentOptionSetting(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsElbAppCookieStickinessPolicy(&destAddr, value); err != nil { return err } col = *destAddr @@ -18515,7 +20392,7 @@ func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentOptionSetting return nil } -func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentTier(v **types.AwsElasticBeanstalkEnvironmentTier, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElbAppCookieStickinessPolicy(v **types.AwsElbAppCookieStickinessPolicy, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -18528,40 +20405,31 @@ func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentTier(v **type return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElasticBeanstalkEnvironmentTier + var sv *types.AwsElbAppCookieStickinessPolicy if *v == nil { - sv = &types.AwsElasticBeanstalkEnvironmentTier{} + sv = &types.AwsElbAppCookieStickinessPolicy{} } else { sv = *v } for key, value := range shape { switch key { - case "Name": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Name = ptr.String(jtv) - } - - case "Type": + case "CookieName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Type = ptr.String(jtv) + sv.CookieName = ptr.String(jtv) } - case "Version": + case "PolicyName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Version = ptr.String(jtv) + sv.PolicyName = ptr.String(jtv) } default: @@ -18573,7 +20441,7 @@ func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentTier(v **type return nil } -func awsRestjson1_deserializeDocumentAwsElasticsearchDomainDetails(v **types.AwsElasticsearchDomainDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElbLbCookieStickinessPolicies(v *[]types.AwsElbLbCookieStickinessPolicy, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -18581,115 +20449,33 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainDetails(v **types.Aws return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElasticsearchDomainDetails + var cv []types.AwsElbLbCookieStickinessPolicy if *v == nil { - sv = &types.AwsElasticsearchDomainDetails{} + cv = []types.AwsElbLbCookieStickinessPolicy{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "AccessPolicies": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.AccessPolicies = ptr.String(jtv) - } - - case "DomainEndpointOptions": - if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainDomainEndpointOptions(&sv.DomainEndpointOptions, value); err != nil { - return err - } - - case "DomainId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.DomainId = ptr.String(jtv) - } - - case "DomainName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.DomainName = ptr.String(jtv) - } - - case "ElasticsearchClusterConfig": - if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainElasticsearchClusterConfigDetails(&sv.ElasticsearchClusterConfig, value); err != nil { - return err - } - - case "ElasticsearchVersion": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.ElasticsearchVersion = ptr.String(jtv) - } - - case "EncryptionAtRestOptions": - if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainEncryptionAtRestOptions(&sv.EncryptionAtRestOptions, value); err != nil { - return err - } - - case "Endpoint": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Endpoint = ptr.String(jtv) - } - - case "Endpoints": - if err := awsRestjson1_deserializeDocumentFieldMap(&sv.Endpoints, value); err != nil { - return err - } - - case "LogPublishingOptions": - if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptions(&sv.LogPublishingOptions, value); err != nil { - return err - } - - case "NodeToNodeEncryptionOptions": - if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainNodeToNodeEncryptionOptions(&sv.NodeToNodeEncryptionOptions, value); err != nil { - return err - } - - case "ServiceSoftwareOptions": - if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainServiceSoftwareOptions(&sv.ServiceSoftwareOptions, value); err != nil { - return err - } - - case "VPCOptions": - if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainVPCOptions(&sv.VPCOptions, value); err != nil { - return err - } - - default: - _, _ = key, value - + for _, value := range shape { + var col types.AwsElbLbCookieStickinessPolicy + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsElbLbCookieStickinessPolicy(&destAddr, value); err != nil { + return err } + col = *destAddr + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsRestjson1_deserializeDocumentAwsElasticsearchDomainDomainEndpointOptions(v **types.AwsElasticsearchDomainDomainEndpointOptions, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElbLbCookieStickinessPolicy(v **types.AwsElbLbCookieStickinessPolicy, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -18702,31 +20488,35 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainDomainEndpointOptions return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElasticsearchDomainDomainEndpointOptions + var sv *types.AwsElbLbCookieStickinessPolicy if *v == nil { - sv = &types.AwsElasticsearchDomainDomainEndpointOptions{} + sv = &types.AwsElbLbCookieStickinessPolicy{} } else { sv = *v } for key, value := range shape { switch key { - case "EnforceHTTPS": + case "CookieExpirationPeriod": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected Long to be json.Number, got %T instead", value) } - sv.EnforceHTTPS = jtv + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.CookieExpirationPeriod = i64 } - case "TLSSecurityPolicy": + case "PolicyName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.TLSSecurityPolicy = ptr.String(jtv) + sv.PolicyName = ptr.String(jtv) } default: @@ -18738,7 +20528,7 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainDomainEndpointOptions return nil } -func awsRestjson1_deserializeDocumentAwsElasticsearchDomainElasticsearchClusterConfigDetails(v **types.AwsElasticsearchDomainElasticsearchClusterConfigDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElbLoadBalancerAccessLog(v **types.AwsElbLoadBalancerAccessLog, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -18751,16 +20541,16 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainElasticsearchClusterC return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElasticsearchDomainElasticsearchClusterConfigDetails + var sv *types.AwsElbLoadBalancerAccessLog if *v == nil { - sv = &types.AwsElasticsearchDomainElasticsearchClusterConfigDetails{} + sv = &types.AwsElbLoadBalancerAccessLog{} } else { sv = *v } for key, value := range shape { switch key { - case "DedicatedMasterCount": + case "EmitInterval": if value != nil { jtv, ok := value.(json.Number) if !ok { @@ -18770,61 +20560,85 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainElasticsearchClusterC if err != nil { return err } - sv.DedicatedMasterCount = int32(i64) + sv.EmitInterval = int32(i64) } - case "DedicatedMasterEnabled": + case "Enabled": if value != nil { jtv, ok := value.(bool) if !ok { return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.DedicatedMasterEnabled = jtv + sv.Enabled = jtv } - case "DedicatedMasterType": + case "S3BucketName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DedicatedMasterType = ptr.String(jtv) - } - - case "InstanceCount": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.InstanceCount = int32(i64) + sv.S3BucketName = ptr.String(jtv) } - case "InstanceType": + case "S3BucketPrefix": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.InstanceType = ptr.String(jtv) + sv.S3BucketPrefix = ptr.String(jtv) } - case "ZoneAwarenessConfig": - if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails(&sv.ZoneAwarenessConfig, value); err != nil { + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsElbLoadBalancerAttributes(v **types.AwsElbLoadBalancerAttributes, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsElbLoadBalancerAttributes + if *v == nil { + sv = &types.AwsElbLoadBalancerAttributes{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AccessLog": + if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerAccessLog(&sv.AccessLog, value); err != nil { + return err + } + + case "ConnectionDraining": + if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerConnectionDraining(&sv.ConnectionDraining, value); err != nil { + return err + } + + case "ConnectionSettings": + if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerConnectionSettings(&sv.ConnectionSettings, value); err != nil { return err } - case "ZoneAwarenessEnabled": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.ZoneAwarenessEnabled = jtv + case "CrossZoneLoadBalancing": + if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerCrossZoneLoadBalancing(&sv.CrossZoneLoadBalancing, value); err != nil { + return err } default: @@ -18836,7 +20650,7 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainElasticsearchClusterC return nil } -func awsRestjson1_deserializeDocumentAwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails(v **types.AwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElbLoadBalancerBackendServerDescription(v **types.AwsElbLoadBalancerBackendServerDescription, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -18849,16 +20663,16 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainElasticsearchClusterC return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails + var sv *types.AwsElbLoadBalancerBackendServerDescription if *v == nil { - sv = &types.AwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails{} + sv = &types.AwsElbLoadBalancerBackendServerDescription{} } else { sv = *v } for key, value := range shape { switch key { - case "AvailabilityZoneCount": + case "InstancePort": if value != nil { jtv, ok := value.(json.Number) if !ok { @@ -18868,7 +20682,12 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainElasticsearchClusterC if err != nil { return err } - sv.AvailabilityZoneCount = int32(i64) + sv.InstancePort = int32(i64) + } + + case "PolicyNames": + if err := awsRestjson1_deserializeDocumentStringList(&sv.PolicyNames, value); err != nil { + return err } default: @@ -18880,7 +20699,7 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainElasticsearchClusterC return nil } -func awsRestjson1_deserializeDocumentAwsElasticsearchDomainEncryptionAtRestOptions(v **types.AwsElasticsearchDomainEncryptionAtRestOptions, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElbLoadBalancerBackendServerDescriptions(v *[]types.AwsElbLoadBalancerBackendServerDescription, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -18888,48 +20707,33 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainEncryptionAtRestOptio return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElasticsearchDomainEncryptionAtRestOptions + var cv []types.AwsElbLoadBalancerBackendServerDescription if *v == nil { - sv = &types.AwsElasticsearchDomainEncryptionAtRestOptions{} + cv = []types.AwsElbLoadBalancerBackendServerDescription{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "Enabled": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.Enabled = jtv - } - - case "KmsKeyId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.KmsKeyId = ptr.String(jtv) - } - - default: - _, _ = key, value - + for _, value := range shape { + var col types.AwsElbLoadBalancerBackendServerDescription + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerBackendServerDescription(&destAddr, value); err != nil { + return err } + col = *destAddr + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptions(v **types.AwsElasticsearchDomainLogPublishingOptions, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElbLoadBalancerConnectionDraining(v **types.AwsElbLoadBalancerConnectionDraining, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -18942,28 +20746,35 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptions( return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElasticsearchDomainLogPublishingOptions + var sv *types.AwsElbLoadBalancerConnectionDraining if *v == nil { - sv = &types.AwsElasticsearchDomainLogPublishingOptions{} + sv = &types.AwsElbLoadBalancerConnectionDraining{} } else { sv = *v } for key, value := range shape { switch key { - case "AuditLogs": - if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptionsLogConfig(&sv.AuditLogs, value); err != nil { - return err - } - - case "IndexSlowLogs": - if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptionsLogConfig(&sv.IndexSlowLogs, value); err != nil { - return err + case "Enabled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.Enabled = jtv } - case "SearchSlowLogs": - if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptionsLogConfig(&sv.SearchSlowLogs, value); err != nil { - return err + case "Timeout": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Timeout = int32(i64) } default: @@ -18975,7 +20786,7 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptions( return nil } -func awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptionsLogConfig(v **types.AwsElasticsearchDomainLogPublishingOptionsLogConfig, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElbLoadBalancerConnectionSettings(v **types.AwsElbLoadBalancerConnectionSettings, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -18988,31 +20799,26 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptionsL return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElasticsearchDomainLogPublishingOptionsLogConfig + var sv *types.AwsElbLoadBalancerConnectionSettings if *v == nil { - sv = &types.AwsElasticsearchDomainLogPublishingOptionsLogConfig{} + sv = &types.AwsElbLoadBalancerConnectionSettings{} } else { sv = *v } for key, value := range shape { switch key { - case "CloudWatchLogsLogGroupArn": + case "IdleTimeout": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.CloudWatchLogsLogGroupArn = ptr.String(jtv) - } - - case "Enabled": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + i64, err := jtv.Int64() + if err != nil { + return err } - sv.Enabled = jtv + sv.IdleTimeout = int32(i64) } default: @@ -19024,7 +20830,7 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptionsL return nil } -func awsRestjson1_deserializeDocumentAwsElasticsearchDomainNodeToNodeEncryptionOptions(v **types.AwsElasticsearchDomainNodeToNodeEncryptionOptions, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElbLoadBalancerCrossZoneLoadBalancing(v **types.AwsElbLoadBalancerCrossZoneLoadBalancing, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -19037,9 +20843,9 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainNodeToNodeEncryptionO return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElasticsearchDomainNodeToNodeEncryptionOptions + var sv *types.AwsElbLoadBalancerCrossZoneLoadBalancing if *v == nil { - sv = &types.AwsElasticsearchDomainNodeToNodeEncryptionOptions{} + sv = &types.AwsElbLoadBalancerCrossZoneLoadBalancing{} } else { sv = *v } @@ -19064,7 +20870,7 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainNodeToNodeEncryptionO return nil } -func awsRestjson1_deserializeDocumentAwsElasticsearchDomainServiceSoftwareOptions(v **types.AwsElasticsearchDomainServiceSoftwareOptions, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElbLoadBalancerDetails(v **types.AwsElbLoadBalancerDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -19077,131 +20883,126 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainServiceSoftwareOption return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElasticsearchDomainServiceSoftwareOptions + var sv *types.AwsElbLoadBalancerDetails if *v == nil { - sv = &types.AwsElasticsearchDomainServiceSoftwareOptions{} + sv = &types.AwsElbLoadBalancerDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "AutomatedUpdateDate": + case "AvailabilityZones": + if err := awsRestjson1_deserializeDocumentStringList(&sv.AvailabilityZones, value); err != nil { + return err + } + + case "BackendServerDescriptions": + if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerBackendServerDescriptions(&sv.BackendServerDescriptions, value); err != nil { + return err + } + + case "CanonicalHostedZoneName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.AutomatedUpdateDate = ptr.String(jtv) + sv.CanonicalHostedZoneName = ptr.String(jtv) } - case "Cancellable": + case "CanonicalHostedZoneNameID": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Cancellable = jtv + sv.CanonicalHostedZoneNameID = ptr.String(jtv) } - case "CurrentVersion": + case "CreatedTime": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CurrentVersion = ptr.String(jtv) + sv.CreatedTime = ptr.String(jtv) } - case "Description": + case "DnsName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Description = ptr.String(jtv) + sv.DnsName = ptr.String(jtv) } - case "NewVersion": + case "HealthCheck": + if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerHealthCheck(&sv.HealthCheck, value); err != nil { + return err + } + + case "Instances": + if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerInstances(&sv.Instances, value); err != nil { + return err + } + + case "ListenerDescriptions": + if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerListenerDescriptions(&sv.ListenerDescriptions, value); err != nil { + return err + } + + case "LoadBalancerAttributes": + if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerAttributes(&sv.LoadBalancerAttributes, value); err != nil { + return err + } + + case "LoadBalancerName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.NewVersion = ptr.String(jtv) + sv.LoadBalancerName = ptr.String(jtv) } - case "UpdateAvailable": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.UpdateAvailable = jtv + case "Policies": + if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerPolicies(&sv.Policies, value); err != nil { + return err } - case "UpdateStatus": + case "Scheme": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.UpdateStatus = ptr.String(jtv) + sv.Scheme = ptr.String(jtv) } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsElasticsearchDomainVPCOptions(v **types.AwsElasticsearchDomainVPCOptions, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.AwsElasticsearchDomainVPCOptions - if *v == nil { - sv = &types.AwsElasticsearchDomainVPCOptions{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "AvailabilityZones": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.AvailabilityZones, value); err != nil { + case "SecurityGroups": + if err := awsRestjson1_deserializeDocumentStringList(&sv.SecurityGroups, value); err != nil { return err } - case "SecurityGroupIds": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SecurityGroupIds, value); err != nil { + case "SourceSecurityGroup": + if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerSourceSecurityGroup(&sv.SourceSecurityGroup, value); err != nil { return err } - case "SubnetIds": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SubnetIds, value); err != nil { + case "Subnets": + if err := awsRestjson1_deserializeDocumentStringList(&sv.Subnets, value); err != nil { return err } - case "VPCId": + case "VpcId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.VPCId = ptr.String(jtv) + sv.VpcId = ptr.String(jtv) } default: @@ -19213,7 +21014,7 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainVPCOptions(v **types. return nil } -func awsRestjson1_deserializeDocumentAwsElbAppCookieStickinessPolicies(v *[]types.AwsElbAppCookieStickinessPolicy, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElbLoadBalancerHealthCheck(v **types.AwsElbLoadBalancerHealthCheck, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -19221,33 +21022,91 @@ func awsRestjson1_deserializeDocumentAwsElbAppCookieStickinessPolicies(v *[]type return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsElbAppCookieStickinessPolicy + var sv *types.AwsElbLoadBalancerHealthCheck if *v == nil { - cv = []types.AwsElbAppCookieStickinessPolicy{} + sv = &types.AwsElbLoadBalancerHealthCheck{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col types.AwsElbAppCookieStickinessPolicy - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsElbAppCookieStickinessPolicy(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + for key, value := range shape { + switch key { + case "HealthyThreshold": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.HealthyThreshold = int32(i64) + } + + case "Interval": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Interval = int32(i64) + } + + case "Target": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Target = ptr.String(jtv) + } + + case "Timeout": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Timeout = int32(i64) + } + + case "UnhealthyThreshold": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.UnhealthyThreshold = int32(i64) + } + default: + _, _ = key, value + + } } - *v = cv + *v = sv return nil } -func awsRestjson1_deserializeDocumentAwsElbAppCookieStickinessPolicy(v **types.AwsElbAppCookieStickinessPolicy, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElbLoadBalancerInstance(v **types.AwsElbLoadBalancerInstance, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -19260,31 +21119,22 @@ func awsRestjson1_deserializeDocumentAwsElbAppCookieStickinessPolicy(v **types.A return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElbAppCookieStickinessPolicy + var sv *types.AwsElbLoadBalancerInstance if *v == nil { - sv = &types.AwsElbAppCookieStickinessPolicy{} + sv = &types.AwsElbLoadBalancerInstance{} } else { sv = *v } for key, value := range shape { switch key { - case "CookieName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.CookieName = ptr.String(jtv) - } - - case "PolicyName": + case "InstanceId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PolicyName = ptr.String(jtv) + sv.InstanceId = ptr.String(jtv) } default: @@ -19296,7 +21146,7 @@ func awsRestjson1_deserializeDocumentAwsElbAppCookieStickinessPolicy(v **types.A return nil } -func awsRestjson1_deserializeDocumentAwsElbLbCookieStickinessPolicies(v *[]types.AwsElbLbCookieStickinessPolicy, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElbLoadBalancerInstances(v *[]types.AwsElbLoadBalancerInstance, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -19309,17 +21159,17 @@ func awsRestjson1_deserializeDocumentAwsElbLbCookieStickinessPolicies(v *[]types return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsElbLbCookieStickinessPolicy + var cv []types.AwsElbLoadBalancerInstance if *v == nil { - cv = []types.AwsElbLbCookieStickinessPolicy{} + cv = []types.AwsElbLoadBalancerInstance{} } else { cv = *v } for _, value := range shape { - var col types.AwsElbLbCookieStickinessPolicy + var col types.AwsElbLoadBalancerInstance destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsElbLbCookieStickinessPolicy(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerInstance(&destAddr, value); err != nil { return err } col = *destAddr @@ -19330,7 +21180,7 @@ func awsRestjson1_deserializeDocumentAwsElbLbCookieStickinessPolicies(v *[]types return nil } -func awsRestjson1_deserializeDocumentAwsElbLbCookieStickinessPolicy(v **types.AwsElbLbCookieStickinessPolicy, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElbLoadBalancerListener(v **types.AwsElbLoadBalancerListener, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -19343,69 +21193,38 @@ func awsRestjson1_deserializeDocumentAwsElbLbCookieStickinessPolicy(v **types.Aw return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElbLbCookieStickinessPolicy + var sv *types.AwsElbLoadBalancerListener if *v == nil { - sv = &types.AwsElbLbCookieStickinessPolicy{} + sv = &types.AwsElbLoadBalancerListener{} } else { sv = *v } for key, value := range shape { switch key { - case "CookieExpirationPeriod": + case "InstancePort": if value != nil { jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected Long to be json.Number, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } i64, err := jtv.Int64() if err != nil { return err } - sv.CookieExpirationPeriod = i64 + sv.InstancePort = int32(i64) } - case "PolicyName": + case "InstanceProtocol": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PolicyName = ptr.String(jtv) + sv.InstanceProtocol = ptr.String(jtv) } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsElbLoadBalancerAccessLog(v **types.AwsElbLoadBalancerAccessLog, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.AwsElbLoadBalancerAccessLog - if *v == nil { - sv = &types.AwsElbLoadBalancerAccessLog{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "EmitInterval": + case "LoadBalancerPort": if value != nil { jtv, ok := value.(json.Number) if !ok { @@ -19415,85 +21234,25 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerAccessLog(v **types.AwsEl if err != nil { return err } - sv.EmitInterval = int32(i64) - } - - case "Enabled": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.Enabled = jtv + sv.LoadBalancerPort = int32(i64) } - case "S3BucketName": + case "Protocol": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.S3BucketName = ptr.String(jtv) + sv.Protocol = ptr.String(jtv) } - case "S3BucketPrefix": + case "SslCertificateId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.S3BucketPrefix = ptr.String(jtv) - } - - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsElbLoadBalancerAttributes(v **types.AwsElbLoadBalancerAttributes, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.AwsElbLoadBalancerAttributes - if *v == nil { - sv = &types.AwsElbLoadBalancerAttributes{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "AccessLog": - if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerAccessLog(&sv.AccessLog, value); err != nil { - return err - } - - case "ConnectionDraining": - if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerConnectionDraining(&sv.ConnectionDraining, value); err != nil { - return err - } - - case "ConnectionSettings": - if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerConnectionSettings(&sv.ConnectionSettings, value); err != nil { - return err - } - - case "CrossZoneLoadBalancing": - if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerCrossZoneLoadBalancing(&sv.CrossZoneLoadBalancing, value); err != nil { - return err + sv.SslCertificateId = ptr.String(jtv) } default: @@ -19505,7 +21264,7 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerAttributes(v **types.AwsE return nil } -func awsRestjson1_deserializeDocumentAwsElbLoadBalancerBackendServerDescription(v **types.AwsElbLoadBalancerBackendServerDescription, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElbLoadBalancerListenerDescription(v **types.AwsElbLoadBalancerListenerDescription, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -19518,26 +21277,18 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerBackendServerDescription( return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElbLoadBalancerBackendServerDescription - if *v == nil { - sv = &types.AwsElbLoadBalancerBackendServerDescription{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "InstancePort": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.InstancePort = int32(i64) + var sv *types.AwsElbLoadBalancerListenerDescription + if *v == nil { + sv = &types.AwsElbLoadBalancerListenerDescription{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Listener": + if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerListener(&sv.Listener, value); err != nil { + return err } case "PolicyNames": @@ -19554,7 +21305,7 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerBackendServerDescription( return nil } -func awsRestjson1_deserializeDocumentAwsElbLoadBalancerBackendServerDescriptions(v *[]types.AwsElbLoadBalancerBackendServerDescription, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElbLoadBalancerListenerDescriptions(v *[]types.AwsElbLoadBalancerListenerDescription, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -19567,17 +21318,17 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerBackendServerDescriptions return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsElbLoadBalancerBackendServerDescription + var cv []types.AwsElbLoadBalancerListenerDescription if *v == nil { - cv = []types.AwsElbLoadBalancerBackendServerDescription{} + cv = []types.AwsElbLoadBalancerListenerDescription{} } else { cv = *v } for _, value := range shape { - var col types.AwsElbLoadBalancerBackendServerDescription + var col types.AwsElbLoadBalancerListenerDescription destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerBackendServerDescription(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerListenerDescription(&destAddr, value); err != nil { return err } col = *destAddr @@ -19588,7 +21339,7 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerBackendServerDescriptions return nil } -func awsRestjson1_deserializeDocumentAwsElbLoadBalancerConnectionDraining(v **types.AwsElbLoadBalancerConnectionDraining, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElbLoadBalancerPolicies(v **types.AwsElbLoadBalancerPolicies, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -19601,35 +21352,28 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerConnectionDraining(v **ty return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElbLoadBalancerConnectionDraining + var sv *types.AwsElbLoadBalancerPolicies if *v == nil { - sv = &types.AwsElbLoadBalancerConnectionDraining{} + sv = &types.AwsElbLoadBalancerPolicies{} } else { sv = *v } for key, value := range shape { switch key { - case "Enabled": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.Enabled = jtv + case "AppCookieStickinessPolicies": + if err := awsRestjson1_deserializeDocumentAwsElbAppCookieStickinessPolicies(&sv.AppCookieStickinessPolicies, value); err != nil { + return err } - case "Timeout": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.Timeout = int32(i64) + case "LbCookieStickinessPolicies": + if err := awsRestjson1_deserializeDocumentAwsElbLbCookieStickinessPolicies(&sv.LbCookieStickinessPolicies, value); err != nil { + return err + } + + case "OtherPolicies": + if err := awsRestjson1_deserializeDocumentStringList(&sv.OtherPolicies, value); err != nil { + return err } default: @@ -19641,7 +21385,7 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerConnectionDraining(v **ty return nil } -func awsRestjson1_deserializeDocumentAwsElbLoadBalancerConnectionSettings(v **types.AwsElbLoadBalancerConnectionSettings, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElbLoadBalancerSourceSecurityGroup(v **types.AwsElbLoadBalancerSourceSecurityGroup, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -19654,66 +21398,31 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerConnectionSettings(v **ty return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElbLoadBalancerConnectionSettings + var sv *types.AwsElbLoadBalancerSourceSecurityGroup if *v == nil { - sv = &types.AwsElbLoadBalancerConnectionSettings{} + sv = &types.AwsElbLoadBalancerSourceSecurityGroup{} } else { sv = *v } for key, value := range shape { switch key { - case "IdleTimeout": + case "GroupName": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.IdleTimeout = int32(i64) + sv.GroupName = ptr.String(jtv) } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsElbLoadBalancerCrossZoneLoadBalancing(v **types.AwsElbLoadBalancerCrossZoneLoadBalancing, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.AwsElbLoadBalancerCrossZoneLoadBalancing - if *v == nil { - sv = &types.AwsElbLoadBalancerCrossZoneLoadBalancing{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "Enabled": + case "OwnerAlias": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Enabled = jtv + sv.OwnerAlias = ptr.String(jtv) } default: @@ -19725,7 +21434,7 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerCrossZoneLoadBalancing(v return nil } -func awsRestjson1_deserializeDocumentAwsElbLoadBalancerDetails(v **types.AwsElbLoadBalancerDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElbv2LoadBalancerDetails(v **types.AwsElbv2LoadBalancerDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -19738,9 +21447,9 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerDetails(v **types.AwsElbL return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElbLoadBalancerDetails + var sv *types.AwsElbv2LoadBalancerDetails if *v == nil { - sv = &types.AwsElbLoadBalancerDetails{} + sv = &types.AwsElbv2LoadBalancerDetails{} } else { sv = *v } @@ -19748,31 +21457,17 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerDetails(v **types.AwsElbL for key, value := range shape { switch key { case "AvailabilityZones": - if err := awsRestjson1_deserializeDocumentStringList(&sv.AvailabilityZones, value); err != nil { - return err - } - - case "BackendServerDescriptions": - if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerBackendServerDescriptions(&sv.BackendServerDescriptions, value); err != nil { + if err := awsRestjson1_deserializeDocumentAvailabilityZones(&sv.AvailabilityZones, value); err != nil { return err } - case "CanonicalHostedZoneName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.CanonicalHostedZoneName = ptr.String(jtv) - } - - case "CanonicalHostedZoneNameID": + case "CanonicalHostedZoneId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CanonicalHostedZoneNameID = ptr.String(jtv) + sv.CanonicalHostedZoneId = ptr.String(jtv) } case "CreatedTime": @@ -19784,47 +21479,22 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerDetails(v **types.AwsElbL sv.CreatedTime = ptr.String(jtv) } - case "DnsName": + case "DNSName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DnsName = ptr.String(jtv) - } - - case "HealthCheck": - if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerHealthCheck(&sv.HealthCheck, value); err != nil { - return err - } - - case "Instances": - if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerInstances(&sv.Instances, value); err != nil { - return err - } - - case "ListenerDescriptions": - if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerListenerDescriptions(&sv.ListenerDescriptions, value); err != nil { - return err - } - - case "LoadBalancerAttributes": - if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerAttributes(&sv.LoadBalancerAttributes, value); err != nil { - return err + sv.DNSName = ptr.String(jtv) } - case "LoadBalancerName": + case "IpAddressType": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.LoadBalancerName = ptr.String(jtv) - } - - case "Policies": - if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerPolicies(&sv.Policies, value); err != nil { - return err + sv.IpAddressType = ptr.String(jtv) } case "Scheme": @@ -19837,18 +21507,22 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerDetails(v **types.AwsElbL } case "SecurityGroups": - if err := awsRestjson1_deserializeDocumentStringList(&sv.SecurityGroups, value); err != nil { + if err := awsRestjson1_deserializeDocumentSecurityGroups(&sv.SecurityGroups, value); err != nil { return err } - case "SourceSecurityGroup": - if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerSourceSecurityGroup(&sv.SourceSecurityGroup, value); err != nil { + case "State": + if err := awsRestjson1_deserializeDocumentLoadBalancerState(&sv.State, value); err != nil { return err } - case "Subnets": - if err := awsRestjson1_deserializeDocumentStringList(&sv.Subnets, value); err != nil { - return err + case "Type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Type = ptr.String(jtv) } case "VpcId": @@ -19869,7 +21543,7 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerDetails(v **types.AwsElbL return nil } -func awsRestjson1_deserializeDocumentAwsElbLoadBalancerHealthCheck(v **types.AwsElbLoadBalancerHealthCheck, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamAccessKeyDetails(v **types.AwsIamAccessKeyDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -19882,74 +21556,90 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerHealthCheck(v **types.Aws return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElbLoadBalancerHealthCheck + var sv *types.AwsIamAccessKeyDetails if *v == nil { - sv = &types.AwsElbLoadBalancerHealthCheck{} + sv = &types.AwsIamAccessKeyDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "HealthyThreshold": + case "AccessKeyId": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - i64, err := jtv.Int64() - if err != nil { - return err + sv.AccessKeyId = ptr.String(jtv) + } + + case "AccountId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.HealthyThreshold = int32(i64) + sv.AccountId = ptr.String(jtv) } - case "Interval": + case "CreatedAt": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - i64, err := jtv.Int64() - if err != nil { - return err + sv.CreatedAt = ptr.String(jtv) + } + + case "PrincipalId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Interval = int32(i64) + sv.PrincipalId = ptr.String(jtv) } - case "Target": + case "PrincipalName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Target = ptr.String(jtv) + sv.PrincipalName = ptr.String(jtv) } - case "Timeout": + case "PrincipalType": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - i64, err := jtv.Int64() - if err != nil { - return err + sv.PrincipalType = ptr.String(jtv) + } + + case "SessionContext": + if err := awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContext(&sv.SessionContext, value); err != nil { + return err + } + + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AwsIamAccessKeyStatus to be of type string, got %T instead", value) } - sv.Timeout = int32(i64) + sv.Status = types.AwsIamAccessKeyStatus(jtv) } - case "UnhealthyThreshold": + case "UserName": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.UnhealthyThreshold = int32(i64) + sv.UserName = ptr.String(jtv) } default: @@ -19961,7 +21651,7 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerHealthCheck(v **types.Aws return nil } -func awsRestjson1_deserializeDocumentAwsElbLoadBalancerInstance(v **types.AwsElbLoadBalancerInstance, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContext(v **types.AwsIamAccessKeySessionContext, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -19974,22 +21664,23 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerInstance(v **types.AwsElb return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElbLoadBalancerInstance + var sv *types.AwsIamAccessKeySessionContext if *v == nil { - sv = &types.AwsElbLoadBalancerInstance{} + sv = &types.AwsIamAccessKeySessionContext{} } else { sv = *v } for key, value := range shape { switch key { - case "InstanceId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.InstanceId = ptr.String(jtv) + case "Attributes": + if err := awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContextAttributes(&sv.Attributes, value); err != nil { + return err + } + + case "SessionIssuer": + if err := awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContextSessionIssuer(&sv.SessionIssuer, value); err != nil { + return err } default: @@ -20001,7 +21692,7 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerInstance(v **types.AwsElb return nil } -func awsRestjson1_deserializeDocumentAwsElbLoadBalancerInstances(v *[]types.AwsElbLoadBalancerInstance, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContextAttributes(v **types.AwsIamAccessKeySessionContextAttributes, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20009,33 +21700,48 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerInstances(v *[]types.AwsE return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsElbLoadBalancerInstance + var sv *types.AwsIamAccessKeySessionContextAttributes if *v == nil { - cv = []types.AwsElbLoadBalancerInstance{} + sv = &types.AwsIamAccessKeySessionContextAttributes{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col types.AwsElbLoadBalancerInstance - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerInstance(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + for key, value := range shape { + switch key { + case "CreationDate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.CreationDate = ptr.String(jtv) + } + + case "MfaAuthenticated": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.MfaAuthenticated = jtv + } + + default: + _, _ = key, value + } } - *v = cv + *v = sv return nil } -func awsRestjson1_deserializeDocumentAwsElbLoadBalancerListener(v **types.AwsElbLoadBalancerListener, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContextSessionIssuer(v **types.AwsIamAccessKeySessionContextSessionIssuer, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20048,66 +21754,58 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerListener(v **types.AwsElb return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElbLoadBalancerListener + var sv *types.AwsIamAccessKeySessionContextSessionIssuer if *v == nil { - sv = &types.AwsElbLoadBalancerListener{} + sv = &types.AwsIamAccessKeySessionContextSessionIssuer{} } else { sv = *v } for key, value := range shape { switch key { - case "InstancePort": + case "AccountId": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.InstancePort = int32(i64) + sv.AccountId = ptr.String(jtv) } - case "InstanceProtocol": + case "Arn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.InstanceProtocol = ptr.String(jtv) + sv.Arn = ptr.String(jtv) } - case "LoadBalancerPort": + case "PrincipalId": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.LoadBalancerPort = int32(i64) + sv.PrincipalId = ptr.String(jtv) } - case "Protocol": + case "Type": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Protocol = ptr.String(jtv) + sv.Type = ptr.String(jtv) } - case "SslCertificateId": + case "UserName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.SslCertificateId = ptr.String(jtv) + sv.UserName = ptr.String(jtv) } default: @@ -20119,7 +21817,7 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerListener(v **types.AwsElb return nil } -func awsRestjson1_deserializeDocumentAwsElbLoadBalancerListenerDescription(v **types.AwsElbLoadBalancerListenerDescription, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicy(v **types.AwsIamAttachedManagedPolicy, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20132,23 +21830,31 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerListenerDescription(v **t return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElbLoadBalancerListenerDescription + var sv *types.AwsIamAttachedManagedPolicy if *v == nil { - sv = &types.AwsElbLoadBalancerListenerDescription{} + sv = &types.AwsIamAttachedManagedPolicy{} } else { sv = *v } for key, value := range shape { switch key { - case "Listener": - if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerListener(&sv.Listener, value); err != nil { - return err + case "PolicyArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.PolicyArn = ptr.String(jtv) } - case "PolicyNames": - if err := awsRestjson1_deserializeDocumentStringList(&sv.PolicyNames, value); err != nil { - return err + case "PolicyName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.PolicyName = ptr.String(jtv) } default: @@ -20160,7 +21866,7 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerListenerDescription(v **t return nil } -func awsRestjson1_deserializeDocumentAwsElbLoadBalancerListenerDescriptions(v *[]types.AwsElbLoadBalancerListenerDescription, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicyList(v *[]types.AwsIamAttachedManagedPolicy, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20173,17 +21879,17 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerListenerDescriptions(v *[ return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsElbLoadBalancerListenerDescription + var cv []types.AwsIamAttachedManagedPolicy if *v == nil { - cv = []types.AwsElbLoadBalancerListenerDescription{} + cv = []types.AwsIamAttachedManagedPolicy{} } else { cv = *v } for _, value := range shape { - var col types.AwsElbLoadBalancerListenerDescription + var col types.AwsIamAttachedManagedPolicy destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerListenerDescription(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicy(&destAddr, value); err != nil { return err } col = *destAddr @@ -20194,7 +21900,7 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerListenerDescriptions(v *[ return nil } -func awsRestjson1_deserializeDocumentAwsElbLoadBalancerPolicies(v **types.AwsElbLoadBalancerPolicies, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamGroupDetails(v **types.AwsIamGroupDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20207,30 +21913,61 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerPolicies(v **types.AwsElb return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElbLoadBalancerPolicies + var sv *types.AwsIamGroupDetails if *v == nil { - sv = &types.AwsElbLoadBalancerPolicies{} + sv = &types.AwsIamGroupDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "AppCookieStickinessPolicies": - if err := awsRestjson1_deserializeDocumentAwsElbAppCookieStickinessPolicies(&sv.AppCookieStickinessPolicies, value); err != nil { + case "AttachedManagedPolicies": + if err := awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicyList(&sv.AttachedManagedPolicies, value); err != nil { return err } - case "LbCookieStickinessPolicies": - if err := awsRestjson1_deserializeDocumentAwsElbLbCookieStickinessPolicies(&sv.LbCookieStickinessPolicies, value); err != nil { - return err + case "CreateDate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.CreateDate = ptr.String(jtv) } - case "OtherPolicies": - if err := awsRestjson1_deserializeDocumentStringList(&sv.OtherPolicies, value); err != nil { + case "GroupId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.GroupId = ptr.String(jtv) + } + + case "GroupName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.GroupName = ptr.String(jtv) + } + + case "GroupPolicyList": + if err := awsRestjson1_deserializeDocumentAwsIamGroupPolicyList(&sv.GroupPolicyList, value); err != nil { return err } + case "Path": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Path = ptr.String(jtv) + } + default: _, _ = key, value @@ -20240,7 +21977,7 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerPolicies(v **types.AwsElb return nil } -func awsRestjson1_deserializeDocumentAwsElbLoadBalancerSourceSecurityGroup(v **types.AwsElbLoadBalancerSourceSecurityGroup, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamGroupPolicy(v **types.AwsIamGroupPolicy, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20253,31 +21990,22 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerSourceSecurityGroup(v **t return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElbLoadBalancerSourceSecurityGroup + var sv *types.AwsIamGroupPolicy if *v == nil { - sv = &types.AwsElbLoadBalancerSourceSecurityGroup{} + sv = &types.AwsIamGroupPolicy{} } else { sv = *v } for key, value := range shape { switch key { - case "GroupName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.GroupName = ptr.String(jtv) - } - - case "OwnerAlias": + case "PolicyName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.OwnerAlias = ptr.String(jtv) + sv.PolicyName = ptr.String(jtv) } default: @@ -20285,11 +22013,45 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerSourceSecurityGroup(v **t } } - *v = sv + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsIamGroupPolicyList(v *[]types.AwsIamGroupPolicy, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsIamGroupPolicy + if *v == nil { + cv = []types.AwsIamGroupPolicy{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsIamGroupPolicy + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsIamGroupPolicy(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv return nil } -func awsRestjson1_deserializeDocumentAwsElbv2LoadBalancerDetails(v **types.AwsElbv2LoadBalancerDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamInstanceProfile(v **types.AwsIamInstanceProfile, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20302,93 +22064,65 @@ func awsRestjson1_deserializeDocumentAwsElbv2LoadBalancerDetails(v **types.AwsEl return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElbv2LoadBalancerDetails + var sv *types.AwsIamInstanceProfile if *v == nil { - sv = &types.AwsElbv2LoadBalancerDetails{} + sv = &types.AwsIamInstanceProfile{} } else { sv = *v } for key, value := range shape { switch key { - case "AvailabilityZones": - if err := awsRestjson1_deserializeDocumentAvailabilityZones(&sv.AvailabilityZones, value); err != nil { - return err - } - - case "CanonicalHostedZoneId": + case "Arn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CanonicalHostedZoneId = ptr.String(jtv) + sv.Arn = ptr.String(jtv) } - case "CreatedTime": + case "CreateDate": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CreatedTime = ptr.String(jtv) + sv.CreateDate = ptr.String(jtv) } - case "DNSName": + case "InstanceProfileId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DNSName = ptr.String(jtv) + sv.InstanceProfileId = ptr.String(jtv) } - case "IpAddressType": + case "InstanceProfileName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.IpAddressType = ptr.String(jtv) + sv.InstanceProfileName = ptr.String(jtv) } - case "Scheme": + case "Path": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Scheme = ptr.String(jtv) - } - - case "SecurityGroups": - if err := awsRestjson1_deserializeDocumentSecurityGroups(&sv.SecurityGroups, value); err != nil { - return err + sv.Path = ptr.String(jtv) } - case "State": - if err := awsRestjson1_deserializeDocumentLoadBalancerState(&sv.State, value); err != nil { + case "Roles": + if err := awsRestjson1_deserializeDocumentAwsIamInstanceProfileRoles(&sv.Roles, value); err != nil { return err } - case "Type": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Type = ptr.String(jtv) - } - - case "VpcId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.VpcId = ptr.String(jtv) - } - default: _, _ = key, value @@ -20398,7 +22132,41 @@ func awsRestjson1_deserializeDocumentAwsElbv2LoadBalancerDetails(v **types.AwsEl return nil } -func awsRestjson1_deserializeDocumentAwsIamAccessKeyDetails(v **types.AwsIamAccessKeyDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamInstanceProfileList(v *[]types.AwsIamInstanceProfile, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsIamInstanceProfile + if *v == nil { + cv = []types.AwsIamInstanceProfile{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsIamInstanceProfile + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsIamInstanceProfile(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsIamInstanceProfileRole(v **types.AwsIamInstanceProfileRole, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20411,90 +22179,67 @@ func awsRestjson1_deserializeDocumentAwsIamAccessKeyDetails(v **types.AwsIamAcce return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsIamAccessKeyDetails + var sv *types.AwsIamInstanceProfileRole if *v == nil { - sv = &types.AwsIamAccessKeyDetails{} + sv = &types.AwsIamInstanceProfileRole{} } else { sv = *v } for key, value := range shape { switch key { - case "AccessKeyId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.AccessKeyId = ptr.String(jtv) - } - - case "AccountId": + case "Arn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.AccountId = ptr.String(jtv) + sv.Arn = ptr.String(jtv) } - case "CreatedAt": + case "AssumeRolePolicyDocument": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected AwsIamRoleAssumeRolePolicyDocument to be of type string, got %T instead", value) } - sv.CreatedAt = ptr.String(jtv) + sv.AssumeRolePolicyDocument = ptr.String(jtv) } - case "PrincipalId": + case "CreateDate": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PrincipalId = ptr.String(jtv) + sv.CreateDate = ptr.String(jtv) } - case "PrincipalName": + case "Path": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PrincipalName = ptr.String(jtv) + sv.Path = ptr.String(jtv) } - case "PrincipalType": + case "RoleId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PrincipalType = ptr.String(jtv) - } - - case "SessionContext": - if err := awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContext(&sv.SessionContext, value); err != nil { - return err - } - - case "Status": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected AwsIamAccessKeyStatus to be of type string, got %T instead", value) - } - sv.Status = types.AwsIamAccessKeyStatus(jtv) + sv.RoleId = ptr.String(jtv) } - case "UserName": + case "RoleName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.UserName = ptr.String(jtv) + sv.RoleName = ptr.String(jtv) } default: @@ -20506,7 +22251,41 @@ func awsRestjson1_deserializeDocumentAwsIamAccessKeyDetails(v **types.AwsIamAcce return nil } -func awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContext(v **types.AwsIamAccessKeySessionContext, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamInstanceProfileRoles(v *[]types.AwsIamInstanceProfileRole, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsIamInstanceProfileRole + if *v == nil { + cv = []types.AwsIamInstanceProfileRole{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsIamInstanceProfileRole + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsIamInstanceProfileRole(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsIamPermissionsBoundary(v **types.AwsIamPermissionsBoundary, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20519,23 +22298,31 @@ func awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContext(v **types.Aws return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsIamAccessKeySessionContext + var sv *types.AwsIamPermissionsBoundary if *v == nil { - sv = &types.AwsIamAccessKeySessionContext{} + sv = &types.AwsIamPermissionsBoundary{} } else { sv = *v } for key, value := range shape { switch key { - case "Attributes": - if err := awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContextAttributes(&sv.Attributes, value); err != nil { - return err + case "PermissionsBoundaryArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.PermissionsBoundaryArn = ptr.String(jtv) } - case "SessionIssuer": - if err := awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContextSessionIssuer(&sv.SessionIssuer, value); err != nil { - return err + case "PermissionsBoundaryType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.PermissionsBoundaryType = ptr.String(jtv) } default: @@ -20547,7 +22334,7 @@ func awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContext(v **types.Aws return nil } -func awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContextAttributes(v **types.AwsIamAccessKeySessionContextAttributes, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamPolicyDetails(v **types.AwsIamPolicyDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20560,107 +22347,116 @@ func awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContextAttributes(v * return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsIamAccessKeySessionContextAttributes + var sv *types.AwsIamPolicyDetails if *v == nil { - sv = &types.AwsIamAccessKeySessionContextAttributes{} + sv = &types.AwsIamPolicyDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "CreationDate": + case "AttachmentCount": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.AttachmentCount = int32(i64) + } + + case "CreateDate": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CreationDate = ptr.String(jtv) + sv.CreateDate = ptr.String(jtv) + } + + case "DefaultVersionId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.DefaultVersionId = ptr.String(jtv) + } + + case "Description": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Description = ptr.String(jtv) } - case "MfaAuthenticated": + case "IsAttachable": if value != nil { jtv, ok := value.(bool) if !ok { return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.MfaAuthenticated = jtv + sv.IsAttachable = jtv } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContextSessionIssuer(v **types.AwsIamAccessKeySessionContextSessionIssuer, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.AwsIamAccessKeySessionContextSessionIssuer - if *v == nil { - sv = &types.AwsIamAccessKeySessionContextSessionIssuer{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "AccountId": + case "Path": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.AccountId = ptr.String(jtv) + sv.Path = ptr.String(jtv) } - case "Arn": + case "PermissionsBoundaryUsageCount": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.Arn = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.PermissionsBoundaryUsageCount = int32(i64) } - case "PrincipalId": + case "PolicyId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PrincipalId = ptr.String(jtv) + sv.PolicyId = ptr.String(jtv) } - case "Type": + case "PolicyName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Type = ptr.String(jtv) + sv.PolicyName = ptr.String(jtv) } - case "UserName": + case "PolicyVersionList": + if err := awsRestjson1_deserializeDocumentAwsIamPolicyVersionList(&sv.PolicyVersionList, value); err != nil { + return err + } + + case "UpdateDate": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.UserName = ptr.String(jtv) + sv.UpdateDate = ptr.String(jtv) } default: @@ -20672,7 +22468,7 @@ func awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContextSessionIssuer( return nil } -func awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicy(v **types.AwsIamAttachedManagedPolicy, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamPolicyVersion(v **types.AwsIamPolicyVersion, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20685,31 +22481,40 @@ func awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicy(v **types.AwsIa return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsIamAttachedManagedPolicy + var sv *types.AwsIamPolicyVersion if *v == nil { - sv = &types.AwsIamAttachedManagedPolicy{} + sv = &types.AwsIamPolicyVersion{} } else { sv = *v } for key, value := range shape { switch key { - case "PolicyArn": + case "CreateDate": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PolicyArn = ptr.String(jtv) + sv.CreateDate = ptr.String(jtv) } - case "PolicyName": + case "IsDefaultVersion": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.IsDefaultVersion = jtv + } + + case "VersionId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PolicyName = ptr.String(jtv) + sv.VersionId = ptr.String(jtv) } default: @@ -20721,7 +22526,7 @@ func awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicy(v **types.AwsIa return nil } -func awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicyList(v *[]types.AwsIamAttachedManagedPolicy, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamPolicyVersionList(v *[]types.AwsIamPolicyVersion, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20734,17 +22539,17 @@ func awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicyList(v *[]types. return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsIamAttachedManagedPolicy + var cv []types.AwsIamPolicyVersion if *v == nil { - cv = []types.AwsIamAttachedManagedPolicy{} + cv = []types.AwsIamPolicyVersion{} } else { cv = *v } for _, value := range shape { - var col types.AwsIamAttachedManagedPolicy + var col types.AwsIamPolicyVersion destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicy(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsIamPolicyVersion(&destAddr, value); err != nil { return err } col = *destAddr @@ -20755,7 +22560,7 @@ func awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicyList(v *[]types. return nil } -func awsRestjson1_deserializeDocumentAwsIamGroupDetails(v **types.AwsIamGroupDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamRoleDetails(v **types.AwsIamRoleDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20768,15 +22573,24 @@ func awsRestjson1_deserializeDocumentAwsIamGroupDetails(v **types.AwsIamGroupDet return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsIamGroupDetails + var sv *types.AwsIamRoleDetails if *v == nil { - sv = &types.AwsIamGroupDetails{} + sv = &types.AwsIamRoleDetails{} } else { sv = *v } for key, value := range shape { switch key { + case "AssumeRolePolicyDocument": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AwsIamRoleAssumeRolePolicyDocument to be of type string, got %T instead", value) + } + sv.AssumeRolePolicyDocument = ptr.String(jtv) + } + case "AttachedManagedPolicies": if err := awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicyList(&sv.AttachedManagedPolicies, value); err != nil { return err @@ -20791,36 +22605,59 @@ func awsRestjson1_deserializeDocumentAwsIamGroupDetails(v **types.AwsIamGroupDet sv.CreateDate = ptr.String(jtv) } - case "GroupId": + case "InstanceProfileList": + if err := awsRestjson1_deserializeDocumentAwsIamInstanceProfileList(&sv.InstanceProfileList, value); err != nil { + return err + } + + case "MaxSessionDuration": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.GroupId = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.MaxSessionDuration = int32(i64) } - case "GroupName": + case "Path": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.GroupName = ptr.String(jtv) + sv.Path = ptr.String(jtv) } - case "GroupPolicyList": - if err := awsRestjson1_deserializeDocumentAwsIamGroupPolicyList(&sv.GroupPolicyList, value); err != nil { + case "PermissionsBoundary": + if err := awsRestjson1_deserializeDocumentAwsIamPermissionsBoundary(&sv.PermissionsBoundary, value); err != nil { return err } - case "Path": + case "RoleId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Path = ptr.String(jtv) + sv.RoleId = ptr.String(jtv) + } + + case "RoleName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.RoleName = ptr.String(jtv) + } + + case "RolePolicyList": + if err := awsRestjson1_deserializeDocumentAwsIamRolePolicyList(&sv.RolePolicyList, value); err != nil { + return err } default: @@ -20832,7 +22669,7 @@ func awsRestjson1_deserializeDocumentAwsIamGroupDetails(v **types.AwsIamGroupDet return nil } -func awsRestjson1_deserializeDocumentAwsIamGroupPolicy(v **types.AwsIamGroupPolicy, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamRolePolicy(v **types.AwsIamRolePolicy, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20845,9 +22682,9 @@ func awsRestjson1_deserializeDocumentAwsIamGroupPolicy(v **types.AwsIamGroupPoli return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsIamGroupPolicy + var sv *types.AwsIamRolePolicy if *v == nil { - sv = &types.AwsIamGroupPolicy{} + sv = &types.AwsIamRolePolicy{} } else { sv = *v } @@ -20872,7 +22709,7 @@ func awsRestjson1_deserializeDocumentAwsIamGroupPolicy(v **types.AwsIamGroupPoli return nil } -func awsRestjson1_deserializeDocumentAwsIamGroupPolicyList(v *[]types.AwsIamGroupPolicy, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamRolePolicyList(v *[]types.AwsIamRolePolicy, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20885,17 +22722,17 @@ func awsRestjson1_deserializeDocumentAwsIamGroupPolicyList(v *[]types.AwsIamGrou return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsIamGroupPolicy + var cv []types.AwsIamRolePolicy if *v == nil { - cv = []types.AwsIamGroupPolicy{} + cv = []types.AwsIamRolePolicy{} } else { cv = *v } for _, value := range shape { - var col types.AwsIamGroupPolicy + var col types.AwsIamRolePolicy destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsIamGroupPolicy(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsIamRolePolicy(&destAddr, value); err != nil { return err } col = *destAddr @@ -20906,7 +22743,7 @@ func awsRestjson1_deserializeDocumentAwsIamGroupPolicyList(v *[]types.AwsIamGrou return nil } -func awsRestjson1_deserializeDocumentAwsIamInstanceProfile(v **types.AwsIamInstanceProfile, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamUserDetails(v **types.AwsIamUserDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20919,22 +22756,18 @@ func awsRestjson1_deserializeDocumentAwsIamInstanceProfile(v **types.AwsIamInsta return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsIamInstanceProfile + var sv *types.AwsIamUserDetails if *v == nil { - sv = &types.AwsIamInstanceProfile{} + sv = &types.AwsIamUserDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Arn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Arn = ptr.String(jtv) + case "AttachedManagedPolicies": + if err := awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicyList(&sv.AttachedManagedPolicies, value); err != nil { + return err } case "CreateDate": @@ -20946,35 +22779,45 @@ func awsRestjson1_deserializeDocumentAwsIamInstanceProfile(v **types.AwsIamInsta sv.CreateDate = ptr.String(jtv) } - case "InstanceProfileId": + case "GroupList": + if err := awsRestjson1_deserializeDocumentStringList(&sv.GroupList, value); err != nil { + return err + } + + case "Path": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.InstanceProfileId = ptr.String(jtv) + sv.Path = ptr.String(jtv) } - case "InstanceProfileName": + case "PermissionsBoundary": + if err := awsRestjson1_deserializeDocumentAwsIamPermissionsBoundary(&sv.PermissionsBoundary, value); err != nil { + return err + } + + case "UserId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.InstanceProfileName = ptr.String(jtv) + sv.UserId = ptr.String(jtv) } - case "Path": + case "UserName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Path = ptr.String(jtv) + sv.UserName = ptr.String(jtv) } - case "Roles": - if err := awsRestjson1_deserializeDocumentAwsIamInstanceProfileRoles(&sv.Roles, value); err != nil { + case "UserPolicyList": + if err := awsRestjson1_deserializeDocumentAwsIamUserPolicyList(&sv.UserPolicyList, value); err != nil { return err } @@ -20987,7 +22830,47 @@ func awsRestjson1_deserializeDocumentAwsIamInstanceProfile(v **types.AwsIamInsta return nil } -func awsRestjson1_deserializeDocumentAwsIamInstanceProfileList(v *[]types.AwsIamInstanceProfile, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamUserPolicy(v **types.AwsIamUserPolicy, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsIamUserPolicy + if *v == nil { + sv = &types.AwsIamUserPolicy{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "PolicyName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.PolicyName = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsIamUserPolicyList(v *[]types.AwsIamUserPolicy, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21000,17 +22883,17 @@ func awsRestjson1_deserializeDocumentAwsIamInstanceProfileList(v *[]types.AwsIam return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsIamInstanceProfile + var cv []types.AwsIamUserPolicy if *v == nil { - cv = []types.AwsIamInstanceProfile{} + cv = []types.AwsIamUserPolicy{} } else { cv = *v } for _, value := range shape { - var col types.AwsIamInstanceProfile + var col types.AwsIamUserPolicy destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsIamInstanceProfile(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsIamUserPolicy(&destAddr, value); err != nil { return err } col = *destAddr @@ -21021,7 +22904,7 @@ func awsRestjson1_deserializeDocumentAwsIamInstanceProfileList(v *[]types.AwsIam return nil } -func awsRestjson1_deserializeDocumentAwsIamInstanceProfileRole(v **types.AwsIamInstanceProfileRole, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsKmsKeyDetails(v **types.AwsKmsKeyDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21034,67 +22917,110 @@ func awsRestjson1_deserializeDocumentAwsIamInstanceProfileRole(v **types.AwsIamI return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsIamInstanceProfileRole + var sv *types.AwsKmsKeyDetails if *v == nil { - sv = &types.AwsIamInstanceProfileRole{} + sv = &types.AwsKmsKeyDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Arn": + case "AWSAccountId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Arn = ptr.String(jtv) + sv.AWSAccountId = ptr.String(jtv) } - case "AssumeRolePolicyDocument": + case "CreationDate": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.CreationDate = f64 + + case string: + var f64 float64 + switch { + case strings.EqualFold(jtv, "NaN"): + f64 = math.NaN() + + case strings.EqualFold(jtv, "Infinity"): + f64 = math.Inf(1) + + case strings.EqualFold(jtv, "-Infinity"): + f64 = math.Inf(-1) + + default: + return fmt.Errorf("unknown JSON number value: %s", jtv) + + } + sv.CreationDate = f64 + + default: + return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value) + + } + } + + case "Description": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected AwsIamRoleAssumeRolePolicyDocument to be of type string, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.AssumeRolePolicyDocument = ptr.String(jtv) + sv.Description = ptr.String(jtv) } - case "CreateDate": + case "KeyId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CreateDate = ptr.String(jtv) + sv.KeyId = ptr.String(jtv) } - case "Path": + case "KeyManager": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Path = ptr.String(jtv) + sv.KeyManager = ptr.String(jtv) } - case "RoleId": + case "KeyRotationStatus": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.KeyRotationStatus = jtv + } + + case "KeyState": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.RoleId = ptr.String(jtv) + sv.KeyState = ptr.String(jtv) } - case "RoleName": + case "Origin": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.RoleName = ptr.String(jtv) + sv.Origin = ptr.String(jtv) } default: @@ -21106,7 +23032,7 @@ func awsRestjson1_deserializeDocumentAwsIamInstanceProfileRole(v **types.AwsIamI return nil } -func awsRestjson1_deserializeDocumentAwsIamInstanceProfileRoles(v *[]types.AwsIamInstanceProfileRole, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsLambdaFunctionCode(v **types.AwsLambdaFunctionCode, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21114,33 +23040,66 @@ func awsRestjson1_deserializeDocumentAwsIamInstanceProfileRoles(v *[]types.AwsIa return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsIamInstanceProfileRole + var sv *types.AwsLambdaFunctionCode if *v == nil { - cv = []types.AwsIamInstanceProfileRole{} + sv = &types.AwsLambdaFunctionCode{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col types.AwsIamInstanceProfileRole - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsIamInstanceProfileRole(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + for key, value := range shape { + switch key { + case "S3Bucket": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.S3Bucket = ptr.String(jtv) + } + + case "S3Key": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.S3Key = ptr.String(jtv) + } + + case "S3ObjectVersion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.S3ObjectVersion = ptr.String(jtv) + } + + case "ZipFile": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ZipFile = ptr.String(jtv) + } + default: + _, _ = key, value + + } } - *v = cv + *v = sv return nil } -func awsRestjson1_deserializeDocumentAwsIamPermissionsBoundary(v **types.AwsIamPermissionsBoundary, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsLambdaFunctionDeadLetterConfig(v **types.AwsLambdaFunctionDeadLetterConfig, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21153,31 +23112,22 @@ func awsRestjson1_deserializeDocumentAwsIamPermissionsBoundary(v **types.AwsIamP return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsIamPermissionsBoundary + var sv *types.AwsLambdaFunctionDeadLetterConfig if *v == nil { - sv = &types.AwsIamPermissionsBoundary{} + sv = &types.AwsLambdaFunctionDeadLetterConfig{} } else { sv = *v } for key, value := range shape { switch key { - case "PermissionsBoundaryArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.PermissionsBoundaryArn = ptr.String(jtv) - } - - case "PermissionsBoundaryType": + case "TargetArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PermissionsBoundaryType = ptr.String(jtv) + sv.TargetArn = ptr.String(jtv) } default: @@ -21189,7 +23139,7 @@ func awsRestjson1_deserializeDocumentAwsIamPermissionsBoundary(v **types.AwsIamP return nil } -func awsRestjson1_deserializeDocumentAwsIamPolicyDetails(v **types.AwsIamPolicyDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsLambdaFunctionDetails(v **types.AwsLambdaFunctionDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21202,74 +23152,130 @@ func awsRestjson1_deserializeDocumentAwsIamPolicyDetails(v **types.AwsIamPolicyD return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsIamPolicyDetails + var sv *types.AwsLambdaFunctionDetails if *v == nil { - sv = &types.AwsIamPolicyDetails{} + sv = &types.AwsLambdaFunctionDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "AttachmentCount": + case "Code": + if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionCode(&sv.Code, value); err != nil { + return err + } + + case "CodeSha256": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - i64, err := jtv.Int64() - if err != nil { - return err + sv.CodeSha256 = ptr.String(jtv) + } + + case "DeadLetterConfig": + if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionDeadLetterConfig(&sv.DeadLetterConfig, value); err != nil { + return err + } + + case "Environment": + if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionEnvironment(&sv.Environment, value); err != nil { + return err + } + + case "FunctionName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.AttachmentCount = int32(i64) + sv.FunctionName = ptr.String(jtv) } - case "CreateDate": + case "Handler": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CreateDate = ptr.String(jtv) + sv.Handler = ptr.String(jtv) } - case "DefaultVersionId": + case "KmsKeyArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DefaultVersionId = ptr.String(jtv) + sv.KmsKeyArn = ptr.String(jtv) } - case "Description": + case "LastModified": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Description = ptr.String(jtv) + sv.LastModified = ptr.String(jtv) } - case "IsAttachable": + case "Layers": + if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionLayerList(&sv.Layers, value); err != nil { + return err + } + + case "MasterArn": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.MasterArn = ptr.String(jtv) + } + + case "MemorySize": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.MemorySize = int32(i64) + } + + case "RevisionId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.RevisionId = ptr.String(jtv) + } + + case "Role": + if value != nil { + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.IsAttachable = jtv + sv.Role = ptr.String(jtv) } - case "Path": + case "Runtime": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Path = ptr.String(jtv) + sv.Runtime = ptr.String(jtv) } - case "PermissionsBoundaryUsageCount": + case "Timeout": if value != nil { jtv, ok := value.(json.Number) if !ok { @@ -21279,41 +23285,28 @@ func awsRestjson1_deserializeDocumentAwsIamPolicyDetails(v **types.AwsIamPolicyD if err != nil { return err } - sv.PermissionsBoundaryUsageCount = int32(i64) + sv.Timeout = int32(i64) } - case "PolicyId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.PolicyId = ptr.String(jtv) + case "TracingConfig": + if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionTracingConfig(&sv.TracingConfig, value); err != nil { + return err } - case "PolicyName": + case "Version": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PolicyName = ptr.String(jtv) + sv.Version = ptr.String(jtv) } - case "PolicyVersionList": - if err := awsRestjson1_deserializeDocumentAwsIamPolicyVersionList(&sv.PolicyVersionList, value); err != nil { + case "VpcConfig": + if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionVpcConfig(&sv.VpcConfig, value); err != nil { return err } - case "UpdateDate": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.UpdateDate = ptr.String(jtv) - } - default: _, _ = key, value @@ -21323,7 +23316,7 @@ func awsRestjson1_deserializeDocumentAwsIamPolicyDetails(v **types.AwsIamPolicyD return nil } -func awsRestjson1_deserializeDocumentAwsIamPolicyVersion(v **types.AwsIamPolicyVersion, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsLambdaFunctionEnvironment(v **types.AwsLambdaFunctionEnvironment, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21336,40 +23329,23 @@ func awsRestjson1_deserializeDocumentAwsIamPolicyVersion(v **types.AwsIamPolicyV return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsIamPolicyVersion + var sv *types.AwsLambdaFunctionEnvironment if *v == nil { - sv = &types.AwsIamPolicyVersion{} + sv = &types.AwsLambdaFunctionEnvironment{} } else { sv = *v } for key, value := range shape { switch key { - case "CreateDate": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.CreateDate = ptr.String(jtv) - } - - case "IsDefaultVersion": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.IsDefaultVersion = jtv + case "Error": + if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionEnvironmentError(&sv.Error, value); err != nil { + return err } - case "VersionId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.VersionId = ptr.String(jtv) + case "Variables": + if err := awsRestjson1_deserializeDocumentFieldMap(&sv.Variables, value); err != nil { + return err } default: @@ -21381,41 +23357,7 @@ func awsRestjson1_deserializeDocumentAwsIamPolicyVersion(v **types.AwsIamPolicyV return nil } -func awsRestjson1_deserializeDocumentAwsIamPolicyVersionList(v *[]types.AwsIamPolicyVersion, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var cv []types.AwsIamPolicyVersion - if *v == nil { - cv = []types.AwsIamPolicyVersion{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.AwsIamPolicyVersion - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsIamPolicyVersion(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsRestjson1_deserializeDocumentAwsIamRoleDetails(v **types.AwsIamRoleDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsLambdaFunctionEnvironmentError(v **types.AwsLambdaFunctionEnvironmentError, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21428,91 +23370,31 @@ func awsRestjson1_deserializeDocumentAwsIamRoleDetails(v **types.AwsIamRoleDetai return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsIamRoleDetails + var sv *types.AwsLambdaFunctionEnvironmentError if *v == nil { - sv = &types.AwsIamRoleDetails{} + sv = &types.AwsLambdaFunctionEnvironmentError{} } else { sv = *v } for key, value := range shape { switch key { - case "AssumeRolePolicyDocument": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected AwsIamRoleAssumeRolePolicyDocument to be of type string, got %T instead", value) - } - sv.AssumeRolePolicyDocument = ptr.String(jtv) - } - - case "AttachedManagedPolicies": - if err := awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicyList(&sv.AttachedManagedPolicies, value); err != nil { - return err - } - - case "CreateDate": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.CreateDate = ptr.String(jtv) - } - - case "InstanceProfileList": - if err := awsRestjson1_deserializeDocumentAwsIamInstanceProfileList(&sv.InstanceProfileList, value); err != nil { - return err - } - - case "MaxSessionDuration": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.MaxSessionDuration = int32(i64) - } - - case "Path": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Path = ptr.String(jtv) - } - - case "PermissionsBoundary": - if err := awsRestjson1_deserializeDocumentAwsIamPermissionsBoundary(&sv.PermissionsBoundary, value); err != nil { - return err - } - - case "RoleId": + case "ErrorCode": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.RoleId = ptr.String(jtv) + sv.ErrorCode = ptr.String(jtv) } - case "RoleName": + case "Message": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.RoleName = ptr.String(jtv) - } - - case "RolePolicyList": - if err := awsRestjson1_deserializeDocumentAwsIamRolePolicyList(&sv.RolePolicyList, value); err != nil { - return err + sv.Message = ptr.String(jtv) } default: @@ -21524,7 +23406,7 @@ func awsRestjson1_deserializeDocumentAwsIamRoleDetails(v **types.AwsIamRoleDetai return nil } -func awsRestjson1_deserializeDocumentAwsIamRolePolicy(v **types.AwsIamRolePolicy, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsLambdaFunctionLayer(v **types.AwsLambdaFunctionLayer, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21537,22 +23419,35 @@ func awsRestjson1_deserializeDocumentAwsIamRolePolicy(v **types.AwsIamRolePolicy return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsIamRolePolicy + var sv *types.AwsLambdaFunctionLayer if *v == nil { - sv = &types.AwsIamRolePolicy{} + sv = &types.AwsLambdaFunctionLayer{} } else { sv = *v } for key, value := range shape { switch key { - case "PolicyName": + case "Arn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PolicyName = ptr.String(jtv) + sv.Arn = ptr.String(jtv) + } + + case "CodeSize": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.CodeSize = int32(i64) } default: @@ -21564,7 +23459,7 @@ func awsRestjson1_deserializeDocumentAwsIamRolePolicy(v **types.AwsIamRolePolicy return nil } -func awsRestjson1_deserializeDocumentAwsIamRolePolicyList(v *[]types.AwsIamRolePolicy, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsLambdaFunctionLayerList(v *[]types.AwsLambdaFunctionLayer, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21577,17 +23472,17 @@ func awsRestjson1_deserializeDocumentAwsIamRolePolicyList(v *[]types.AwsIamRoleP return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsIamRolePolicy + var cv []types.AwsLambdaFunctionLayer if *v == nil { - cv = []types.AwsIamRolePolicy{} + cv = []types.AwsLambdaFunctionLayer{} } else { cv = *v } for _, value := range shape { - var col types.AwsIamRolePolicy + var col types.AwsLambdaFunctionLayer destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsIamRolePolicy(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionLayer(&destAddr, value); err != nil { return err } col = *destAddr @@ -21598,7 +23493,47 @@ func awsRestjson1_deserializeDocumentAwsIamRolePolicyList(v *[]types.AwsIamRoleP return nil } -func awsRestjson1_deserializeDocumentAwsIamUserDetails(v **types.AwsIamUserDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsLambdaFunctionTracingConfig(v **types.AwsLambdaFunctionTracingConfig, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsLambdaFunctionTracingConfig + if *v == nil { + sv = &types.AwsLambdaFunctionTracingConfig{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Mode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Mode = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsLambdaFunctionVpcConfig(v **types.AwsLambdaFunctionVpcConfig, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21611,69 +23546,90 @@ func awsRestjson1_deserializeDocumentAwsIamUserDetails(v **types.AwsIamUserDetai return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsIamUserDetails + var sv *types.AwsLambdaFunctionVpcConfig if *v == nil { - sv = &types.AwsIamUserDetails{} + sv = &types.AwsLambdaFunctionVpcConfig{} } else { sv = *v } for key, value := range shape { switch key { - case "AttachedManagedPolicies": - if err := awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicyList(&sv.AttachedManagedPolicies, value); err != nil { + case "SecurityGroupIds": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SecurityGroupIds, value); err != nil { return err } - case "CreateDate": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.CreateDate = ptr.String(jtv) - } - - case "GroupList": - if err := awsRestjson1_deserializeDocumentStringList(&sv.GroupList, value); err != nil { + case "SubnetIds": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SubnetIds, value); err != nil { return err } - case "Path": + case "VpcId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Path = ptr.String(jtv) + sv.VpcId = ptr.String(jtv) } - case "PermissionsBoundary": - if err := awsRestjson1_deserializeDocumentAwsIamPermissionsBoundary(&sv.PermissionsBoundary, value); err != nil { + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsLambdaLayerVersionDetails(v **types.AwsLambdaLayerVersionDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsLambdaLayerVersionDetails + if *v == nil { + sv = &types.AwsLambdaLayerVersionDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "CompatibleRuntimes": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.CompatibleRuntimes, value); err != nil { return err } - case "UserId": + case "CreatedDate": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.UserId = ptr.String(jtv) + sv.CreatedDate = ptr.String(jtv) } - case "UserName": + case "Version": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected AwsLambdaLayerVersionNumber to be json.Number, got %T instead", value) } - sv.UserName = ptr.String(jtv) - } - - case "UserPolicyList": - if err := awsRestjson1_deserializeDocumentAwsIamUserPolicyList(&sv.UserPolicyList, value); err != nil { - return err + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Version = i64 } default: @@ -21685,7 +23641,7 @@ func awsRestjson1_deserializeDocumentAwsIamUserDetails(v **types.AwsIamUserDetai return nil } -func awsRestjson1_deserializeDocumentAwsIamUserPolicy(v **types.AwsIamUserPolicy, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRdsDbClusterAssociatedRole(v **types.AwsRdsDbClusterAssociatedRole, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21698,22 +23654,31 @@ func awsRestjson1_deserializeDocumentAwsIamUserPolicy(v **types.AwsIamUserPolicy return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsIamUserPolicy + var sv *types.AwsRdsDbClusterAssociatedRole if *v == nil { - sv = &types.AwsIamUserPolicy{} + sv = &types.AwsRdsDbClusterAssociatedRole{} } else { sv = *v } for key, value := range shape { switch key { - case "PolicyName": + case "RoleArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PolicyName = ptr.String(jtv) + sv.RoleArn = ptr.String(jtv) + } + + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Status = ptr.String(jtv) } default: @@ -21725,7 +23690,7 @@ func awsRestjson1_deserializeDocumentAwsIamUserPolicy(v **types.AwsIamUserPolicy return nil } -func awsRestjson1_deserializeDocumentAwsIamUserPolicyList(v *[]types.AwsIamUserPolicy, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRdsDbClusterAssociatedRoles(v *[]types.AwsRdsDbClusterAssociatedRole, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21738,17 +23703,17 @@ func awsRestjson1_deserializeDocumentAwsIamUserPolicyList(v *[]types.AwsIamUserP return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsIamUserPolicy + var cv []types.AwsRdsDbClusterAssociatedRole if *v == nil { - cv = []types.AwsIamUserPolicy{} + cv = []types.AwsRdsDbClusterAssociatedRole{} } else { cv = *v } for _, value := range shape { - var col types.AwsIamUserPolicy + var col types.AwsRdsDbClusterAssociatedRole destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsIamUserPolicy(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsRdsDbClusterAssociatedRole(&destAddr, value); err != nil { return err } col = *destAddr @@ -21759,7 +23724,7 @@ func awsRestjson1_deserializeDocumentAwsIamUserPolicyList(v *[]types.AwsIamUserP return nil } -func awsRestjson1_deserializeDocumentAwsKmsKeyDetails(v **types.AwsKmsKeyDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRdsDbClusterDetails(v **types.AwsRdsDbClusterDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21772,528 +23737,322 @@ func awsRestjson1_deserializeDocumentAwsKmsKeyDetails(v **types.AwsKmsKeyDetails return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsKmsKeyDetails + var sv *types.AwsRdsDbClusterDetails if *v == nil { - sv = &types.AwsKmsKeyDetails{} + sv = &types.AwsRdsDbClusterDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "AWSAccountId": + case "ActivityStreamStatus": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.AWSAccountId = ptr.String(jtv) - } - - case "CreationDate": - if value != nil { - switch jtv := value.(type) { - case json.Number: - f64, err := jtv.Float64() - if err != nil { - return err - } - sv.CreationDate = f64 - - case string: - var f64 float64 - switch { - case strings.EqualFold(jtv, "NaN"): - f64 = math.NaN() - - case strings.EqualFold(jtv, "Infinity"): - f64 = math.Inf(1) - - case strings.EqualFold(jtv, "-Infinity"): - f64 = math.Inf(-1) - - default: - return fmt.Errorf("unknown JSON number value: %s", jtv) - - } - sv.CreationDate = f64 - - default: - return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value) - - } + sv.ActivityStreamStatus = ptr.String(jtv) } - case "Description": + case "AllocatedStorage": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.Description = ptr.String(jtv) - } - - case "KeyId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + i64, err := jtv.Int64() + if err != nil { + return err } - sv.KeyId = ptr.String(jtv) + sv.AllocatedStorage = int32(i64) } - case "KeyManager": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.KeyManager = ptr.String(jtv) + case "AssociatedRoles": + if err := awsRestjson1_deserializeDocumentAwsRdsDbClusterAssociatedRoles(&sv.AssociatedRoles, value); err != nil { + return err } - case "KeyState": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.KeyState = ptr.String(jtv) + case "AvailabilityZones": + if err := awsRestjson1_deserializeDocumentStringList(&sv.AvailabilityZones, value); err != nil { + return err } - case "Origin": + case "BackupRetentionPeriod": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.Origin = ptr.String(jtv) - } - - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsLambdaFunctionCode(v **types.AwsLambdaFunctionCode, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.AwsLambdaFunctionCode - if *v == nil { - sv = &types.AwsLambdaFunctionCode{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "S3Bucket": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + i64, err := jtv.Int64() + if err != nil { + return err } - sv.S3Bucket = ptr.String(jtv) + sv.BackupRetentionPeriod = int32(i64) } - case "S3Key": + case "ClusterCreateTime": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.S3Key = ptr.String(jtv) + sv.ClusterCreateTime = ptr.String(jtv) } - case "S3ObjectVersion": + case "CopyTagsToSnapshot": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.S3ObjectVersion = ptr.String(jtv) + sv.CopyTagsToSnapshot = jtv } - case "ZipFile": + case "CrossAccountClone": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.ZipFile = ptr.String(jtv) + sv.CrossAccountClone = jtv } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsLambdaFunctionDeadLetterConfig(v **types.AwsLambdaFunctionDeadLetterConfig, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.AwsLambdaFunctionDeadLetterConfig - if *v == nil { - sv = &types.AwsLambdaFunctionDeadLetterConfig{} - } else { - sv = *v - } + case "CustomEndpoints": + if err := awsRestjson1_deserializeDocumentStringList(&sv.CustomEndpoints, value); err != nil { + return err + } - for key, value := range shape { - switch key { - case "TargetArn": + case "DatabaseName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.TargetArn = ptr.String(jtv) - } - - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsLambdaFunctionDetails(v **types.AwsLambdaFunctionDetails, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.AwsLambdaFunctionDetails - if *v == nil { - sv = &types.AwsLambdaFunctionDetails{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "Code": - if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionCode(&sv.Code, value); err != nil { - return err + sv.DatabaseName = ptr.String(jtv) } - case "CodeSha256": + case "DbClusterIdentifier": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CodeSha256 = ptr.String(jtv) + sv.DbClusterIdentifier = ptr.String(jtv) } - case "DeadLetterConfig": - if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionDeadLetterConfig(&sv.DeadLetterConfig, value); err != nil { + case "DbClusterMembers": + if err := awsRestjson1_deserializeDocumentAwsRdsDbClusterMembers(&sv.DbClusterMembers, value); err != nil { return err } - case "Environment": - if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionEnvironment(&sv.Environment, value); err != nil { + case "DbClusterOptionGroupMemberships": + if err := awsRestjson1_deserializeDocumentAwsRdsDbClusterOptionGroupMemberships(&sv.DbClusterOptionGroupMemberships, value); err != nil { return err } - case "FunctionName": + case "DbClusterParameterGroup": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.FunctionName = ptr.String(jtv) + sv.DbClusterParameterGroup = ptr.String(jtv) } - case "Handler": + case "DbClusterResourceId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Handler = ptr.String(jtv) + sv.DbClusterResourceId = ptr.String(jtv) } - case "KmsKeyArn": + case "DbSubnetGroup": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.KmsKeyArn = ptr.String(jtv) + sv.DbSubnetGroup = ptr.String(jtv) } - case "LastModified": + case "DeletionProtection": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.LastModified = ptr.String(jtv) + sv.DeletionProtection = jtv } - case "Layers": - if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionLayerList(&sv.Layers, value); err != nil { + case "DomainMemberships": + if err := awsRestjson1_deserializeDocumentAwsRdsDbDomainMemberships(&sv.DomainMemberships, value); err != nil { return err } - case "MasterArn": + case "EnabledCloudWatchLogsExports": + if err := awsRestjson1_deserializeDocumentStringList(&sv.EnabledCloudWatchLogsExports, value); err != nil { + return err + } + + case "Endpoint": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.MasterArn = ptr.String(jtv) + sv.Endpoint = ptr.String(jtv) } - case "MemorySize": + case "Engine": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.MemorySize = int32(i64) + sv.Engine = ptr.String(jtv) } - case "RevisionId": + case "EngineMode": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.RevisionId = ptr.String(jtv) + sv.EngineMode = ptr.String(jtv) } - case "Role": + case "EngineVersion": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Role = ptr.String(jtv) + sv.EngineVersion = ptr.String(jtv) } - case "Runtime": + case "HostedZoneId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Runtime = ptr.String(jtv) + sv.HostedZoneId = ptr.String(jtv) } - case "Timeout": + case "HttpEndpointEnabled": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.Timeout = int32(i64) + sv.HttpEndpointEnabled = jtv } - case "TracingConfig": - if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionTracingConfig(&sv.TracingConfig, value); err != nil { - return err + case "IamDatabaseAuthenticationEnabled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.IamDatabaseAuthenticationEnabled = jtv } - case "Version": + case "KmsKeyId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Version = ptr.String(jtv) - } - - case "VpcConfig": - if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionVpcConfig(&sv.VpcConfig, value); err != nil { - return err + sv.KmsKeyId = ptr.String(jtv) } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsLambdaFunctionEnvironment(v **types.AwsLambdaFunctionEnvironment, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.AwsLambdaFunctionEnvironment - if *v == nil { - sv = &types.AwsLambdaFunctionEnvironment{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "Error": - if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionEnvironmentError(&sv.Error, value); err != nil { - return err + case "MasterUsername": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.MasterUsername = ptr.String(jtv) } - case "Variables": - if err := awsRestjson1_deserializeDocumentFieldMap(&sv.Variables, value); err != nil { - return err + case "MultiAz": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.MultiAz = jtv } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsLambdaFunctionEnvironmentError(v **types.AwsLambdaFunctionEnvironmentError, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.AwsLambdaFunctionEnvironmentError - if *v == nil { - sv = &types.AwsLambdaFunctionEnvironmentError{} - } else { - sv = *v - } + case "Port": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Port = int32(i64) + } - for key, value := range shape { - switch key { - case "ErrorCode": + case "PreferredBackupWindow": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ErrorCode = ptr.String(jtv) + sv.PreferredBackupWindow = ptr.String(jtv) } - case "Message": + case "PreferredMaintenanceWindow": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Message = ptr.String(jtv) + sv.PreferredMaintenanceWindow = ptr.String(jtv) } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsLambdaFunctionLayer(v **types.AwsLambdaFunctionLayer, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + case "ReaderEndpoint": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ReaderEndpoint = ptr.String(jtv) + } - var sv *types.AwsLambdaFunctionLayer - if *v == nil { - sv = &types.AwsLambdaFunctionLayer{} - } else { - sv = *v - } + case "ReadReplicaIdentifiers": + if err := awsRestjson1_deserializeDocumentStringList(&sv.ReadReplicaIdentifiers, value); err != nil { + return err + } - for key, value := range shape { - switch key { - case "Arn": + case "Status": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Arn = ptr.String(jtv) + sv.Status = ptr.String(jtv) } - case "CodeSize": + case "StorageEncrypted": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.CodeSize = int32(i64) + sv.StorageEncrypted = jtv + } + + case "VpcSecurityGroups": + if err := awsRestjson1_deserializeDocumentAwsRdsDbInstanceVpcSecurityGroups(&sv.VpcSecurityGroups, value); err != nil { + return err } default: @@ -22305,41 +24064,7 @@ func awsRestjson1_deserializeDocumentAwsLambdaFunctionLayer(v **types.AwsLambdaF return nil } -func awsRestjson1_deserializeDocumentAwsLambdaFunctionLayerList(v *[]types.AwsLambdaFunctionLayer, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var cv []types.AwsLambdaFunctionLayer - if *v == nil { - cv = []types.AwsLambdaFunctionLayer{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.AwsLambdaFunctionLayer - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionLayer(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsRestjson1_deserializeDocumentAwsLambdaFunctionTracingConfig(v **types.AwsLambdaFunctionTracingConfig, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRdsDbClusterMember(v **types.AwsRdsDbClusterMember, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -22352,72 +24077,53 @@ func awsRestjson1_deserializeDocumentAwsLambdaFunctionTracingConfig(v **types.Aw return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsLambdaFunctionTracingConfig + var sv *types.AwsRdsDbClusterMember if *v == nil { - sv = &types.AwsLambdaFunctionTracingConfig{} + sv = &types.AwsRdsDbClusterMember{} } else { sv = *v } for key, value := range shape { switch key { - case "Mode": + case "DbClusterParameterGroupStatus": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Mode = ptr.String(jtv) + sv.DbClusterParameterGroupStatus = ptr.String(jtv) } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsLambdaFunctionVpcConfig(v **types.AwsLambdaFunctionVpcConfig, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.AwsLambdaFunctionVpcConfig - if *v == nil { - sv = &types.AwsLambdaFunctionVpcConfig{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "SecurityGroupIds": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SecurityGroupIds, value); err != nil { - return err + case "DbInstanceIdentifier": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.DbInstanceIdentifier = ptr.String(jtv) } - case "SubnetIds": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SubnetIds, value); err != nil { - return err + case "IsClusterWriter": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.IsClusterWriter = jtv } - case "VpcId": + case "PromotionTier": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.VpcId = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.PromotionTier = int32(i64) } default: @@ -22429,7 +24135,7 @@ func awsRestjson1_deserializeDocumentAwsLambdaFunctionVpcConfig(v **types.AwsLam return nil } -func awsRestjson1_deserializeDocumentAwsLambdaLayerVersionDetails(v **types.AwsLambdaLayerVersionDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRdsDbClusterMembers(v *[]types.AwsRdsDbClusterMember, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -22437,57 +24143,33 @@ func awsRestjson1_deserializeDocumentAwsLambdaLayerVersionDetails(v **types.AwsL return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsLambdaLayerVersionDetails + var cv []types.AwsRdsDbClusterMember if *v == nil { - sv = &types.AwsLambdaLayerVersionDetails{} + cv = []types.AwsRdsDbClusterMember{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "CompatibleRuntimes": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.CompatibleRuntimes, value); err != nil { - return err - } - - case "CreatedDate": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.CreatedDate = ptr.String(jtv) - } - - case "Version": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected AwsLambdaLayerVersionNumber to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.Version = i64 - } - - default: - _, _ = key, value - + for _, value := range shape { + var col types.AwsRdsDbClusterMember + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsRdsDbClusterMember(&destAddr, value); err != nil { + return err } + col = *destAddr + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsRestjson1_deserializeDocumentAwsRdsDbClusterAssociatedRole(v **types.AwsRdsDbClusterAssociatedRole, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRdsDbClusterOptionGroupMembership(v **types.AwsRdsDbClusterOptionGroupMembership, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -22500,22 +24182,22 @@ func awsRestjson1_deserializeDocumentAwsRdsDbClusterAssociatedRole(v **types.Aws return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsRdsDbClusterAssociatedRole + var sv *types.AwsRdsDbClusterOptionGroupMembership if *v == nil { - sv = &types.AwsRdsDbClusterAssociatedRole{} + sv = &types.AwsRdsDbClusterOptionGroupMembership{} } else { sv = *v } for key, value := range shape { switch key { - case "RoleArn": + case "DbClusterOptionGroupName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.RoleArn = ptr.String(jtv) + sv.DbClusterOptionGroupName = ptr.String(jtv) } case "Status": @@ -22536,7 +24218,7 @@ func awsRestjson1_deserializeDocumentAwsRdsDbClusterAssociatedRole(v **types.Aws return nil } -func awsRestjson1_deserializeDocumentAwsRdsDbClusterAssociatedRoles(v *[]types.AwsRdsDbClusterAssociatedRole, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRdsDbClusterOptionGroupMemberships(v *[]types.AwsRdsDbClusterOptionGroupMembership, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -22549,17 +24231,17 @@ func awsRestjson1_deserializeDocumentAwsRdsDbClusterAssociatedRoles(v *[]types.A return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsRdsDbClusterAssociatedRole + var cv []types.AwsRdsDbClusterOptionGroupMembership if *v == nil { - cv = []types.AwsRdsDbClusterAssociatedRole{} + cv = []types.AwsRdsDbClusterOptionGroupMembership{} } else { cv = *v } for _, value := range shape { - var col types.AwsRdsDbClusterAssociatedRole + var col types.AwsRdsDbClusterOptionGroupMembership destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsRdsDbClusterAssociatedRole(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsRdsDbClusterOptionGroupMembership(&destAddr, value); err != nil { return err } col = *destAddr @@ -22570,7 +24252,7 @@ func awsRestjson1_deserializeDocumentAwsRdsDbClusterAssociatedRoles(v *[]types.A return nil } -func awsRestjson1_deserializeDocumentAwsRdsDbClusterDetails(v **types.AwsRdsDbClusterDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRdsDbClusterSnapshotDetails(v **types.AwsRdsDbClusterSnapshotDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -22583,24 +24265,15 @@ func awsRestjson1_deserializeDocumentAwsRdsDbClusterDetails(v **types.AwsRdsDbCl return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsRdsDbClusterDetails + var sv *types.AwsRdsDbClusterSnapshotDetails if *v == nil { - sv = &types.AwsRdsDbClusterDetails{} + sv = &types.AwsRdsDbClusterSnapshotDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "ActivityStreamStatus": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.ActivityStreamStatus = ptr.String(jtv) - } - case "AllocatedStorage": if value != nil { jtv, ok := value.(json.Number) @@ -22614,29 +24287,11 @@ func awsRestjson1_deserializeDocumentAwsRdsDbClusterDetails(v **types.AwsRdsDbCl sv.AllocatedStorage = int32(i64) } - case "AssociatedRoles": - if err := awsRestjson1_deserializeDocumentAwsRdsDbClusterAssociatedRoles(&sv.AssociatedRoles, value); err != nil { - return err - } - case "AvailabilityZones": if err := awsRestjson1_deserializeDocumentStringList(&sv.AvailabilityZones, value); err != nil { return err } - case "BackupRetentionPeriod": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.BackupRetentionPeriod = int32(i64) - } - case "ClusterCreateTime": if value != nil { jtv, ok := value.(string) @@ -22646,38 +24301,6 @@ func awsRestjson1_deserializeDocumentAwsRdsDbClusterDetails(v **types.AwsRdsDbCl sv.ClusterCreateTime = ptr.String(jtv) } - case "CopyTagsToSnapshot": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.CopyTagsToSnapshot = jtv - } - - case "CrossAccountClone": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.CrossAccountClone = jtv - } - - case "CustomEndpoints": - if err := awsRestjson1_deserializeDocumentStringList(&sv.CustomEndpoints, value); err != nil { - return err - } - - case "DatabaseName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.DatabaseName = ptr.String(jtv) - } - case "DbClusterIdentifier": if value != nil { jtv, ok := value.(string) @@ -22687,69 +24310,13 @@ func awsRestjson1_deserializeDocumentAwsRdsDbClusterDetails(v **types.AwsRdsDbCl sv.DbClusterIdentifier = ptr.String(jtv) } - case "DbClusterMembers": - if err := awsRestjson1_deserializeDocumentAwsRdsDbClusterMembers(&sv.DbClusterMembers, value); err != nil { - return err - } - - case "DbClusterOptionGroupMemberships": - if err := awsRestjson1_deserializeDocumentAwsRdsDbClusterOptionGroupMemberships(&sv.DbClusterOptionGroupMemberships, value); err != nil { - return err - } - - case "DbClusterParameterGroup": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.DbClusterParameterGroup = ptr.String(jtv) - } - - case "DbClusterResourceId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.DbClusterResourceId = ptr.String(jtv) - } - - case "DbSubnetGroup": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.DbSubnetGroup = ptr.String(jtv) - } - - case "DeletionProtection": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.DeletionProtection = jtv - } - - case "DomainMemberships": - if err := awsRestjson1_deserializeDocumentAwsRdsDbDomainMemberships(&sv.DomainMemberships, value); err != nil { - return err - } - - case "EnabledCloudWatchLogsExports": - if err := awsRestjson1_deserializeDocumentStringList(&sv.EnabledCloudWatchLogsExports, value); err != nil { - return err - } - - case "Endpoint": + case "DbClusterSnapshotIdentifier": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Endpoint = ptr.String(jtv) + sv.DbClusterSnapshotIdentifier = ptr.String(jtv) } case "Engine": @@ -22761,15 +24328,6 @@ func awsRestjson1_deserializeDocumentAwsRdsDbClusterDetails(v **types.AwsRdsDbCl sv.Engine = ptr.String(jtv) } - case "EngineMode": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.EngineMode = ptr.String(jtv) - } - case "EngineVersion": if value != nil { jtv, ok := value.(string) @@ -22779,24 +24337,6 @@ func awsRestjson1_deserializeDocumentAwsRdsDbClusterDetails(v **types.AwsRdsDbCl sv.EngineVersion = ptr.String(jtv) } - case "HostedZoneId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.HostedZoneId = ptr.String(jtv) - } - - case "HttpEndpointEnabled": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.HttpEndpointEnabled = jtv - } - case "IamDatabaseAuthenticationEnabled": if value != nil { jtv, ok := value.(bool) @@ -22815,25 +24355,25 @@ func awsRestjson1_deserializeDocumentAwsRdsDbClusterDetails(v **types.AwsRdsDbCl sv.KmsKeyId = ptr.String(jtv) } - case "MasterUsername": + case "LicenseModel": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.MasterUsername = ptr.String(jtv) + sv.LicenseModel = ptr.String(jtv) } - case "MultiAz": + case "MasterUsername": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.MultiAz = jtv + sv.MasterUsername = ptr.String(jtv) } - case "Port": + case "PercentProgress": if value != nil { jtv, ok := value.(json.Number) if !ok { @@ -22843,39 +24383,38 @@ func awsRestjson1_deserializeDocumentAwsRdsDbClusterDetails(v **types.AwsRdsDbCl if err != nil { return err } - sv.Port = int32(i64) + sv.PercentProgress = int32(i64) } - case "PreferredBackupWindow": + case "Port": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.PreferredBackupWindow = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Port = int32(i64) } - case "PreferredMaintenanceWindow": + case "SnapshotCreateTime": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PreferredMaintenanceWindow = ptr.String(jtv) + sv.SnapshotCreateTime = ptr.String(jtv) } - case "ReaderEndpoint": + case "SnapshotType": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ReaderEndpoint = ptr.String(jtv) - } - - case "ReadReplicaIdentifiers": - if err := awsRestjson1_deserializeDocumentStringList(&sv.ReadReplicaIdentifiers, value); err != nil { - return err + sv.SnapshotType = ptr.String(jtv) } case "Status": @@ -22896,9 +24435,13 @@ func awsRestjson1_deserializeDocumentAwsRdsDbClusterDetails(v **types.AwsRdsDbCl sv.StorageEncrypted = jtv } - case "VpcSecurityGroups": - if err := awsRestjson1_deserializeDocumentAwsRdsDbInstanceVpcSecurityGroups(&sv.VpcSecurityGroups, value); err != nil { - return err + case "VpcId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.VpcId = ptr.String(jtv) } default: @@ -22910,7 +24453,7 @@ func awsRestjson1_deserializeDocumentAwsRdsDbClusterDetails(v **types.AwsRdsDbCl return nil } -func awsRestjson1_deserializeDocumentAwsRdsDbClusterMember(v **types.AwsRdsDbClusterMember, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRdsDbDomainMembership(v **types.AwsRdsDbDomainMembership, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -22923,53 +24466,49 @@ func awsRestjson1_deserializeDocumentAwsRdsDbClusterMember(v **types.AwsRdsDbClu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsRdsDbClusterMember + var sv *types.AwsRdsDbDomainMembership if *v == nil { - sv = &types.AwsRdsDbClusterMember{} + sv = &types.AwsRdsDbDomainMembership{} } else { sv = *v } for key, value := range shape { switch key { - case "DbClusterParameterGroupStatus": + case "Domain": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DbClusterParameterGroupStatus = ptr.String(jtv) + sv.Domain = ptr.String(jtv) } - case "DbInstanceIdentifier": + case "Fqdn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DbInstanceIdentifier = ptr.String(jtv) + sv.Fqdn = ptr.String(jtv) } - case "IsClusterWriter": + case "IamRoleName": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.IsClusterWriter = jtv + sv.IamRoleName = ptr.String(jtv) } - case "PromotionTier": + case "Status": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PromotionTier = int32(i64) + sv.Status = ptr.String(jtv) } default: @@ -22981,7 +24520,7 @@ func awsRestjson1_deserializeDocumentAwsRdsDbClusterMember(v **types.AwsRdsDbClu return nil } -func awsRestjson1_deserializeDocumentAwsRdsDbClusterMembers(v *[]types.AwsRdsDbClusterMember, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRdsDbDomainMemberships(v *[]types.AwsRdsDbDomainMembership, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -22994,17 +24533,17 @@ func awsRestjson1_deserializeDocumentAwsRdsDbClusterMembers(v *[]types.AwsRdsDbC return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsRdsDbClusterMember + var cv []types.AwsRdsDbDomainMembership if *v == nil { - cv = []types.AwsRdsDbClusterMember{} + cv = []types.AwsRdsDbDomainMembership{} } else { cv = *v } for _, value := range shape { - var col types.AwsRdsDbClusterMember + var col types.AwsRdsDbDomainMembership destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsRdsDbClusterMember(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsRdsDbDomainMembership(&destAddr, value); err != nil { return err } col = *destAddr @@ -23015,7 +24554,7 @@ func awsRestjson1_deserializeDocumentAwsRdsDbClusterMembers(v *[]types.AwsRdsDbC return nil } -func awsRestjson1_deserializeDocumentAwsRdsDbClusterOptionGroupMembership(v **types.AwsRdsDbClusterOptionGroupMembership, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRdsDbInstanceAssociatedRole(v **types.AwsRdsDbInstanceAssociatedRole, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -23028,22 +24567,31 @@ func awsRestjson1_deserializeDocumentAwsRdsDbClusterOptionGroupMembership(v **ty return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsRdsDbClusterOptionGroupMembership + var sv *types.AwsRdsDbInstanceAssociatedRole if *v == nil { - sv = &types.AwsRdsDbClusterOptionGroupMembership{} + sv = &types.AwsRdsDbInstanceAssociatedRole{} } else { sv = *v } for key, value := range shape { switch key { - case "DbClusterOptionGroupName": + case "FeatureName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DbClusterOptionGroupName = ptr.String(jtv) + sv.FeatureName = ptr.String(jtv) + } + + case "RoleArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.RoleArn = ptr.String(jtv) } case "Status": @@ -23064,7 +24612,7 @@ func awsRestjson1_deserializeDocumentAwsRdsDbClusterOptionGroupMembership(v **ty return nil } -func awsRestjson1_deserializeDocumentAwsRdsDbClusterOptionGroupMemberships(v *[]types.AwsRdsDbClusterOptionGroupMembership, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRdsDbInstanceAssociatedRoles(v *[]types.AwsRdsDbInstanceAssociatedRole, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -23077,17 +24625,17 @@ func awsRestjson1_deserializeDocumentAwsRdsDbClusterOptionGroupMemberships(v *[] return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsRdsDbClusterOptionGroupMembership + var cv []types.AwsRdsDbInstanceAssociatedRole if *v == nil { - cv = []types.AwsRdsDbClusterOptionGroupMembership{} + cv = []types.AwsRdsDbInstanceAssociatedRole{} } else { cv = *v } for _, value := range shape { - var col types.AwsRdsDbClusterOptionGroupMembership + var col types.AwsRdsDbInstanceAssociatedRole destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsRdsDbClusterOptionGroupMembership(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsRdsDbInstanceAssociatedRole(&destAddr, value); err != nil { return err } col = *destAddr @@ -23098,7 +24646,7 @@ func awsRestjson1_deserializeDocumentAwsRdsDbClusterOptionGroupMemberships(v *[] return nil } -func awsRestjson1_deserializeDocumentAwsRdsDbClusterSnapshotDetails(v **types.AwsRdsDbClusterSnapshotDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRdsDbInstanceDetails(v **types.AwsRdsDbInstanceDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -23111,16 +24659,243 @@ func awsRestjson1_deserializeDocumentAwsRdsDbClusterSnapshotDetails(v **types.Aw return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsRdsDbClusterSnapshotDetails - if *v == nil { - sv = &types.AwsRdsDbClusterSnapshotDetails{} - } else { - sv = *v - } + var sv *types.AwsRdsDbInstanceDetails + if *v == nil { + sv = &types.AwsRdsDbInstanceDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AllocatedStorage": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.AllocatedStorage = int32(i64) + } + + case "AssociatedRoles": + if err := awsRestjson1_deserializeDocumentAwsRdsDbInstanceAssociatedRoles(&sv.AssociatedRoles, value); err != nil { + return err + } + + case "AutoMinorVersionUpgrade": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.AutoMinorVersionUpgrade = jtv + } + + case "AvailabilityZone": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.AvailabilityZone = ptr.String(jtv) + } + + case "BackupRetentionPeriod": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.BackupRetentionPeriod = int32(i64) + } + + case "CACertificateIdentifier": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.CACertificateIdentifier = ptr.String(jtv) + } + + case "CharacterSetName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.CharacterSetName = ptr.String(jtv) + } + + case "CopyTagsToSnapshot": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.CopyTagsToSnapshot = jtv + } + + case "DBClusterIdentifier": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.DBClusterIdentifier = ptr.String(jtv) + } + + case "DBInstanceClass": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.DBInstanceClass = ptr.String(jtv) + } + + case "DBInstanceIdentifier": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.DBInstanceIdentifier = ptr.String(jtv) + } + + case "DbInstancePort": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.DbInstancePort = int32(i64) + } + + case "DbInstanceStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.DbInstanceStatus = ptr.String(jtv) + } + + case "DbiResourceId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.DbiResourceId = ptr.String(jtv) + } + + case "DBName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.DBName = ptr.String(jtv) + } + + case "DbParameterGroups": + if err := awsRestjson1_deserializeDocumentAwsRdsDbParameterGroups(&sv.DbParameterGroups, value); err != nil { + return err + } + + case "DbSecurityGroups": + if err := awsRestjson1_deserializeDocumentStringList(&sv.DbSecurityGroups, value); err != nil { + return err + } + + case "DbSubnetGroup": + if err := awsRestjson1_deserializeDocumentAwsRdsDbSubnetGroup(&sv.DbSubnetGroup, value); err != nil { + return err + } + + case "DeletionProtection": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.DeletionProtection = jtv + } + + case "DomainMemberships": + if err := awsRestjson1_deserializeDocumentAwsRdsDbDomainMemberships(&sv.DomainMemberships, value); err != nil { + return err + } + + case "EnabledCloudWatchLogsExports": + if err := awsRestjson1_deserializeDocumentStringList(&sv.EnabledCloudWatchLogsExports, value); err != nil { + return err + } + + case "Endpoint": + if err := awsRestjson1_deserializeDocumentAwsRdsDbInstanceEndpoint(&sv.Endpoint, value); err != nil { + return err + } + + case "Engine": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Engine = ptr.String(jtv) + } + + case "EngineVersion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.EngineVersion = ptr.String(jtv) + } + + case "EnhancedMonitoringResourceArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.EnhancedMonitoringResourceArn = ptr.String(jtv) + } + + case "IAMDatabaseAuthenticationEnabled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.IAMDatabaseAuthenticationEnabled = jtv + } + + case "InstanceCreateTime": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.InstanceCreateTime = ptr.String(jtv) + } - for key, value := range shape { - switch key { - case "AllocatedStorage": + case "Iops": if value != nil { jtv, ok := value.(json.Number) if !ok { @@ -23130,96 +24905,123 @@ func awsRestjson1_deserializeDocumentAwsRdsDbClusterSnapshotDetails(v **types.Aw if err != nil { return err } - sv.AllocatedStorage = int32(i64) - } - - case "AvailabilityZones": - if err := awsRestjson1_deserializeDocumentStringList(&sv.AvailabilityZones, value); err != nil { - return err + sv.Iops = int32(i64) } - case "ClusterCreateTime": + case "KmsKeyId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ClusterCreateTime = ptr.String(jtv) + sv.KmsKeyId = ptr.String(jtv) } - case "DbClusterIdentifier": + case "LatestRestorableTime": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DbClusterIdentifier = ptr.String(jtv) + sv.LatestRestorableTime = ptr.String(jtv) } - case "DbClusterSnapshotIdentifier": + case "LicenseModel": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DbClusterSnapshotIdentifier = ptr.String(jtv) + sv.LicenseModel = ptr.String(jtv) } - case "Engine": + case "ListenerEndpoint": + if err := awsRestjson1_deserializeDocumentAwsRdsDbInstanceEndpoint(&sv.ListenerEndpoint, value); err != nil { + return err + } + + case "MasterUsername": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Engine = ptr.String(jtv) + sv.MasterUsername = ptr.String(jtv) } - case "EngineVersion": + case "MaxAllocatedStorage": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.EngineVersion = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.MaxAllocatedStorage = int32(i64) } - case "IamDatabaseAuthenticationEnabled": + case "MonitoringInterval": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.IamDatabaseAuthenticationEnabled = jtv + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.MonitoringInterval = int32(i64) } - case "KmsKeyId": + case "MonitoringRoleArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.KmsKeyId = ptr.String(jtv) + sv.MonitoringRoleArn = ptr.String(jtv) } - case "LicenseModel": + case "MultiAz": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.LicenseModel = ptr.String(jtv) + sv.MultiAz = jtv } - case "MasterUsername": + case "OptionGroupMemberships": + if err := awsRestjson1_deserializeDocumentAwsRdsDbOptionGroupMemberships(&sv.OptionGroupMemberships, value); err != nil { + return err + } + + case "PendingModifiedValues": + if err := awsRestjson1_deserializeDocumentAwsRdsDbPendingModifiedValues(&sv.PendingModifiedValues, value); err != nil { + return err + } + + case "PerformanceInsightsEnabled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.PerformanceInsightsEnabled = jtv + } + + case "PerformanceInsightsKmsKeyId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.MasterUsername = ptr.String(jtv) + sv.PerformanceInsightsKmsKeyId = ptr.String(jtv) } - case "PercentProgress": + case "PerformanceInsightsRetentionPeriod": if value != nil { jtv, ok := value.(json.Number) if !ok { @@ -23229,10 +25031,33 @@ func awsRestjson1_deserializeDocumentAwsRdsDbClusterSnapshotDetails(v **types.Aw if err != nil { return err } - sv.PercentProgress = int32(i64) + sv.PerformanceInsightsRetentionPeriod = int32(i64) } - case "Port": + case "PreferredBackupWindow": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.PreferredBackupWindow = ptr.String(jtv) + } + + case "PreferredMaintenanceWindow": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.PreferredMaintenanceWindow = ptr.String(jtv) + } + + case "ProcessorFeatures": + if err := awsRestjson1_deserializeDocumentAwsRdsDbProcessorFeatures(&sv.ProcessorFeatures, value); err != nil { + return err + } + + case "PromotionTier": if value != nil { jtv, ok := value.(json.Number) if !ok { @@ -23242,34 +25067,49 @@ func awsRestjson1_deserializeDocumentAwsRdsDbClusterSnapshotDetails(v **types.Aw if err != nil { return err } - sv.Port = int32(i64) + sv.PromotionTier = int32(i64) } - case "SnapshotCreateTime": + case "PubliclyAccessible": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.SnapshotCreateTime = ptr.String(jtv) + sv.PubliclyAccessible = jtv } - case "SnapshotType": + case "ReadReplicaDBClusterIdentifiers": + if err := awsRestjson1_deserializeDocumentStringList(&sv.ReadReplicaDBClusterIdentifiers, value); err != nil { + return err + } + + case "ReadReplicaDBInstanceIdentifiers": + if err := awsRestjson1_deserializeDocumentStringList(&sv.ReadReplicaDBInstanceIdentifiers, value); err != nil { + return err + } + + case "ReadReplicaSourceDBInstanceIdentifier": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.SnapshotType = ptr.String(jtv) + sv.ReadReplicaSourceDBInstanceIdentifier = ptr.String(jtv) } - case "Status": + case "SecondaryAvailabilityZone": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Status = ptr.String(jtv) + sv.SecondaryAvailabilityZone = ptr.String(jtv) + } + + case "StatusInfos": + if err := awsRestjson1_deserializeDocumentAwsRdsDbStatusInfos(&sv.StatusInfos, value); err != nil { + return err } case "StorageEncrypted": @@ -23281,13 +25121,98 @@ func awsRestjson1_deserializeDocumentAwsRdsDbClusterSnapshotDetails(v **types.Aw sv.StorageEncrypted = jtv } - case "VpcId": + case "StorageType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.StorageType = ptr.String(jtv) + } + + case "TdeCredentialArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.TdeCredentialArn = ptr.String(jtv) + } + + case "Timezone": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Timezone = ptr.String(jtv) + } + + case "VpcSecurityGroups": + if err := awsRestjson1_deserializeDocumentAwsRdsDbInstanceVpcSecurityGroups(&sv.VpcSecurityGroups, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsRdsDbInstanceEndpoint(v **types.AwsRdsDbInstanceEndpoint, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsRdsDbInstanceEndpoint + if *v == nil { + sv = &types.AwsRdsDbInstanceEndpoint{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Address": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Address = ptr.String(jtv) + } + + case "HostedZoneId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.HostedZoneId = ptr.String(jtv) + } + + case "Port": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.VpcId = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Port = int32(i64) } default: @@ -23299,7 +25224,7 @@ func awsRestjson1_deserializeDocumentAwsRdsDbClusterSnapshotDetails(v **types.Aw return nil } -func awsRestjson1_deserializeDocumentAwsRdsDbDomainMembership(v **types.AwsRdsDbDomainMembership, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRdsDbInstanceVpcSecurityGroup(v **types.AwsRdsDbInstanceVpcSecurityGroup, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -23312,49 +25237,31 @@ func awsRestjson1_deserializeDocumentAwsRdsDbDomainMembership(v **types.AwsRdsDb return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsRdsDbDomainMembership + var sv *types.AwsRdsDbInstanceVpcSecurityGroup if *v == nil { - sv = &types.AwsRdsDbDomainMembership{} + sv = &types.AwsRdsDbInstanceVpcSecurityGroup{} } else { sv = *v } for key, value := range shape { switch key { - case "Domain": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Domain = ptr.String(jtv) - } - - case "Fqdn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Fqdn = ptr.String(jtv) - } - - case "IamRoleName": + case "Status": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.IamRoleName = ptr.String(jtv) + sv.Status = ptr.String(jtv) } - case "Status": + case "VpcSecurityGroupId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Status = ptr.String(jtv) + sv.VpcSecurityGroupId = ptr.String(jtv) } default: @@ -23366,7 +25273,7 @@ func awsRestjson1_deserializeDocumentAwsRdsDbDomainMembership(v **types.AwsRdsDb return nil } -func awsRestjson1_deserializeDocumentAwsRdsDbDomainMemberships(v *[]types.AwsRdsDbDomainMembership, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRdsDbInstanceVpcSecurityGroups(v *[]types.AwsRdsDbInstanceVpcSecurityGroup, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -23379,17 +25286,17 @@ func awsRestjson1_deserializeDocumentAwsRdsDbDomainMemberships(v *[]types.AwsRds return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsRdsDbDomainMembership + var cv []types.AwsRdsDbInstanceVpcSecurityGroup if *v == nil { - cv = []types.AwsRdsDbDomainMembership{} + cv = []types.AwsRdsDbInstanceVpcSecurityGroup{} } else { cv = *v } for _, value := range shape { - var col types.AwsRdsDbDomainMembership + var col types.AwsRdsDbInstanceVpcSecurityGroup destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsRdsDbDomainMembership(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsRdsDbInstanceVpcSecurityGroup(&destAddr, value); err != nil { return err } col = *destAddr @@ -23400,7 +25307,7 @@ func awsRestjson1_deserializeDocumentAwsRdsDbDomainMemberships(v *[]types.AwsRds return nil } -func awsRestjson1_deserializeDocumentAwsRdsDbInstanceAssociatedRole(v **types.AwsRdsDbInstanceAssociatedRole, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRdsDbOptionGroupMembership(v **types.AwsRdsDbOptionGroupMembership, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -23413,31 +25320,22 @@ func awsRestjson1_deserializeDocumentAwsRdsDbInstanceAssociatedRole(v **types.Aw return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsRdsDbInstanceAssociatedRole + var sv *types.AwsRdsDbOptionGroupMembership if *v == nil { - sv = &types.AwsRdsDbInstanceAssociatedRole{} + sv = &types.AwsRdsDbOptionGroupMembership{} } else { sv = *v } for key, value := range shape { switch key { - case "FeatureName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.FeatureName = ptr.String(jtv) - } - - case "RoleArn": + case "OptionGroupName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.RoleArn = ptr.String(jtv) + sv.OptionGroupName = ptr.String(jtv) } case "Status": @@ -23458,7 +25356,7 @@ func awsRestjson1_deserializeDocumentAwsRdsDbInstanceAssociatedRole(v **types.Aw return nil } -func awsRestjson1_deserializeDocumentAwsRdsDbInstanceAssociatedRoles(v *[]types.AwsRdsDbInstanceAssociatedRole, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRdsDbOptionGroupMemberships(v *[]types.AwsRdsDbOptionGroupMembership, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -23471,17 +25369,17 @@ func awsRestjson1_deserializeDocumentAwsRdsDbInstanceAssociatedRoles(v *[]types. return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsRdsDbInstanceAssociatedRole + var cv []types.AwsRdsDbOptionGroupMembership if *v == nil { - cv = []types.AwsRdsDbInstanceAssociatedRole{} + cv = []types.AwsRdsDbOptionGroupMembership{} } else { cv = *v } for _, value := range shape { - var col types.AwsRdsDbInstanceAssociatedRole + var col types.AwsRdsDbOptionGroupMembership destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsRdsDbInstanceAssociatedRole(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsRdsDbOptionGroupMembership(&destAddr, value); err != nil { return err } col = *destAddr @@ -23492,7 +25390,7 @@ func awsRestjson1_deserializeDocumentAwsRdsDbInstanceAssociatedRoles(v *[]types. return nil } -func awsRestjson1_deserializeDocumentAwsRdsDbInstanceDetails(v **types.AwsRdsDbInstanceDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRdsDbParameterGroup(v **types.AwsRdsDbParameterGroup, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -23505,240 +25403,167 @@ func awsRestjson1_deserializeDocumentAwsRdsDbInstanceDetails(v **types.AwsRdsDbI return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsRdsDbInstanceDetails + var sv *types.AwsRdsDbParameterGroup if *v == nil { - sv = &types.AwsRdsDbInstanceDetails{} + sv = &types.AwsRdsDbParameterGroup{} } else { sv = *v } for key, value := range shape { switch key { - case "AllocatedStorage": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.AllocatedStorage = int32(i64) - } - - case "AssociatedRoles": - if err := awsRestjson1_deserializeDocumentAwsRdsDbInstanceAssociatedRoles(&sv.AssociatedRoles, value); err != nil { - return err - } - - case "AutoMinorVersionUpgrade": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.AutoMinorVersionUpgrade = jtv - } - - case "AvailabilityZone": + case "DbParameterGroupName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.AvailabilityZone = ptr.String(jtv) - } - - case "BackupRetentionPeriod": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.BackupRetentionPeriod = int32(i64) + sv.DbParameterGroupName = ptr.String(jtv) } - case "CACertificateIdentifier": + case "ParameterApplyStatus": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CACertificateIdentifier = ptr.String(jtv) + sv.ParameterApplyStatus = ptr.String(jtv) } - case "CharacterSetName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.CharacterSetName = ptr.String(jtv) - } + default: + _, _ = key, value - case "CopyTagsToSnapshot": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.CopyTagsToSnapshot = jtv - } + } + } + *v = sv + return nil +} - case "DBClusterIdentifier": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.DBClusterIdentifier = ptr.String(jtv) - } +func awsRestjson1_deserializeDocumentAwsRdsDbParameterGroups(v *[]types.AwsRdsDbParameterGroup, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } - case "DBInstanceClass": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.DBInstanceClass = ptr.String(jtv) - } + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } - case "DBInstanceIdentifier": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.DBInstanceIdentifier = ptr.String(jtv) - } + var cv []types.AwsRdsDbParameterGroup + if *v == nil { + cv = []types.AwsRdsDbParameterGroup{} + } else { + cv = *v + } - case "DbInstancePort": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.DbInstancePort = int32(i64) - } + for _, value := range shape { + var col types.AwsRdsDbParameterGroup + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsRdsDbParameterGroup(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) - case "DbInstanceStatus": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.DbInstanceStatus = ptr.String(jtv) - } + } + *v = cv + return nil +} - case "DbiResourceId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.DbiResourceId = ptr.String(jtv) - } +func awsRestjson1_deserializeDocumentAwsRdsDbPendingModifiedValues(v **types.AwsRdsDbPendingModifiedValues, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsRdsDbPendingModifiedValues + if *v == nil { + sv = &types.AwsRdsDbPendingModifiedValues{} + } else { + sv = *v + } - case "DBName": + for key, value := range shape { + switch key { + case "AllocatedStorage": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.DBName = ptr.String(jtv) - } - - case "DbParameterGroups": - if err := awsRestjson1_deserializeDocumentAwsRdsDbParameterGroups(&sv.DbParameterGroups, value); err != nil { - return err - } - - case "DbSecurityGroups": - if err := awsRestjson1_deserializeDocumentStringList(&sv.DbSecurityGroups, value); err != nil { - return err - } - - case "DbSubnetGroup": - if err := awsRestjson1_deserializeDocumentAwsRdsDbSubnetGroup(&sv.DbSubnetGroup, value); err != nil { - return err + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.AllocatedStorage = int32(i64) } - case "DeletionProtection": + case "BackupRetentionPeriod": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.DeletionProtection = jtv - } - - case "DomainMemberships": - if err := awsRestjson1_deserializeDocumentAwsRdsDbDomainMemberships(&sv.DomainMemberships, value); err != nil { - return err - } - - case "EnabledCloudWatchLogsExports": - if err := awsRestjson1_deserializeDocumentStringList(&sv.EnabledCloudWatchLogsExports, value); err != nil { - return err - } - - case "Endpoint": - if err := awsRestjson1_deserializeDocumentAwsRdsDbInstanceEndpoint(&sv.Endpoint, value); err != nil { - return err + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.BackupRetentionPeriod = int32(i64) } - case "Engine": + case "CaCertificateIdentifier": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Engine = ptr.String(jtv) + sv.CaCertificateIdentifier = ptr.String(jtv) } - case "EngineVersion": + case "DbInstanceClass": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.EngineVersion = ptr.String(jtv) + sv.DbInstanceClass = ptr.String(jtv) } - case "EnhancedMonitoringResourceArn": + case "DbInstanceIdentifier": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.EnhancedMonitoringResourceArn = ptr.String(jtv) + sv.DbInstanceIdentifier = ptr.String(jtv) } - case "IAMDatabaseAuthenticationEnabled": + case "DbSubnetGroupName": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.IAMDatabaseAuthenticationEnabled = jtv + sv.DbSubnetGroupName = ptr.String(jtv) } - case "InstanceCreateTime": + case "EngineVersion": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.InstanceCreateTime = ptr.String(jtv) + sv.EngineVersion = ptr.String(jtv) } case "Iops": @@ -23754,48 +25579,39 @@ func awsRestjson1_deserializeDocumentAwsRdsDbInstanceDetails(v **types.AwsRdsDbI sv.Iops = int32(i64) } - case "KmsKeyId": + case "LicenseModel": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.KmsKeyId = ptr.String(jtv) + sv.LicenseModel = ptr.String(jtv) } - case "LatestRestorableTime": + case "MasterUserPassword": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.LatestRestorableTime = ptr.String(jtv) + sv.MasterUserPassword = ptr.String(jtv) } - case "LicenseModel": + case "MultiAZ": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.LicenseModel = ptr.String(jtv) + sv.MultiAZ = jtv } - case "ListenerEndpoint": - if err := awsRestjson1_deserializeDocumentAwsRdsDbInstanceEndpoint(&sv.ListenerEndpoint, value); err != nil { + case "PendingCloudWatchLogsExports": + if err := awsRestjson1_deserializeDocumentAwsRdsPendingCloudWatchLogsExports(&sv.PendingCloudWatchLogsExports, value); err != nil { return err } - case "MasterUsername": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.MasterUsername = ptr.String(jtv) - } - - case "MaxAllocatedStorage": + case "Port": if value != nil { jtv, ok := value.(json.Number) if !ok { @@ -23805,69 +25621,138 @@ func awsRestjson1_deserializeDocumentAwsRdsDbInstanceDetails(v **types.AwsRdsDbI if err != nil { return err } - sv.MaxAllocatedStorage = int32(i64) + sv.Port = int32(i64) } - case "MonitoringInterval": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.MonitoringInterval = int32(i64) + case "ProcessorFeatures": + if err := awsRestjson1_deserializeDocumentAwsRdsDbProcessorFeatures(&sv.ProcessorFeatures, value); err != nil { + return err } - case "MonitoringRoleArn": + case "StorageType": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.MonitoringRoleArn = ptr.String(jtv) + sv.StorageType = ptr.String(jtv) } - case "MultiAz": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.MultiAz = jtv - } + default: + _, _ = key, value - case "OptionGroupMemberships": - if err := awsRestjson1_deserializeDocumentAwsRdsDbOptionGroupMemberships(&sv.OptionGroupMemberships, value); err != nil { - return err - } + } + } + *v = sv + return nil +} - case "PendingModifiedValues": - if err := awsRestjson1_deserializeDocumentAwsRdsDbPendingModifiedValues(&sv.PendingModifiedValues, value); err != nil { - return err - } +func awsRestjson1_deserializeDocumentAwsRdsDbProcessorFeature(v **types.AwsRdsDbProcessorFeature, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } - case "PerformanceInsightsEnabled": + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsRdsDbProcessorFeature + if *v == nil { + sv = &types.AwsRdsDbProcessorFeature{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Name": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PerformanceInsightsEnabled = jtv + sv.Name = ptr.String(jtv) } - case "PerformanceInsightsKmsKeyId": + case "Value": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PerformanceInsightsKmsKeyId = ptr.String(jtv) + sv.Value = ptr.String(jtv) } - case "PerformanceInsightsRetentionPeriod": + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsRdsDbProcessorFeatures(v *[]types.AwsRdsDbProcessorFeature, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsRdsDbProcessorFeature + if *v == nil { + cv = []types.AwsRdsDbProcessorFeature{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsRdsDbProcessorFeature + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsRdsDbProcessorFeature(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsRdsDbSnapshotDetails(v **types.AwsRdsDbSnapshotDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsRdsDbSnapshotDetails + if *v == nil { + sv = &types.AwsRdsDbSnapshotDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AllocatedStorage": if value != nil { jtv, ok := value.(json.Number) if !ok { @@ -23877,175 +25762,150 @@ func awsRestjson1_deserializeDocumentAwsRdsDbInstanceDetails(v **types.AwsRdsDbI if err != nil { return err } - sv.PerformanceInsightsRetentionPeriod = int32(i64) + sv.AllocatedStorage = int32(i64) } - case "PreferredBackupWindow": + case "AvailabilityZone": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PreferredBackupWindow = ptr.String(jtv) + sv.AvailabilityZone = ptr.String(jtv) } - case "PreferredMaintenanceWindow": + case "DbInstanceIdentifier": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PreferredMaintenanceWindow = ptr.String(jtv) + sv.DbInstanceIdentifier = ptr.String(jtv) } - case "ProcessorFeatures": - if err := awsRestjson1_deserializeDocumentAwsRdsDbProcessorFeatures(&sv.ProcessorFeatures, value); err != nil { - return err + case "DbiResourceId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.DbiResourceId = ptr.String(jtv) } - case "PromotionTier": + case "DbSnapshotIdentifier": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PromotionTier = int32(i64) + sv.DbSnapshotIdentifier = ptr.String(jtv) } - case "PubliclyAccessible": + case "Encrypted": if value != nil { jtv, ok := value.(bool) if !ok { return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.PubliclyAccessible = jtv - } - - case "ReadReplicaDBClusterIdentifiers": - if err := awsRestjson1_deserializeDocumentStringList(&sv.ReadReplicaDBClusterIdentifiers, value); err != nil { - return err - } - - case "ReadReplicaDBInstanceIdentifiers": - if err := awsRestjson1_deserializeDocumentStringList(&sv.ReadReplicaDBInstanceIdentifiers, value); err != nil { - return err + sv.Encrypted = jtv } - case "ReadReplicaSourceDBInstanceIdentifier": + case "Engine": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ReadReplicaSourceDBInstanceIdentifier = ptr.String(jtv) + sv.Engine = ptr.String(jtv) } - case "SecondaryAvailabilityZone": + case "EngineVersion": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.SecondaryAvailabilityZone = ptr.String(jtv) - } - - case "StatusInfos": - if err := awsRestjson1_deserializeDocumentAwsRdsDbStatusInfos(&sv.StatusInfos, value); err != nil { - return err + sv.EngineVersion = ptr.String(jtv) } - case "StorageEncrypted": + case "IamDatabaseAuthenticationEnabled": if value != nil { jtv, ok := value.(bool) if !ok { return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.StorageEncrypted = jtv + sv.IamDatabaseAuthenticationEnabled = jtv } - case "StorageType": + case "InstanceCreateTime": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.StorageType = ptr.String(jtv) + sv.InstanceCreateTime = ptr.String(jtv) } - case "TdeCredentialArn": + case "Iops": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.TdeCredentialArn = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Iops = int32(i64) } - case "Timezone": + case "KmsKeyId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Timezone = ptr.String(jtv) + sv.KmsKeyId = ptr.String(jtv) } - case "VpcSecurityGroups": - if err := awsRestjson1_deserializeDocumentAwsRdsDbInstanceVpcSecurityGroups(&sv.VpcSecurityGroups, value); err != nil { - return err + case "LicenseModel": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.LicenseModel = ptr.String(jtv) } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsRdsDbInstanceEndpoint(v **types.AwsRdsDbInstanceEndpoint, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.AwsRdsDbInstanceEndpoint - if *v == nil { - sv = &types.AwsRdsDbInstanceEndpoint{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "Address": + case "MasterUsername": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Address = ptr.String(jtv) + sv.MasterUsername = ptr.String(jtv) } - case "HostedZoneId": + case "OptionGroupName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.HostedZoneId = ptr.String(jtv) + sv.OptionGroupName = ptr.String(jtv) + } + + case "PercentProgress": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.PercentProgress = int32(i64) } case "Port": @@ -24061,127 +25921,45 @@ func awsRestjson1_deserializeDocumentAwsRdsDbInstanceEndpoint(v **types.AwsRdsDb sv.Port = int32(i64) } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsRdsDbInstanceVpcSecurityGroup(v **types.AwsRdsDbInstanceVpcSecurityGroup, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.AwsRdsDbInstanceVpcSecurityGroup - if *v == nil { - sv = &types.AwsRdsDbInstanceVpcSecurityGroup{} - } else { - sv = *v - } + case "ProcessorFeatures": + if err := awsRestjson1_deserializeDocumentAwsRdsDbProcessorFeatures(&sv.ProcessorFeatures, value); err != nil { + return err + } - for key, value := range shape { - switch key { - case "Status": + case "SnapshotCreateTime": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Status = ptr.String(jtv) + sv.SnapshotCreateTime = ptr.String(jtv) } - case "VpcSecurityGroupId": + case "SnapshotType": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.VpcSecurityGroupId = ptr.String(jtv) + sv.SnapshotType = ptr.String(jtv) } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsRdsDbInstanceVpcSecurityGroups(v *[]types.AwsRdsDbInstanceVpcSecurityGroup, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var cv []types.AwsRdsDbInstanceVpcSecurityGroup - if *v == nil { - cv = []types.AwsRdsDbInstanceVpcSecurityGroup{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.AwsRdsDbInstanceVpcSecurityGroup - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsRdsDbInstanceVpcSecurityGroup(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsRestjson1_deserializeDocumentAwsRdsDbOptionGroupMembership(v **types.AwsRdsDbOptionGroupMembership, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.AwsRdsDbOptionGroupMembership - if *v == nil { - sv = &types.AwsRdsDbOptionGroupMembership{} - } else { - sv = *v - } + case "SourceDbSnapshotIdentifier": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.SourceDbSnapshotIdentifier = ptr.String(jtv) + } - for key, value := range shape { - switch key { - case "OptionGroupName": + case "SourceRegion": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.OptionGroupName = ptr.String(jtv) + sv.SourceRegion = ptr.String(jtv) } case "Status": @@ -24193,50 +25971,52 @@ func awsRestjson1_deserializeDocumentAwsRdsDbOptionGroupMembership(v **types.Aws sv.Status = ptr.String(jtv) } - default: - _, _ = key, value + case "StorageType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.StorageType = ptr.String(jtv) + } - } - } - *v = sv - return nil -} + case "TdeCredentialArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.TdeCredentialArn = ptr.String(jtv) + } -func awsRestjson1_deserializeDocumentAwsRdsDbOptionGroupMemberships(v *[]types.AwsRdsDbOptionGroupMembership, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } + case "Timezone": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Timezone = ptr.String(jtv) + } - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + case "VpcId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.VpcId = ptr.String(jtv) + } - var cv []types.AwsRdsDbOptionGroupMembership - if *v == nil { - cv = []types.AwsRdsDbOptionGroupMembership{} - } else { - cv = *v - } + default: + _, _ = key, value - for _, value := range shape { - var col types.AwsRdsDbOptionGroupMembership - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsRdsDbOptionGroupMembership(&destAddr, value); err != nil { - return err } - col = *destAddr - cv = append(cv, col) - } - *v = cv + *v = sv return nil } -func awsRestjson1_deserializeDocumentAwsRdsDbParameterGroup(v **types.AwsRdsDbParameterGroup, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRdsDbStatusInfo(v **types.AwsRdsDbStatusInfo, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -24249,31 +26029,49 @@ func awsRestjson1_deserializeDocumentAwsRdsDbParameterGroup(v **types.AwsRdsDbPa return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsRdsDbParameterGroup + var sv *types.AwsRdsDbStatusInfo if *v == nil { - sv = &types.AwsRdsDbParameterGroup{} + sv = &types.AwsRdsDbStatusInfo{} } else { sv = *v } for key, value := range shape { switch key { - case "DbParameterGroupName": + case "Message": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DbParameterGroupName = ptr.String(jtv) + sv.Message = ptr.String(jtv) } - case "ParameterApplyStatus": + case "Normal": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.Normal = jtv + } + + case "Status": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ParameterApplyStatus = ptr.String(jtv) + sv.Status = ptr.String(jtv) + } + + case "StatusType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.StatusType = ptr.String(jtv) } default: @@ -24285,7 +26083,7 @@ func awsRestjson1_deserializeDocumentAwsRdsDbParameterGroup(v **types.AwsRdsDbPa return nil } -func awsRestjson1_deserializeDocumentAwsRdsDbParameterGroups(v *[]types.AwsRdsDbParameterGroup, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRdsDbStatusInfos(v *[]types.AwsRdsDbStatusInfo, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -24298,17 +26096,17 @@ func awsRestjson1_deserializeDocumentAwsRdsDbParameterGroups(v *[]types.AwsRdsDb return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsRdsDbParameterGroup + var cv []types.AwsRdsDbStatusInfo if *v == nil { - cv = []types.AwsRdsDbParameterGroup{} + cv = []types.AwsRdsDbStatusInfo{} } else { cv = *v } for _, value := range shape { - var col types.AwsRdsDbParameterGroup + var col types.AwsRdsDbStatusInfo destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsRdsDbParameterGroup(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsRdsDbStatusInfo(&destAddr, value); err != nil { return err } col = *destAddr @@ -24319,7 +26117,7 @@ func awsRestjson1_deserializeDocumentAwsRdsDbParameterGroups(v *[]types.AwsRdsDb return nil } -func awsRestjson1_deserializeDocumentAwsRdsDbPendingModifiedValues(v **types.AwsRdsDbPendingModifiedValues, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRdsDbSubnetGroup(v **types.AwsRdsDbSubnetGroup, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -24332,66 +26130,31 @@ func awsRestjson1_deserializeDocumentAwsRdsDbPendingModifiedValues(v **types.Aws return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsRdsDbPendingModifiedValues + var sv *types.AwsRdsDbSubnetGroup if *v == nil { - sv = &types.AwsRdsDbPendingModifiedValues{} + sv = &types.AwsRdsDbSubnetGroup{} } else { sv = *v } for key, value := range shape { switch key { - case "AllocatedStorage": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.AllocatedStorage = int32(i64) - } - - case "BackupRetentionPeriod": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.BackupRetentionPeriod = int32(i64) - } - - case "CaCertificateIdentifier": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.CaCertificateIdentifier = ptr.String(jtv) - } - - case "DbInstanceClass": + case "DbSubnetGroupArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DbInstanceClass = ptr.String(jtv) + sv.DbSubnetGroupArn = ptr.String(jtv) } - case "DbInstanceIdentifier": + case "DbSubnetGroupDescription": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DbInstanceIdentifier = ptr.String(jtv) + sv.DbSubnetGroupDescription = ptr.String(jtv) } case "DbSubnetGroupName": @@ -24403,85 +26166,81 @@ func awsRestjson1_deserializeDocumentAwsRdsDbPendingModifiedValues(v **types.Aws sv.DbSubnetGroupName = ptr.String(jtv) } - case "EngineVersion": + case "SubnetGroupStatus": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.EngineVersion = ptr.String(jtv) + sv.SubnetGroupStatus = ptr.String(jtv) } - case "Iops": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.Iops = int32(i64) + case "Subnets": + if err := awsRestjson1_deserializeDocumentAwsRdsDbSubnetGroupSubnets(&sv.Subnets, value); err != nil { + return err } - case "LicenseModel": + case "VpcId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.LicenseModel = ptr.String(jtv) + sv.VpcId = ptr.String(jtv) } - case "MasterUserPassword": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.MasterUserPassword = ptr.String(jtv) - } + default: + _, _ = key, value - case "MultiAZ": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.MultiAZ = jtv - } + } + } + *v = sv + return nil +} - case "PendingCloudWatchLogsExports": - if err := awsRestjson1_deserializeDocumentAwsRdsPendingCloudWatchLogsExports(&sv.PendingCloudWatchLogsExports, value); err != nil { +func awsRestjson1_deserializeDocumentAwsRdsDbSubnetGroupSubnet(v **types.AwsRdsDbSubnetGroupSubnet, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsRdsDbSubnetGroupSubnet + if *v == nil { + sv = &types.AwsRdsDbSubnetGroupSubnet{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "SubnetAvailabilityZone": + if err := awsRestjson1_deserializeDocumentAwsRdsDbSubnetGroupSubnetAvailabilityZone(&sv.SubnetAvailabilityZone, value); err != nil { return err } - case "Port": + case "SubnetIdentifier": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Port = int32(i64) - } - - case "ProcessorFeatures": - if err := awsRestjson1_deserializeDocumentAwsRdsDbProcessorFeatures(&sv.ProcessorFeatures, value); err != nil { - return err + sv.SubnetIdentifier = ptr.String(jtv) } - case "StorageType": + case "SubnetStatus": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.StorageType = ptr.String(jtv) + sv.SubnetStatus = ptr.String(jtv) } default: @@ -24493,7 +26252,7 @@ func awsRestjson1_deserializeDocumentAwsRdsDbPendingModifiedValues(v **types.Aws return nil } -func awsRestjson1_deserializeDocumentAwsRdsDbProcessorFeature(v **types.AwsRdsDbProcessorFeature, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRdsDbSubnetGroupSubnetAvailabilityZone(v **types.AwsRdsDbSubnetGroupSubnetAvailabilityZone, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -24506,9 +26265,9 @@ func awsRestjson1_deserializeDocumentAwsRdsDbProcessorFeature(v **types.AwsRdsDb return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsRdsDbProcessorFeature + var sv *types.AwsRdsDbSubnetGroupSubnetAvailabilityZone if *v == nil { - sv = &types.AwsRdsDbProcessorFeature{} + sv = &types.AwsRdsDbSubnetGroupSubnetAvailabilityZone{} } else { sv = *v } @@ -24524,15 +26283,6 @@ func awsRestjson1_deserializeDocumentAwsRdsDbProcessorFeature(v **types.AwsRdsDb sv.Name = ptr.String(jtv) } - case "Value": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Value = ptr.String(jtv) - } - default: _, _ = key, value @@ -24542,7 +26292,7 @@ func awsRestjson1_deserializeDocumentAwsRdsDbProcessorFeature(v **types.AwsRdsDb return nil } -func awsRestjson1_deserializeDocumentAwsRdsDbProcessorFeatures(v *[]types.AwsRdsDbProcessorFeature, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRdsDbSubnetGroupSubnets(v *[]types.AwsRdsDbSubnetGroupSubnet, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -24555,17 +26305,17 @@ func awsRestjson1_deserializeDocumentAwsRdsDbProcessorFeatures(v *[]types.AwsRds return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsRdsDbProcessorFeature + var cv []types.AwsRdsDbSubnetGroupSubnet if *v == nil { - cv = []types.AwsRdsDbProcessorFeature{} + cv = []types.AwsRdsDbSubnetGroupSubnet{} } else { cv = *v } for _, value := range shape { - var col types.AwsRdsDbProcessorFeature + var col types.AwsRdsDbSubnetGroupSubnet destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsRdsDbProcessorFeature(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsRdsDbSubnetGroupSubnet(&destAddr, value); err != nil { return err } col = *destAddr @@ -24576,7 +26326,7 @@ func awsRestjson1_deserializeDocumentAwsRdsDbProcessorFeatures(v *[]types.AwsRds return nil } -func awsRestjson1_deserializeDocumentAwsRdsDbSnapshotDetails(v **types.AwsRdsDbSnapshotDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRdsEventSubscriptionDetails(v **types.AwsRdsEventSubscriptionDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -24589,268 +26339,194 @@ func awsRestjson1_deserializeDocumentAwsRdsDbSnapshotDetails(v **types.AwsRdsDbS return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsRdsDbSnapshotDetails + var sv *types.AwsRdsEventSubscriptionDetails if *v == nil { - sv = &types.AwsRdsDbSnapshotDetails{} + sv = &types.AwsRdsEventSubscriptionDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "AllocatedStorage": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.AllocatedStorage = int32(i64) - } - - case "AvailabilityZone": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.AvailabilityZone = ptr.String(jtv) - } - - case "DbInstanceIdentifier": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.DbInstanceIdentifier = ptr.String(jtv) - } - - case "DbiResourceId": + case "CustomerAwsId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DbiResourceId = ptr.String(jtv) + sv.CustomerAwsId = ptr.String(jtv) } - case "DbSnapshotIdentifier": + case "CustSubscriptionId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DbSnapshotIdentifier = ptr.String(jtv) + sv.CustSubscriptionId = ptr.String(jtv) } - case "Encrypted": + case "Enabled": if value != nil { jtv, ok := value.(bool) if !ok { return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.Encrypted = jtv + sv.Enabled = jtv } - case "Engine": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Engine = ptr.String(jtv) + case "EventCategoriesList": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.EventCategoriesList, value); err != nil { + return err } - case "EngineVersion": + case "EventSubscriptionArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.EngineVersion = ptr.String(jtv) - } - - case "IamDatabaseAuthenticationEnabled": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.IamDatabaseAuthenticationEnabled = jtv + sv.EventSubscriptionArn = ptr.String(jtv) } - case "InstanceCreateTime": + case "SnsTopicArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.InstanceCreateTime = ptr.String(jtv) + sv.SnsTopicArn = ptr.String(jtv) } - case "Iops": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.Iops = int32(i64) + case "SourceIdsList": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SourceIdsList, value); err != nil { + return err } - case "KmsKeyId": + case "SourceType": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.KmsKeyId = ptr.String(jtv) + sv.SourceType = ptr.String(jtv) } - case "LicenseModel": + case "Status": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.LicenseModel = ptr.String(jtv) + sv.Status = ptr.String(jtv) } - case "MasterUsername": + case "SubscriptionCreationTime": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.MasterUsername = ptr.String(jtv) + sv.SubscriptionCreationTime = ptr.String(jtv) } - case "OptionGroupName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.OptionGroupName = ptr.String(jtv) - } + default: + _, _ = key, value - case "PercentProgress": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.PercentProgress = int32(i64) - } + } + } + *v = sv + return nil +} - case "Port": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.Port = int32(i64) - } +func awsRestjson1_deserializeDocumentAwsRdsPendingCloudWatchLogsExports(v **types.AwsRdsPendingCloudWatchLogsExports, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } - case "ProcessorFeatures": - if err := awsRestjson1_deserializeDocumentAwsRdsDbProcessorFeatures(&sv.ProcessorFeatures, value); err != nil { - return err - } + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } - case "SnapshotCreateTime": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.SnapshotCreateTime = ptr.String(jtv) - } + var sv *types.AwsRdsPendingCloudWatchLogsExports + if *v == nil { + sv = &types.AwsRdsPendingCloudWatchLogsExports{} + } else { + sv = *v + } - case "SnapshotType": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.SnapshotType = ptr.String(jtv) + for key, value := range shape { + switch key { + case "LogTypesToDisable": + if err := awsRestjson1_deserializeDocumentStringList(&sv.LogTypesToDisable, value); err != nil { + return err } - case "SourceDbSnapshotIdentifier": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.SourceDbSnapshotIdentifier = ptr.String(jtv) + case "LogTypesToEnable": + if err := awsRestjson1_deserializeDocumentStringList(&sv.LogTypesToEnable, value); err != nil { + return err } - case "SourceRegion": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.SourceRegion = ptr.String(jtv) - } + default: + _, _ = key, value - case "Status": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Status = ptr.String(jtv) - } + } + } + *v = sv + return nil +} - case "StorageType": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.StorageType = ptr.String(jtv) - } +func awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterNode(v **types.AwsRedshiftClusterClusterNode, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } - case "TdeCredentialArn": + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsRedshiftClusterClusterNode + if *v == nil { + sv = &types.AwsRedshiftClusterClusterNode{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "NodeRole": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.TdeCredentialArn = ptr.String(jtv) + sv.NodeRole = ptr.String(jtv) } - case "Timezone": + case "PrivateIpAddress": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Timezone = ptr.String(jtv) + sv.PrivateIpAddress = ptr.String(jtv) } - case "VpcId": + case "PublicIpAddress": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.VpcId = ptr.String(jtv) + sv.PublicIpAddress = ptr.String(jtv) } default: @@ -24862,7 +26538,41 @@ func awsRestjson1_deserializeDocumentAwsRdsDbSnapshotDetails(v **types.AwsRdsDbS return nil } -func awsRestjson1_deserializeDocumentAwsRdsDbStatusInfo(v **types.AwsRdsDbStatusInfo, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterNodes(v *[]types.AwsRedshiftClusterClusterNode, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsRedshiftClusterClusterNode + if *v == nil { + cv = []types.AwsRedshiftClusterClusterNode{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsRedshiftClusterClusterNode + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterNode(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterParameterGroup(v **types.AwsRedshiftClusterClusterParameterGroup, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -24875,49 +26585,36 @@ func awsRestjson1_deserializeDocumentAwsRdsDbStatusInfo(v **types.AwsRdsDbStatus return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsRdsDbStatusInfo + var sv *types.AwsRedshiftClusterClusterParameterGroup if *v == nil { - sv = &types.AwsRdsDbStatusInfo{} + sv = &types.AwsRedshiftClusterClusterParameterGroup{} } else { sv = *v } for key, value := range shape { switch key { - case "Message": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Message = ptr.String(jtv) - } - - case "Normal": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.Normal = jtv + case "ClusterParameterStatusList": + if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterParameterStatusList(&sv.ClusterParameterStatusList, value); err != nil { + return err } - case "Status": + case "ParameterApplyStatus": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Status = ptr.String(jtv) + sv.ParameterApplyStatus = ptr.String(jtv) } - case "StatusType": + case "ParameterGroupName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.StatusType = ptr.String(jtv) + sv.ParameterGroupName = ptr.String(jtv) } default: @@ -24929,7 +26626,7 @@ func awsRestjson1_deserializeDocumentAwsRdsDbStatusInfo(v **types.AwsRdsDbStatus return nil } -func awsRestjson1_deserializeDocumentAwsRdsDbStatusInfos(v *[]types.AwsRdsDbStatusInfo, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterParameterGroups(v *[]types.AwsRedshiftClusterClusterParameterGroup, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -24942,17 +26639,17 @@ func awsRestjson1_deserializeDocumentAwsRdsDbStatusInfos(v *[]types.AwsRdsDbStat return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsRdsDbStatusInfo + var cv []types.AwsRedshiftClusterClusterParameterGroup if *v == nil { - cv = []types.AwsRdsDbStatusInfo{} + cv = []types.AwsRedshiftClusterClusterParameterGroup{} } else { cv = *v } for _, value := range shape { - var col types.AwsRdsDbStatusInfo + var col types.AwsRedshiftClusterClusterParameterGroup destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsRdsDbStatusInfo(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterParameterGroup(&destAddr, value); err != nil { return err } col = *destAddr @@ -24963,7 +26660,7 @@ func awsRestjson1_deserializeDocumentAwsRdsDbStatusInfos(v *[]types.AwsRdsDbStat return nil } -func awsRestjson1_deserializeDocumentAwsRdsDbSubnetGroup(v **types.AwsRdsDbSubnetGroup, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterParameterStatus(v **types.AwsRedshiftClusterClusterParameterStatus, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -24976,63 +26673,123 @@ func awsRestjson1_deserializeDocumentAwsRdsDbSubnetGroup(v **types.AwsRdsDbSubne return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsRdsDbSubnetGroup + var sv *types.AwsRedshiftClusterClusterParameterStatus if *v == nil { - sv = &types.AwsRdsDbSubnetGroup{} + sv = &types.AwsRedshiftClusterClusterParameterStatus{} } else { sv = *v } for key, value := range shape { switch key { - case "DbSubnetGroupArn": + case "ParameterApplyErrorDescription": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DbSubnetGroupArn = ptr.String(jtv) + sv.ParameterApplyErrorDescription = ptr.String(jtv) } - case "DbSubnetGroupDescription": + case "ParameterApplyStatus": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DbSubnetGroupDescription = ptr.String(jtv) + sv.ParameterApplyStatus = ptr.String(jtv) } - case "DbSubnetGroupName": + case "ParameterName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DbSubnetGroupName = ptr.String(jtv) + sv.ParameterName = ptr.String(jtv) } - case "SubnetGroupStatus": + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterParameterStatusList(v *[]types.AwsRedshiftClusterClusterParameterStatus, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsRedshiftClusterClusterParameterStatus + if *v == nil { + cv = []types.AwsRedshiftClusterClusterParameterStatus{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsRedshiftClusterClusterParameterStatus + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterParameterStatus(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterSecurityGroup(v **types.AwsRedshiftClusterClusterSecurityGroup, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsRedshiftClusterClusterSecurityGroup + if *v == nil { + sv = &types.AwsRedshiftClusterClusterSecurityGroup{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ClusterSecurityGroupName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.SubnetGroupStatus = ptr.String(jtv) - } - - case "Subnets": - if err := awsRestjson1_deserializeDocumentAwsRdsDbSubnetGroupSubnets(&sv.Subnets, value); err != nil { - return err + sv.ClusterSecurityGroupName = ptr.String(jtv) } - case "VpcId": + case "Status": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.VpcId = ptr.String(jtv) + sv.Status = ptr.String(jtv) } default: @@ -25044,7 +26801,41 @@ func awsRestjson1_deserializeDocumentAwsRdsDbSubnetGroup(v **types.AwsRdsDbSubne return nil } -func awsRestjson1_deserializeDocumentAwsRdsDbSubnetGroupSubnet(v **types.AwsRdsDbSubnetGroupSubnet, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterSecurityGroups(v *[]types.AwsRedshiftClusterClusterSecurityGroup, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsRedshiftClusterClusterSecurityGroup + if *v == nil { + cv = []types.AwsRedshiftClusterClusterSecurityGroup{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsRedshiftClusterClusterSecurityGroup + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterSecurityGroup(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterSnapshotCopyStatus(v **types.AwsRedshiftClusterClusterSnapshotCopyStatus, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -25057,36 +26848,57 @@ func awsRestjson1_deserializeDocumentAwsRdsDbSubnetGroupSubnet(v **types.AwsRdsD return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsRdsDbSubnetGroupSubnet + var sv *types.AwsRedshiftClusterClusterSnapshotCopyStatus if *v == nil { - sv = &types.AwsRdsDbSubnetGroupSubnet{} + sv = &types.AwsRedshiftClusterClusterSnapshotCopyStatus{} } else { sv = *v } for key, value := range shape { switch key { - case "SubnetAvailabilityZone": - if err := awsRestjson1_deserializeDocumentAwsRdsDbSubnetGroupSubnetAvailabilityZone(&sv.SubnetAvailabilityZone, value); err != nil { - return err + case "DestinationRegion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.DestinationRegion = ptr.String(jtv) + } + + case "ManualSnapshotRetentionPeriod": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ManualSnapshotRetentionPeriod = int32(i64) } - case "SubnetIdentifier": + case "RetentionPeriod": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.SubnetIdentifier = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.RetentionPeriod = int32(i64) } - case "SubnetStatus": + case "SnapshotCopyGrantName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.SubnetStatus = ptr.String(jtv) + sv.SnapshotCopyGrantName = ptr.String(jtv) } default: @@ -25098,7 +26910,7 @@ func awsRestjson1_deserializeDocumentAwsRdsDbSubnetGroupSubnet(v **types.AwsRdsD return nil } -func awsRestjson1_deserializeDocumentAwsRdsDbSubnetGroupSubnetAvailabilityZone(v **types.AwsRdsDbSubnetGroupSubnetAvailabilityZone, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRedshiftClusterDeferredMaintenanceWindow(v **types.AwsRedshiftClusterDeferredMaintenanceWindow, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -25111,22 +26923,40 @@ func awsRestjson1_deserializeDocumentAwsRdsDbSubnetGroupSubnetAvailabilityZone(v return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsRdsDbSubnetGroupSubnetAvailabilityZone + var sv *types.AwsRedshiftClusterDeferredMaintenanceWindow if *v == nil { - sv = &types.AwsRdsDbSubnetGroupSubnetAvailabilityZone{} + sv = &types.AwsRedshiftClusterDeferredMaintenanceWindow{} } else { sv = *v } for key, value := range shape { switch key { - case "Name": + case "DeferMaintenanceEndTime": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Name = ptr.String(jtv) + sv.DeferMaintenanceEndTime = ptr.String(jtv) + } + + case "DeferMaintenanceIdentifier": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.DeferMaintenanceIdentifier = ptr.String(jtv) + } + + case "DeferMaintenanceStartTime": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.DeferMaintenanceStartTime = ptr.String(jtv) } default: @@ -25138,7 +26968,7 @@ func awsRestjson1_deserializeDocumentAwsRdsDbSubnetGroupSubnetAvailabilityZone(v return nil } -func awsRestjson1_deserializeDocumentAwsRdsDbSubnetGroupSubnets(v *[]types.AwsRdsDbSubnetGroupSubnet, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRedshiftClusterDeferredMaintenanceWindows(v *[]types.AwsRedshiftClusterDeferredMaintenanceWindow, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -25151,17 +26981,17 @@ func awsRestjson1_deserializeDocumentAwsRdsDbSubnetGroupSubnets(v *[]types.AwsRd return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsRdsDbSubnetGroupSubnet + var cv []types.AwsRedshiftClusterDeferredMaintenanceWindow if *v == nil { - cv = []types.AwsRdsDbSubnetGroupSubnet{} + cv = []types.AwsRedshiftClusterDeferredMaintenanceWindow{} } else { cv = *v } for _, value := range shape { - var col types.AwsRdsDbSubnetGroupSubnet + var col types.AwsRedshiftClusterDeferredMaintenanceWindow destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsRdsDbSubnetGroupSubnet(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterDeferredMaintenanceWindow(&destAddr, value); err != nil { return err } col = *destAddr @@ -25172,7 +27002,7 @@ func awsRestjson1_deserializeDocumentAwsRdsDbSubnetGroupSubnets(v *[]types.AwsRd return nil } -func awsRestjson1_deserializeDocumentAwsRdsEventSubscriptionDetails(v **types.AwsRdsEventSubscriptionDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRedshiftClusterDetails(v **types.AwsRedshiftClusterDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -25185,420 +27015,368 @@ func awsRestjson1_deserializeDocumentAwsRdsEventSubscriptionDetails(v **types.Aw return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsRdsEventSubscriptionDetails + var sv *types.AwsRedshiftClusterDetails if *v == nil { - sv = &types.AwsRdsEventSubscriptionDetails{} + sv = &types.AwsRedshiftClusterDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "CustomerAwsId": + case "AllowVersionUpgrade": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.AllowVersionUpgrade = jtv + } + + case "AutomatedSnapshotRetentionPeriod": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.AutomatedSnapshotRetentionPeriod = int32(i64) + } + + case "AvailabilityZone": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CustomerAwsId = ptr.String(jtv) + sv.AvailabilityZone = ptr.String(jtv) } - case "CustSubscriptionId": + case "ClusterAvailabilityStatus": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CustSubscriptionId = ptr.String(jtv) + sv.ClusterAvailabilityStatus = ptr.String(jtv) } - case "Enabled": + case "ClusterCreateTime": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Enabled = jtv + sv.ClusterCreateTime = ptr.String(jtv) } - case "EventCategoriesList": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.EventCategoriesList, value); err != nil { + case "ClusterIdentifier": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ClusterIdentifier = ptr.String(jtv) + } + + case "ClusterNodes": + if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterNodes(&sv.ClusterNodes, value); err != nil { return err } - case "EventSubscriptionArn": + case "ClusterParameterGroups": + if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterParameterGroups(&sv.ClusterParameterGroups, value); err != nil { + return err + } + + case "ClusterPublicKey": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.EventSubscriptionArn = ptr.String(jtv) + sv.ClusterPublicKey = ptr.String(jtv) } - case "SnsTopicArn": + case "ClusterRevisionNumber": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.SnsTopicArn = ptr.String(jtv) + sv.ClusterRevisionNumber = ptr.String(jtv) } - case "SourceIdsList": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SourceIdsList, value); err != nil { + case "ClusterSecurityGroups": + if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterSecurityGroups(&sv.ClusterSecurityGroups, value); err != nil { return err } - case "SourceType": + case "ClusterSnapshotCopyStatus": + if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterSnapshotCopyStatus(&sv.ClusterSnapshotCopyStatus, value); err != nil { + return err + } + + case "ClusterStatus": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.SourceType = ptr.String(jtv) + sv.ClusterStatus = ptr.String(jtv) } - case "Status": + case "ClusterSubnetGroupName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Status = ptr.String(jtv) + sv.ClusterSubnetGroupName = ptr.String(jtv) } - case "SubscriptionCreationTime": + case "ClusterVersion": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.SubscriptionCreationTime = ptr.String(jtv) + sv.ClusterVersion = ptr.String(jtv) } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsRdsPendingCloudWatchLogsExports(v **types.AwsRdsPendingCloudWatchLogsExports, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.AwsRdsPendingCloudWatchLogsExports - if *v == nil { - sv = &types.AwsRdsPendingCloudWatchLogsExports{} - } else { - sv = *v - } + case "DBName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.DBName = ptr.String(jtv) + } - for key, value := range shape { - switch key { - case "LogTypesToDisable": - if err := awsRestjson1_deserializeDocumentStringList(&sv.LogTypesToDisable, value); err != nil { + case "DeferredMaintenanceWindows": + if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterDeferredMaintenanceWindows(&sv.DeferredMaintenanceWindows, value); err != nil { return err } - case "LogTypesToEnable": - if err := awsRestjson1_deserializeDocumentStringList(&sv.LogTypesToEnable, value); err != nil { + case "ElasticIpStatus": + if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterElasticIpStatus(&sv.ElasticIpStatus, value); err != nil { return err } - default: - _, _ = key, value + case "ElasticResizeNumberOfNodeOptions": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ElasticResizeNumberOfNodeOptions = ptr.String(jtv) + } - } - } - *v = sv - return nil -} + case "Encrypted": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.Encrypted = jtv + } -func awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterNode(v **types.AwsRedshiftClusterClusterNode, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } + case "Endpoint": + if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterEndpoint(&sv.Endpoint, value); err != nil { + return err + } - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + case "EnhancedVpcRouting": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.EnhancedVpcRouting = jtv + } - var sv *types.AwsRedshiftClusterClusterNode - if *v == nil { - sv = &types.AwsRedshiftClusterClusterNode{} - } else { - sv = *v - } + case "ExpectedNextSnapshotScheduleTime": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ExpectedNextSnapshotScheduleTime = ptr.String(jtv) + } - for key, value := range shape { - switch key { - case "NodeRole": + case "ExpectedNextSnapshotScheduleTimeStatus": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.NodeRole = ptr.String(jtv) + sv.ExpectedNextSnapshotScheduleTimeStatus = ptr.String(jtv) } - case "PrivateIpAddress": + case "HsmStatus": + if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterHsmStatus(&sv.HsmStatus, value); err != nil { + return err + } + + case "IamRoles": + if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterIamRoles(&sv.IamRoles, value); err != nil { + return err + } + + case "KmsKeyId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PrivateIpAddress = ptr.String(jtv) + sv.KmsKeyId = ptr.String(jtv) } - case "PublicIpAddress": + case "MaintenanceTrackName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PublicIpAddress = ptr.String(jtv) + sv.MaintenanceTrackName = ptr.String(jtv) } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterNodes(v *[]types.AwsRedshiftClusterClusterNode, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var cv []types.AwsRedshiftClusterClusterNode - if *v == nil { - cv = []types.AwsRedshiftClusterClusterNode{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.AwsRedshiftClusterClusterNode - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterNode(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterParameterGroup(v **types.AwsRedshiftClusterClusterParameterGroup, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.AwsRedshiftClusterClusterParameterGroup - if *v == nil { - sv = &types.AwsRedshiftClusterClusterParameterGroup{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "ClusterParameterStatusList": - if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterParameterStatusList(&sv.ClusterParameterStatusList, value); err != nil { - return err + case "ManualSnapshotRetentionPeriod": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ManualSnapshotRetentionPeriod = int32(i64) } - case "ParameterApplyStatus": + case "MasterUsername": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ParameterApplyStatus = ptr.String(jtv) + sv.MasterUsername = ptr.String(jtv) } - case "ParameterGroupName": + case "NextMaintenanceWindowStartTime": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ParameterGroupName = ptr.String(jtv) + sv.NextMaintenanceWindowStartTime = ptr.String(jtv) } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterParameterGroups(v *[]types.AwsRedshiftClusterClusterParameterGroup, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } + case "NodeType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.NodeType = ptr.String(jtv) + } - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + case "NumberOfNodes": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.NumberOfNodes = int32(i64) + } - var cv []types.AwsRedshiftClusterClusterParameterGroup - if *v == nil { - cv = []types.AwsRedshiftClusterClusterParameterGroup{} - } else { - cv = *v - } + case "PendingActions": + if err := awsRestjson1_deserializeDocumentStringList(&sv.PendingActions, value); err != nil { + return err + } - for _, value := range shape { - var col types.AwsRedshiftClusterClusterParameterGroup - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterParameterGroup(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + case "PendingModifiedValues": + if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterPendingModifiedValues(&sv.PendingModifiedValues, value); err != nil { + return err + } - } - *v = cv - return nil -} + case "PreferredMaintenanceWindow": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.PreferredMaintenanceWindow = ptr.String(jtv) + } -func awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterParameterStatus(v **types.AwsRedshiftClusterClusterParameterStatus, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } + case "PubliclyAccessible": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.PubliclyAccessible = jtv + } - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + case "ResizeInfo": + if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterResizeInfo(&sv.ResizeInfo, value); err != nil { + return err + } - var sv *types.AwsRedshiftClusterClusterParameterStatus - if *v == nil { - sv = &types.AwsRedshiftClusterClusterParameterStatus{} - } else { - sv = *v - } + case "RestoreStatus": + if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterRestoreStatus(&sv.RestoreStatus, value); err != nil { + return err + } - for key, value := range shape { - switch key { - case "ParameterApplyErrorDescription": + case "SnapshotScheduleIdentifier": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ParameterApplyErrorDescription = ptr.String(jtv) + sv.SnapshotScheduleIdentifier = ptr.String(jtv) } - case "ParameterApplyStatus": + case "SnapshotScheduleState": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ParameterApplyStatus = ptr.String(jtv) + sv.SnapshotScheduleState = ptr.String(jtv) } - case "ParameterName": + case "VpcId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ParameterName = ptr.String(jtv) + sv.VpcId = ptr.String(jtv) } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterParameterStatusList(v *[]types.AwsRedshiftClusterClusterParameterStatus, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + case "VpcSecurityGroups": + if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterVpcSecurityGroups(&sv.VpcSecurityGroups, value); err != nil { + return err + } - var cv []types.AwsRedshiftClusterClusterParameterStatus - if *v == nil { - cv = []types.AwsRedshiftClusterClusterParameterStatus{} - } else { - cv = *v - } + default: + _, _ = key, value - for _, value := range shape { - var col types.AwsRedshiftClusterClusterParameterStatus - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterParameterStatus(&destAddr, value); err != nil { - return err } - col = *destAddr - cv = append(cv, col) - } - *v = cv + *v = sv return nil } -func awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterSecurityGroup(v **types.AwsRedshiftClusterClusterSecurityGroup, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRedshiftClusterElasticIpStatus(v **types.AwsRedshiftClusterElasticIpStatus, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -25611,22 +27389,22 @@ func awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterSecurityGroup(v ** return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsRedshiftClusterClusterSecurityGroup + var sv *types.AwsRedshiftClusterElasticIpStatus if *v == nil { - sv = &types.AwsRedshiftClusterClusterSecurityGroup{} + sv = &types.AwsRedshiftClusterElasticIpStatus{} } else { sv = *v } for key, value := range shape { switch key { - case "ClusterSecurityGroupName": + case "ElasticIp": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ClusterSecurityGroupName = ptr.String(jtv) + sv.ElasticIp = ptr.String(jtv) } case "Status": @@ -25647,7 +27425,7 @@ func awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterSecurityGroup(v ** return nil } -func awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterSecurityGroups(v *[]types.AwsRedshiftClusterClusterSecurityGroup, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRedshiftClusterEndpoint(v **types.AwsRedshiftClusterEndpoint, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -25655,33 +27433,52 @@ func awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterSecurityGroups(v * return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsRedshiftClusterClusterSecurityGroup + var sv *types.AwsRedshiftClusterEndpoint if *v == nil { - cv = []types.AwsRedshiftClusterClusterSecurityGroup{} + sv = &types.AwsRedshiftClusterEndpoint{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col types.AwsRedshiftClusterClusterSecurityGroup - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterSecurityGroup(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + for key, value := range shape { + switch key { + case "Address": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Address = ptr.String(jtv) + } + + case "Port": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Port = int32(i64) + } + default: + _, _ = key, value + + } } - *v = cv + *v = sv return nil } -func awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterSnapshotCopyStatus(v **types.AwsRedshiftClusterClusterSnapshotCopyStatus, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRedshiftClusterHsmStatus(v **types.AwsRedshiftClusterHsmStatus, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -25694,57 +27491,40 @@ func awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterSnapshotCopyStatus return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsRedshiftClusterClusterSnapshotCopyStatus + var sv *types.AwsRedshiftClusterHsmStatus if *v == nil { - sv = &types.AwsRedshiftClusterClusterSnapshotCopyStatus{} + sv = &types.AwsRedshiftClusterHsmStatus{} } else { sv = *v } for key, value := range shape { switch key { - case "DestinationRegion": + case "HsmClientCertificateIdentifier": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DestinationRegion = ptr.String(jtv) - } - - case "ManualSnapshotRetentionPeriod": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.ManualSnapshotRetentionPeriod = int32(i64) + sv.HsmClientCertificateIdentifier = ptr.String(jtv) } - case "RetentionPeriod": + case "HsmConfigurationIdentifier": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.RetentionPeriod = int32(i64) + sv.HsmConfigurationIdentifier = ptr.String(jtv) } - case "SnapshotCopyGrantName": + case "Status": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.SnapshotCopyGrantName = ptr.String(jtv) + sv.Status = ptr.String(jtv) } default: @@ -25756,7 +27536,7 @@ func awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterSnapshotCopyStatus return nil } -func awsRestjson1_deserializeDocumentAwsRedshiftClusterDeferredMaintenanceWindow(v **types.AwsRedshiftClusterDeferredMaintenanceWindow, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRedshiftClusterIamRole(v **types.AwsRedshiftClusterIamRole, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -25769,40 +27549,31 @@ func awsRestjson1_deserializeDocumentAwsRedshiftClusterDeferredMaintenanceWindow return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsRedshiftClusterDeferredMaintenanceWindow + var sv *types.AwsRedshiftClusterIamRole if *v == nil { - sv = &types.AwsRedshiftClusterDeferredMaintenanceWindow{} + sv = &types.AwsRedshiftClusterIamRole{} } else { sv = *v } for key, value := range shape { switch key { - case "DeferMaintenanceEndTime": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.DeferMaintenanceEndTime = ptr.String(jtv) - } - - case "DeferMaintenanceIdentifier": + case "ApplyStatus": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DeferMaintenanceIdentifier = ptr.String(jtv) + sv.ApplyStatus = ptr.String(jtv) } - case "DeferMaintenanceStartTime": + case "IamRoleArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DeferMaintenanceStartTime = ptr.String(jtv) + sv.IamRoleArn = ptr.String(jtv) } default: @@ -25814,7 +27585,7 @@ func awsRestjson1_deserializeDocumentAwsRedshiftClusterDeferredMaintenanceWindow return nil } -func awsRestjson1_deserializeDocumentAwsRedshiftClusterDeferredMaintenanceWindows(v *[]types.AwsRedshiftClusterDeferredMaintenanceWindow, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRedshiftClusterIamRoles(v *[]types.AwsRedshiftClusterIamRole, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -25827,17 +27598,17 @@ func awsRestjson1_deserializeDocumentAwsRedshiftClusterDeferredMaintenanceWindow return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsRedshiftClusterDeferredMaintenanceWindow + var cv []types.AwsRedshiftClusterIamRole if *v == nil { - cv = []types.AwsRedshiftClusterDeferredMaintenanceWindow{} + cv = []types.AwsRedshiftClusterIamRole{} } else { cv = *v } for _, value := range shape { - var col types.AwsRedshiftClusterDeferredMaintenanceWindow + var col types.AwsRedshiftClusterIamRole destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterDeferredMaintenanceWindow(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterIamRole(&destAddr, value); err != nil { return err } col = *destAddr @@ -25848,7 +27619,7 @@ func awsRestjson1_deserializeDocumentAwsRedshiftClusterDeferredMaintenanceWindow return nil } -func awsRestjson1_deserializeDocumentAwsRedshiftClusterDetails(v **types.AwsRedshiftClusterDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRedshiftClusterPendingModifiedValues(v **types.AwsRedshiftClusterPendingModifiedValues, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -25861,178 +27632,62 @@ func awsRestjson1_deserializeDocumentAwsRedshiftClusterDetails(v **types.AwsReds return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsRedshiftClusterDetails - if *v == nil { - sv = &types.AwsRedshiftClusterDetails{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "AllowVersionUpgrade": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.AllowVersionUpgrade = jtv - } - - case "AutomatedSnapshotRetentionPeriod": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.AutomatedSnapshotRetentionPeriod = int32(i64) - } - - case "AvailabilityZone": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.AvailabilityZone = ptr.String(jtv) - } - - case "ClusterAvailabilityStatus": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.ClusterAvailabilityStatus = ptr.String(jtv) - } - - case "ClusterCreateTime": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.ClusterCreateTime = ptr.String(jtv) - } - - case "ClusterIdentifier": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.ClusterIdentifier = ptr.String(jtv) - } - - case "ClusterNodes": - if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterNodes(&sv.ClusterNodes, value); err != nil { - return err - } - - case "ClusterParameterGroups": - if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterParameterGroups(&sv.ClusterParameterGroups, value); err != nil { - return err - } - - case "ClusterPublicKey": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.ClusterPublicKey = ptr.String(jtv) - } - - case "ClusterRevisionNumber": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.ClusterRevisionNumber = ptr.String(jtv) - } - - case "ClusterSecurityGroups": - if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterSecurityGroups(&sv.ClusterSecurityGroups, value); err != nil { - return err - } - - case "ClusterSnapshotCopyStatus": - if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterSnapshotCopyStatus(&sv.ClusterSnapshotCopyStatus, value); err != nil { - return err - } + var sv *types.AwsRedshiftClusterPendingModifiedValues + if *v == nil { + sv = &types.AwsRedshiftClusterPendingModifiedValues{} + } else { + sv = *v + } - case "ClusterStatus": + for key, value := range shape { + switch key { + case "AutomatedSnapshotRetentionPeriod": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.ClusterStatus = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.AutomatedSnapshotRetentionPeriod = int32(i64) } - case "ClusterSubnetGroupName": + case "ClusterIdentifier": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ClusterSubnetGroupName = ptr.String(jtv) + sv.ClusterIdentifier = ptr.String(jtv) } - case "ClusterVersion": + case "ClusterType": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ClusterVersion = ptr.String(jtv) + sv.ClusterType = ptr.String(jtv) } - case "DBName": + case "ClusterVersion": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DBName = ptr.String(jtv) - } - - case "DeferredMaintenanceWindows": - if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterDeferredMaintenanceWindows(&sv.DeferredMaintenanceWindows, value); err != nil { - return err - } - - case "ElasticIpStatus": - if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterElasticIpStatus(&sv.ElasticIpStatus, value); err != nil { - return err + sv.ClusterVersion = ptr.String(jtv) } - case "ElasticResizeNumberOfNodeOptions": + case "EncryptionType": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ElasticResizeNumberOfNodeOptions = ptr.String(jtv) - } - - case "Encrypted": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.Encrypted = jtv - } - - case "Endpoint": - if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterEndpoint(&sv.Endpoint, value); err != nil { - return err + sv.EncryptionType = ptr.String(jtv) } case "EnhancedVpcRouting": @@ -26044,53 +27699,34 @@ func awsRestjson1_deserializeDocumentAwsRedshiftClusterDetails(v **types.AwsReds sv.EnhancedVpcRouting = jtv } - case "ExpectedNextSnapshotScheduleTime": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.ExpectedNextSnapshotScheduleTime = ptr.String(jtv) - } - - case "ExpectedNextSnapshotScheduleTimeStatus": + case "MaintenanceTrackName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ExpectedNextSnapshotScheduleTimeStatus = ptr.String(jtv) - } - - case "HsmStatus": - if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterHsmStatus(&sv.HsmStatus, value); err != nil { - return err - } - - case "IamRoles": - if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterIamRoles(&sv.IamRoles, value); err != nil { - return err + sv.MaintenanceTrackName = ptr.String(jtv) } - case "KmsKeyId": + case "MasterUserPassword": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.KmsKeyId = ptr.String(jtv) + sv.MasterUserPassword = ptr.String(jtv) } - case "MaintenanceTrackName": + case "NodeType": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.MaintenanceTrackName = ptr.String(jtv) + sv.NodeType = ptr.String(jtv) } - case "ManualSnapshotRetentionPeriod": + case "NumberOfNodes": if value != nil { jtv, ok := value.(json.Number) if !ok { @@ -26100,117 +27736,191 @@ func awsRestjson1_deserializeDocumentAwsRedshiftClusterDetails(v **types.AwsReds if err != nil { return err } - sv.ManualSnapshotRetentionPeriod = int32(i64) + sv.NumberOfNodes = int32(i64) } - case "MasterUsername": + case "PubliclyAccessible": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.MasterUsername = ptr.String(jtv) + sv.PubliclyAccessible = jtv } - case "NextMaintenanceWindowStartTime": + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsRedshiftClusterResizeInfo(v **types.AwsRedshiftClusterResizeInfo, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsRedshiftClusterResizeInfo + if *v == nil { + sv = &types.AwsRedshiftClusterResizeInfo{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AllowCancelResize": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.NextMaintenanceWindowStartTime = ptr.String(jtv) + sv.AllowCancelResize = jtv } - case "NodeType": + case "ResizeType": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.NodeType = ptr.String(jtv) + sv.ResizeType = ptr.String(jtv) } - case "NumberOfNodes": + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsRedshiftClusterRestoreStatus(v **types.AwsRedshiftClusterRestoreStatus, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsRedshiftClusterRestoreStatus + if *v == nil { + sv = &types.AwsRedshiftClusterRestoreStatus{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "CurrentRestoreRateInMegaBytesPerSecond": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.CurrentRestoreRateInMegaBytesPerSecond = f64 + + case string: + var f64 float64 + switch { + case strings.EqualFold(jtv, "NaN"): + f64 = math.NaN() + + case strings.EqualFold(jtv, "Infinity"): + f64 = math.Inf(1) + + case strings.EqualFold(jtv, "-Infinity"): + f64 = math.Inf(-1) + + default: + return fmt.Errorf("unknown JSON number value: %s", jtv) + + } + sv.CurrentRestoreRateInMegaBytesPerSecond = f64 + + default: + return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value) + + } + } + + case "ElapsedTimeInSeconds": if value != nil { jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + return fmt.Errorf("expected Long to be json.Number, got %T instead", value) } i64, err := jtv.Int64() if err != nil { return err } - sv.NumberOfNodes = int32(i64) - } - - case "PendingActions": - if err := awsRestjson1_deserializeDocumentStringList(&sv.PendingActions, value); err != nil { - return err - } - - case "PendingModifiedValues": - if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterPendingModifiedValues(&sv.PendingModifiedValues, value); err != nil { - return err + sv.ElapsedTimeInSeconds = i64 } - case "PreferredMaintenanceWindow": + case "EstimatedTimeToCompletionInSeconds": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Long to be json.Number, got %T instead", value) } - sv.PreferredMaintenanceWindow = ptr.String(jtv) - } - - case "PubliclyAccessible": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + i64, err := jtv.Int64() + if err != nil { + return err } - sv.PubliclyAccessible = jtv - } - - case "ResizeInfo": - if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterResizeInfo(&sv.ResizeInfo, value); err != nil { - return err - } - - case "RestoreStatus": - if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterRestoreStatus(&sv.RestoreStatus, value); err != nil { - return err + sv.EstimatedTimeToCompletionInSeconds = i64 } - case "SnapshotScheduleIdentifier": + case "ProgressInMegaBytes": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Long to be json.Number, got %T instead", value) } - sv.SnapshotScheduleIdentifier = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ProgressInMegaBytes = i64 } - case "SnapshotScheduleState": + case "SnapshotSizeInMegaBytes": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Long to be json.Number, got %T instead", value) } - sv.SnapshotScheduleState = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.SnapshotSizeInMegaBytes = i64 } - case "VpcId": + case "Status": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.VpcId = ptr.String(jtv) - } - - case "VpcSecurityGroups": - if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterVpcSecurityGroups(&sv.VpcSecurityGroups, value); err != nil { - return err + sv.Status = ptr.String(jtv) } default: @@ -26222,7 +27932,7 @@ func awsRestjson1_deserializeDocumentAwsRedshiftClusterDetails(v **types.AwsReds return nil } -func awsRestjson1_deserializeDocumentAwsRedshiftClusterElasticIpStatus(v **types.AwsRedshiftClusterElasticIpStatus, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRedshiftClusterVpcSecurityGroup(v **types.AwsRedshiftClusterVpcSecurityGroup, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -26235,31 +27945,31 @@ func awsRestjson1_deserializeDocumentAwsRedshiftClusterElasticIpStatus(v **types return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsRedshiftClusterElasticIpStatus + var sv *types.AwsRedshiftClusterVpcSecurityGroup if *v == nil { - sv = &types.AwsRedshiftClusterElasticIpStatus{} + sv = &types.AwsRedshiftClusterVpcSecurityGroup{} } else { sv = *v } for key, value := range shape { switch key { - case "ElasticIp": + case "Status": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ElasticIp = ptr.String(jtv) + sv.Status = ptr.String(jtv) } - case "Status": + case "VpcSecurityGroupId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Status = ptr.String(jtv) + sv.VpcSecurityGroupId = ptr.String(jtv) } default: @@ -26271,7 +27981,41 @@ func awsRestjson1_deserializeDocumentAwsRedshiftClusterElasticIpStatus(v **types return nil } -func awsRestjson1_deserializeDocumentAwsRedshiftClusterEndpoint(v **types.AwsRedshiftClusterEndpoint, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsRedshiftClusterVpcSecurityGroups(v *[]types.AwsRedshiftClusterVpcSecurityGroup, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsRedshiftClusterVpcSecurityGroup + if *v == nil { + cv = []types.AwsRedshiftClusterVpcSecurityGroup{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsRedshiftClusterVpcSecurityGroup + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterVpcSecurityGroup(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsS3AccountPublicAccessBlockDetails(v **types.AwsS3AccountPublicAccessBlockDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -26284,35 +28028,49 @@ func awsRestjson1_deserializeDocumentAwsRedshiftClusterEndpoint(v **types.AwsRed return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsRedshiftClusterEndpoint + var sv *types.AwsS3AccountPublicAccessBlockDetails if *v == nil { - sv = &types.AwsRedshiftClusterEndpoint{} + sv = &types.AwsS3AccountPublicAccessBlockDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Address": + case "BlockPublicAcls": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.Address = ptr.String(jtv) + sv.BlockPublicAcls = jtv } - case "Port": + case "BlockPublicPolicy": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - i64, err := jtv.Int64() - if err != nil { - return err + sv.BlockPublicPolicy = jtv + } + + case "IgnorePublicAcls": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.Port = int32(i64) + sv.IgnorePublicAcls = jtv + } + + case "RestrictPublicBuckets": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.RestrictPublicBuckets = jtv } default: @@ -26324,7 +28082,7 @@ func awsRestjson1_deserializeDocumentAwsRedshiftClusterEndpoint(v **types.AwsRed return nil } -func awsRestjson1_deserializeDocumentAwsRedshiftClusterHsmStatus(v **types.AwsRedshiftClusterHsmStatus, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationDetails(v **types.AwsS3BucketBucketLifecycleConfigurationDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -26337,40 +28095,62 @@ func awsRestjson1_deserializeDocumentAwsRedshiftClusterHsmStatus(v **types.AwsRe return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsRedshiftClusterHsmStatus + var sv *types.AwsS3BucketBucketLifecycleConfigurationDetails if *v == nil { - sv = &types.AwsRedshiftClusterHsmStatus{} + sv = &types.AwsS3BucketBucketLifecycleConfigurationDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "HsmClientCertificateIdentifier": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.HsmClientCertificateIdentifier = ptr.String(jtv) + case "Rules": + if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesList(&sv.Rules, value); err != nil { + return err } - case "HsmConfigurationIdentifier": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.HsmConfigurationIdentifier = ptr.String(jtv) - } + default: + _, _ = key, value - case "Status": + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadDetails(v **types.AwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadDetails + if *v == nil { + sv = &types.AwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "DaysAfterInitiation": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.Status = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.DaysAfterInitiation = int32(i64) } default: @@ -26382,7 +28162,7 @@ func awsRestjson1_deserializeDocumentAwsRedshiftClusterHsmStatus(v **types.AwsRe return nil } -func awsRestjson1_deserializeDocumentAwsRedshiftClusterIamRole(v **types.AwsRedshiftClusterIamRole, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesDetails(v **types.AwsS3BucketBucketLifecycleConfigurationRulesDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -26395,31 +28175,104 @@ func awsRestjson1_deserializeDocumentAwsRedshiftClusterIamRole(v **types.AwsReds return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsRedshiftClusterIamRole - if *v == nil { - sv = &types.AwsRedshiftClusterIamRole{} - } else { - sv = *v - } + var sv *types.AwsS3BucketBucketLifecycleConfigurationRulesDetails + if *v == nil { + sv = &types.AwsS3BucketBucketLifecycleConfigurationRulesDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AbortIncompleteMultipartUpload": + if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadDetails(&sv.AbortIncompleteMultipartUpload, value); err != nil { + return err + } + + case "ExpirationDate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ExpirationDate = ptr.String(jtv) + } + + case "ExpirationInDays": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ExpirationInDays = int32(i64) + } + + case "ExpiredObjectDeleteMarker": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.ExpiredObjectDeleteMarker = jtv + } + + case "Filter": + if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterDetails(&sv.Filter, value); err != nil { + return err + } + + case "ID": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ID = ptr.String(jtv) + } + + case "NoncurrentVersionExpirationInDays": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.NoncurrentVersionExpirationInDays = int32(i64) + } + + case "NoncurrentVersionTransitions": + if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsList(&sv.NoncurrentVersionTransitions, value); err != nil { + return err + } - for key, value := range shape { - switch key { - case "ApplyStatus": + case "Prefix": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ApplyStatus = ptr.String(jtv) + sv.Prefix = ptr.String(jtv) } - case "IamRoleArn": + case "Status": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.IamRoleArn = ptr.String(jtv) + sv.Status = ptr.String(jtv) + } + + case "Transitions": + if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesTransitionsList(&sv.Transitions, value); err != nil { + return err } default: @@ -26431,7 +28284,7 @@ func awsRestjson1_deserializeDocumentAwsRedshiftClusterIamRole(v **types.AwsReds return nil } -func awsRestjson1_deserializeDocumentAwsRedshiftClusterIamRoles(v *[]types.AwsRedshiftClusterIamRole, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterDetails(v **types.AwsS3BucketBucketLifecycleConfigurationRulesFilterDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -26439,33 +28292,35 @@ func awsRestjson1_deserializeDocumentAwsRedshiftClusterIamRoles(v *[]types.AwsRe return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsRedshiftClusterIamRole + var sv *types.AwsS3BucketBucketLifecycleConfigurationRulesFilterDetails if *v == nil { - cv = []types.AwsRedshiftClusterIamRole{} + sv = &types.AwsS3BucketBucketLifecycleConfigurationRulesFilterDetails{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col types.AwsRedshiftClusterIamRole - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterIamRole(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + for key, value := range shape { + switch key { + case "Predicate": + if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateDetails(&sv.Predicate, value); err != nil { + return err + } + default: + _, _ = key, value + + } } - *v = cv + *v = sv return nil } -func awsRestjson1_deserializeDocumentAwsRedshiftClusterPendingModifiedValues(v **types.AwsRedshiftClusterPendingModifiedValues, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateDetails(v **types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -26478,120 +28333,41 @@ func awsRestjson1_deserializeDocumentAwsRedshiftClusterPendingModifiedValues(v * return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsRedshiftClusterPendingModifiedValues + var sv *types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateDetails if *v == nil { - sv = &types.AwsRedshiftClusterPendingModifiedValues{} + sv = &types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "AutomatedSnapshotRetentionPeriod": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.AutomatedSnapshotRetentionPeriod = int32(i64) - } - - case "ClusterIdentifier": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.ClusterIdentifier = ptr.String(jtv) - } - - case "ClusterType": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.ClusterType = ptr.String(jtv) - } - - case "ClusterVersion": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.ClusterVersion = ptr.String(jtv) - } - - case "EncryptionType": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.EncryptionType = ptr.String(jtv) - } - - case "EnhancedVpcRouting": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.EnhancedVpcRouting = jtv + case "Operands": + if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsList(&sv.Operands, value); err != nil { + return err } - case "MaintenanceTrackName": + case "Prefix": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.MaintenanceTrackName = ptr.String(jtv) + sv.Prefix = ptr.String(jtv) } - case "MasterUserPassword": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.MasterUserPassword = ptr.String(jtv) + case "Tag": + if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagDetails(&sv.Tag, value); err != nil { + return err } - case "NodeType": + case "Type": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.NodeType = ptr.String(jtv) - } - - case "NumberOfNodes": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.NumberOfNodes = int32(i64) - } - - case "PubliclyAccessible": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.PubliclyAccessible = jtv + sv.Type = ptr.String(jtv) } default: @@ -26603,7 +28379,7 @@ func awsRestjson1_deserializeDocumentAwsRedshiftClusterPendingModifiedValues(v * return nil } -func awsRestjson1_deserializeDocumentAwsRedshiftClusterResizeInfo(v **types.AwsRedshiftClusterResizeInfo, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails(v **types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -26616,31 +28392,36 @@ func awsRestjson1_deserializeDocumentAwsRedshiftClusterResizeInfo(v **types.AwsR return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsRedshiftClusterResizeInfo + var sv *types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails if *v == nil { - sv = &types.AwsRedshiftClusterResizeInfo{} + sv = &types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "AllowCancelResize": + case "Prefix": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.AllowCancelResize = jtv + sv.Prefix = ptr.String(jtv) } - case "ResizeType": + case "Tag": + if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagDetails(&sv.Tag, value); err != nil { + return err + } + + case "Type": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ResizeType = ptr.String(jtv) + sv.Type = ptr.String(jtv) } default: @@ -26652,7 +28433,7 @@ func awsRestjson1_deserializeDocumentAwsRedshiftClusterResizeInfo(v **types.AwsR return nil } -func awsRestjson1_deserializeDocumentAwsRedshiftClusterRestoreStatus(v **types.AwsRedshiftClusterRestoreStatus, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsList(v *[]types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -26660,113 +28441,70 @@ func awsRestjson1_deserializeDocumentAwsRedshiftClusterRestoreStatus(v **types.A return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsRedshiftClusterRestoreStatus + var cv []types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails if *v == nil { - sv = &types.AwsRedshiftClusterRestoreStatus{} + cv = []types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "CurrentRestoreRateInMegaBytesPerSecond": - if value != nil { - switch jtv := value.(type) { - case json.Number: - f64, err := jtv.Float64() - if err != nil { - return err - } - sv.CurrentRestoreRateInMegaBytesPerSecond = f64 - - case string: - var f64 float64 - switch { - case strings.EqualFold(jtv, "NaN"): - f64 = math.NaN() - - case strings.EqualFold(jtv, "Infinity"): - f64 = math.Inf(1) - - case strings.EqualFold(jtv, "-Infinity"): - f64 = math.Inf(-1) - - default: - return fmt.Errorf("unknown JSON number value: %s", jtv) - - } - sv.CurrentRestoreRateInMegaBytesPerSecond = f64 - - default: - return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value) - - } - } + for _, value := range shape { + var col types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) - case "ElapsedTimeInSeconds": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Long to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.ElapsedTimeInSeconds = i64 - } + } + *v = cv + return nil +} - case "EstimatedTimeToCompletionInSeconds": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Long to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.EstimatedTimeToCompletionInSeconds = i64 - } +func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagDetails(v **types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } - case "ProgressInMegaBytes": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Long to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.ProgressInMegaBytes = i64 - } + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } - case "SnapshotSizeInMegaBytes": + var sv *types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagDetails + if *v == nil { + sv = &types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Key": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Long to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.SnapshotSizeInMegaBytes = i64 + sv.Key = ptr.String(jtv) } - case "Status": + case "Value": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Status = ptr.String(jtv) + sv.Value = ptr.String(jtv) } default: @@ -26778,7 +28516,7 @@ func awsRestjson1_deserializeDocumentAwsRedshiftClusterRestoreStatus(v **types.A return nil } -func awsRestjson1_deserializeDocumentAwsRedshiftClusterVpcSecurityGroup(v **types.AwsRedshiftClusterVpcSecurityGroup, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagDetails(v **types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -26791,31 +28529,31 @@ func awsRestjson1_deserializeDocumentAwsRedshiftClusterVpcSecurityGroup(v **type return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsRedshiftClusterVpcSecurityGroup + var sv *types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagDetails if *v == nil { - sv = &types.AwsRedshiftClusterVpcSecurityGroup{} + sv = &types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Status": + case "Key": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Status = ptr.String(jtv) + sv.Key = ptr.String(jtv) } - case "VpcSecurityGroupId": + case "Value": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.VpcSecurityGroupId = ptr.String(jtv) + sv.Value = ptr.String(jtv) } default: @@ -26827,7 +28565,7 @@ func awsRestjson1_deserializeDocumentAwsRedshiftClusterVpcSecurityGroup(v **type return nil } -func awsRestjson1_deserializeDocumentAwsRedshiftClusterVpcSecurityGroups(v *[]types.AwsRedshiftClusterVpcSecurityGroup, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesList(v *[]types.AwsS3BucketBucketLifecycleConfigurationRulesDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -26840,17 +28578,17 @@ func awsRestjson1_deserializeDocumentAwsRedshiftClusterVpcSecurityGroups(v *[]ty return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsRedshiftClusterVpcSecurityGroup + var cv []types.AwsS3BucketBucketLifecycleConfigurationRulesDetails if *v == nil { - cv = []types.AwsRedshiftClusterVpcSecurityGroup{} + cv = []types.AwsS3BucketBucketLifecycleConfigurationRulesDetails{} } else { cv = *v } for _, value := range shape { - var col types.AwsRedshiftClusterVpcSecurityGroup + var col types.AwsS3BucketBucketLifecycleConfigurationRulesDetails destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterVpcSecurityGroup(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesDetails(&destAddr, value); err != nil { return err } col = *destAddr @@ -26861,7 +28599,7 @@ func awsRestjson1_deserializeDocumentAwsRedshiftClusterVpcSecurityGroups(v *[]ty return nil } -func awsRestjson1_deserializeDocumentAwsS3AccountPublicAccessBlockDetails(v **types.AwsS3AccountPublicAccessBlockDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails(v **types.AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -26874,49 +28612,35 @@ func awsRestjson1_deserializeDocumentAwsS3AccountPublicAccessBlockDetails(v **ty return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsS3AccountPublicAccessBlockDetails + var sv *types.AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails if *v == nil { - sv = &types.AwsS3AccountPublicAccessBlockDetails{} + sv = &types.AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "BlockPublicAcls": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.BlockPublicAcls = jtv - } - - case "BlockPublicPolicy": + case "Days": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.BlockPublicPolicy = jtv - } - - case "IgnorePublicAcls": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + i64, err := jtv.Int64() + if err != nil { + return err } - sv.IgnorePublicAcls = jtv + sv.Days = int32(i64) } - case "RestrictPublicBuckets": + case "StorageClass": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.RestrictPublicBuckets = jtv + sv.StorageClass = ptr.String(jtv) } default: @@ -26928,7 +28652,7 @@ func awsRestjson1_deserializeDocumentAwsS3AccountPublicAccessBlockDetails(v **ty return nil } -func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationDetails(v **types.AwsS3BucketBucketLifecycleConfigurationDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsList(v *[]types.AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -26936,35 +28660,33 @@ func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationDeta return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsS3BucketBucketLifecycleConfigurationDetails + var cv []types.AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails if *v == nil { - sv = &types.AwsS3BucketBucketLifecycleConfigurationDetails{} + cv = []types.AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "Rules": - if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesList(&sv.Rules, value); err != nil { - return err - } - - default: - _, _ = key, value - + for _, value := range shape { + var col types.AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails(&destAddr, value); err != nil { + return err } + col = *destAddr + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadDetails(v **types.AwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails(v **types.AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -26977,16 +28699,25 @@ func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRule return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadDetails + var sv *types.AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails if *v == nil { - sv = &types.AwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadDetails{} + sv = &types.AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "DaysAfterInitiation": + case "Date": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Date = ptr.String(jtv) + } + + case "Days": if value != nil { jtv, ok := value.(json.Number) if !ok { @@ -26996,7 +28727,16 @@ func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRule if err != nil { return err } - sv.DaysAfterInitiation = int32(i64) + sv.Days = int32(i64) + } + + case "StorageClass": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.StorageClass = ptr.String(jtv) } default: @@ -27008,7 +28748,41 @@ func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRule return nil } -func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesDetails(v **types.AwsS3BucketBucketLifecycleConfigurationRulesDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesTransitionsList(v *[]types.AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails + if *v == nil { + cv = []types.AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsS3BucketDetails(v **types.AwsS3BucketDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -27021,103 +28795,78 @@ func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRule return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsS3BucketBucketLifecycleConfigurationRulesDetails + var sv *types.AwsS3BucketDetails if *v == nil { - sv = &types.AwsS3BucketBucketLifecycleConfigurationRulesDetails{} + sv = &types.AwsS3BucketDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "AbortIncompleteMultipartUpload": - if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadDetails(&sv.AbortIncompleteMultipartUpload, value); err != nil { - return err - } - - case "ExpirationDate": + case "AccessControlList": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ExpirationDate = ptr.String(jtv) + sv.AccessControlList = ptr.String(jtv) } - case "ExpirationInDays": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.ExpirationInDays = int32(i64) + case "BucketLifecycleConfiguration": + if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationDetails(&sv.BucketLifecycleConfiguration, value); err != nil { + return err } - - case "ExpiredObjectDeleteMarker": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.ExpiredObjectDeleteMarker = jtv + + case "BucketLoggingConfiguration": + if err := awsRestjson1_deserializeDocumentAwsS3BucketLoggingConfiguration(&sv.BucketLoggingConfiguration, value); err != nil { + return err } - case "Filter": - if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterDetails(&sv.Filter, value); err != nil { + case "BucketNotificationConfiguration": + if err := awsRestjson1_deserializeDocumentAwsS3BucketNotificationConfiguration(&sv.BucketNotificationConfiguration, value); err != nil { return err } - case "ID": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.ID = ptr.String(jtv) + case "BucketWebsiteConfiguration": + if err := awsRestjson1_deserializeDocumentAwsS3BucketWebsiteConfiguration(&sv.BucketWebsiteConfiguration, value); err != nil { + return err } - case "NoncurrentVersionExpirationInDays": + case "CreatedAt": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.NoncurrentVersionExpirationInDays = int32(i64) - } - - case "NoncurrentVersionTransitions": - if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsList(&sv.NoncurrentVersionTransitions, value); err != nil { - return err + sv.CreatedAt = ptr.String(jtv) } - case "Prefix": + case "OwnerId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Prefix = ptr.String(jtv) + sv.OwnerId = ptr.String(jtv) } - case "Status": + case "OwnerName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Status = ptr.String(jtv) + sv.OwnerName = ptr.String(jtv) } - case "Transitions": - if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesTransitionsList(&sv.Transitions, value); err != nil { + case "PublicAccessBlockConfiguration": + if err := awsRestjson1_deserializeDocumentAwsS3AccountPublicAccessBlockDetails(&sv.PublicAccessBlockConfiguration, value); err != nil { + return err + } + + case "ServerSideEncryptionConfiguration": + if err := awsRestjson1_deserializeDocumentAwsS3BucketServerSideEncryptionConfiguration(&sv.ServerSideEncryptionConfiguration, value); err != nil { return err } @@ -27130,7 +28879,7 @@ func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRule return nil } -func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterDetails(v **types.AwsS3BucketBucketLifecycleConfigurationRulesFilterDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsS3BucketLoggingConfiguration(v **types.AwsS3BucketLoggingConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -27143,18 +28892,31 @@ func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRule return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsS3BucketBucketLifecycleConfigurationRulesFilterDetails + var sv *types.AwsS3BucketLoggingConfiguration if *v == nil { - sv = &types.AwsS3BucketBucketLifecycleConfigurationRulesFilterDetails{} + sv = &types.AwsS3BucketLoggingConfiguration{} } else { sv = *v } for key, value := range shape { switch key { - case "Predicate": - if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateDetails(&sv.Predicate, value); err != nil { - return err + case "DestinationBucketName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.DestinationBucketName = ptr.String(jtv) + } + + case "LogFilePrefix": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.LogFilePrefix = ptr.String(jtv) } default: @@ -27166,7 +28928,7 @@ func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRule return nil } -func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateDetails(v **types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsS3BucketNotificationConfiguration(v **types.AwsS3BucketNotificationConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -27179,43 +28941,20 @@ func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRule return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateDetails + var sv *types.AwsS3BucketNotificationConfiguration if *v == nil { - sv = &types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateDetails{} + sv = &types.AwsS3BucketNotificationConfiguration{} } else { sv = *v } for key, value := range shape { switch key { - case "Operands": - if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsList(&sv.Operands, value); err != nil { - return err - } - - case "Prefix": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Prefix = ptr.String(jtv) - } - - case "Tag": - if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagDetails(&sv.Tag, value); err != nil { + case "Configurations": + if err := awsRestjson1_deserializeDocumentAwsS3BucketNotificationConfigurationDetails(&sv.Configurations, value); err != nil { return err } - case "Type": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Type = ptr.String(jtv) - } - default: _, _ = key, value @@ -27225,7 +28964,7 @@ func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRule return nil } -func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails(v **types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsS3BucketNotificationConfigurationDetail(v **types.AwsS3BucketNotificationConfigurationDetail, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -27238,26 +28977,31 @@ func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRule return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails + var sv *types.AwsS3BucketNotificationConfigurationDetail if *v == nil { - sv = &types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails{} + sv = &types.AwsS3BucketNotificationConfigurationDetail{} } else { sv = *v } for key, value := range shape { switch key { - case "Prefix": + case "Destination": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Prefix = ptr.String(jtv) + sv.Destination = ptr.String(jtv) } - case "Tag": - if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagDetails(&sv.Tag, value); err != nil { + case "Events": + if err := awsRestjson1_deserializeDocumentAwsS3BucketNotificationConfigurationEvents(&sv.Events, value); err != nil { + return err + } + + case "Filter": + if err := awsRestjson1_deserializeDocumentAwsS3BucketNotificationConfigurationFilter(&sv.Filter, value); err != nil { return err } @@ -27279,7 +29023,7 @@ func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRule return nil } -func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsList(v *[]types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsS3BucketNotificationConfigurationDetails(v *[]types.AwsS3BucketNotificationConfigurationDetail, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -27292,17 +29036,17 @@ func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRule return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails + var cv []types.AwsS3BucketNotificationConfigurationDetail if *v == nil { - cv = []types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails{} + cv = []types.AwsS3BucketNotificationConfigurationDetail{} } else { cv = *v } for _, value := range shape { - var col types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails + var col types.AwsS3BucketNotificationConfigurationDetail destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsS3BucketNotificationConfigurationDetail(&destAddr, value); err != nil { return err } col = *destAddr @@ -27313,7 +29057,43 @@ func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRule return nil } -func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagDetails(v **types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsS3BucketNotificationConfigurationEvents(v *[]string, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []string + if *v == nil { + cv = []string{} + } else { + cv = *v + } + + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsS3BucketNotificationConfigurationFilter(v **types.AwsS3BucketNotificationConfigurationFilter, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -27326,31 +29106,54 @@ func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRule return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagDetails + var sv *types.AwsS3BucketNotificationConfigurationFilter if *v == nil { - sv = &types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagDetails{} + sv = &types.AwsS3BucketNotificationConfigurationFilter{} } else { sv = *v } for key, value := range shape { switch key { - case "Key": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Key = ptr.String(jtv) + case "S3KeyFilter": + if err := awsRestjson1_deserializeDocumentAwsS3BucketNotificationConfigurationS3KeyFilter(&sv.S3KeyFilter, value); err != nil { + return err } - case "Value": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Value = ptr.String(jtv) + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsS3BucketNotificationConfigurationS3KeyFilter(v **types.AwsS3BucketNotificationConfigurationS3KeyFilter, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsS3BucketNotificationConfigurationS3KeyFilter + if *v == nil { + sv = &types.AwsS3BucketNotificationConfigurationS3KeyFilter{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "FilterRules": + if err := awsRestjson1_deserializeDocumentAwsS3BucketNotificationConfigurationS3KeyFilterRules(&sv.FilterRules, value); err != nil { + return err } default: @@ -27362,7 +29165,7 @@ func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRule return nil } -func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagDetails(v **types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsS3BucketNotificationConfigurationS3KeyFilterRule(v **types.AwsS3BucketNotificationConfigurationS3KeyFilterRule, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -27375,22 +29178,22 @@ func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRule return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagDetails + var sv *types.AwsS3BucketNotificationConfigurationS3KeyFilterRule if *v == nil { - sv = &types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagDetails{} + sv = &types.AwsS3BucketNotificationConfigurationS3KeyFilterRule{} } else { sv = *v } for key, value := range shape { switch key { - case "Key": + case "Name": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected AwsS3BucketNotificationConfigurationS3KeyFilterRuleName to be of type string, got %T instead", value) } - sv.Key = ptr.String(jtv) + sv.Name = types.AwsS3BucketNotificationConfigurationS3KeyFilterRuleName(jtv) } case "Value": @@ -27411,7 +29214,7 @@ func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRule return nil } -func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesList(v *[]types.AwsS3BucketBucketLifecycleConfigurationRulesDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsS3BucketNotificationConfigurationS3KeyFilterRules(v *[]types.AwsS3BucketNotificationConfigurationS3KeyFilterRule, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -27424,17 +29227,17 @@ func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRule return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsS3BucketBucketLifecycleConfigurationRulesDetails + var cv []types.AwsS3BucketNotificationConfigurationS3KeyFilterRule if *v == nil { - cv = []types.AwsS3BucketBucketLifecycleConfigurationRulesDetails{} + cv = []types.AwsS3BucketNotificationConfigurationS3KeyFilterRule{} } else { cv = *v } for _, value := range shape { - var col types.AwsS3BucketBucketLifecycleConfigurationRulesDetails + var col types.AwsS3BucketNotificationConfigurationS3KeyFilterRule destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesDetails(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsS3BucketNotificationConfigurationS3KeyFilterRule(&destAddr, value); err != nil { return err } col = *destAddr @@ -27445,7 +29248,7 @@ func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRule return nil } -func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails(v **types.AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsS3BucketServerSideEncryptionByDefault(v **types.AwsS3BucketServerSideEncryptionByDefault, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -27458,35 +29261,31 @@ func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRule return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails + var sv *types.AwsS3BucketServerSideEncryptionByDefault if *v == nil { - sv = &types.AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails{} + sv = &types.AwsS3BucketServerSideEncryptionByDefault{} } else { sv = *v } for key, value := range shape { switch key { - case "Days": + case "KMSMasterKeyID": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Days = int32(i64) + sv.KMSMasterKeyID = ptr.String(jtv) } - case "StorageClass": + case "SSEAlgorithm": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.StorageClass = ptr.String(jtv) + sv.SSEAlgorithm = ptr.String(jtv) } default: @@ -27498,7 +29297,7 @@ func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRule return nil } -func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsList(v *[]types.AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsS3BucketServerSideEncryptionConfiguration(v **types.AwsS3BucketServerSideEncryptionConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -27506,33 +29305,35 @@ func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRule return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails + var sv *types.AwsS3BucketServerSideEncryptionConfiguration if *v == nil { - cv = []types.AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails{} + sv = &types.AwsS3BucketServerSideEncryptionConfiguration{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col types.AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + for key, value := range shape { + switch key { + case "Rules": + if err := awsRestjson1_deserializeDocumentAwsS3BucketServerSideEncryptionRules(&sv.Rules, value); err != nil { + return err + } + + default: + _, _ = key, value + } } - *v = cv + *v = sv return nil } -func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails(v **types.AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsS3BucketServerSideEncryptionRule(v **types.AwsS3BucketServerSideEncryptionRule, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -27545,44 +29346,18 @@ func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRule return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails + var sv *types.AwsS3BucketServerSideEncryptionRule if *v == nil { - sv = &types.AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails{} + sv = &types.AwsS3BucketServerSideEncryptionRule{} } else { sv = *v } for key, value := range shape { switch key { - case "Date": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Date = ptr.String(jtv) - } - - case "Days": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.Days = int32(i64) - } - - case "StorageClass": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.StorageClass = ptr.String(jtv) + case "ApplyServerSideEncryptionByDefault": + if err := awsRestjson1_deserializeDocumentAwsS3BucketServerSideEncryptionByDefault(&sv.ApplyServerSideEncryptionByDefault, value); err != nil { + return err } default: @@ -27594,7 +29369,7 @@ func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRule return nil } -func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesTransitionsList(v *[]types.AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsS3BucketServerSideEncryptionRules(v *[]types.AwsS3BucketServerSideEncryptionRule, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -27607,17 +29382,17 @@ func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRule return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails + var cv []types.AwsS3BucketServerSideEncryptionRule if *v == nil { - cv = []types.AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails{} + cv = []types.AwsS3BucketServerSideEncryptionRule{} } else { cv = *v } for _, value := range shape { - var col types.AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails + var col types.AwsS3BucketServerSideEncryptionRule destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsS3BucketServerSideEncryptionRule(&destAddr, value); err != nil { return err } col = *destAddr @@ -27628,7 +29403,7 @@ func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRule return nil } -func awsRestjson1_deserializeDocumentAwsS3BucketDetails(v **types.AwsS3BucketDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsS3BucketWebsiteConfiguration(v **types.AwsS3BucketWebsiteConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -27641,54 +29416,40 @@ func awsRestjson1_deserializeDocumentAwsS3BucketDetails(v **types.AwsS3BucketDet return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsS3BucketDetails + var sv *types.AwsS3BucketWebsiteConfiguration if *v == nil { - sv = &types.AwsS3BucketDetails{} + sv = &types.AwsS3BucketWebsiteConfiguration{} } else { sv = *v } for key, value := range shape { switch key { - case "BucketLifecycleConfiguration": - if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationDetails(&sv.BucketLifecycleConfiguration, value); err != nil { - return err - } - - case "CreatedAt": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.CreatedAt = ptr.String(jtv) - } - - case "OwnerId": + case "ErrorDocument": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.OwnerId = ptr.String(jtv) + sv.ErrorDocument = ptr.String(jtv) } - case "OwnerName": + case "IndexDocumentSuffix": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.OwnerName = ptr.String(jtv) + sv.IndexDocumentSuffix = ptr.String(jtv) } - case "PublicAccessBlockConfiguration": - if err := awsRestjson1_deserializeDocumentAwsS3AccountPublicAccessBlockDetails(&sv.PublicAccessBlockConfiguration, value); err != nil { + case "RedirectAllRequestsTo": + if err := awsRestjson1_deserializeDocumentAwsS3BucketWebsiteConfigurationRedirectTo(&sv.RedirectAllRequestsTo, value); err != nil { return err } - case "ServerSideEncryptionConfiguration": - if err := awsRestjson1_deserializeDocumentAwsS3BucketServerSideEncryptionConfiguration(&sv.ServerSideEncryptionConfiguration, value); err != nil { + case "RoutingRules": + if err := awsRestjson1_deserializeDocumentAwsS3BucketWebsiteConfigurationRoutingRules(&sv.RoutingRules, value); err != nil { return err } @@ -27701,7 +29462,7 @@ func awsRestjson1_deserializeDocumentAwsS3BucketDetails(v **types.AwsS3BucketDet return nil } -func awsRestjson1_deserializeDocumentAwsS3BucketServerSideEncryptionByDefault(v **types.AwsS3BucketServerSideEncryptionByDefault, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsS3BucketWebsiteConfigurationRedirectTo(v **types.AwsS3BucketWebsiteConfigurationRedirectTo, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -27714,31 +29475,31 @@ func awsRestjson1_deserializeDocumentAwsS3BucketServerSideEncryptionByDefault(v return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsS3BucketServerSideEncryptionByDefault + var sv *types.AwsS3BucketWebsiteConfigurationRedirectTo if *v == nil { - sv = &types.AwsS3BucketServerSideEncryptionByDefault{} + sv = &types.AwsS3BucketWebsiteConfigurationRedirectTo{} } else { sv = *v } for key, value := range shape { switch key { - case "KMSMasterKeyID": + case "Hostname": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.KMSMasterKeyID = ptr.String(jtv) + sv.Hostname = ptr.String(jtv) } - case "SSEAlgorithm": + case "Protocol": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.SSEAlgorithm = ptr.String(jtv) + sv.Protocol = ptr.String(jtv) } default: @@ -27750,7 +29511,7 @@ func awsRestjson1_deserializeDocumentAwsS3BucketServerSideEncryptionByDefault(v return nil } -func awsRestjson1_deserializeDocumentAwsS3BucketServerSideEncryptionConfiguration(v **types.AwsS3BucketServerSideEncryptionConfiguration, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsS3BucketWebsiteConfigurationRoutingRule(v **types.AwsS3BucketWebsiteConfigurationRoutingRule, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -27763,17 +29524,22 @@ func awsRestjson1_deserializeDocumentAwsS3BucketServerSideEncryptionConfiguratio return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsS3BucketServerSideEncryptionConfiguration + var sv *types.AwsS3BucketWebsiteConfigurationRoutingRule if *v == nil { - sv = &types.AwsS3BucketServerSideEncryptionConfiguration{} + sv = &types.AwsS3BucketWebsiteConfigurationRoutingRule{} } else { sv = *v } for key, value := range shape { switch key { - case "Rules": - if err := awsRestjson1_deserializeDocumentAwsS3BucketServerSideEncryptionRules(&sv.Rules, value); err != nil { + case "Condition": + if err := awsRestjson1_deserializeDocumentAwsS3BucketWebsiteConfigurationRoutingRuleCondition(&sv.Condition, value); err != nil { + return err + } + + case "Redirect": + if err := awsRestjson1_deserializeDocumentAwsS3BucketWebsiteConfigurationRoutingRuleRedirect(&sv.Redirect, value); err != nil { return err } @@ -27786,7 +29552,7 @@ func awsRestjson1_deserializeDocumentAwsS3BucketServerSideEncryptionConfiguratio return nil } -func awsRestjson1_deserializeDocumentAwsS3BucketServerSideEncryptionRule(v **types.AwsS3BucketServerSideEncryptionRule, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsS3BucketWebsiteConfigurationRoutingRuleCondition(v **types.AwsS3BucketWebsiteConfigurationRoutingRuleCondition, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -27799,18 +29565,31 @@ func awsRestjson1_deserializeDocumentAwsS3BucketServerSideEncryptionRule(v **typ return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsS3BucketServerSideEncryptionRule + var sv *types.AwsS3BucketWebsiteConfigurationRoutingRuleCondition if *v == nil { - sv = &types.AwsS3BucketServerSideEncryptionRule{} + sv = &types.AwsS3BucketWebsiteConfigurationRoutingRuleCondition{} } else { sv = *v } for key, value := range shape { switch key { - case "ApplyServerSideEncryptionByDefault": - if err := awsRestjson1_deserializeDocumentAwsS3BucketServerSideEncryptionByDefault(&sv.ApplyServerSideEncryptionByDefault, value); err != nil { - return err + case "HttpErrorCodeReturnedEquals": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.HttpErrorCodeReturnedEquals = ptr.String(jtv) + } + + case "KeyPrefixEquals": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.KeyPrefixEquals = ptr.String(jtv) } default: @@ -27822,7 +29601,83 @@ func awsRestjson1_deserializeDocumentAwsS3BucketServerSideEncryptionRule(v **typ return nil } -func awsRestjson1_deserializeDocumentAwsS3BucketServerSideEncryptionRules(v *[]types.AwsS3BucketServerSideEncryptionRule, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsS3BucketWebsiteConfigurationRoutingRuleRedirect(v **types.AwsS3BucketWebsiteConfigurationRoutingRuleRedirect, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsS3BucketWebsiteConfigurationRoutingRuleRedirect + if *v == nil { + sv = &types.AwsS3BucketWebsiteConfigurationRoutingRuleRedirect{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Hostname": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Hostname = ptr.String(jtv) + } + + case "HttpRedirectCode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.HttpRedirectCode = ptr.String(jtv) + } + + case "Protocol": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Protocol = ptr.String(jtv) + } + + case "ReplaceKeyPrefixWith": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ReplaceKeyPrefixWith = ptr.String(jtv) + } + + case "ReplaceKeyWith": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ReplaceKeyWith = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsS3BucketWebsiteConfigurationRoutingRules(v *[]types.AwsS3BucketWebsiteConfigurationRoutingRule, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -27835,17 +29690,17 @@ func awsRestjson1_deserializeDocumentAwsS3BucketServerSideEncryptionRules(v *[]t return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsS3BucketServerSideEncryptionRule + var cv []types.AwsS3BucketWebsiteConfigurationRoutingRule if *v == nil { - cv = []types.AwsS3BucketServerSideEncryptionRule{} + cv = []types.AwsS3BucketWebsiteConfigurationRoutingRule{} } else { cv = *v } for _, value := range shape { - var col types.AwsS3BucketServerSideEncryptionRule + var col types.AwsS3BucketWebsiteConfigurationRoutingRule destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsS3BucketServerSideEncryptionRule(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsS3BucketWebsiteConfigurationRoutingRule(&destAddr, value); err != nil { return err } col = *destAddr @@ -30549,6 +32404,11 @@ func awsRestjson1_deserializeDocumentCvss(v **types.Cvss, value interface{}) err for key, value := range shape { switch key { + case "Adjustments": + if err := awsRestjson1_deserializeDocumentAdjustmentList(&sv.Adjustments, value); err != nil { + return err + } + case "BaseScore": if value != nil { switch jtv := value.(type) { @@ -30592,6 +32452,15 @@ func awsRestjson1_deserializeDocumentCvss(v **types.Cvss, value interface{}) err sv.BaseVector = ptr.String(jtv) } + case "Source": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Source = ptr.String(jtv) + } + case "Version": if value != nil { jtv, ok := value.(string) @@ -31531,6 +33400,46 @@ func awsRestjson1_deserializeDocumentInsightResultValueList(v *[]types.InsightRe return nil } +func awsRestjson1_deserializeDocumentIntegerList(v *[]int32, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []int32 + if *v == nil { + cv = []int32{} + } else { + cv = *v + } + + for _, value := range shape { + var col int32 + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + col = int32(i64) + } + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentIntegrationTypeList(v *[]types.IntegrationType, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -34638,6 +36547,11 @@ func awsRestjson1_deserializeDocumentResourceDetails(v **types.ResourceDetails, return err } + case "AwsAutoScalingLaunchConfiguration": + if err := awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationDetails(&sv.AwsAutoScalingLaunchConfiguration, value); err != nil { + return err + } + case "AwsCertificateManagerCertificate": if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDetails(&sv.AwsCertificateManagerCertificate, value); err != nil { return err @@ -34703,6 +36617,16 @@ func awsRestjson1_deserializeDocumentResourceDetails(v **types.ResourceDetails, return err } + case "AwsEc2VpnConnection": + if err := awsRestjson1_deserializeDocumentAwsEc2VpnConnectionDetails(&sv.AwsEc2VpnConnection, value); err != nil { + return err + } + + case "AwsEcrContainerImage": + if err := awsRestjson1_deserializeDocumentAwsEcrContainerImageDetails(&sv.AwsEcrContainerImage, value); err != nil { + return err + } + case "AwsEcsCluster": if err := awsRestjson1_deserializeDocumentAwsEcsClusterDetails(&sv.AwsEcsCluster, value); err != nil { return err @@ -35389,6 +37313,15 @@ func awsRestjson1_deserializeDocumentSoftwarePackage(v **types.SoftwarePackage, sv.Epoch = ptr.String(jtv) } + case "FilePath": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.FilePath = ptr.String(jtv) + } + case "Name": if value != nil { jtv, ok := value.(string) @@ -35398,6 +37331,15 @@ func awsRestjson1_deserializeDocumentSoftwarePackage(v **types.SoftwarePackage, sv.Name = ptr.String(jtv) } + case "PackageManager": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.PackageManager = ptr.String(jtv) + } + case "Release": if value != nil { jtv, ok := value.(string) diff --git a/service/securityhub/serializers.go b/service/securityhub/serializers.go index 3dd98c2d732..d6a2c831147 100644 --- a/service/securityhub/serializers.go +++ b/service/securityhub/serializers.go @@ -3623,6 +3623,36 @@ func awsRestjson1_serializeDocumentActionRemotePortDetails(v *types.ActionRemote return nil } +func awsRestjson1_serializeDocumentAdjustment(v *types.Adjustment, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Metric != nil { + ok := object.Key("Metric") + ok.String(*v.Metric) + } + + if v.Reason != nil { + ok := object.Key("Reason") + ok.String(*v.Reason) + } + + return nil +} + +func awsRestjson1_serializeDocumentAdjustmentList(v []types.Adjustment, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentAdjustment(&v[i], av); err != nil { + return err + } + } + return nil +} + func awsRestjson1_serializeDocumentArnList(v []string, value smithyjson.Value) error { array := value.Array() defer array.Close() @@ -4264,6 +4294,202 @@ func awsRestjson1_serializeDocumentAwsAutoScalingAutoScalingGroupDetails(v *type return nil } +func awsRestjson1_serializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails(v *types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DeviceName != nil { + ok := object.Key("DeviceName") + ok.String(*v.DeviceName) + } + + if v.Ebs != nil { + ok := object.Key("Ebs") + if err := awsRestjson1_serializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails(v.Ebs, ok); err != nil { + return err + } + } + + if v.NoDevice { + ok := object.Key("NoDevice") + ok.Boolean(v.NoDevice) + } + + if v.VirtualName != nil { + ok := object.Key("VirtualName") + ok.String(*v.VirtualName) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails(v *types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DeleteOnTermination { + ok := object.Key("DeleteOnTermination") + ok.Boolean(v.DeleteOnTermination) + } + + if v.Encrypted { + ok := object.Key("Encrypted") + ok.Boolean(v.Encrypted) + } + + if v.Iops != 0 { + ok := object.Key("Iops") + ok.Integer(v.Iops) + } + + if v.SnapshotId != nil { + ok := object.Key("SnapshotId") + ok.String(*v.SnapshotId) + } + + if v.VolumeSize != 0 { + ok := object.Key("VolumeSize") + ok.Integer(v.VolumeSize) + } + + if v.VolumeType != nil { + ok := object.Key("VolumeType") + ok.String(*v.VolumeType) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsList(v []types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentAwsAutoScalingLaunchConfigurationDetails(v *types.AwsAutoScalingLaunchConfigurationDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AssociatePublicIpAddress { + ok := object.Key("AssociatePublicIpAddress") + ok.Boolean(v.AssociatePublicIpAddress) + } + + if v.BlockDeviceMappings != nil { + ok := object.Key("BlockDeviceMappings") + if err := awsRestjson1_serializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsList(v.BlockDeviceMappings, ok); err != nil { + return err + } + } + + if v.ClassicLinkVpcId != nil { + ok := object.Key("ClassicLinkVpcId") + ok.String(*v.ClassicLinkVpcId) + } + + if v.ClassicLinkVpcSecurityGroups != nil { + ok := object.Key("ClassicLinkVpcSecurityGroups") + if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.ClassicLinkVpcSecurityGroups, ok); err != nil { + return err + } + } + + if v.CreatedTime != nil { + ok := object.Key("CreatedTime") + ok.String(*v.CreatedTime) + } + + if v.EbsOptimized { + ok := object.Key("EbsOptimized") + ok.Boolean(v.EbsOptimized) + } + + if v.IamInstanceProfile != nil { + ok := object.Key("IamInstanceProfile") + ok.String(*v.IamInstanceProfile) + } + + if v.ImageId != nil { + ok := object.Key("ImageId") + ok.String(*v.ImageId) + } + + if v.InstanceMonitoring != nil { + ok := object.Key("InstanceMonitoring") + if err := awsRestjson1_serializeDocumentAwsAutoScalingLaunchConfigurationInstanceMonitoringDetails(v.InstanceMonitoring, ok); err != nil { + return err + } + } + + if v.InstanceType != nil { + ok := object.Key("InstanceType") + ok.String(*v.InstanceType) + } + + if v.KernelId != nil { + ok := object.Key("KernelId") + ok.String(*v.KernelId) + } + + if v.KeyName != nil { + ok := object.Key("KeyName") + ok.String(*v.KeyName) + } + + if v.LaunchConfigurationName != nil { + ok := object.Key("LaunchConfigurationName") + ok.String(*v.LaunchConfigurationName) + } + + if v.PlacementTenancy != nil { + ok := object.Key("PlacementTenancy") + ok.String(*v.PlacementTenancy) + } + + if v.RamdiskId != nil { + ok := object.Key("RamdiskId") + ok.String(*v.RamdiskId) + } + + if v.SecurityGroups != nil { + ok := object.Key("SecurityGroups") + if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.SecurityGroups, ok); err != nil { + return err + } + } + + if v.SpotPrice != nil { + ok := object.Key("SpotPrice") + ok.String(*v.SpotPrice) + } + + if v.UserData != nil { + ok := object.Key("UserData") + ok.String(*v.UserData) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsAutoScalingLaunchConfigurationInstanceMonitoringDetails(v *types.AwsAutoScalingLaunchConfigurationInstanceMonitoringDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Enabled { + ok := object.Key("Enabled") + ok.Boolean(v.Enabled) + } + + return nil +} + func awsRestjson1_serializeDocumentAwsCertificateManagerCertificateDetails(v *types.AwsCertificateManagerCertificateDetails, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -6563,6 +6789,326 @@ func awsRestjson1_serializeDocumentAwsEc2VpcDetails(v *types.AwsEc2VpcDetails, v return nil } +func awsRestjson1_serializeDocumentAwsEc2VpnConnectionDetails(v *types.AwsEc2VpnConnectionDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Category != nil { + ok := object.Key("Category") + ok.String(*v.Category) + } + + if v.CustomerGatewayConfiguration != nil { + ok := object.Key("CustomerGatewayConfiguration") + ok.String(*v.CustomerGatewayConfiguration) + } + + if v.CustomerGatewayId != nil { + ok := object.Key("CustomerGatewayId") + ok.String(*v.CustomerGatewayId) + } + + if v.Options != nil { + ok := object.Key("Options") + if err := awsRestjson1_serializeDocumentAwsEc2VpnConnectionOptionsDetails(v.Options, ok); err != nil { + return err + } + } + + if v.Routes != nil { + ok := object.Key("Routes") + if err := awsRestjson1_serializeDocumentAwsEc2VpnConnectionRoutesList(v.Routes, ok); err != nil { + return err + } + } + + if v.State != nil { + ok := object.Key("State") + ok.String(*v.State) + } + + if v.TransitGatewayId != nil { + ok := object.Key("TransitGatewayId") + ok.String(*v.TransitGatewayId) + } + + if v.Type != nil { + ok := object.Key("Type") + ok.String(*v.Type) + } + + if v.VgwTelemetry != nil { + ok := object.Key("VgwTelemetry") + if err := awsRestjson1_serializeDocumentAwsEc2VpnConnectionVgwTelemetryList(v.VgwTelemetry, ok); err != nil { + return err + } + } + + if v.VpnConnectionId != nil { + ok := object.Key("VpnConnectionId") + ok.String(*v.VpnConnectionId) + } + + if v.VpnGatewayId != nil { + ok := object.Key("VpnGatewayId") + ok.String(*v.VpnGatewayId) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsEc2VpnConnectionOptionsDetails(v *types.AwsEc2VpnConnectionOptionsDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.StaticRoutesOnly { + ok := object.Key("StaticRoutesOnly") + ok.Boolean(v.StaticRoutesOnly) + } + + if v.TunnelOptions != nil { + ok := object.Key("TunnelOptions") + if err := awsRestjson1_serializeDocumentAwsEc2VpnConnectionOptionsTunnelOptionsList(v.TunnelOptions, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsEc2VpnConnectionOptionsTunnelOptionsDetails(v *types.AwsEc2VpnConnectionOptionsTunnelOptionsDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DpdTimeoutSeconds != 0 { + ok := object.Key("DpdTimeoutSeconds") + ok.Integer(v.DpdTimeoutSeconds) + } + + if v.IkeVersions != nil { + ok := object.Key("IkeVersions") + if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.IkeVersions, ok); err != nil { + return err + } + } + + if v.OutsideIpAddress != nil { + ok := object.Key("OutsideIpAddress") + ok.String(*v.OutsideIpAddress) + } + + if v.Phase1DhGroupNumbers != nil { + ok := object.Key("Phase1DhGroupNumbers") + if err := awsRestjson1_serializeDocumentIntegerList(v.Phase1DhGroupNumbers, ok); err != nil { + return err + } + } + + if v.Phase1EncryptionAlgorithms != nil { + ok := object.Key("Phase1EncryptionAlgorithms") + if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.Phase1EncryptionAlgorithms, ok); err != nil { + return err + } + } + + if v.Phase1IntegrityAlgorithms != nil { + ok := object.Key("Phase1IntegrityAlgorithms") + if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.Phase1IntegrityAlgorithms, ok); err != nil { + return err + } + } + + if v.Phase1LifetimeSeconds != 0 { + ok := object.Key("Phase1LifetimeSeconds") + ok.Integer(v.Phase1LifetimeSeconds) + } + + if v.Phase2DhGroupNumbers != nil { + ok := object.Key("Phase2DhGroupNumbers") + if err := awsRestjson1_serializeDocumentIntegerList(v.Phase2DhGroupNumbers, ok); err != nil { + return err + } + } + + if v.Phase2EncryptionAlgorithms != nil { + ok := object.Key("Phase2EncryptionAlgorithms") + if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.Phase2EncryptionAlgorithms, ok); err != nil { + return err + } + } + + if v.Phase2IntegrityAlgorithms != nil { + ok := object.Key("Phase2IntegrityAlgorithms") + if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.Phase2IntegrityAlgorithms, ok); err != nil { + return err + } + } + + if v.Phase2LifetimeSeconds != 0 { + ok := object.Key("Phase2LifetimeSeconds") + ok.Integer(v.Phase2LifetimeSeconds) + } + + if v.PreSharedKey != nil { + ok := object.Key("PreSharedKey") + ok.String(*v.PreSharedKey) + } + + if v.RekeyFuzzPercentage != 0 { + ok := object.Key("RekeyFuzzPercentage") + ok.Integer(v.RekeyFuzzPercentage) + } + + if v.RekeyMarginTimeSeconds != 0 { + ok := object.Key("RekeyMarginTimeSeconds") + ok.Integer(v.RekeyMarginTimeSeconds) + } + + if v.ReplayWindowSize != 0 { + ok := object.Key("ReplayWindowSize") + ok.Integer(v.ReplayWindowSize) + } + + if v.TunnelInsideCidr != nil { + ok := object.Key("TunnelInsideCidr") + ok.String(*v.TunnelInsideCidr) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsEc2VpnConnectionOptionsTunnelOptionsList(v []types.AwsEc2VpnConnectionOptionsTunnelOptionsDetails, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentAwsEc2VpnConnectionOptionsTunnelOptionsDetails(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentAwsEc2VpnConnectionRoutesDetails(v *types.AwsEc2VpnConnectionRoutesDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DestinationCidrBlock != nil { + ok := object.Key("DestinationCidrBlock") + ok.String(*v.DestinationCidrBlock) + } + + if v.State != nil { + ok := object.Key("State") + ok.String(*v.State) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsEc2VpnConnectionRoutesList(v []types.AwsEc2VpnConnectionRoutesDetails, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentAwsEc2VpnConnectionRoutesDetails(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentAwsEc2VpnConnectionVgwTelemetryDetails(v *types.AwsEc2VpnConnectionVgwTelemetryDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AcceptedRouteCount != 0 { + ok := object.Key("AcceptedRouteCount") + ok.Integer(v.AcceptedRouteCount) + } + + if v.CertificateArn != nil { + ok := object.Key("CertificateArn") + ok.String(*v.CertificateArn) + } + + if v.LastStatusChange != nil { + ok := object.Key("LastStatusChange") + ok.String(*v.LastStatusChange) + } + + if v.OutsideIpAddress != nil { + ok := object.Key("OutsideIpAddress") + ok.String(*v.OutsideIpAddress) + } + + if v.Status != nil { + ok := object.Key("Status") + ok.String(*v.Status) + } + + if v.StatusMessage != nil { + ok := object.Key("StatusMessage") + ok.String(*v.StatusMessage) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsEc2VpnConnectionVgwTelemetryList(v []types.AwsEc2VpnConnectionVgwTelemetryDetails, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentAwsEc2VpnConnectionVgwTelemetryDetails(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentAwsEcrContainerImageDetails(v *types.AwsEcrContainerImageDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Architecture != nil { + ok := object.Key("Architecture") + ok.String(*v.Architecture) + } + + if v.ImageDigest != nil { + ok := object.Key("ImageDigest") + ok.String(*v.ImageDigest) + } + + if v.ImagePublishedAt != nil { + ok := object.Key("ImagePublishedAt") + ok.String(*v.ImagePublishedAt) + } + + if v.ImageTags != nil { + ok := object.Key("ImageTags") + if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.ImageTags, ok); err != nil { + return err + } + } + + if v.RegistryId != nil { + ok := object.Key("RegistryId") + ok.String(*v.RegistryId) + } + + if v.RepositoryName != nil { + ok := object.Key("RepositoryName") + ok.String(*v.RepositoryName) + } + + return nil +} + func awsRestjson1_serializeDocumentAwsEcsClusterClusterSettingsDetails(v *types.AwsEcsClusterClusterSettingsDetails, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -10035,6 +10581,11 @@ func awsRestjson1_serializeDocumentAwsKmsKeyDetails(v *types.AwsKmsKeyDetails, v ok.String(*v.KeyManager) } + if v.KeyRotationStatus { + ok := object.Key("KeyRotationStatus") + ok.Boolean(v.KeyRotationStatus) + } + if v.KeyState != nil { ok := object.Key("KeyState") ok.String(*v.KeyState) @@ -12729,6 +13280,11 @@ func awsRestjson1_serializeDocumentAwsS3BucketDetails(v *types.AwsS3BucketDetail object := value.Object() defer object.Close() + if v.AccessControlList != nil { + ok := object.Key("AccessControlList") + ok.String(*v.AccessControlList) + } + if v.BucketLifecycleConfiguration != nil { ok := object.Key("BucketLifecycleConfiguration") if err := awsRestjson1_serializeDocumentAwsS3BucketBucketLifecycleConfigurationDetails(v.BucketLifecycleConfiguration, ok); err != nil { @@ -12736,6 +13292,27 @@ func awsRestjson1_serializeDocumentAwsS3BucketDetails(v *types.AwsS3BucketDetail } } + if v.BucketLoggingConfiguration != nil { + ok := object.Key("BucketLoggingConfiguration") + if err := awsRestjson1_serializeDocumentAwsS3BucketLoggingConfiguration(v.BucketLoggingConfiguration, ok); err != nil { + return err + } + } + + if v.BucketNotificationConfiguration != nil { + ok := object.Key("BucketNotificationConfiguration") + if err := awsRestjson1_serializeDocumentAwsS3BucketNotificationConfiguration(v.BucketNotificationConfiguration, ok); err != nil { + return err + } + } + + if v.BucketWebsiteConfiguration != nil { + ok := object.Key("BucketWebsiteConfiguration") + if err := awsRestjson1_serializeDocumentAwsS3BucketWebsiteConfiguration(v.BucketWebsiteConfiguration, ok); err != nil { + return err + } + } + if v.CreatedAt != nil { ok := object.Key("CreatedAt") ok.String(*v.CreatedAt) @@ -12768,6 +13345,150 @@ func awsRestjson1_serializeDocumentAwsS3BucketDetails(v *types.AwsS3BucketDetail return nil } +func awsRestjson1_serializeDocumentAwsS3BucketLoggingConfiguration(v *types.AwsS3BucketLoggingConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DestinationBucketName != nil { + ok := object.Key("DestinationBucketName") + ok.String(*v.DestinationBucketName) + } + + if v.LogFilePrefix != nil { + ok := object.Key("LogFilePrefix") + ok.String(*v.LogFilePrefix) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsS3BucketNotificationConfiguration(v *types.AwsS3BucketNotificationConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Configurations != nil { + ok := object.Key("Configurations") + if err := awsRestjson1_serializeDocumentAwsS3BucketNotificationConfigurationDetails(v.Configurations, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsS3BucketNotificationConfigurationDetail(v *types.AwsS3BucketNotificationConfigurationDetail, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Destination != nil { + ok := object.Key("Destination") + ok.String(*v.Destination) + } + + if v.Events != nil { + ok := object.Key("Events") + if err := awsRestjson1_serializeDocumentAwsS3BucketNotificationConfigurationEvents(v.Events, ok); err != nil { + return err + } + } + + if v.Filter != nil { + ok := object.Key("Filter") + if err := awsRestjson1_serializeDocumentAwsS3BucketNotificationConfigurationFilter(v.Filter, ok); err != nil { + return err + } + } + + if v.Type != nil { + ok := object.Key("Type") + ok.String(*v.Type) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsS3BucketNotificationConfigurationDetails(v []types.AwsS3BucketNotificationConfigurationDetail, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentAwsS3BucketNotificationConfigurationDetail(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentAwsS3BucketNotificationConfigurationEvents(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + +func awsRestjson1_serializeDocumentAwsS3BucketNotificationConfigurationFilter(v *types.AwsS3BucketNotificationConfigurationFilter, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.S3KeyFilter != nil { + ok := object.Key("S3KeyFilter") + if err := awsRestjson1_serializeDocumentAwsS3BucketNotificationConfigurationS3KeyFilter(v.S3KeyFilter, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsS3BucketNotificationConfigurationS3KeyFilter(v *types.AwsS3BucketNotificationConfigurationS3KeyFilter, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.FilterRules != nil { + ok := object.Key("FilterRules") + if err := awsRestjson1_serializeDocumentAwsS3BucketNotificationConfigurationS3KeyFilterRules(v.FilterRules, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsS3BucketNotificationConfigurationS3KeyFilterRule(v *types.AwsS3BucketNotificationConfigurationS3KeyFilterRule, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.Name) > 0 { + ok := object.Key("Name") + ok.String(string(v.Name)) + } + + if v.Value != nil { + ok := object.Key("Value") + ok.String(*v.Value) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsS3BucketNotificationConfigurationS3KeyFilterRules(v []types.AwsS3BucketNotificationConfigurationS3KeyFilterRule, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentAwsS3BucketNotificationConfigurationS3KeyFilterRule(&v[i], av); err != nil { + return err + } + } + return nil +} + func awsRestjson1_serializeDocumentAwsS3BucketServerSideEncryptionByDefault(v *types.AwsS3BucketServerSideEncryptionByDefault, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -12826,6 +13547,137 @@ func awsRestjson1_serializeDocumentAwsS3BucketServerSideEncryptionRules(v []type return nil } +func awsRestjson1_serializeDocumentAwsS3BucketWebsiteConfiguration(v *types.AwsS3BucketWebsiteConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ErrorDocument != nil { + ok := object.Key("ErrorDocument") + ok.String(*v.ErrorDocument) + } + + if v.IndexDocumentSuffix != nil { + ok := object.Key("IndexDocumentSuffix") + ok.String(*v.IndexDocumentSuffix) + } + + if v.RedirectAllRequestsTo != nil { + ok := object.Key("RedirectAllRequestsTo") + if err := awsRestjson1_serializeDocumentAwsS3BucketWebsiteConfigurationRedirectTo(v.RedirectAllRequestsTo, ok); err != nil { + return err + } + } + + if v.RoutingRules != nil { + ok := object.Key("RoutingRules") + if err := awsRestjson1_serializeDocumentAwsS3BucketWebsiteConfigurationRoutingRules(v.RoutingRules, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsS3BucketWebsiteConfigurationRedirectTo(v *types.AwsS3BucketWebsiteConfigurationRedirectTo, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Hostname != nil { + ok := object.Key("Hostname") + ok.String(*v.Hostname) + } + + if v.Protocol != nil { + ok := object.Key("Protocol") + ok.String(*v.Protocol) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsS3BucketWebsiteConfigurationRoutingRule(v *types.AwsS3BucketWebsiteConfigurationRoutingRule, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Condition != nil { + ok := object.Key("Condition") + if err := awsRestjson1_serializeDocumentAwsS3BucketWebsiteConfigurationRoutingRuleCondition(v.Condition, ok); err != nil { + return err + } + } + + if v.Redirect != nil { + ok := object.Key("Redirect") + if err := awsRestjson1_serializeDocumentAwsS3BucketWebsiteConfigurationRoutingRuleRedirect(v.Redirect, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsS3BucketWebsiteConfigurationRoutingRuleCondition(v *types.AwsS3BucketWebsiteConfigurationRoutingRuleCondition, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.HttpErrorCodeReturnedEquals != nil { + ok := object.Key("HttpErrorCodeReturnedEquals") + ok.String(*v.HttpErrorCodeReturnedEquals) + } + + if v.KeyPrefixEquals != nil { + ok := object.Key("KeyPrefixEquals") + ok.String(*v.KeyPrefixEquals) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsS3BucketWebsiteConfigurationRoutingRuleRedirect(v *types.AwsS3BucketWebsiteConfigurationRoutingRuleRedirect, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Hostname != nil { + ok := object.Key("Hostname") + ok.String(*v.Hostname) + } + + if v.HttpRedirectCode != nil { + ok := object.Key("HttpRedirectCode") + ok.String(*v.HttpRedirectCode) + } + + if v.Protocol != nil { + ok := object.Key("Protocol") + ok.String(*v.Protocol) + } + + if v.ReplaceKeyPrefixWith != nil { + ok := object.Key("ReplaceKeyPrefixWith") + ok.String(*v.ReplaceKeyPrefixWith) + } + + if v.ReplaceKeyWith != nil { + ok := object.Key("ReplaceKeyWith") + ok.String(*v.ReplaceKeyWith) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsS3BucketWebsiteConfigurationRoutingRules(v []types.AwsS3BucketWebsiteConfigurationRoutingRule, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentAwsS3BucketWebsiteConfigurationRoutingRule(&v[i], av); err != nil { + return err + } + } + return nil +} + func awsRestjson1_serializeDocumentAwsS3ObjectDetails(v *types.AwsS3ObjectDetails, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -14450,6 +15302,13 @@ func awsRestjson1_serializeDocumentCvss(v *types.Cvss, value smithyjson.Value) e object := value.Object() defer object.Close() + if v.Adjustments != nil { + ok := object.Key("Adjustments") + if err := awsRestjson1_serializeDocumentAdjustmentList(v.Adjustments, ok); err != nil { + return err + } + } + if v.BaseScore != 0 { ok := object.Key("BaseScore") switch { @@ -14473,6 +15332,11 @@ func awsRestjson1_serializeDocumentCvss(v *types.Cvss, value smithyjson.Value) e ok.String(*v.BaseVector) } + if v.Source != nil { + ok := object.Key("Source") + ok.String(*v.Source) + } + if v.Version != nil { ok := object.Key("Version") ok.String(*v.Version) @@ -14715,6 +15579,17 @@ func awsRestjson1_serializeDocumentIcmpTypeCode(v *types.IcmpTypeCode, value smi return nil } +func awsRestjson1_serializeDocumentIntegerList(v []int32, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.Integer(v[i]) + } + return nil +} + func awsRestjson1_serializeDocumentIpFilter(v *types.IpFilter, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -15762,6 +16637,13 @@ func awsRestjson1_serializeDocumentResourceDetails(v *types.ResourceDetails, val } } + if v.AwsAutoScalingLaunchConfiguration != nil { + ok := object.Key("AwsAutoScalingLaunchConfiguration") + if err := awsRestjson1_serializeDocumentAwsAutoScalingLaunchConfigurationDetails(v.AwsAutoScalingLaunchConfiguration, ok); err != nil { + return err + } + } + if v.AwsCertificateManagerCertificate != nil { ok := object.Key("AwsCertificateManagerCertificate") if err := awsRestjson1_serializeDocumentAwsCertificateManagerCertificateDetails(v.AwsCertificateManagerCertificate, ok); err != nil { @@ -15853,6 +16735,20 @@ func awsRestjson1_serializeDocumentResourceDetails(v *types.ResourceDetails, val } } + if v.AwsEc2VpnConnection != nil { + ok := object.Key("AwsEc2VpnConnection") + if err := awsRestjson1_serializeDocumentAwsEc2VpnConnectionDetails(v.AwsEc2VpnConnection, ok); err != nil { + return err + } + } + + if v.AwsEcrContainerImage != nil { + ok := object.Key("AwsEcrContainerImage") + if err := awsRestjson1_serializeDocumentAwsEcrContainerImageDetails(v.AwsEcrContainerImage, ok); err != nil { + return err + } + } + if v.AwsEcsCluster != nil { ok := object.Key("AwsEcsCluster") if err := awsRestjson1_serializeDocumentAwsEcsClusterDetails(v.AwsEcsCluster, ok); err != nil { @@ -16260,11 +17156,21 @@ func awsRestjson1_serializeDocumentSoftwarePackage(v *types.SoftwarePackage, val ok.String(*v.Epoch) } + if v.FilePath != nil { + ok := object.Key("FilePath") + ok.String(*v.FilePath) + } + if v.Name != nil { ok := object.Key("Name") ok.String(*v.Name) } + if v.PackageManager != nil { + ok := object.Key("PackageManager") + ok.String(*v.PackageManager) + } + if v.Release != nil { ok := object.Key("Release") ok.String(*v.Release) diff --git a/service/securityhub/types/enums.go b/service/securityhub/types/enums.go index 83f7cfd2f7b..d513139ee86 100644 --- a/service/securityhub/types/enums.go +++ b/service/securityhub/types/enums.go @@ -38,6 +38,25 @@ func (AwsIamAccessKeyStatus) Values() []AwsIamAccessKeyStatus { } } +type AwsS3BucketNotificationConfigurationS3KeyFilterRuleName string + +// Enum values for AwsS3BucketNotificationConfigurationS3KeyFilterRuleName +const ( + AwsS3BucketNotificationConfigurationS3KeyFilterRuleNamePrefix AwsS3BucketNotificationConfigurationS3KeyFilterRuleName = "Prefix" + AwsS3BucketNotificationConfigurationS3KeyFilterRuleNameSuffix AwsS3BucketNotificationConfigurationS3KeyFilterRuleName = "Suffix" +) + +// Values returns all known values for +// AwsS3BucketNotificationConfigurationS3KeyFilterRuleName. Note that this can be +// expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (AwsS3BucketNotificationConfigurationS3KeyFilterRuleName) Values() []AwsS3BucketNotificationConfigurationS3KeyFilterRuleName { + return []AwsS3BucketNotificationConfigurationS3KeyFilterRuleName{ + "Prefix", + "Suffix", + } +} + type ComplianceStatus string // Enum values for ComplianceStatus diff --git a/service/securityhub/types/types.go b/service/securityhub/types/types.go index b26067026f4..c71b7c2aabe 100644 --- a/service/securityhub/types/types.go +++ b/service/securityhub/types/types.go @@ -147,6 +147,18 @@ type ActionTarget struct { noSmithyDocumentSerde } +// An adjustment to the CVSS metric. +type Adjustment struct { + + // The metric to adjust. + Metric *string + + // The reason for the adjustment. + Reason *string + + noSmithyDocumentSerde +} + // Represents a Security Hub administrator account designated by an organization // management account. type AdminAccount struct { @@ -588,6 +600,152 @@ type AwsAutoScalingAutoScalingGroupDetails struct { noSmithyDocumentSerde } +// A block device for the instance. +type AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails struct { + + // The device name that is exposed to the EC2 instance. For example, /dev/sdh or + // xvdh. + DeviceName *string + + // Parameters that are used to automatically set up Amazon EBS volumes when an + // instance is launched. + Ebs *AwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails + + // Whether to suppress the device that is included in the block device mapping of + // the Amazon Machine Image (AMI). If NoDevice is true, then you cannot specify + // Ebs.> + NoDevice bool + + // The name of the virtual device (for example, ephemeral0). You can provide either + // VirtualName or Ebs, but not both. + VirtualName *string + + noSmithyDocumentSerde +} + +// Parameters that are used to automatically set up EBS volumes when an instance is +// launched. +type AwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails struct { + + // Whether to delete the volume when the instance is terminated. + DeleteOnTermination bool + + // Whether to encrypt the volume. + Encrypted bool + + // The number of input/output (I/O) operations per second (IOPS) to provision for + // the volume. Only supported for gp3 or io1 volumes. Required for io1 volumes. Not + // used with standard, gp2, st1, or sc1 volumes. + Iops int32 + + // The snapshot ID of the volume to use. You must specify either VolumeSize or + // SnapshotId. + SnapshotId *string + + // The volume size, in GiBs. The following are the supported volumes sizes for each + // volume type: + // + // * gp2 and gp3: 1-16,384 + // + // * io1: 4-16,384 + // + // * st1 and sc1: + // 125-16,384 + // + // * standard: 1-1,024 + // + // You must specify either SnapshotId or + // VolumeSize. If you specify both SnapshotId and VolumeSize, the volume size must + // be equal or greater than the size of the snapshot. + VolumeSize int32 + + // The volume type. + VolumeType *string + + noSmithyDocumentSerde +} + +// Details about a launch configuration. +type AwsAutoScalingLaunchConfigurationDetails struct { + + // For Auto Scaling groups that run in a VPC, specifies whether to assign a public + // IP address to the group's instances. + AssociatePublicIpAddress bool + + // Specifies the block devices for the instance. + BlockDeviceMappings []AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails + + // The identifier of a ClassicLink-enabled VPC that EC2-Classic instances are + // linked to. + ClassicLinkVpcId *string + + // The identifiers of one or more security groups for the VPC that is specified in + // ClassicLinkVPCId. + ClassicLinkVpcSecurityGroups []string + + // The creation date and time for the launch configuration. Uses the date-time + // format specified in RFC 3339 section 5.6, Internet Date/Time Format + // (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot contain + // spaces. For example, 2020-03-22T13:22:13.933Z. + CreatedTime *string + + // Whether the launch configuration is optimized for Amazon EBS I/O. + EbsOptimized bool + + // The name or the ARN of the instance profile associated with the IAM role for the + // instance. The instance profile contains the IAM role. + IamInstanceProfile *string + + // The identifier of the Amazon Machine Image (AMI) that is used to launch EC2 + // instances. + ImageId *string + + // Indicates the type of monitoring for instances in the group. + InstanceMonitoring *AwsAutoScalingLaunchConfigurationInstanceMonitoringDetails + + // The instance type for the instances. + InstanceType *string + + // The identifier of the kernel associated with the AMI. + KernelId *string + + // The name of the key pair. + KeyName *string + + // The name of the launch configuration. + LaunchConfigurationName *string + + // The tenancy of the instance. An instance with dedicated tenancy runs on + // isolated, single-tenant hardware and can only be launched into a VPC. + PlacementTenancy *string + + // The identifier of the RAM disk associated with the AMI. + RamdiskId *string + + // The security groups to assign to the instances in the Auto Scaling group. + SecurityGroups []string + + // The maximum hourly price to be paid for any Spot Instance that is launched to + // fulfill the request. + SpotPrice *string + + // The user data to make available to the launched EC2 instances. Must be + // base64-encoded text. + UserData *string + + noSmithyDocumentSerde +} + +// Information about the type of monitoring for instances in the group. +type AwsAutoScalingLaunchConfigurationInstanceMonitoringDetails struct { + + // If set to true, then instances in the group launch with detailed monitoring. If + // set to false, then instances in the group launch with basic monitoring. + Enabled bool + + noSmithyDocumentSerde +} + // Provides details about an Certificate Manager certificate. type AwsCertificateManagerCertificateDetails struct { @@ -1072,9 +1230,9 @@ type AwsCloudTrailTrailDetails struct { // Information about an CodeBuild project. type AwsCodeBuildProjectDetails struct { - // The KMS customer master key (CMK) used to encrypt the build output artifacts. - // You can specify either the ARN of the CMK or, if available, the CMK alias (using - // the format alias/alias-name). + // The KMS key used to encrypt the build output artifacts. You can specify either + // the ARN of the KMS key or, if available, the KMS key alias (using the format + // alias/alias-name). EncryptionKey *string // Information about the build environment for this build project. @@ -1482,8 +1640,8 @@ type AwsDynamoDbTableReplica struct { // List of global secondary indexes for the replica. GlobalSecondaryIndexes []AwsDynamoDbTableReplicaGlobalSecondaryIndex - // The identifier of the KMS customer master key (CMK) that will be used for KMS - // encryption for the replica. + // The identifier of the KMS key that will be used for KMS encryption for the + // replica. KmsMasterKeyId *string // Replica-specific configuration for the provisioned throughput. @@ -1544,8 +1702,7 @@ type AwsDynamoDbTableSseDescription struct { // spaces. For example, 2020-03-22T13:22:13.933Z. InaccessibleEncryptionDateTime *string - // The ARN of the KMS customer master key (CMK) that is used for the KMS - // encryption. + // The ARN of the KMS key that is used for the KMS encryption. KmsMasterKeyArn *string // The type of server-side encryption. @@ -2030,8 +2187,8 @@ type AwsEc2VolumeDetails struct { // Whether the volume is encrypted. Encrypted bool - // The ARN of the KMS customer master key (CMK) that was used to protect the volume - // encryption key for the volume. + // The ARN of the KMS key that was used to protect the volume encryption key for + // the volume. KmsKeyId *string // The size of the volume, in GiBs. @@ -2066,6 +2223,193 @@ type AwsEc2VpcDetails struct { noSmithyDocumentSerde } +// Details about an Amazon EC2 VPN connection. +type AwsEc2VpnConnectionDetails struct { + + // The category of the VPN connection. VPN indicates an Amazon Web Services VPN + // connection. VPN-Classic indicates an Amazon Web Services Classic VPN connection. + Category *string + + // The configuration information for the VPN connection's customer gateway, in the + // native XML format. + CustomerGatewayConfiguration *string + + // The identifier of the customer gateway that is at your end of the VPN + // connection. + CustomerGatewayId *string + + // The VPN connection options. + Options *AwsEc2VpnConnectionOptionsDetails + + // The static routes that are associated with the VPN connection. + Routes []AwsEc2VpnConnectionRoutesDetails + + // The current state of the VPN connection. + State *string + + // The identifier of the transit gateway that is associated with the VPN + // connection. + TransitGatewayId *string + + // The type of VPN connection. + Type *string + + // Information about the VPN tunnel. + VgwTelemetry []AwsEc2VpnConnectionVgwTelemetryDetails + + // The identifier of the VPN connection. + VpnConnectionId *string + + // The identifier of the virtual private gateway that is at the Amazon Web Services + // side of the VPN connection. + VpnGatewayId *string + + noSmithyDocumentSerde +} + +// VPN connection options. +type AwsEc2VpnConnectionOptionsDetails struct { + + // Whether the VPN connection uses static routes only. + StaticRoutesOnly bool + + // The VPN tunnel options. + TunnelOptions []AwsEc2VpnConnectionOptionsTunnelOptionsDetails + + noSmithyDocumentSerde +} + +// The VPN tunnel options. +type AwsEc2VpnConnectionOptionsTunnelOptionsDetails struct { + + // The number of seconds after which a Dead Peer Detection (DPD) timeout occurs. + DpdTimeoutSeconds int32 + + // The Internet Key Exchange (IKE) versions that are permitted for the VPN tunnel. + IkeVersions []string + + // The external IP address of the VPN tunnel. + OutsideIpAddress *string + + // The permitted Diffie-Hellman group numbers for the VPN tunnel for phase 1 IKE + // negotiations. + Phase1DhGroupNumbers []int32 + + // The permitted encryption algorithms for the VPN tunnel for phase 1 IKE + // negotiations. + Phase1EncryptionAlgorithms []string + + // The permitted integrity algorithms for the VPN tunnel for phase 1 IKE + // negotiations. + Phase1IntegrityAlgorithms []string + + // The lifetime for phase 1 of the IKE negotiation, in seconds. + Phase1LifetimeSeconds int32 + + // The permitted Diffie-Hellman group numbers for the VPN tunnel for phase 2 IKE + // negotiations. + Phase2DhGroupNumbers []int32 + + // The permitted encryption algorithms for the VPN tunnel for phase 2 IKE + // negotiations. + Phase2EncryptionAlgorithms []string + + // The permitted integrity algorithms for the VPN tunnel for phase 2 IKE + // negotiations. + Phase2IntegrityAlgorithms []string + + // The lifetime for phase 2 of the IKE negotiation, in seconds. + Phase2LifetimeSeconds int32 + + // The preshared key to establish initial authentication between the virtual + // private gateway and the customer gateway. + PreSharedKey *string + + // The percentage of the rekey window, which is determined by + // RekeyMarginTimeSeconds during which the rekey time is randomly selected. + RekeyFuzzPercentage int32 + + // The margin time, in seconds, before the phase 2 lifetime expires, during which + // the Amazon Web Services side of the VPN connection performs an IKE rekey. + RekeyMarginTimeSeconds int32 + + // The number of packets in an IKE replay window. + ReplayWindowSize int32 + + // The range of inside IPv4 addresses for the tunnel. + TunnelInsideCidr *string + + noSmithyDocumentSerde +} + +// A static routes associated with the VPN connection. +type AwsEc2VpnConnectionRoutesDetails struct { + + // The CIDR block associated with the local subnet of the customer data center. + DestinationCidrBlock *string + + // The current state of the static route. + State *string + + noSmithyDocumentSerde +} + +// Information about the VPN tunnel. +type AwsEc2VpnConnectionVgwTelemetryDetails struct { + + // The number of accepted routes. + AcceptedRouteCount int32 + + // The ARN of the VPN tunnel endpoint certificate. + CertificateArn *string + + // The date and time of the last change in status. Uses the date-time format + // specified in RFC 3339 section 5.6, Internet Date/Time Format + // (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot contain + // spaces. For example, 2020-03-22T13:22:13.933Z. + LastStatusChange *string + + // The Internet-routable IP address of the virtual private gateway's outside + // interface. + OutsideIpAddress *string + + // The status of the VPN tunnel. + Status *string + + // If an error occurs, a description of the error. + StatusMessage *string + + noSmithyDocumentSerde +} + +// Information about an Amazon ECR image. +type AwsEcrContainerImageDetails struct { + + // The architecture of the image. + Architecture *string + + // The sha256 digest of the image manifest. + ImageDigest *string + + // The date and time when the image was pushed to the repository. Uses the + // date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format + // (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot contain + // spaces. For example, 2020-03-22T13:22:13.933Z. + ImagePublishedAt *string + + // The list of tags that are associated with the image. + ImageTags []string + + // The Amazon Web Services account identifier that is associated with the registry + // that the image belongs to. + RegistryId *string + + // The name of the repository that the image belongs to. + RepositoryName *string + + noSmithyDocumentSerde +} + // Indicates whether to enable CloudWatch Container Insights for the ECS cluster. type AwsEcsClusterClusterSettingsDetails struct { @@ -4123,15 +4467,15 @@ type AwsIamUserPolicy struct { noSmithyDocumentSerde } -// Contains metadata about a customer master key (CMK). +// Contains metadata about an KMS key. type AwsKmsKeyDetails struct { - // The twelve-digit account ID of the Amazon Web Services account that owns the - // CMK. + // The twelve-digit account ID of the Amazon Web Services account that owns the KMS + // key. AWSAccountId *string - // Indicates when the CMK was created. Uses the date-time format specified in RFC - // 3339 section 5.6, Internet Date/Time Format + // Indicates when the KMS key was created. Uses the date-time format specified in + // RFC 3339 section 5.6, Internet Date/Time Format // (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot contain // spaces. For example, 2020-03-22T13:22:13.933Z. CreationDate float64 @@ -4139,19 +4483,22 @@ type AwsKmsKeyDetails struct { // A description of the key. Description *string - // The globally unique identifier for the CMK. + // The globally unique identifier for the KMS key. KeyId *string - // The manager of the CMK. CMKs in your Amazon Web Services account are either - // customer managed or Amazon Web Services managed. + // The manager of the KMS key. KMS keys in your Amazon Web Services account are + // either customer managed or Amazon Web Services managed. KeyManager *string - // The state of the CMK. + // Whether the key has key rotation enabled. + KeyRotationStatus bool + + // The state of the KMS key. KeyState *string - // The source of the CMK's key material. When this value is AWS_KMS, KMS created - // the key material. When this value is EXTERNAL, the key material was imported - // from your existing key management infrastructure or the CMK lacks key material. + // The source of the KMS key material. When this value is AWS_KMS, KMS created the + // key material. When this value is EXTERNAL, the key material was imported from + // your existing key management infrastructure or the KMS key lacks key material. // When this value is AWS_CLOUDHSM, the key material was created in the CloudHSM // cluster associated with a custom key store. Origin *string @@ -4211,7 +4558,8 @@ type AwsLambdaFunctionDetails struct { Handler *string // The KMS key that is used to encrypt the function's environment variables. This - // key is only returned if you've configured a customer managed CMK. + // key is only returned if you've configured a customer managed customer managed + // key. KmsKeyArn *string // Indicates when the function was last updated. Uses the date-time format @@ -5817,9 +6165,21 @@ type AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails struct { // The details of an Amazon S3 bucket. type AwsS3BucketDetails struct { + // The access control list for the S3 bucket. + AccessControlList *string + // The lifecycle configuration for objects in the S3 bucket. BucketLifecycleConfiguration *AwsS3BucketBucketLifecycleConfigurationDetails + // The logging configuration for the S3 bucket. + BucketLoggingConfiguration *AwsS3BucketLoggingConfiguration + + // The notification configuration for the S3 bucket. + BucketNotificationConfiguration *AwsS3BucketNotificationConfiguration + + // The website configuration parameters for the S3 bucket. + BucketWebsiteConfiguration *AwsS3BucketWebsiteConfiguration + // Indicates when the S3 bucket was created. Uses the date-time format specified in // RFC 3339 section 5.6, Internet Date/Time Format // (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot contain @@ -5842,11 +6202,84 @@ type AwsS3BucketDetails struct { noSmithyDocumentSerde } +// Information about logging for the S3 bucket +type AwsS3BucketLoggingConfiguration struct { + + // The name of the S3 bucket where log files for the S3 bucket are stored. + DestinationBucketName *string + + // The prefix added to log files for the S3 bucket. + LogFilePrefix *string + + noSmithyDocumentSerde +} + +// The notification configuration for the S3 bucket. +type AwsS3BucketNotificationConfiguration struct { + + // Configurations for S3 bucket notifications. + Configurations []AwsS3BucketNotificationConfigurationDetail + + noSmithyDocumentSerde +} + +// Details for an S3 bucket notification configuration. +type AwsS3BucketNotificationConfigurationDetail struct { + + // The ARN of the Lambda function, Amazon SQS queue, or Amazon SNS topic that + // generates the notification. + Destination *string + + // The list of events that trigger a notification. + Events []string + + // The filters that determine which S3 buckets generate notifications. + Filter *AwsS3BucketNotificationConfigurationFilter + + // Indicates the type of notification. Notifications can be generated using Lambda + // functions, Amazon SQS queues or Amazon SNS topics. + Type *string + + noSmithyDocumentSerde +} + +// Filtering information for the notifications. The filtering is based on Amazon S3 +// key names. +type AwsS3BucketNotificationConfigurationFilter struct { + + // Details for an Amazon S3 filter. + S3KeyFilter *AwsS3BucketNotificationConfigurationS3KeyFilter + + noSmithyDocumentSerde +} + +// Details for an Amazon S3 filter. +type AwsS3BucketNotificationConfigurationS3KeyFilter struct { + + // The filter rules for the filter. + FilterRules []AwsS3BucketNotificationConfigurationS3KeyFilterRule + + noSmithyDocumentSerde +} + +// Details for a filter rule. +type AwsS3BucketNotificationConfigurationS3KeyFilterRule struct { + + // Indicates whether the filter is based on the prefix or suffix of the Amazon S3 + // key. + Name AwsS3BucketNotificationConfigurationS3KeyFilterRuleName + + // The filter value. + Value *string + + noSmithyDocumentSerde +} + // Specifies the default server-side encryption to apply to new objects in the // bucket. type AwsS3BucketServerSideEncryptionByDefault struct { - // KMS customer master key (CMK) ID to use for the default encryption. + // KMS key ID to use for the default encryption. KMSMasterKeyID *string // Server-side encryption algorithm to use for the default encryption. @@ -5875,6 +6308,85 @@ type AwsS3BucketServerSideEncryptionRule struct { noSmithyDocumentSerde } +// Website parameters for the S3 bucket. +type AwsS3BucketWebsiteConfiguration struct { + + // The name of the error document for the website. + ErrorDocument *string + + // The name of the index document for the website. + IndexDocumentSuffix *string + + // The redirect behavior for requests to the website. + RedirectAllRequestsTo *AwsS3BucketWebsiteConfigurationRedirectTo + + // The rules for applying redirects for requests to the website. + RoutingRules []AwsS3BucketWebsiteConfigurationRoutingRule + + noSmithyDocumentSerde +} + +// The redirect behavior for requests to the website. +type AwsS3BucketWebsiteConfigurationRedirectTo struct { + + // The name of the host to redirect requests to. + Hostname *string + + // The protocol to use when redirecting requests. By default, uses the same + // protocol as the original request. + Protocol *string + + noSmithyDocumentSerde +} + +// A rule for redirecting requests to the website. +type AwsS3BucketWebsiteConfigurationRoutingRule struct { + + // Provides the condition that must be met in order to apply the routing rule. + Condition *AwsS3BucketWebsiteConfigurationRoutingRuleCondition + + // Provides the rules to redirect the request if the condition in Condition is met. + Redirect *AwsS3BucketWebsiteConfigurationRoutingRuleRedirect + + noSmithyDocumentSerde +} + +// The condition that must be met in order to apply the routing rule. +type AwsS3BucketWebsiteConfigurationRoutingRuleCondition struct { + + // Indicates to redirect the request if the HTTP error code matches this value. + HttpErrorCodeReturnedEquals *string + + // Indicates to redirect the request if the key prefix matches this value. + KeyPrefixEquals *string + + noSmithyDocumentSerde +} + +// The rules to redirect the request if the condition in Condition is met. +type AwsS3BucketWebsiteConfigurationRoutingRuleRedirect struct { + + // The host name to use in the redirect request. + Hostname *string + + // The HTTP redirect code to use in the response. + HttpRedirectCode *string + + // The protocol to use to redirect the request. By default, uses the protocol from + // the original request. + Protocol *string + + // The object key prefix to use in the redirect request. Cannot be provided if + // ReplaceKeyWith is present. + ReplaceKeyPrefixWith *string + + // The specific object key to use in the redirect request. Cannot be provided if + // ReplaceKeyPrefixWith is present. + ReplaceKeyWith *string + + noSmithyDocumentSerde +} + // Details about an Amazon S3 object. type AwsS3ObjectDetails struct { @@ -5891,8 +6403,8 @@ type AwsS3ObjectDetails struct { // spaces. For example, 2020-03-22T13:22:13.933Z. LastModified *string - // The identifier of the KMS symmetric customer managed customer master key (CMK) - // that was used for the object. + // The identifier of the KMS symmetric customer managed key that was used for the + // object. SSEKMSKeyId *string // If the object is stored using server-side encryption, the value of the @@ -5914,8 +6426,8 @@ type AwsSecretsManagerSecretDetails struct { // The user-provided description of the secret. Description *string - // The ARN, Key ID, or alias of the KMS customer master key (CMK) used to encrypt - // the SecretString or SecretBinary values for versions of this secret. + // The ARN, Key ID, or alias of the KMS key used to encrypt the SecretString or + // SecretBinary values for versions of this secret. KmsKeyId *string // The name of the secret. @@ -6096,7 +6608,7 @@ type AwsSecurityFinding struct { // BatchImportFindings or BatchUpdateFindings. The exception to this is when you // use a custom integration. When you use the Security Hub console to filter // findings by product name, you use this attribute. When you use the Security Hub - // API to filter findings by product name, you use the aws/securityhub/ProductyName + // API to filter findings by product name, you use the aws/securityhub/ProductName // attribute under ProductFields. Security Hub does not synchronize those two // attributes. ProductName *string @@ -6540,8 +7052,8 @@ type AwsSecurityFindingIdentifier struct { // A wrapper type for the topic's ARN. type AwsSnsTopicDetails struct { - // The ID of an Amazon Web Services managed customer master key (CMK) for Amazon - // SNS or a custom CMK. + // The ID of an Amazon Web Services managed key for Amazon SNS or a customer + // managed key. KmsMasterKeyId *string // The subscription's owner. @@ -6580,8 +7092,7 @@ type AwsSqsQueueDetails struct { // encrypt or decrypt messages before calling KMS again. KmsDataKeyReusePeriodSeconds int32 - // The ID of an Amazon Web Services managed customer master key (CMK) for Amazon - // SQS or a custom CMK. + // The ID of an Amazon Web Services managed key for Amazon SQS or a custom KMS key. KmsMasterKeyId *string // The name of the new queue. @@ -6958,12 +7469,18 @@ type CustomDataIdentifiersResult struct { // CVSS scores from the advisory related to the vulnerability. type Cvss struct { + // Adjustments to the CVSS metrics. + Adjustments []Adjustment + // The base CVSS score. BaseScore float64 // The base scoring vector for the CVSS score. BaseVector *string + // The origin of the original CVSS score and vector. + Source *string + // The version of CVSS for the CVSS score. Version *string @@ -7770,8 +8287,8 @@ type Product struct { // For integrations with Amazon Web Services services, the Amazon Web Services // Console URL from which to activate the service. For integrations with - // third-party products, the Marketplace URL from which to subscribe to or purchase - // the product. + // third-party products, the Amazon Web Services Marketplace URL from which to + // subscribe to or purchase the product. MarketplaceUrl *string // The name of the product. @@ -7920,6 +8437,9 @@ type ResourceDetails struct { // Details for an autoscaling group. AwsAutoScalingAutoScalingGroup *AwsAutoScalingAutoScalingGroupDetails + // Provides details about a launch configuration. + AwsAutoScalingLaunchConfiguration *AwsAutoScalingLaunchConfigurationDetails + // Provides details about an Certificate Manager certificate. AwsCertificateManagerCertificate *AwsCertificateManagerCertificateDetails @@ -7959,6 +8479,12 @@ type ResourceDetails struct { // Details for an EC2 VPC. AwsEc2Vpc *AwsEc2VpcDetails + // Details about an EC2 VPN connection. + AwsEc2VpnConnection *AwsEc2VpnConnectionDetails + + // information about an Amazon ECR image. + AwsEcrContainerImage *AwsEcrContainerImageDetails + // Details about an ECS cluster. AwsEcsCluster *AwsEcsClusterDetails @@ -7975,7 +8501,7 @@ type ResourceDetails struct { // Details for an Elasticsearch domain. AwsElasticsearchDomain *AwsElasticsearchDomainDetails - // contains details about a Classic Load Balancer. + // Contains details about a Classic Load Balancer. AwsElbLoadBalancer *AwsElbLoadBalancerDetails // Details about a load balancer. @@ -8233,9 +8759,15 @@ type SoftwarePackage struct { // The epoch of the software package. Epoch *string + // The file system path to the package manager inventory file. + FilePath *string + // The name of the software package. Name *string + // The source of the package. + PackageManager *string + // The release of the software package. Release *string @@ -8585,7 +9117,10 @@ type WafOverrideAction struct { // Provides information about the status of the investigation into a finding. type Workflow struct { - // The status of the investigation into the finding. The allowed values are the + // The status of the investigation into the finding. The workflow status is + // specific to an individual finding. It does not affect the generation of new + // findings. For example, setting the workflow status to SUPPRESSED or RESOLVED + // does not prevent a new finding for the same issue. The allowed values are the // following. // // * NEW - The initial state of a finding, before it is reviewed. @@ -8602,11 +9137,12 @@ type Workflow struct { // about the security issue. Used when the initial reviewer is not the resource // owner, and needs intervention from the resource owner. // - // * SUPPRESSED - The - // finding will not be reviewed again and will not be acted upon. + // * SUPPRESSED - Indicates + // that you reviewed the finding and do not believe that any action is needed. The + // finding is no longer updated. // - // * RESOLVED - The - // finding was reviewed and remediated and is now considered resolved. + // * RESOLVED - The finding was reviewed and + // remediated and is now considered resolved. Status WorkflowStatus noSmithyDocumentSerde @@ -8615,7 +9151,10 @@ type Workflow struct { // Used to update information about the investigation into the finding. type WorkflowUpdate struct { - // The status of the investigation into the finding. The allowed values are the + // The status of the investigation into the finding. The workflow status is + // specific to an individual finding. It does not affect the generation of new + // findings. For example, setting the workflow status to SUPPRESSED or RESOLVED + // does not prevent a new finding for the same issue. The allowed values are the // following. // // * NEW - The initial state of a finding, before it is reviewed. @@ -8635,8 +9174,9 @@ type WorkflowUpdate struct { // * RESOLVED - The finding // was reviewed and remediated and is now considered resolved. // - // * SUPPRESSED - The - // finding will not be reviewed again and will not be acted upon. + // * SUPPRESSED - + // Indicates that you reviewed the finding and do not believe that any action is + // needed. The finding is no longer updated. Status WorkflowStatus noSmithyDocumentSerde diff --git a/service/servicecatalogappregistry/api_op_GetApplication.go b/service/servicecatalogappregistry/api_op_GetApplication.go index 87605761432..23310d36f92 100644 --- a/service/servicecatalogappregistry/api_op_GetApplication.go +++ b/service/servicecatalogappregistry/api_op_GetApplication.go @@ -6,6 +6,7 @@ import ( "context" awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/servicecatalogappregistry/types" "github.com/aws/smithy-go/middleware" smithyhttp "github.com/aws/smithy-go/transport/http" "time" @@ -59,6 +60,10 @@ type GetApplicationOutput struct { // The identifier of the application. Id *string + // The information about the integration of the application with other services, + // such as Resource Groups. + Integrations *types.Integrations + // The ISO-8601 formatted timestamp of the moment when the application was last // updated. LastUpdateTime *time.Time diff --git a/service/servicecatalogappregistry/api_op_GetAssociatedResource.go b/service/servicecatalogappregistry/api_op_GetAssociatedResource.go new file mode 100644 index 00000000000..e368e28e86d --- /dev/null +++ b/service/servicecatalogappregistry/api_op_GetAssociatedResource.go @@ -0,0 +1,131 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package servicecatalogappregistry + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/servicecatalogappregistry/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Gets the resource associated with the application. +func (c *Client) GetAssociatedResource(ctx context.Context, params *GetAssociatedResourceInput, optFns ...func(*Options)) (*GetAssociatedResourceOutput, error) { + if params == nil { + params = &GetAssociatedResourceInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GetAssociatedResource", params, optFns, c.addOperationGetAssociatedResourceMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GetAssociatedResourceOutput) + out.ResultMetadata = metadata + return out, nil +} + +type GetAssociatedResourceInput struct { + + // The name or ID of the application. + // + // This member is required. + Application *string + + // The name or ID of the resource associated with the application. + // + // This member is required. + Resource *string + + // The type of resource associated with the application. + // + // This member is required. + ResourceType types.ResourceType + + noSmithyDocumentSerde +} + +type GetAssociatedResourceOutput struct { + + // The resource associated with the application. + Resource *types.Resource + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGetAssociatedResourceMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpGetAssociatedResource{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpGetAssociatedResource{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpGetAssociatedResourceValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetAssociatedResource(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opGetAssociatedResource(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "servicecatalog", + OperationName: "GetAssociatedResource", + } +} diff --git a/service/servicecatalogappregistry/api_op_SyncResource.go b/service/servicecatalogappregistry/api_op_SyncResource.go index 6b1f90ace14..7b0b20d7d10 100644 --- a/service/servicecatalogappregistry/api_op_SyncResource.go +++ b/service/servicecatalogappregistry/api_op_SyncResource.go @@ -11,9 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Syncs the resource with what is currently recorded in App registry. -// Specifically, the resource’s App registry system tags are synced with its -// associated application. The resource is removed if it is not associated with the +// Syncs the resource with current AppRegistry records. Specifically, the +// resource’s AppRegistry system tags sync with its associated application. We +// remove the resource's AppRegistry system tags if it does not associate with the // application. The caller must have permissions to read and update the resource. func (c *Client) SyncResource(ctx context.Context, params *SyncResourceInput, optFns ...func(*Options)) (*SyncResourceOutput, error) { if params == nil { @@ -33,7 +33,8 @@ func (c *Client) SyncResource(ctx context.Context, params *SyncResourceInput, op type SyncResourceInput struct { // An entity you can work with and specify with a name or ID. Examples include an - // Amazon EC2 instance, an AWS CloudFormation stack, or an Amazon S3 bucket. + // Amazon EC2 instance, an Amazon Web Services CloudFormation stack, or an Amazon + // S3 bucket. // // This member is required. Resource *string diff --git a/service/servicecatalogappregistry/deserializers.go b/service/servicecatalogappregistry/deserializers.go index 1b19d8f5b0e..fd034e98ba2 100644 --- a/service/servicecatalogappregistry/deserializers.go +++ b/service/servicecatalogappregistry/deserializers.go @@ -1493,6 +1493,11 @@ func awsRestjson1_deserializeOpDocumentGetApplicationOutput(v **GetApplicationOu sv.Id = ptr.String(jtv) } + case "integrations": + if err := awsRestjson1_deserializeDocumentIntegrations(&sv.Integrations, value); err != nil { + return err + } + case "lastUpdateTime": if value != nil { jtv, ok := value.(string) @@ -1529,6 +1534,159 @@ func awsRestjson1_deserializeOpDocumentGetApplicationOutput(v **GetApplicationOu return nil } +type awsRestjson1_deserializeOpGetAssociatedResource struct { +} + +func (*awsRestjson1_deserializeOpGetAssociatedResource) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpGetAssociatedResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorGetAssociatedResource(response, &metadata) + } + output := &GetAssociatedResourceOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsRestjson1_deserializeOpDocumentGetAssociatedResourceOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorGetAssociatedResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsRestjson1_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentGetAssociatedResourceOutput(v **GetAssociatedResourceOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *GetAssociatedResourceOutput + if *v == nil { + sv = &GetAssociatedResourceOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "resource": + if err := awsRestjson1_deserializeDocumentResource(&sv.Resource, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + type awsRestjson1_deserializeOpGetAttributeGroup struct { } @@ -3916,6 +4074,42 @@ func awsRestjson1_deserializeDocumentConflictException(v **types.ConflictExcepti return nil } +func awsRestjson1_deserializeDocumentIntegrations(v **types.Integrations, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.Integrations + if *v == nil { + sv = &types.Integrations{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "resourceGroup": + if err := awsRestjson1_deserializeDocumentResourceGroup(&sv.ResourceGroup, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentInternalServerException(v **types.InternalServerException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -3956,6 +4150,131 @@ func awsRestjson1_deserializeDocumentInternalServerException(v **types.InternalS return nil } +func awsRestjson1_deserializeDocumentResource(v **types.Resource, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.Resource + if *v == nil { + sv = &types.Resource{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected StackArn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + case "associationTime": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Timestamp to be of type string, got %T instead", value) + } + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.AssociationTime = ptr.Time(t) + } + + case "integrations": + if err := awsRestjson1_deserializeDocumentResourceIntegrations(&sv.Integrations, value); err != nil { + return err + } + + case "name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceSpecifier to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentResourceGroup(v **types.ResourceGroup, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ResourceGroup + if *v == nil { + sv = &types.ResourceGroup{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + case "errorMessage": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.ErrorMessage = ptr.String(jtv) + } + + case "state": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceGroupState to be of type string, got %T instead", value) + } + sv.State = types.ResourceGroupState(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentResourceInfo(v **types.ResourceInfo, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -4005,6 +4324,42 @@ func awsRestjson1_deserializeDocumentResourceInfo(v **types.ResourceInfo, value return nil } +func awsRestjson1_deserializeDocumentResourceIntegrations(v **types.ResourceIntegrations, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ResourceIntegrations + if *v == nil { + sv = &types.ResourceIntegrations{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "resourceGroup": + if err := awsRestjson1_deserializeDocumentResourceGroup(&sv.ResourceGroup, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentResourceNotFoundException(v **types.ResourceNotFoundException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/servicecatalogappregistry/doc.go b/service/servicecatalogappregistry/doc.go index 448322bf5f7..2138ae675cd 100644 --- a/service/servicecatalogappregistry/doc.go +++ b/service/servicecatalogappregistry/doc.go @@ -3,8 +3,8 @@ // Package servicecatalogappregistry provides the API client, operations, and // parameter types for AWS Service Catalog App Registry. // -// AWS Service Catalog AppRegistry enables organizations to understand the -// application context of their AWS resources. AppRegistry provides a repository of -// your applications, their resources, and the application metadata that you use -// within your enterprise. +// Amazon Web Services Service Catalog AppRegistry enables organizations to +// understand the application context of their Amazon Web Services resources. +// AppRegistry provides a repository of your applications, their resources, and the +// application metadata that you use within your enterprise. package servicecatalogappregistry diff --git a/service/servicecatalogappregistry/generated.json b/service/servicecatalogappregistry/generated.json index c9ab5073733..5c307acaebc 100644 --- a/service/servicecatalogappregistry/generated.json +++ b/service/servicecatalogappregistry/generated.json @@ -14,6 +14,7 @@ "api_op_DisassociateAttributeGroup.go", "api_op_DisassociateResource.go", "api_op_GetApplication.go", + "api_op_GetAssociatedResource.go", "api_op_GetAttributeGroup.go", "api_op_ListApplications.go", "api_op_ListAssociatedAttributeGroups.go", diff --git a/service/servicecatalogappregistry/serializers.go b/service/servicecatalogappregistry/serializers.go index f761e02eb9e..32f03591343 100644 --- a/service/servicecatalogappregistry/serializers.go +++ b/service/servicecatalogappregistry/serializers.go @@ -648,6 +648,82 @@ func awsRestjson1_serializeOpHttpBindingsGetApplicationInput(v *GetApplicationIn return nil } +type awsRestjson1_serializeOpGetAssociatedResource struct { +} + +func (*awsRestjson1_serializeOpGetAssociatedResource) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpGetAssociatedResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*GetAssociatedResourceInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/applications/{application}/resources/{resourceType}/{resource}") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "GET" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsGetAssociatedResourceInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsGetAssociatedResourceInput(v *GetAssociatedResourceInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.Application == nil || len(*v.Application) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member application must not be empty")} + } + if v.Application != nil { + if err := encoder.SetURI("application").String(*v.Application); err != nil { + return err + } + } + + if v.Resource == nil || len(*v.Resource) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member resource must not be empty")} + } + if v.Resource != nil { + if err := encoder.SetURI("resource").String(*v.Resource); err != nil { + return err + } + } + + if len(v.ResourceType) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member resourceType must not be empty")} + } + if len(v.ResourceType) > 0 { + if err := encoder.SetURI("resourceType").String(string(v.ResourceType)); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpGetAttributeGroup struct { } diff --git a/service/servicecatalogappregistry/types/enums.go b/service/servicecatalogappregistry/types/enums.go index f0f7d0d977b..acd0a1f7b12 100644 --- a/service/servicecatalogappregistry/types/enums.go +++ b/service/servicecatalogappregistry/types/enums.go @@ -2,6 +2,32 @@ package types +type ResourceGroupState string + +// Enum values for ResourceGroupState +const ( + ResourceGroupStateCreating ResourceGroupState = "CREATING" + ResourceGroupStateCreateComplete ResourceGroupState = "CREATE_COMPLETE" + ResourceGroupStateCreateFailed ResourceGroupState = "CREATE_FAILED" + ResourceGroupStateUpdating ResourceGroupState = "UPDATING" + ResourceGroupStateUpdateComplete ResourceGroupState = "UPDATE_COMPLETE" + ResourceGroupStateUpdateFailed ResourceGroupState = "UPDATE_FAILED" +) + +// Values returns all known values for ResourceGroupState. Note that this can be +// expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (ResourceGroupState) Values() []ResourceGroupState { + return []ResourceGroupState{ + "CREATING", + "CREATE_COMPLETE", + "CREATE_FAILED", + "UPDATING", + "UPDATE_COMPLETE", + "UPDATE_FAILED", + } +} + type ResourceType string // Enum values for ResourceType diff --git a/service/servicecatalogappregistry/types/types.go b/service/servicecatalogappregistry/types/types.go index e45f883e43f..733ad6b0059 100644 --- a/service/servicecatalogappregistry/types/types.go +++ b/service/servicecatalogappregistry/types/types.go @@ -7,8 +7,8 @@ import ( "time" ) -// Represents a Service Catalog AppRegistry application that is the top-level node -// in a hierarchy of related cloud resource abstractions. +// Represents a Amazon Web Services Service Catalog AppRegistry application that is +// the top-level node in a hierarchy of related cloud resource abstractions. type Application struct { // The Amazon resource name (ARN) that specifies the application across services. @@ -37,7 +37,7 @@ type Application struct { noSmithyDocumentSerde } -// Summary of a Service Catalog AppRegistry application. +// Summary of a Amazon Web Services Service Catalog AppRegistry application. type ApplicationSummary struct { // The Amazon resource name (ARN) that specifies the application across services. @@ -63,8 +63,8 @@ type ApplicationSummary struct { noSmithyDocumentSerde } -// Represents a Service Catalog AppRegistry attribute group that is rich metadata -// which describes an application and its components. +// Represents a Amazon Web Services Service Catalog AppRegistry attribute group +// that is rich metadata which describes an application and its components. type AttributeGroup struct { // The Amazon resource name (ARN) that specifies the attribute group across @@ -94,7 +94,7 @@ type AttributeGroup struct { noSmithyDocumentSerde } -// Summary of a Service Catalog AppRegistry attribute group. +// Summary of a Amazon Web Services Service Catalog AppRegistry attribute group. type AttributeGroupSummary struct { // The Amazon resource name (ARN) that specifies the attribute group across @@ -121,7 +121,55 @@ type AttributeGroupSummary struct { noSmithyDocumentSerde } -// Information about the resource. +// The information about the service integration. +type Integrations struct { + + // The information about the resource group integration. + ResourceGroup *ResourceGroup + + noSmithyDocumentSerde +} + +// The information about the resource. +type Resource struct { + + // The Amazon resource name (ARN) of the resource. + Arn *string + + // The time the resource was associated with the application. + AssociationTime *time.Time + + // The service integration information about the resource. + Integrations *ResourceIntegrations + + // The name of the resource. + Name *string + + noSmithyDocumentSerde +} + +// The information about the resource group integration. +type ResourceGroup struct { + + // The Amazon resource name (ARN) of the resource group. + Arn *string + + // The error message that generates when the propagation process for the resource + // group fails. + ErrorMessage *string + + // The state of the propagation process for the resource group. The states + // includes: CREATING if the resource group is in the process of being created. + // CREATE_COMPLETE if the resource group was created successfully. CREATE_FAILED if + // the resource group failed to be created. UPDATING if the resource group is in + // the process of being updated. UPDATE_COMPLETE if the resource group updated + // successfully. UPDATE_FAILED if the resource group could not update successfully. + State ResourceGroupState + + noSmithyDocumentSerde +} + +// The information about the resource. type ResourceInfo struct { // The Amazon resource name (ARN) that specifies the resource across services. @@ -133,4 +181,13 @@ type ResourceInfo struct { noSmithyDocumentSerde } +// The service integration information about the resource. +type ResourceIntegrations struct { + + // The information about the integration of Resource Groups. + ResourceGroup *ResourceGroup + + noSmithyDocumentSerde +} + type noSmithyDocumentSerde = smithydocument.NoSerde diff --git a/service/servicecatalogappregistry/validators.go b/service/servicecatalogappregistry/validators.go index 4f8a647be6d..b172f691beb 100644 --- a/service/servicecatalogappregistry/validators.go +++ b/service/servicecatalogappregistry/validators.go @@ -189,6 +189,26 @@ func (m *validateOpGetApplication) HandleInitialize(ctx context.Context, in midd return next.HandleInitialize(ctx, in) } +type validateOpGetAssociatedResource struct { +} + +func (*validateOpGetAssociatedResource) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpGetAssociatedResource) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*GetAssociatedResourceInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpGetAssociatedResourceInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpGetAttributeGroup struct { } @@ -405,6 +425,10 @@ func addOpGetApplicationValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpGetApplication{}, middleware.After) } +func addOpGetAssociatedResourceValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpGetAssociatedResource{}, middleware.After) +} + func addOpGetAttributeGroupValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpGetAttributeGroup{}, middleware.After) } @@ -603,6 +627,27 @@ func validateOpGetApplicationInput(v *GetApplicationInput) error { } } +func validateOpGetAssociatedResourceInput(v *GetAssociatedResourceInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GetAssociatedResourceInput"} + if v.Application == nil { + invalidParams.Add(smithy.NewErrParamRequired("Application")) + } + if len(v.ResourceType) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("ResourceType")) + } + if v.Resource == nil { + invalidParams.Add(smithy.NewErrParamRequired("Resource")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpGetAttributeGroupInput(v *GetAttributeGroupInput) error { if v == nil { return nil diff --git a/service/sqs/api_op_CreateQueue.go b/service/sqs/api_op_CreateQueue.go index 300fda13605..9cb9d65f291 100644 --- a/service/sqs/api_op_CreateQueue.go +++ b/service/sqs/api_op_CreateQueue.go @@ -115,26 +115,6 @@ type CreateQueueInput struct { // seconds, for which a ReceiveMessage action waits for a message to arrive. Valid // values: An integer from 0 to 20 (seconds). Default: 0. // - // * RedrivePolicy – The - // string that includes the parameters for the dead-letter queue functionality of - // the source queue as a JSON object. For more information about the redrive policy - // and dead-letter queues, see Using Amazon SQS Dead-Letter Queues - // (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html) - // in the Amazon SQS Developer Guide. - // - // * deadLetterTargetArn – The Amazon Resource - // Name (ARN) of the dead-letter queue to which Amazon SQS moves messages after the - // value of maxReceiveCount is exceeded. - // - // * maxReceiveCount – The number of times a - // message is delivered to the source queue before being moved to the dead-letter - // queue. When the ReceiveCount for a message exceeds the maxReceiveCount for a - // queue, Amazon SQS moves the message to the dead-letter-queue. - // - // The dead-letter - // queue of a FIFO queue must also be a FIFO queue. Similarly, the dead-letter - // queue of a standard queue must also be a standard queue. - // // * VisibilityTimeout – // The visibility timeout for the queue, in seconds. Valid values: An integer from // 0 to 43,200 (12 hours). Default: 30. For more information about the visibility @@ -143,7 +123,53 @@ type CreateQueueInput struct { // in the Amazon SQS Developer Guide. // // The following attributes apply only to - // server-side-encryption + // dead-letter queues: + // (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html) + // + // * + // RedrivePolicy – The string that includes the parameters for the dead-letter + // queue functionality of the source queue as a JSON object. The parameters are as + // follows: + // + // * deadLetterTargetArn – The Amazon Resource Name (ARN) of the + // dead-letter queue to which Amazon SQS moves messages after the value of + // maxReceiveCount is exceeded. + // + // * maxReceiveCount – The number of times a message + // is delivered to the source queue before being moved to the dead-letter queue. + // When the ReceiveCount for a message exceeds the maxReceiveCount for a queue, + // Amazon SQS moves the message to the dead-letter-queue. + // + // * RedriveAllowPolicy – + // The string that includes the parameters for the permissions for the dead-letter + // queue redrive permission and which source queues can specify dead-letter queues + // as a JSON object. The parameters are as follows: + // + // * redrivePermission – The + // permission type that defines which source queues can specify the current queue + // as the dead-letter queue. Valid values are: + // + // * allowAll – (Default) Any source + // queues in this Amazon Web Services account in the same Region can specify this + // queue as the dead-letter queue. + // + // * denyAll – No source queues can specify this + // queue as the dead-letter queue. + // + // * byQueue – Only queues specified by the + // sourceQueueArns parameter can specify this queue as the dead-letter queue. + // + // * + // sourceQueueArns – The Amazon Resource Names (ARN)s of the source queues that can + // specify this queue as the dead-letter queue and redrive messages. You can + // specify this parameter only when the redrivePermission parameter is set to + // byQueue. You can specify up to 10 source queue ARNs. To allow more than 10 + // source queues to specify dead-letter queues, set the redrivePermission parameter + // to allowAll. + // + // The dead-letter queue of a FIFO queue must also be a FIFO queue. + // Similarly, the dead-letter queue of a standard queue must also be a standard + // queue. The following attributes apply only to server-side-encryption // (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html): // // * diff --git a/service/sqs/api_op_GetQueueAttributes.go b/service/sqs/api_op_GetQueueAttributes.go index 2177988115e..c0d1c707f58 100644 --- a/service/sqs/api_op_GetQueueAttributes.go +++ b/service/sqs/api_op_GetQueueAttributes.go @@ -93,23 +93,6 @@ type GetQueueAttributesInput struct { // ReceiveMessageWaitTimeSeconds – Returns the length of time, in seconds, for // which the ReceiveMessage action waits for a message to arrive. // - // * RedrivePolicy - // – The string that includes the parameters for the dead-letter queue - // functionality of the source queue as a JSON object. For more information about - // the redrive policy and dead-letter queues, see Using Amazon SQS Dead-Letter - // Queues - // (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html) - // in the Amazon SQS Developer Guide. - // - // * deadLetterTargetArn – The Amazon Resource - // Name (ARN) of the dead-letter queue to which Amazon SQS moves messages after the - // value of maxReceiveCount is exceeded. - // - // * maxReceiveCount – The number of times a - // message is delivered to the source queue before being moved to the dead-letter - // queue. When the ReceiveCount for a message exceeds the maxReceiveCount for a - // queue, Amazon SQS moves the message to the dead-letter-queue. - // // * // VisibilityTimeout – Returns the visibility timeout for the queue. For more // information about the visibility timeout, see Visibility Timeout @@ -117,7 +100,53 @@ type GetQueueAttributesInput struct { // in the Amazon SQS Developer Guide. // // The following attributes apply only to - // server-side-encryption + // dead-letter queues: + // (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html) + // + // * + // RedrivePolicy – The string that includes the parameters for the dead-letter + // queue functionality of the source queue as a JSON object. The parameters are as + // follows: + // + // * deadLetterTargetArn – The Amazon Resource Name (ARN) of the + // dead-letter queue to which Amazon SQS moves messages after the value of + // maxReceiveCount is exceeded. + // + // * maxReceiveCount – The number of times a message + // is delivered to the source queue before being moved to the dead-letter queue. + // When the ReceiveCount for a message exceeds the maxReceiveCount for a queue, + // Amazon SQS moves the message to the dead-letter-queue. + // + // * RedriveAllowPolicy – + // The string that includes the parameters for the permissions for the dead-letter + // queue redrive permission and which source queues can specify dead-letter queues + // as a JSON object. The parameters are as follows: + // + // * redrivePermission – The + // permission type that defines which source queues can specify the current queue + // as the dead-letter queue. Valid values are: + // + // * allowAll – (Default) Any source + // queues in this Amazon Web Services account in the same Region can specify this + // queue as the dead-letter queue. + // + // * denyAll – No source queues can specify this + // queue as the dead-letter queue. + // + // * byQueue – Only queues specified by the + // sourceQueueArns parameter can specify this queue as the dead-letter queue. + // + // * + // sourceQueueArns – The Amazon Resource Names (ARN)s of the source queues that can + // specify this queue as the dead-letter queue and redrive messages. You can + // specify this parameter only when the redrivePermission parameter is set to + // byQueue. You can specify up to 10 source queue ARNs. To allow more than 10 + // source queues to specify dead-letter queues, set the redrivePermission parameter + // to allowAll. + // + // The dead-letter queue of a FIFO queue must also be a FIFO queue. + // Similarly, the dead-letter queue of a standard queue must also be a standard + // queue. The following attributes apply only to server-side-encryption // (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html): // // * diff --git a/service/sqs/api_op_SetQueueAttributes.go b/service/sqs/api_op_SetQueueAttributes.go index 610e8ef82c8..e71426732c8 100644 --- a/service/sqs/api_op_SetQueueAttributes.go +++ b/service/sqs/api_op_SetQueueAttributes.go @@ -74,35 +74,60 @@ type SetQueueAttributesInput struct { // message to arrive. Valid values: An integer from 0 to 20 (seconds). Default: // 0. // - // * RedrivePolicy – The string that includes the parameters for the - // dead-letter queue functionality of the source queue as a JSON object. For more - // information about the redrive policy and dead-letter queues, see Using Amazon - // SQS Dead-Letter Queues - // (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html) + // * VisibilityTimeout – The visibility timeout for the queue, in seconds. + // Valid values: An integer from 0 to 43,200 (12 hours). Default: 30. For more + // information about the visibility timeout, see Visibility Timeout + // (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html) // in the Amazon SQS Developer Guide. // - // * deadLetterTargetArn – The Amazon Resource - // Name (ARN) of the dead-letter queue to which Amazon SQS moves messages after the - // value of maxReceiveCount is exceeded. + // The following attributes apply only to + // dead-letter queues: + // (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html) // - // * maxReceiveCount – The number of times a - // message is delivered to the source queue before being moved to the dead-letter - // queue. When the ReceiveCount for a message exceeds the maxReceiveCount for a - // queue, Amazon SQS moves the message to the dead-letter-queue. + // * + // RedrivePolicy – The string that includes the parameters for the dead-letter + // queue functionality of the source queue as a JSON object. The parameters are as + // follows: // - // The dead-letter - // queue of a FIFO queue must also be a FIFO queue. Similarly, the dead-letter - // queue of a standard queue must also be a standard queue. + // * deadLetterTargetArn – The Amazon Resource Name (ARN) of the + // dead-letter queue to which Amazon SQS moves messages after the value of + // maxReceiveCount is exceeded. // - // * VisibilityTimeout – - // The visibility timeout for the queue, in seconds. Valid values: An integer from - // 0 to 43,200 (12 hours). Default: 30. For more information about the visibility - // timeout, see Visibility Timeout - // (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html) - // in the Amazon SQS Developer Guide. + // * maxReceiveCount – The number of times a message + // is delivered to the source queue before being moved to the dead-letter queue. + // When the ReceiveCount for a message exceeds the maxReceiveCount for a queue, + // Amazon SQS moves the message to the dead-letter-queue. // - // The following attributes apply only to - // server-side-encryption + // * RedriveAllowPolicy – + // The string that includes the parameters for the permissions for the dead-letter + // queue redrive permission and which source queues can specify dead-letter queues + // as a JSON object. The parameters are as follows: + // + // * redrivePermission – The + // permission type that defines which source queues can specify the current queue + // as the dead-letter queue. Valid values are: + // + // * allowAll – (Default) Any source + // queues in this Amazon Web Services account in the same Region can specify this + // queue as the dead-letter queue. + // + // * denyAll – No source queues can specify this + // queue as the dead-letter queue. + // + // * byQueue – Only queues specified by the + // sourceQueueArns parameter can specify this queue as the dead-letter queue. + // + // * + // sourceQueueArns – The Amazon Resource Names (ARN)s of the source queues that can + // specify this queue as the dead-letter queue and redrive messages. You can + // specify this parameter only when the redrivePermission parameter is set to + // byQueue. You can specify up to 10 source queue ARNs. To allow more than 10 + // source queues to specify dead-letter queues, set the redrivePermission parameter + // to allowAll. + // + // The dead-letter queue of a FIFO queue must also be a FIFO queue. + // Similarly, the dead-letter queue of a standard queue must also be a standard + // queue. The following attributes apply only to server-side-encryption // (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html): // // * diff --git a/service/sqs/types/enums.go b/service/sqs/types/enums.go index 68f551e2b68..1ce1f0e1ca6 100644 --- a/service/sqs/types/enums.go +++ b/service/sqs/types/enums.go @@ -73,6 +73,7 @@ const ( QueueAttributeNameKmsDataKeyReusePeriodSeconds QueueAttributeName = "KmsDataKeyReusePeriodSeconds" QueueAttributeNameDeduplicationScope QueueAttributeName = "DeduplicationScope" QueueAttributeNameFifoThroughputLimit QueueAttributeName = "FifoThroughputLimit" + QueueAttributeNameRedriveAllowPolicy QueueAttributeName = "RedriveAllowPolicy" ) // Values returns all known values for QueueAttributeName. Note that this can be @@ -100,5 +101,6 @@ func (QueueAttributeName) Values() []QueueAttributeName { "KmsDataKeyReusePeriodSeconds", "DeduplicationScope", "FifoThroughputLimit", + "RedriveAllowPolicy", } } diff --git a/service/ssmincidents/internal/endpoints/endpoints.go b/service/ssmincidents/internal/endpoints/endpoints.go index 8f2e2466d1b..3696016c9be 100644 --- a/service/ssmincidents/internal/endpoints/endpoints.go +++ b/service/ssmincidents/internal/endpoints/endpoints.go @@ -62,6 +62,17 @@ var defaultPartitions = endpoints.Partitions{ }, RegionRegex: partitionRegexp.Aws, IsRegionalized: true, + Endpoints: endpoints.Endpoints{ + "ap-northeast-1": endpoints.Endpoint{}, + "ap-southeast-1": endpoints.Endpoint{}, + "ap-southeast-2": endpoints.Endpoint{}, + "eu-central-1": endpoints.Endpoint{}, + "eu-north-1": endpoints.Endpoint{}, + "eu-west-1": endpoints.Endpoint{}, + "us-east-1": endpoints.Endpoint{}, + "us-east-2": endpoints.Endpoint{}, + "us-west-2": endpoints.Endpoint{}, + }, }, { ID: "aws-cn", diff --git a/service/transfer/api_op_CreateAccess.go b/service/transfer/api_op_CreateAccess.go index 9bf651cf8f6..26bfe084015 100644 --- a/service/transfer/api_op_CreateAccess.go +++ b/service/transfer/api_op_CreateAccess.go @@ -79,9 +79,9 @@ type CreateAccessInput struct { // The following is an Entry and Target pair example. [ { "Entry": // "your-personal-report.pdf", "Target": // "/bucket3/customized-reports/${transfer:UserName}.pdf" } ] In most cases, you - // can use this value instead of the scope-down policy to lock down your user to - // the designated home directory ("chroot"). To do this, you can set Entry to / and - // set Target to the HomeDirectory parameter value. The following is an Entry and + // can use this value instead of the session policy to lock down your user to the + // designated home directory ("chroot"). To do this, you can set Entry to / and set + // Target to the HomeDirectory parameter value. The following is an Entry and // Target pair example for chroot. [ { "Entry:": "/", "Target": // "/bucket_name/home/mydirectory" } ] If the target of a logical directory entry // does not exist in Amazon S3 or EFS, the entry is ignored. As a workaround, you @@ -95,23 +95,24 @@ type CreateAccessInput struct { // The type of landing directory (folder) you want your users' home directory to be // when they log into the server. If you set it to PATH, the user will see the // absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol - // clients. If you set it LOGICAL, you will need to provide mappings in the + // clients. If you set it LOGICAL, you need to provide mappings in the // HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths visible to // your users. HomeDirectoryType types.HomeDirectoryType - // A scope-down policy for your user so that you can use the same IAM role across + // A session policy for your user so that you can use the same IAM role across // multiple users. This policy scopes down user access to portions of their Amazon // S3 bucket. Variables that you can use inside this policy include // ${Transfer:UserName}, ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}. - // This only applies when domain of ServerId is S3. Amazon EFS does not use - // scope-down policies. For scope-down policies, Amazon Web Services Transfer - // Family stores the policy as a JSON blob, instead of the Amazon Resource Name - // (ARN) of the policy. You save the policy as a JSON blob and pass it in the - // Policy argument. For an example of a scope-down policy, see Example scope-down - // policy - // (https://docs.aws.amazon.com/transfer/latest/userguide/scope-down-policy.html). - // For more information, see AssumeRole + // This only applies when the domain of ServerId is S3. EFS does not use session + // policies. For session policies, Amazon Web Services Transfer Family stores the + // policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy. + // You save the policy as a JSON blob and pass it in the Policy argument. + // + // For an + // example of a session policy, see Example session policy + // (https://docs.aws.amazon.com/transfer/latest/userguide/session-policy.html). For + // more information, see AssumeRole // (https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) in the // Amazon Web Services Security Token Service API Reference. Policy *string diff --git a/service/transfer/api_op_CreateServer.go b/service/transfer/api_op_CreateServer.go index 8efaf287b9e..49a7692d83e 100644 --- a/service/transfer/api_op_CreateServer.go +++ b/service/transfer/api_op_CreateServer.go @@ -158,6 +158,10 @@ type CreateServerInput struct { // Key-value pairs that can be used to group and search for servers. Tags []types.Tag + // Specifies the workflow ID for the workflow to assign and the execution role used + // for executing the workflow. + WorkflowDetails *types.WorkflowDetails + noSmithyDocumentSerde } diff --git a/service/transfer/api_op_CreateUser.go b/service/transfer/api_op_CreateUser.go index a77260a68c3..0280ada5f79 100644 --- a/service/transfer/api_op_CreateUser.go +++ b/service/transfer/api_op_CreateUser.go @@ -16,8 +16,8 @@ import ( // that have the IdentityProviderType set to SERVICE_MANAGED. Using parameters for // CreateUser, you can specify the user name, set the home directory, store the // user's public key, and assign the user's Amazon Web Services Identity and Access -// Management (IAM) role. You can also optionally add a scope-down policy, and -// assign metadata with tags that can be used to group and search for users. +// Management (IAM) role. You can also optionally add a session policy, and assign +// metadata with tags that can be used to group and search for users. func (c *Client) CreateUser(ctx context.Context, params *CreateUserInput, optFns ...func(*Options)) (*CreateUserOutput, error) { if params == nil { params = &CreateUserInput{} @@ -51,11 +51,11 @@ type CreateUserInput struct { // This member is required. ServerId *string - // A unique string that identifies a user and is associated with a as specified by - // the ServerId. This user name must be a minimum of 3 and a maximum of 100 - // characters long. The following are valid characters: a-z, A-Z, 0-9, underscore - // '_', hyphen '-', period '.', and at sign '@'. The user name can't start with a - // hyphen, period, or at sign. + // A unique string that identifies a user and is associated with a ServerId. This + // user name must be a minimum of 3 and a maximum of 100 characters long. The + // following are valid characters: a-z, A-Z, 0-9, underscore '_', hyphen '-', + // period '.', and at sign '@'. The user name can't start with a hyphen, period, or + // at sign. // // This member is required. UserName *string @@ -74,9 +74,9 @@ type CreateUserInput struct { // The following is an Entry and Target pair example. [ { "Entry": // "your-personal-report.pdf", "Target": // "/bucket3/customized-reports/${transfer:UserName}.pdf" } ] In most cases, you - // can use this value instead of the scope-down policy to lock your user down to - // the designated home directory ("chroot"). To do this, you can set Entry to / and - // set Target to the HomeDirectory parameter value. The following is an Entry and + // can use this value instead of the session policy to lock your user down to the + // designated home directory ("chroot"). To do this, you can set Entry to / and set + // Target to the HomeDirectory parameter value. The following is an Entry and // Target pair example for chroot. [ { "Entry:": "/", "Target": // "/bucket_name/home/mydirectory" } ] If the target of a logical directory entry // does not exist in Amazon S3 or EFS, the entry is ignored. As a workaround, you @@ -90,22 +90,22 @@ type CreateUserInput struct { // The type of landing directory (folder) you want your users' home directory to be // when they log into the server. If you set it to PATH, the user will see the // absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol - // clients. If you set it LOGICAL, you will need to provide mappings in the + // clients. If you set it LOGICAL, you need to provide mappings in the // HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths visible to // your users. HomeDirectoryType types.HomeDirectoryType - // A scope-down policy for your user so that you can use the same IAM role across + // A session policy for your user so that you can use the same IAM role across // multiple users. This policy scopes down user access to portions of their Amazon // S3 bucket. Variables that you can use inside this policy include // ${Transfer:UserName}, ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}. - // This only applies when domain of ServerId is S3. EFS does not use scope down - // policy. For scope-down policies, Amazon Web Services Transfer Family stores the + // This only applies when the domain of ServerId is S3. EFS does not use session + // policies. For session policies, Amazon Web Services Transfer Family stores the // policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy. // You save the policy as a JSON blob and pass it in the Policy argument. For an - // example of a scope-down policy, see Example scope-down policy - // (https://docs.aws.amazon.com/transfer/latest/userguide/scope-down-policy.html). - // For more information, see AssumeRole + // example of a session policy, see Example session policy + // (https://docs.aws.amazon.com/transfer/latest/userguide/session-policy.html). For + // more information, see AssumeRole // (https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) in the // Amazon Web Services Security Token Service API Reference. Policy *string diff --git a/service/transfer/api_op_CreateWorkflow.go b/service/transfer/api_op_CreateWorkflow.go new file mode 100644 index 00000000000..d256882efda --- /dev/null +++ b/service/transfer/api_op_CreateWorkflow.go @@ -0,0 +1,151 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package transfer + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/transfer/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Allows you to create a workflow with specified steps and step details the +// workflow invokes after file transfer completes. After creating a workflow, you +// can associate the workflow created with any transfer servers by specifying the +// workflow-details field in CreateServer and UpdateServer operations. +func (c *Client) CreateWorkflow(ctx context.Context, params *CreateWorkflowInput, optFns ...func(*Options)) (*CreateWorkflowOutput, error) { + if params == nil { + params = &CreateWorkflowInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateWorkflow", params, optFns, c.addOperationCreateWorkflowMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateWorkflowOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreateWorkflowInput struct { + + // Specifies the details for the steps that are in the specified workflow. The TYPE + // specifies which of the following actions is being taken for this step. + // + // * Copy: + // copy the file to another location + // + // * Custom: custom step with a lambda target + // + // * + // Delete: delete the file + // + // * Tag: add a tag to the file + // + // For file location, you + // specify either the S3 bucket and key, or the EFS filesystem ID and path. + // + // This member is required. + Steps []types.WorkflowStep + + // A textual description for the workflow. + Description *string + + // Specifies the steps (actions) to take if any errors are encountered during + // execution of the workflow. + OnExceptionSteps []types.WorkflowStep + + // Key-value pairs that can be used to group and search for workflows. Tags are + // metadata attached to workflows for any purpose. + Tags []types.Tag + + noSmithyDocumentSerde +} + +type CreateWorkflowOutput struct { + + // A unique identifier for the workflow. + // + // This member is required. + WorkflowId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateWorkflowMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpCreateWorkflow{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpCreateWorkflow{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpCreateWorkflowValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateWorkflow(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opCreateWorkflow(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "transfer", + OperationName: "CreateWorkflow", + } +} diff --git a/service/transfer/api_op_DeleteSshPublicKey.go b/service/transfer/api_op_DeleteSshPublicKey.go index 9a841e2a931..38df9cc5a26 100644 --- a/service/transfer/api_op_DeleteSshPublicKey.go +++ b/service/transfer/api_op_DeleteSshPublicKey.go @@ -10,8 +10,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes a user's Secure Shell (SSH) public key. No response is returned from -// this operation. +// Deletes a user's Secure Shell (SSH) public key. func (c *Client) DeleteSshPublicKey(ctx context.Context, params *DeleteSshPublicKeyInput, optFns ...func(*Options)) (*DeleteSshPublicKeyOutput, error) { if params == nil { params = &DeleteSshPublicKeyInput{} diff --git a/service/transfer/api_op_DeleteWorkflow.go b/service/transfer/api_op_DeleteWorkflow.go new file mode 100644 index 00000000000..11026748390 --- /dev/null +++ b/service/transfer/api_op_DeleteWorkflow.go @@ -0,0 +1,116 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package transfer + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Deletes the specified workflow. +func (c *Client) DeleteWorkflow(ctx context.Context, params *DeleteWorkflowInput, optFns ...func(*Options)) (*DeleteWorkflowOutput, error) { + if params == nil { + params = &DeleteWorkflowInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeleteWorkflow", params, optFns, c.addOperationDeleteWorkflowMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeleteWorkflowOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeleteWorkflowInput struct { + + // A unique identifier for the workflow. + // + // This member is required. + WorkflowId *string + + noSmithyDocumentSerde +} + +type DeleteWorkflowOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeleteWorkflowMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpDeleteWorkflow{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDeleteWorkflow{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpDeleteWorkflowValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteWorkflow(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDeleteWorkflow(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "transfer", + OperationName: "DeleteWorkflow", + } +} diff --git a/service/transfer/api_op_DescribeExecution.go b/service/transfer/api_op_DescribeExecution.go new file mode 100644 index 00000000000..6d0f025912f --- /dev/null +++ b/service/transfer/api_op_DescribeExecution.go @@ -0,0 +1,134 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package transfer + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/transfer/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// You can use DescribeExecution to check the details of the execution of the +// specified workflow. +func (c *Client) DescribeExecution(ctx context.Context, params *DescribeExecutionInput, optFns ...func(*Options)) (*DescribeExecutionOutput, error) { + if params == nil { + params = &DescribeExecutionInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DescribeExecution", params, optFns, c.addOperationDescribeExecutionMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DescribeExecutionOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DescribeExecutionInput struct { + + // A unique identifier for the execution of a workflow. + // + // This member is required. + ExecutionId *string + + // A unique identifier for the workflow. + // + // This member is required. + WorkflowId *string + + noSmithyDocumentSerde +} + +type DescribeExecutionOutput struct { + + // The structure that contains the details of the workflow' execution. + // + // This member is required. + Execution *types.DescribedExecution + + // A unique identifier for the workflow. + // + // This member is required. + WorkflowId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDescribeExecutionMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpDescribeExecution{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDescribeExecution{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpDescribeExecutionValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeExecution(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDescribeExecution(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "transfer", + OperationName: "DescribeExecution", + } +} diff --git a/service/transfer/api_op_DescribeWorkflow.go b/service/transfer/api_op_DescribeWorkflow.go new file mode 100644 index 00000000000..3b720c4a677 --- /dev/null +++ b/service/transfer/api_op_DescribeWorkflow.go @@ -0,0 +1,123 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package transfer + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/transfer/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Describes the specified workflow. +func (c *Client) DescribeWorkflow(ctx context.Context, params *DescribeWorkflowInput, optFns ...func(*Options)) (*DescribeWorkflowOutput, error) { + if params == nil { + params = &DescribeWorkflowInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DescribeWorkflow", params, optFns, c.addOperationDescribeWorkflowMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DescribeWorkflowOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DescribeWorkflowInput struct { + + // A unique identifier for the workflow. + // + // This member is required. + WorkflowId *string + + noSmithyDocumentSerde +} + +type DescribeWorkflowOutput struct { + + // The structure that contains the details of the workflow. + // + // This member is required. + Workflow *types.DescribedWorkflow + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDescribeWorkflowMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpDescribeWorkflow{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDescribeWorkflow{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpDescribeWorkflowValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeWorkflow(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDescribeWorkflow(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "transfer", + OperationName: "DescribeWorkflow", + } +} diff --git a/service/transfer/api_op_ListExecutions.go b/service/transfer/api_op_ListExecutions.go new file mode 100644 index 00000000000..5cd171911b9 --- /dev/null +++ b/service/transfer/api_op_ListExecutions.go @@ -0,0 +1,249 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package transfer + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/transfer/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Lists all executions for the specified workflow. +func (c *Client) ListExecutions(ctx context.Context, params *ListExecutionsInput, optFns ...func(*Options)) (*ListExecutionsOutput, error) { + if params == nil { + params = &ListExecutionsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListExecutions", params, optFns, c.addOperationListExecutionsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListExecutionsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListExecutionsInput struct { + + // A unique identifier for the workflow. + // + // This member is required. + WorkflowId *string + + // Specifies the aximum number of executions to return. + MaxResults *int32 + + // ListExecutions returns the NextToken parameter in the output. You can then pass + // the NextToken parameter in a subsequent command to continue listing additional + // executions. This is useful for pagination, for instance. If you have 100 + // executions for a workflow, you might only want to list first 10. If so, callthe + // API by specifing the max-results: aws transfer list-executions --max-results 10 + // This returns details for the first 10 executions, as well as the pointer + // (NextToken) to the eleventh execution. You can now call the API again, suppling + // the NextToken value you received: aws transfer list-executions --max-results 10 + // --next-token $somePointerReturnedFromPreviousListResult This call returns the + // next 10 executions, the 11th through the 20th. You can then repeat the call + // until the details for all 100 executions have been returned. + NextToken *string + + noSmithyDocumentSerde +} + +type ListExecutionsOutput struct { + + // Returns the details for each execution. + // + // * NextToken: returned from a call to + // several APIs, you can use pass it to a subsequent command to continue listing + // additional executions. + // + // * StartTime: timestamp indicating when the execution + // began. + // + // * Executions: details of the execution, including the execution ID, + // initial file location, and Service metadata. + // + // * Status: one of the following + // values: IN_PROGRESS, COMPLETED, EXCEPTION, HANDLING_EXEPTION. + // + // This member is required. + Executions []types.ListedExecution + + // A unique identifier for the workflow. + // + // This member is required. + WorkflowId *string + + // ListExecutions returns the NextToken parameter in the output. You can then pass + // the NextToken parameter in a subsequent command to continue listing additional + // executions. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListExecutionsMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpListExecutions{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpListExecutions{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpListExecutionsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListExecutions(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +// ListExecutionsAPIClient is a client that implements the ListExecutions +// operation. +type ListExecutionsAPIClient interface { + ListExecutions(context.Context, *ListExecutionsInput, ...func(*Options)) (*ListExecutionsOutput, error) +} + +var _ ListExecutionsAPIClient = (*Client)(nil) + +// ListExecutionsPaginatorOptions is the paginator options for ListExecutions +type ListExecutionsPaginatorOptions struct { + // Specifies the aximum number of executions to return. + Limit int32 + + // Set to true if pagination should stop if the service returns a pagination token + // that matches the most recent token provided to the service. + StopOnDuplicateToken bool +} + +// ListExecutionsPaginator is a paginator for ListExecutions +type ListExecutionsPaginator struct { + options ListExecutionsPaginatorOptions + client ListExecutionsAPIClient + params *ListExecutionsInput + nextToken *string + firstPage bool +} + +// NewListExecutionsPaginator returns a new ListExecutionsPaginator +func NewListExecutionsPaginator(client ListExecutionsAPIClient, params *ListExecutionsInput, optFns ...func(*ListExecutionsPaginatorOptions)) *ListExecutionsPaginator { + if params == nil { + params = &ListExecutionsInput{} + } + + options := ListExecutionsPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListExecutionsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListExecutionsPaginator) HasMorePages() bool { + return p.firstPage || p.nextToken != nil +} + +// NextPage retrieves the next ListExecutions page. +func (p *ListExecutionsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListExecutionsOutput, error) { + if !p.HasMorePages() { + return nil, fmt.Errorf("no more pages available") + } + + params := *p.params + params.NextToken = p.nextToken + + var limit *int32 + if p.options.Limit > 0 { + limit = &p.options.Limit + } + params.MaxResults = limit + + result, err := p.client.ListExecutions(ctx, ¶ms, optFns...) + if err != nil { + return nil, err + } + p.firstPage = false + + prevToken := p.nextToken + p.nextToken = result.NextToken + + if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken { + p.nextToken = nil + } + + return result, nil +} + +func newServiceMetadataMiddleware_opListExecutions(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "transfer", + OperationName: "ListExecutions", + } +} diff --git a/service/transfer/api_op_ListWorkflows.go b/service/transfer/api_op_ListWorkflows.go new file mode 100644 index 00000000000..9bad52fba93 --- /dev/null +++ b/service/transfer/api_op_ListWorkflows.go @@ -0,0 +1,214 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package transfer + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/transfer/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Lists all of your workflows. +func (c *Client) ListWorkflows(ctx context.Context, params *ListWorkflowsInput, optFns ...func(*Options)) (*ListWorkflowsOutput, error) { + if params == nil { + params = &ListWorkflowsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListWorkflows", params, optFns, c.addOperationListWorkflowsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListWorkflowsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListWorkflowsInput struct { + + // Specifies the maximum number of workflows to return. + MaxResults *int32 + + // ListWorkflows returns the NextToken parameter in the output. You can then pass + // the NextToken parameter in a subsequent command to continue listing additional + // workflows. + NextToken *string + + noSmithyDocumentSerde +} + +type ListWorkflowsOutput struct { + + // Returns the Arn, WorkflowId, and Description for each workflow. + // + // This member is required. + Workflows []types.ListedWorkflow + + // ListWorkflows returns the NextToken parameter in the output. You can then pass + // the NextToken parameter in a subsequent command to continue listing additional + // workflows. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListWorkflowsMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpListWorkflows{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpListWorkflows{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListWorkflows(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +// ListWorkflowsAPIClient is a client that implements the ListWorkflows operation. +type ListWorkflowsAPIClient interface { + ListWorkflows(context.Context, *ListWorkflowsInput, ...func(*Options)) (*ListWorkflowsOutput, error) +} + +var _ ListWorkflowsAPIClient = (*Client)(nil) + +// ListWorkflowsPaginatorOptions is the paginator options for ListWorkflows +type ListWorkflowsPaginatorOptions struct { + // Specifies the maximum number of workflows to return. + Limit int32 + + // Set to true if pagination should stop if the service returns a pagination token + // that matches the most recent token provided to the service. + StopOnDuplicateToken bool +} + +// ListWorkflowsPaginator is a paginator for ListWorkflows +type ListWorkflowsPaginator struct { + options ListWorkflowsPaginatorOptions + client ListWorkflowsAPIClient + params *ListWorkflowsInput + nextToken *string + firstPage bool +} + +// NewListWorkflowsPaginator returns a new ListWorkflowsPaginator +func NewListWorkflowsPaginator(client ListWorkflowsAPIClient, params *ListWorkflowsInput, optFns ...func(*ListWorkflowsPaginatorOptions)) *ListWorkflowsPaginator { + if params == nil { + params = &ListWorkflowsInput{} + } + + options := ListWorkflowsPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListWorkflowsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListWorkflowsPaginator) HasMorePages() bool { + return p.firstPage || p.nextToken != nil +} + +// NextPage retrieves the next ListWorkflows page. +func (p *ListWorkflowsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListWorkflowsOutput, error) { + if !p.HasMorePages() { + return nil, fmt.Errorf("no more pages available") + } + + params := *p.params + params.NextToken = p.nextToken + + var limit *int32 + if p.options.Limit > 0 { + limit = &p.options.Limit + } + params.MaxResults = limit + + result, err := p.client.ListWorkflows(ctx, ¶ms, optFns...) + if err != nil { + return nil, err + } + p.firstPage = false + + prevToken := p.nextToken + p.nextToken = result.NextToken + + if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken { + p.nextToken = nil + } + + return result, nil +} + +func newServiceMetadataMiddleware_opListWorkflows(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "transfer", + OperationName: "ListWorkflows", + } +} diff --git a/service/transfer/api_op_SendWorkflowStepState.go b/service/transfer/api_op_SendWorkflowStepState.go new file mode 100644 index 00000000000..7691414df3d --- /dev/null +++ b/service/transfer/api_op_SendWorkflowStepState.go @@ -0,0 +1,136 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package transfer + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/transfer/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Sends a callback for asynchronous custom steps. The ExecutionId, WorkflowId, and +// Token are passed to the target resource during execution of a custom step of a +// workflow. You must include those with their callback as well as providing a +// status. +func (c *Client) SendWorkflowStepState(ctx context.Context, params *SendWorkflowStepStateInput, optFns ...func(*Options)) (*SendWorkflowStepStateOutput, error) { + if params == nil { + params = &SendWorkflowStepStateInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "SendWorkflowStepState", params, optFns, c.addOperationSendWorkflowStepStateMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*SendWorkflowStepStateOutput) + out.ResultMetadata = metadata + return out, nil +} + +type SendWorkflowStepStateInput struct { + + // A unique identifier for the execution of a workflow. + // + // This member is required. + ExecutionId *string + + // Indicates whether the specified step succeeded or failed. + // + // This member is required. + Status types.CustomStepStatus + + // Used to distinguish between multiple callbacks for multiple Lambda steps within + // the same execution. + // + // This member is required. + Token *string + + // A unique identifier for the workflow. + // + // This member is required. + WorkflowId *string + + noSmithyDocumentSerde +} + +type SendWorkflowStepStateOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationSendWorkflowStepStateMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpSendWorkflowStepState{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpSendWorkflowStepState{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpSendWorkflowStepStateValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opSendWorkflowStepState(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opSendWorkflowStepState(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "transfer", + OperationName: "SendWorkflowStepState", + } +} diff --git a/service/transfer/api_op_TestIdentityProvider.go b/service/transfer/api_op_TestIdentityProvider.go index f5679062f85..74fd5d3257e 100644 --- a/service/transfer/api_op_TestIdentityProvider.go +++ b/service/transfer/api_op_TestIdentityProvider.go @@ -16,7 +16,23 @@ import ( // set up successfully. We highly recommend that you call this operation to test // your authentication method as soon as you create your server. By doing so, you // can troubleshoot issues with the identity provider integration to ensure that -// your users can successfully use the service. +// your users can successfully use the service. The ServerId and UserName +// parameters are required. The ServerProtocol, SourceIp, and UserPassword are all +// optional. You cannot use TestIdentityProvider if the IdentityProviderType of +// your server is SERVICE_MANAGED. +// +// * If you provide any incorrect values for any +// parameters, the Response field is empty. +// +// * If you provide a server ID for a +// server that uses service-managed users, you get an error: An error occurred +// (InvalidRequestException) when calling the TestIdentityProvider operation: +// s-server-ID not configured for external auth +// +// * If you enter a Server ID for the +// --server-id parameter that does not identify an actual Transfer server, you +// receive the following error: An error occurred (ResourceNotFoundException) when +// calling the TestIdentityProvider operation: Unknown server func (c *Client) TestIdentityProvider(ctx context.Context, params *TestIdentityProviderInput, optFns ...func(*Options)) (*TestIdentityProviderOutput, error) { if params == nil { params = &TestIdentityProviderInput{} diff --git a/service/transfer/api_op_UpdateAccess.go b/service/transfer/api_op_UpdateAccess.go index d83d1a73f83..8c6cd74d1b7 100644 --- a/service/transfer/api_op_UpdateAccess.go +++ b/service/transfer/api_op_UpdateAccess.go @@ -65,9 +65,9 @@ type UpdateAccessInput struct { // The following is an Entry and Target pair example. [ { "Entry": // "your-personal-report.pdf", "Target": // "/bucket3/customized-reports/${transfer:UserName}.pdf" } ] In most cases, you - // can use this value instead of the scope-down policy to lock down your user to - // the designated home directory ("chroot"). To do this, you can set Entry to / and - // set Target to the HomeDirectory parameter value. The following is an Entry and + // can use this value instead of the session policy to lock down your user to the + // designated home directory ("chroot"). To do this, you can set Entry to / and set + // Target to the HomeDirectory parameter value. The following is an Entry and // Target pair example for chroot. [ { "Entry:": "/", "Target": // "/bucket_name/home/mydirectory" } ] If the target of a logical directory entry // does not exist in Amazon S3 or EFS, the entry is ignored. As a workaround, you @@ -81,22 +81,22 @@ type UpdateAccessInput struct { // The type of landing directory (folder) you want your users' home directory to be // when they log into the server. If you set it to PATH, the user will see the // absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol - // clients. If you set it LOGICAL, you will need to provide mappings in the + // clients. If you set it LOGICAL, you need to provide mappings in the // HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths visible to // your users. HomeDirectoryType types.HomeDirectoryType - // A scope-down policy for your user so that you can use the same IAM role across + // A session policy for your user so that you can use the same IAM role across // multiple users. This policy scopes down user access to portions of their Amazon // S3 bucket. Variables that you can use inside this policy include // ${Transfer:UserName}, ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}. - // This only applies when domain of ServerId is S3. Amazon EFS does not use scope - // down policy. For scope-down policies, Amazon Web ServicesTransfer Family stores - // the policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the - // policy. You save the policy as a JSON blob and pass it in the Policy argument. - // For an example of a scope-down policy, see Example scope-down policy - // (https://docs.aws.amazon.com/transfer/latest/userguide/scope-down-policy.html). - // For more information, see AssumeRole + // This only applies when the domain of ServerId is S3. EFS does not use session + // policies. For session policies, Amazon Web Services Transfer Family stores the + // policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy. + // You save the policy as a JSON blob and pass it in the Policy argument. For an + // example of a session policy, see Example session policy + // (https://docs.aws.amazon.com/transfer/latest/userguide/session-policy.html). For + // more information, see AssumeRole // (https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) in the // Amazon Web ServicesSecurity Token Service API Reference. Policy *string diff --git a/service/transfer/api_op_UpdateServer.go b/service/transfer/api_op_UpdateServer.go index 29421434a0d..3e2eca49f91 100644 --- a/service/transfer/api_op_UpdateServer.go +++ b/service/transfer/api_op_UpdateServer.go @@ -145,6 +145,10 @@ type UpdateServerInput struct { // Specifies the name of the security policy that is attached to the server. SecurityPolicyName *string + // Specifies the workflow ID for the workflow to assign and the execution role used + // for executing the workflow. + WorkflowDetails *types.WorkflowDetails + noSmithyDocumentSerde } diff --git a/service/transfer/api_op_UpdateUser.go b/service/transfer/api_op_UpdateUser.go index 36345053d05..958228fa042 100644 --- a/service/transfer/api_op_UpdateUser.go +++ b/service/transfer/api_op_UpdateUser.go @@ -61,10 +61,10 @@ type UpdateUserInput struct { // The following is an Entry and Target pair example. [ { "Entry": // "your-personal-report.pdf", "Target": // "/bucket3/customized-reports/${transfer:UserName}.pdf" } ] In most cases, you - // can use this value instead of the scope-down policy to lock down your user to - // the designated home directory ("chroot"). To do this, you can set Entry to '/' - // and set Target to the HomeDirectory parameter value. The following is an Entry - // and Target pair example for chroot. [ { "Entry:": "/", "Target": + // can use this value instead of the session policy to lock down your user to the + // designated home directory ("chroot"). To do this, you can set Entry to '/' and + // set Target to the HomeDirectory parameter value. The following is an Entry and + // Target pair example for chroot. [ { "Entry:": "/", "Target": // "/bucket_name/home/mydirectory" } ] If the target of a logical directory entry // does not exist in Amazon S3 or EFS, the entry is ignored. As a workaround, you // can use the Amazon S3 API or EFS API to create 0 byte objects as place holders @@ -77,23 +77,22 @@ type UpdateUserInput struct { // The type of landing directory (folder) you want your users' home directory to be // when they log into the server. If you set it to PATH, the user will see the // absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol - // clients. If you set it LOGICAL, you will need to provide mappings in the + // clients. If you set it LOGICAL, you need to provide mappings in the // HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths visible to // your users. HomeDirectoryType types.HomeDirectoryType - // A scope-down policy for your user so that you can use the same IAM role across + // A session policy for your user so that you can use the same IAM role across // multiple users. This policy scopes down user access to portions of their Amazon // S3 bucket. Variables that you can use inside this policy include // ${Transfer:UserName}, ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}. - // This only applies when domain of ServerId is S3. Amazon EFS does not use - // scope-down policies. For scope-down policies, Amazon Web ServicesTransfer Family - // stores the policy as a JSON blob, instead of the Amazon Resource Name (ARN) of - // the policy. You save the policy as a JSON blob and pass it in the Policy - // argument. For an example of a scope-down policy, see Creating a scope-down - // policy - // (https://docs.aws.amazon.com/transfer/latest/userguide/users.html#users-policies-scope-down). - // For more information, see AssumeRole + // This only applies when the domain of ServerId is S3. EFS does not use session + // policies. For session policies, Amazon Web Services Transfer Family stores the + // policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy. + // You save the policy as a JSON blob and pass it in the Policy argument. For an + // example of a session policy, see Creating a session policy + // (https://docs.aws.amazon.com/transfer/latest/userguide/session-policy). For more + // information, see AssumeRole // (https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) in the // Amazon Web Services Security Token Service API Reference. Policy *string diff --git a/service/transfer/deserializers.go b/service/transfer/deserializers.go index ac8ac7d69ad..5f0b80a2def 100644 --- a/service/transfer/deserializers.go +++ b/service/transfer/deserializers.go @@ -253,6 +253,9 @@ func awsAwsjson11_deserializeOpErrorCreateServer(response *smithyhttp.Response, case strings.EqualFold("ResourceExistsException", errorCode): return awsAwsjson11_deserializeErrorResourceExistsException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ServiceUnavailableException", errorCode): return awsAwsjson11_deserializeErrorServiceUnavailableException(response, errorBody) @@ -392,6 +395,132 @@ func awsAwsjson11_deserializeOpErrorCreateUser(response *smithyhttp.Response, me } } +type awsAwsjson11_deserializeOpCreateWorkflow struct { +} + +func (*awsAwsjson11_deserializeOpCreateWorkflow) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpCreateWorkflow) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorCreateWorkflow(response, &metadata) + } + output := &CreateWorkflowOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsAwsjson11_deserializeOpDocumentCreateWorkflowOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + return out, metadata, err +} + +func awsAwsjson11_deserializeOpErrorCreateWorkflow(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServiceError", errorCode): + return awsAwsjson11_deserializeErrorInternalServiceError(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("ResourceExistsException", errorCode): + return awsAwsjson11_deserializeErrorResourceExistsException(response, errorBody) + + case strings.EqualFold("ServiceUnavailableException", errorCode): + return awsAwsjson11_deserializeErrorServiceUnavailableException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsAwsjson11_deserializeOpDeleteAccess struct { } @@ -790,14 +919,14 @@ func awsAwsjson11_deserializeOpErrorDeleteUser(response *smithyhttp.Response, me } } -type awsAwsjson11_deserializeOpDescribeAccess struct { +type awsAwsjson11_deserializeOpDeleteWorkflow struct { } -func (*awsAwsjson11_deserializeOpDescribeAccess) ID() string { +func (*awsAwsjson11_deserializeOpDeleteWorkflow) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeAccess) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteWorkflow) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -811,43 +940,21 @@ func (m *awsAwsjson11_deserializeOpDescribeAccess) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeAccess(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteWorkflow(response, &metadata) } - output := &DescribeAccessOutput{} + output := &DeleteWorkflowOutput{} out.Result = output - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) - - body := io.TeeReader(response.Body, ringBuffer) - decoder := json.NewDecoder(body) - decoder.UseNumber() - var shape interface{} - if err := decoder.Decode(&shape); err != nil && err != io.EOF { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - return out, metadata, err - } - - err = awsAwsjson11_deserializeOpDocumentDescribeAccessOutput(&output, shape) - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), } - return out, metadata, err } return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeAccess(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteWorkflow(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -888,6 +995,9 @@ func awsAwsjson11_deserializeOpErrorDescribeAccess(response *smithyhttp.Response } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("InternalServiceError", errorCode): return awsAwsjson11_deserializeErrorInternalServiceError(response, errorBody) @@ -910,14 +1020,14 @@ func awsAwsjson11_deserializeOpErrorDescribeAccess(response *smithyhttp.Response } } -type awsAwsjson11_deserializeOpDescribeSecurityPolicy struct { +type awsAwsjson11_deserializeOpDescribeAccess struct { } -func (*awsAwsjson11_deserializeOpDescribeSecurityPolicy) ID() string { +func (*awsAwsjson11_deserializeOpDescribeAccess) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeSecurityPolicy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeAccess) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -931,9 +1041,9 @@ func (m *awsAwsjson11_deserializeOpDescribeSecurityPolicy) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeSecurityPolicy(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeAccess(response, &metadata) } - output := &DescribeSecurityPolicyOutput{} + output := &DescribeAccessOutput{} out.Result = output var buff [1024]byte @@ -953,7 +1063,7 @@ func (m *awsAwsjson11_deserializeOpDescribeSecurityPolicy) HandleDeserialize(ctx return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeSecurityPolicyOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeAccessOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -967,7 +1077,7 @@ func (m *awsAwsjson11_deserializeOpDescribeSecurityPolicy) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeSecurityPolicy(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeAccess(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1030,14 +1140,14 @@ func awsAwsjson11_deserializeOpErrorDescribeSecurityPolicy(response *smithyhttp. } } -type awsAwsjson11_deserializeOpDescribeServer struct { +type awsAwsjson11_deserializeOpDescribeExecution struct { } -func (*awsAwsjson11_deserializeOpDescribeServer) ID() string { +func (*awsAwsjson11_deserializeOpDescribeExecution) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeServer) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeExecution) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1051,9 +1161,9 @@ func (m *awsAwsjson11_deserializeOpDescribeServer) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeServer(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeExecution(response, &metadata) } - output := &DescribeServerOutput{} + output := &DescribeExecutionOutput{} out.Result = output var buff [1024]byte @@ -1073,7 +1183,7 @@ func (m *awsAwsjson11_deserializeOpDescribeServer) HandleDeserialize(ctx context return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeServerOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeExecutionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1087,7 +1197,7 @@ func (m *awsAwsjson11_deserializeOpDescribeServer) HandleDeserialize(ctx context return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeServer(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeExecution(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1150,14 +1260,14 @@ func awsAwsjson11_deserializeOpErrorDescribeServer(response *smithyhttp.Response } } -type awsAwsjson11_deserializeOpDescribeUser struct { +type awsAwsjson11_deserializeOpDescribeSecurityPolicy struct { } -func (*awsAwsjson11_deserializeOpDescribeUser) ID() string { +func (*awsAwsjson11_deserializeOpDescribeSecurityPolicy) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeSecurityPolicy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1171,9 +1281,9 @@ func (m *awsAwsjson11_deserializeOpDescribeUser) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeUser(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeSecurityPolicy(response, &metadata) } - output := &DescribeUserOutput{} + output := &DescribeSecurityPolicyOutput{} out.Result = output var buff [1024]byte @@ -1193,7 +1303,7 @@ func (m *awsAwsjson11_deserializeOpDescribeUser) HandleDeserialize(ctx context.C return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeUserOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeSecurityPolicyOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1207,7 +1317,7 @@ func (m *awsAwsjson11_deserializeOpDescribeUser) HandleDeserialize(ctx context.C return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeUser(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeSecurityPolicy(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1270,14 +1380,14 @@ func awsAwsjson11_deserializeOpErrorDescribeUser(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpImportSshPublicKey struct { +type awsAwsjson11_deserializeOpDescribeServer struct { } -func (*awsAwsjson11_deserializeOpImportSshPublicKey) ID() string { +func (*awsAwsjson11_deserializeOpDescribeServer) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpImportSshPublicKey) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeServer) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1291,9 +1401,9 @@ func (m *awsAwsjson11_deserializeOpImportSshPublicKey) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorImportSshPublicKey(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeServer(response, &metadata) } - output := &ImportSshPublicKeyOutput{} + output := &DescribeServerOutput{} out.Result = output var buff [1024]byte @@ -1313,7 +1423,7 @@ func (m *awsAwsjson11_deserializeOpImportSshPublicKey) HandleDeserialize(ctx con return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentImportSshPublicKeyOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeServerOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1327,7 +1437,7 @@ func (m *awsAwsjson11_deserializeOpImportSshPublicKey) HandleDeserialize(ctx con return out, metadata, err } -func awsAwsjson11_deserializeOpErrorImportSshPublicKey(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeServer(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1374,18 +1484,12 @@ func awsAwsjson11_deserializeOpErrorImportSshPublicKey(response *smithyhttp.Resp case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) - case strings.EqualFold("ResourceExistsException", errorCode): - return awsAwsjson11_deserializeErrorResourceExistsException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) case strings.EqualFold("ServiceUnavailableException", errorCode): return awsAwsjson11_deserializeErrorServiceUnavailableException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): - return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -1396,14 +1500,14 @@ func awsAwsjson11_deserializeOpErrorImportSshPublicKey(response *smithyhttp.Resp } } -type awsAwsjson11_deserializeOpListAccesses struct { +type awsAwsjson11_deserializeOpDescribeUser struct { } -func (*awsAwsjson11_deserializeOpListAccesses) ID() string { +func (*awsAwsjson11_deserializeOpDescribeUser) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListAccesses) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1417,9 +1521,9 @@ func (m *awsAwsjson11_deserializeOpListAccesses) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListAccesses(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeUser(response, &metadata) } - output := &ListAccessesOutput{} + output := &DescribeUserOutput{} out.Result = output var buff [1024]byte @@ -1439,7 +1543,7 @@ func (m *awsAwsjson11_deserializeOpListAccesses) HandleDeserialize(ctx context.C return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListAccessesOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeUserOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1453,7 +1557,7 @@ func (m *awsAwsjson11_deserializeOpListAccesses) HandleDeserialize(ctx context.C return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListAccesses(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeUser(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1497,9 +1601,6 @@ func awsAwsjson11_deserializeOpErrorListAccesses(response *smithyhttp.Response, case strings.EqualFold("InternalServiceError", errorCode): return awsAwsjson11_deserializeErrorInternalServiceError(response, errorBody) - case strings.EqualFold("InvalidNextTokenException", errorCode): - return awsAwsjson11_deserializeErrorInvalidNextTokenException(response, errorBody) - case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) @@ -1519,14 +1620,14 @@ func awsAwsjson11_deserializeOpErrorListAccesses(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpListSecurityPolicies struct { +type awsAwsjson11_deserializeOpDescribeWorkflow struct { } -func (*awsAwsjson11_deserializeOpListSecurityPolicies) ID() string { +func (*awsAwsjson11_deserializeOpDescribeWorkflow) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListSecurityPolicies) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeWorkflow) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1540,9 +1641,9 @@ func (m *awsAwsjson11_deserializeOpListSecurityPolicies) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListSecurityPolicies(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeWorkflow(response, &metadata) } - output := &ListSecurityPoliciesOutput{} + output := &DescribeWorkflowOutput{} out.Result = output var buff [1024]byte @@ -1562,7 +1663,7 @@ func (m *awsAwsjson11_deserializeOpListSecurityPolicies) HandleDeserialize(ctx c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListSecurityPoliciesOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeWorkflowOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1576,7 +1677,7 @@ func (m *awsAwsjson11_deserializeOpListSecurityPolicies) HandleDeserialize(ctx c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListSecurityPolicies(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeWorkflow(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1620,12 +1721,12 @@ func awsAwsjson11_deserializeOpErrorListSecurityPolicies(response *smithyhttp.Re case strings.EqualFold("InternalServiceError", errorCode): return awsAwsjson11_deserializeErrorInternalServiceError(response, errorBody) - case strings.EqualFold("InvalidNextTokenException", errorCode): - return awsAwsjson11_deserializeErrorInvalidNextTokenException(response, errorBody) - case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ServiceUnavailableException", errorCode): return awsAwsjson11_deserializeErrorServiceUnavailableException(response, errorBody) @@ -1639,14 +1740,14 @@ func awsAwsjson11_deserializeOpErrorListSecurityPolicies(response *smithyhttp.Re } } -type awsAwsjson11_deserializeOpListServers struct { +type awsAwsjson11_deserializeOpImportSshPublicKey struct { } -func (*awsAwsjson11_deserializeOpListServers) ID() string { +func (*awsAwsjson11_deserializeOpImportSshPublicKey) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListServers) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpImportSshPublicKey) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1660,9 +1761,9 @@ func (m *awsAwsjson11_deserializeOpListServers) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListServers(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorImportSshPublicKey(response, &metadata) } - output := &ListServersOutput{} + output := &ImportSshPublicKeyOutput{} out.Result = output var buff [1024]byte @@ -1682,7 +1783,7 @@ func (m *awsAwsjson11_deserializeOpListServers) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListServersOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentImportSshPublicKeyOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1696,7 +1797,7 @@ func (m *awsAwsjson11_deserializeOpListServers) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListServers(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorImportSshPublicKey(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1740,15 +1841,21 @@ func awsAwsjson11_deserializeOpErrorListServers(response *smithyhttp.Response, m case strings.EqualFold("InternalServiceError", errorCode): return awsAwsjson11_deserializeErrorInternalServiceError(response, errorBody) - case strings.EqualFold("InvalidNextTokenException", errorCode): - return awsAwsjson11_deserializeErrorInvalidNextTokenException(response, errorBody) - case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + case strings.EqualFold("ResourceExistsException", errorCode): + return awsAwsjson11_deserializeErrorResourceExistsException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ServiceUnavailableException", errorCode): return awsAwsjson11_deserializeErrorServiceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): + return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -1759,14 +1866,14 @@ func awsAwsjson11_deserializeOpErrorListServers(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpListTagsForResource struct { +type awsAwsjson11_deserializeOpListAccesses struct { } -func (*awsAwsjson11_deserializeOpListTagsForResource) ID() string { +func (*awsAwsjson11_deserializeOpListAccesses) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListTagsForResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListAccesses) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1780,9 +1887,9 @@ func (m *awsAwsjson11_deserializeOpListTagsForResource) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListTagsForResource(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListAccesses(response, &metadata) } - output := &ListTagsForResourceOutput{} + output := &ListAccessesOutput{} out.Result = output var buff [1024]byte @@ -1802,7 +1909,7 @@ func (m *awsAwsjson11_deserializeOpListTagsForResource) HandleDeserialize(ctx co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListTagsForResourceOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListAccessesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1816,7 +1923,7 @@ func (m *awsAwsjson11_deserializeOpListTagsForResource) HandleDeserialize(ctx co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListTagsForResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListAccesses(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1866,6 +1973,9 @@ func awsAwsjson11_deserializeOpErrorListTagsForResource(response *smithyhttp.Res case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ServiceUnavailableException", errorCode): return awsAwsjson11_deserializeErrorServiceUnavailableException(response, errorBody) @@ -1879,14 +1989,14 @@ func awsAwsjson11_deserializeOpErrorListTagsForResource(response *smithyhttp.Res } } -type awsAwsjson11_deserializeOpListUsers struct { +type awsAwsjson11_deserializeOpListExecutions struct { } -func (*awsAwsjson11_deserializeOpListUsers) ID() string { +func (*awsAwsjson11_deserializeOpListExecutions) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListUsers) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListExecutions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1900,9 +2010,9 @@ func (m *awsAwsjson11_deserializeOpListUsers) HandleDeserialize(ctx context.Cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListUsers(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListExecutions(response, &metadata) } - output := &ListUsersOutput{} + output := &ListExecutionsOutput{} out.Result = output var buff [1024]byte @@ -1922,7 +2032,7 @@ func (m *awsAwsjson11_deserializeOpListUsers) HandleDeserialize(ctx context.Cont return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListUsersOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListExecutionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1936,7 +2046,7 @@ func (m *awsAwsjson11_deserializeOpListUsers) HandleDeserialize(ctx context.Cont return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListUsers(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListExecutions(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2002,14 +2112,14 @@ func awsAwsjson11_deserializeOpErrorListUsers(response *smithyhttp.Response, met } } -type awsAwsjson11_deserializeOpStartServer struct { +type awsAwsjson11_deserializeOpListSecurityPolicies struct { } -func (*awsAwsjson11_deserializeOpStartServer) ID() string { +func (*awsAwsjson11_deserializeOpListSecurityPolicies) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStartServer) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListSecurityPolicies) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2023,21 +2133,43 @@ func (m *awsAwsjson11_deserializeOpStartServer) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStartServer(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListSecurityPolicies(response, &metadata) } - output := &StartServerOutput{} + output := &ListSecurityPoliciesOutput{} out.Result = output - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { - return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), } + return out, metadata, err + } + + err = awsAwsjson11_deserializeOpDocumentListSecurityPoliciesOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err } return out, metadata, err } -func awsAwsjson11_deserializeOpErrorStartServer(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListSecurityPolicies(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2081,18 +2213,15 @@ func awsAwsjson11_deserializeOpErrorStartServer(response *smithyhttp.Response, m case strings.EqualFold("InternalServiceError", errorCode): return awsAwsjson11_deserializeErrorInternalServiceError(response, errorBody) + case strings.EqualFold("InvalidNextTokenException", errorCode): + return awsAwsjson11_deserializeErrorInvalidNextTokenException(response, errorBody) + case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ServiceUnavailableException", errorCode): return awsAwsjson11_deserializeErrorServiceUnavailableException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): - return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -2103,14 +2232,14 @@ func awsAwsjson11_deserializeOpErrorStartServer(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpStopServer struct { +type awsAwsjson11_deserializeOpListServers struct { } -func (*awsAwsjson11_deserializeOpStopServer) ID() string { +func (*awsAwsjson11_deserializeOpListServers) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStopServer) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListServers) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2124,21 +2253,43 @@ func (m *awsAwsjson11_deserializeOpStopServer) HandleDeserialize(ctx context.Con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStopServer(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListServers(response, &metadata) } - output := &StopServerOutput{} + output := &ListServersOutput{} out.Result = output - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { - return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsAwsjson11_deserializeOpDocumentListServersOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), } + return out, metadata, err } return out, metadata, err } -func awsAwsjson11_deserializeOpErrorStopServer(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListServers(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2182,18 +2333,15 @@ func awsAwsjson11_deserializeOpErrorStopServer(response *smithyhttp.Response, me case strings.EqualFold("InternalServiceError", errorCode): return awsAwsjson11_deserializeErrorInternalServiceError(response, errorBody) + case strings.EqualFold("InvalidNextTokenException", errorCode): + return awsAwsjson11_deserializeErrorInvalidNextTokenException(response, errorBody) + case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ServiceUnavailableException", errorCode): return awsAwsjson11_deserializeErrorServiceUnavailableException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): - return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -2204,14 +2352,14 @@ func awsAwsjson11_deserializeOpErrorStopServer(response *smithyhttp.Response, me } } -type awsAwsjson11_deserializeOpTagResource struct { +type awsAwsjson11_deserializeOpListTagsForResource struct { } -func (*awsAwsjson11_deserializeOpTagResource) ID() string { +func (*awsAwsjson11_deserializeOpListTagsForResource) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpTagResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListTagsForResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2225,21 +2373,43 @@ func (m *awsAwsjson11_deserializeOpTagResource) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorTagResource(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListTagsForResource(response, &metadata) } - output := &TagResourceOutput{} + output := &ListTagsForResourceOutput{} out.Result = output - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { - return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsAwsjson11_deserializeOpDocumentListTagsForResourceOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), } + return out, metadata, err } return out, metadata, err } -func awsAwsjson11_deserializeOpErrorTagResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListTagsForResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2283,12 +2453,12 @@ func awsAwsjson11_deserializeOpErrorTagResource(response *smithyhttp.Response, m case strings.EqualFold("InternalServiceError", errorCode): return awsAwsjson11_deserializeErrorInternalServiceError(response, errorBody) + case strings.EqualFold("InvalidNextTokenException", errorCode): + return awsAwsjson11_deserializeErrorInvalidNextTokenException(response, errorBody) + case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ServiceUnavailableException", errorCode): return awsAwsjson11_deserializeErrorServiceUnavailableException(response, errorBody) @@ -2302,14 +2472,14 @@ func awsAwsjson11_deserializeOpErrorTagResource(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpTestIdentityProvider struct { +type awsAwsjson11_deserializeOpListUsers struct { } -func (*awsAwsjson11_deserializeOpTestIdentityProvider) ID() string { +func (*awsAwsjson11_deserializeOpListUsers) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpTestIdentityProvider) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListUsers) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2323,9 +2493,9 @@ func (m *awsAwsjson11_deserializeOpTestIdentityProvider) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorTestIdentityProvider(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListUsers(response, &metadata) } - output := &TestIdentityProviderOutput{} + output := &ListUsersOutput{} out.Result = output var buff [1024]byte @@ -2345,7 +2515,7 @@ func (m *awsAwsjson11_deserializeOpTestIdentityProvider) HandleDeserialize(ctx c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentTestIdentityProviderOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListUsersOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2359,7 +2529,7 @@ func (m *awsAwsjson11_deserializeOpTestIdentityProvider) HandleDeserialize(ctx c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorTestIdentityProvider(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListUsers(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2403,6 +2573,9 @@ func awsAwsjson11_deserializeOpErrorTestIdentityProvider(response *smithyhttp.Re case strings.EqualFold("InternalServiceError", errorCode): return awsAwsjson11_deserializeErrorInternalServiceError(response, errorBody) + case strings.EqualFold("InvalidNextTokenException", errorCode): + return awsAwsjson11_deserializeErrorInvalidNextTokenException(response, errorBody) + case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) @@ -2422,14 +2595,14 @@ func awsAwsjson11_deserializeOpErrorTestIdentityProvider(response *smithyhttp.Re } } -type awsAwsjson11_deserializeOpUntagResource struct { +type awsAwsjson11_deserializeOpListWorkflows struct { } -func (*awsAwsjson11_deserializeOpUntagResource) ID() string { +func (*awsAwsjson11_deserializeOpListWorkflows) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUntagResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListWorkflows) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2443,21 +2616,43 @@ func (m *awsAwsjson11_deserializeOpUntagResource) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUntagResource(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListWorkflows(response, &metadata) } - output := &UntagResourceOutput{} + output := &ListWorkflowsOutput{} out.Result = output - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { - return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsAwsjson11_deserializeOpDocumentListWorkflowsOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), } + return out, metadata, err } return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUntagResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListWorkflows(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2501,12 +2696,12 @@ func awsAwsjson11_deserializeOpErrorUntagResource(response *smithyhttp.Response, case strings.EqualFold("InternalServiceError", errorCode): return awsAwsjson11_deserializeErrorInternalServiceError(response, errorBody) + case strings.EqualFold("InvalidNextTokenException", errorCode): + return awsAwsjson11_deserializeErrorInvalidNextTokenException(response, errorBody) + case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ServiceUnavailableException", errorCode): return awsAwsjson11_deserializeErrorServiceUnavailableException(response, errorBody) @@ -2520,14 +2715,14 @@ func awsAwsjson11_deserializeOpErrorUntagResource(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpUpdateAccess struct { +type awsAwsjson11_deserializeOpSendWorkflowStepState struct { } -func (*awsAwsjson11_deserializeOpUpdateAccess) ID() string { +func (*awsAwsjson11_deserializeOpSendWorkflowStepState) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateAccess) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpSendWorkflowStepState) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2541,9 +2736,9 @@ func (m *awsAwsjson11_deserializeOpUpdateAccess) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateAccess(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorSendWorkflowStepState(response, &metadata) } - output := &UpdateAccessOutput{} + output := &SendWorkflowStepStateOutput{} out.Result = output var buff [1024]byte @@ -2563,7 +2758,7 @@ func (m *awsAwsjson11_deserializeOpUpdateAccess) HandleDeserialize(ctx context.C return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateAccessOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentSendWorkflowStepStateOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2577,7 +2772,7 @@ func (m *awsAwsjson11_deserializeOpUpdateAccess) HandleDeserialize(ctx context.C return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateAccess(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorSendWorkflowStepState(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2618,21 +2813,24 @@ func awsAwsjson11_deserializeOpErrorUpdateAccess(response *smithyhttp.Response, } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("InternalServiceError", errorCode): return awsAwsjson11_deserializeErrorInternalServiceError(response, errorBody) case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) - case strings.EqualFold("ResourceExistsException", errorCode): - return awsAwsjson11_deserializeErrorResourceExistsException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) case strings.EqualFold("ServiceUnavailableException", errorCode): return awsAwsjson11_deserializeErrorServiceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): + return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -2643,14 +2841,14 @@ func awsAwsjson11_deserializeOpErrorUpdateAccess(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpUpdateServer struct { +type awsAwsjson11_deserializeOpStartServer struct { } -func (*awsAwsjson11_deserializeOpUpdateServer) ID() string { +func (*awsAwsjson11_deserializeOpStartServer) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateServer) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpStartServer) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2664,43 +2862,21 @@ func (m *awsAwsjson11_deserializeOpUpdateServer) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateServer(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorStartServer(response, &metadata) } - output := &UpdateServerOutput{} + output := &StartServerOutput{} out.Result = output - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) - - body := io.TeeReader(response.Body, ringBuffer) - decoder := json.NewDecoder(body) - decoder.UseNumber() - var shape interface{} - if err := decoder.Decode(&shape); err != nil && err != io.EOF { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - return out, metadata, err - } - - err = awsAwsjson11_deserializeOpDocumentUpdateServerOutput(&output, shape) - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), } - return out, metadata, err } return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateServer(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorStartServer(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2741,21 +2917,12 @@ func awsAwsjson11_deserializeOpErrorUpdateServer(response *smithyhttp.Response, } switch { - case strings.EqualFold("AccessDeniedException", errorCode): - return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) - - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalServiceError", errorCode): return awsAwsjson11_deserializeErrorInternalServiceError(response, errorBody) case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) - case strings.EqualFold("ResourceExistsException", errorCode): - return awsAwsjson11_deserializeErrorResourceExistsException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) @@ -2775,14 +2942,14 @@ func awsAwsjson11_deserializeOpErrorUpdateServer(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpUpdateUser struct { +type awsAwsjson11_deserializeOpStopServer struct { } -func (*awsAwsjson11_deserializeOpUpdateUser) ID() string { +func (*awsAwsjson11_deserializeOpStopServer) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpStopServer) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2796,43 +2963,21 @@ func (m *awsAwsjson11_deserializeOpUpdateUser) HandleDeserialize(ctx context.Con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateUser(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorStopServer(response, &metadata) } - output := &UpdateUserOutput{} + output := &StopServerOutput{} out.Result = output - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) - - body := io.TeeReader(response.Body, ringBuffer) - decoder := json.NewDecoder(body) - decoder.UseNumber() - var shape interface{} - if err := decoder.Decode(&shape); err != nil && err != io.EOF { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - return out, metadata, err - } - - err = awsAwsjson11_deserializeOpDocumentUpdateUserOutput(&output, shape) - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), } - return out, metadata, err } return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateUser(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorStopServer(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2898,50 +3043,64 @@ func awsAwsjson11_deserializeOpErrorUpdateUser(response *smithyhttp.Response, me } } -func awsAwsjson11_deserializeErrorAccessDeniedException(response *smithyhttp.Response, errorBody *bytes.Reader) error { - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) +type awsAwsjson11_deserializeOpTagResource struct { +} - body := io.TeeReader(errorBody, ringBuffer) - decoder := json.NewDecoder(body) - decoder.UseNumber() - var shape interface{} - if err := decoder.Decode(&shape); err != nil && err != io.EOF { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - return err +func (*awsAwsjson11_deserializeOpTagResource) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpTagResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err } - output := &types.AccessDeniedException{} - err := awsAwsjson11_deserializeDocumentAccessDeniedException(&output, shape) + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorTagResource(response, &metadata) + } + output := &TagResourceOutput{} + out.Result = output + + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), } - return err } - errorBody.Seek(0, io.SeekStart) - return output + return out, metadata, err } -func awsAwsjson11_deserializeErrorConflictException(response *smithyhttp.Response, errorBody *bytes.Reader) error { +func awsAwsjson11_deserializeOpErrorTagResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) body := io.TeeReader(errorBody, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() - var shape interface{} - if err := decoder.Decode(&shape); err != nil && err != io.EOF { + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) err = &smithy.DeserializationError{ @@ -2951,28 +3110,67 @@ func awsAwsjson11_deserializeErrorConflictException(response *smithyhttp.Respons return err } - output := &types.ConflictException{} - err := awsAwsjson11_deserializeDocumentConflictException(&output, shape) + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + switch { + case strings.EqualFold("InternalServiceError", errorCode): + return awsAwsjson11_deserializeErrorInternalServiceError(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceUnavailableException", errorCode): + return awsAwsjson11_deserializeErrorServiceUnavailableException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, } - return err + return genericError + } +} - errorBody.Seek(0, io.SeekStart) - return output +type awsAwsjson11_deserializeOpTestIdentityProvider struct { } -func awsAwsjson11_deserializeErrorInternalServiceError(response *smithyhttp.Response, errorBody *bytes.Reader) error { +func (*awsAwsjson11_deserializeOpTestIdentityProvider) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpTestIdentityProvider) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorTestIdentityProvider(response, &metadata) + } + output := &TestIdentityProviderOutput{} + out.Result = output + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(errorBody, ringBuffer) + body := io.TeeReader(response.Body, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() var shape interface{} @@ -2983,12 +3181,10 @@ func awsAwsjson11_deserializeErrorInternalServiceError(response *smithyhttp.Resp Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - output := &types.InternalServiceError{} - err := awsAwsjson11_deserializeDocumentInternalServiceError(&output, shape) - + err = awsAwsjson11_deserializeOpDocumentTestIdentityProviderOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2996,22 +3192,35 @@ func awsAwsjson11_deserializeErrorInternalServiceError(response *smithyhttp.Resp Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - errorBody.Seek(0, io.SeekStart) - return output + return out, metadata, err } -func awsAwsjson11_deserializeErrorInvalidNextTokenException(response *smithyhttp.Response, errorBody *bytes.Reader) error { +func awsAwsjson11_deserializeOpErrorTestIdentityProvider(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) body := io.TeeReader(errorBody, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() - var shape interface{} - if err := decoder.Decode(&shape); err != nil && err != io.EOF { + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) err = &smithy.DeserializationError{ @@ -3021,32 +3230,95 @@ func awsAwsjson11_deserializeErrorInvalidNextTokenException(response *smithyhttp return err } - output := &types.InvalidNextTokenException{} - err := awsAwsjson11_deserializeDocumentInvalidNextTokenException(&output, shape) + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("InternalServiceError", errorCode): + return awsAwsjson11_deserializeErrorInternalServiceError(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceUnavailableException", errorCode): + return awsAwsjson11_deserializeErrorServiceUnavailableException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpUntagResource struct { +} + +func (*awsAwsjson11_deserializeOpUntagResource) ID() string { + return "OperationDeserializer" +} +func (m *awsAwsjson11_deserializeOpUntagResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorUntagResource(response, &metadata) + } + output := &UntagResourceOutput{} + out.Result = output + + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), } - return err } - errorBody.Seek(0, io.SeekStart) - return output + return out, metadata, err } -func awsAwsjson11_deserializeErrorInvalidRequestException(response *smithyhttp.Response, errorBody *bytes.Reader) error { +func awsAwsjson11_deserializeOpErrorUntagResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) body := io.TeeReader(errorBody, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() - var shape interface{} - if err := decoder.Decode(&shape); err != nil && err != io.EOF { + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) err = &smithy.DeserializationError{ @@ -3056,28 +3328,67 @@ func awsAwsjson11_deserializeErrorInvalidRequestException(response *smithyhttp.R return err } - output := &types.InvalidRequestException{} - err := awsAwsjson11_deserializeDocumentInvalidRequestException(&output, shape) + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + switch { + case strings.EqualFold("InternalServiceError", errorCode): + return awsAwsjson11_deserializeErrorInternalServiceError(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceUnavailableException", errorCode): + return awsAwsjson11_deserializeErrorServiceUnavailableException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, } - return err + return genericError + } +} - errorBody.Seek(0, io.SeekStart) - return output +type awsAwsjson11_deserializeOpUpdateAccess struct { } -func awsAwsjson11_deserializeErrorResourceExistsException(response *smithyhttp.Response, errorBody *bytes.Reader) error { +func (*awsAwsjson11_deserializeOpUpdateAccess) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdateAccess) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateAccess(response, &metadata) + } + output := &UpdateAccessOutput{} + out.Result = output + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(errorBody, ringBuffer) + body := io.TeeReader(response.Body, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() var shape interface{} @@ -3088,12 +3399,10 @@ func awsAwsjson11_deserializeErrorResourceExistsException(response *smithyhttp.R Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - output := &types.ResourceExistsException{} - err := awsAwsjson11_deserializeDocumentResourceExistsException(&output, shape) - + err = awsAwsjson11_deserializeOpDocumentUpdateAccessOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3101,22 +3410,35 @@ func awsAwsjson11_deserializeErrorResourceExistsException(response *smithyhttp.R Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - errorBody.Seek(0, io.SeekStart) - return output + return out, metadata, err } -func awsAwsjson11_deserializeErrorResourceNotFoundException(response *smithyhttp.Response, errorBody *bytes.Reader) error { +func awsAwsjson11_deserializeOpErrorUpdateAccess(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) body := io.TeeReader(errorBody, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() - var shape interface{} - if err := decoder.Decode(&shape); err != nil && err != io.EOF { + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) err = &smithy.DeserializationError{ @@ -3126,28 +3448,70 @@ func awsAwsjson11_deserializeErrorResourceNotFoundException(response *smithyhttp return err } - output := &types.ResourceNotFoundException{} - err := awsAwsjson11_deserializeDocumentResourceNotFoundException(&output, shape) + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + switch { + case strings.EqualFold("InternalServiceError", errorCode): + return awsAwsjson11_deserializeErrorInternalServiceError(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("ResourceExistsException", errorCode): + return awsAwsjson11_deserializeErrorResourceExistsException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceUnavailableException", errorCode): + return awsAwsjson11_deserializeErrorServiceUnavailableException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, } - return err + return genericError + } +} - errorBody.Seek(0, io.SeekStart) - return output +type awsAwsjson11_deserializeOpUpdateServer struct { } -func awsAwsjson11_deserializeErrorServiceUnavailableException(response *smithyhttp.Response, errorBody *bytes.Reader) error { +func (*awsAwsjson11_deserializeOpUpdateServer) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdateServer) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateServer(response, &metadata) + } + output := &UpdateServerOutput{} + out.Result = output + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(errorBody, ringBuffer) + body := io.TeeReader(response.Body, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() var shape interface{} @@ -3158,11 +3522,241 @@ func awsAwsjson11_deserializeErrorServiceUnavailableException(response *smithyht Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - output := &types.ServiceUnavailableException{} - err := awsAwsjson11_deserializeDocumentServiceUnavailableException(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateServerOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + return out, metadata, err +} + +func awsAwsjson11_deserializeOpErrorUpdateServer(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServiceError", errorCode): + return awsAwsjson11_deserializeErrorInternalServiceError(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("ResourceExistsException", errorCode): + return awsAwsjson11_deserializeErrorResourceExistsException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceUnavailableException", errorCode): + return awsAwsjson11_deserializeErrorServiceUnavailableException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpUpdateUser struct { +} + +func (*awsAwsjson11_deserializeOpUpdateUser) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdateUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateUser(response, &metadata) + } + output := &UpdateUserOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsAwsjson11_deserializeOpDocumentUpdateUserOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + return out, metadata, err +} + +func awsAwsjson11_deserializeOpErrorUpdateUser(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("InternalServiceError", errorCode): + return awsAwsjson11_deserializeErrorInternalServiceError(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceUnavailableException", errorCode): + return awsAwsjson11_deserializeErrorServiceUnavailableException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsAwsjson11_deserializeErrorAccessDeniedException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.AccessDeniedException{} + err := awsAwsjson11_deserializeDocumentAccessDeniedException(&output, shape) if err != nil { var snapshot bytes.Buffer @@ -3171,49 +3765,1660 @@ func awsAwsjson11_deserializeErrorServiceUnavailableException(response *smithyht Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorConflictException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.ConflictException{} + err := awsAwsjson11_deserializeDocumentConflictException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorInternalServiceError(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.InternalServiceError{} + err := awsAwsjson11_deserializeDocumentInternalServiceError(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorInvalidNextTokenException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.InvalidNextTokenException{} + err := awsAwsjson11_deserializeDocumentInvalidNextTokenException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorInvalidRequestException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.InvalidRequestException{} + err := awsAwsjson11_deserializeDocumentInvalidRequestException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorResourceExistsException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.ResourceExistsException{} + err := awsAwsjson11_deserializeDocumentResourceExistsException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorResourceNotFoundException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.ResourceNotFoundException{} + err := awsAwsjson11_deserializeDocumentResourceNotFoundException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorServiceUnavailableException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.ServiceUnavailableException{} + err := awsAwsjson11_deserializeDocumentServiceUnavailableException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorThrottlingException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.ThrottlingException{} + err := awsAwsjson11_deserializeDocumentThrottlingException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeDocumentAccessDeniedException(v **types.AccessDeniedException, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AccessDeniedException + if *v == nil { + sv = &types.AccessDeniedException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ServiceErrorMessage to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentAddressAllocationIds(v *[]string, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []string + if *v == nil { + cv = []string{} + } else { + cv = *v + } + + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AddressAllocationId to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentConflictException(v **types.ConflictException, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ConflictException + if *v == nil { + sv = &types.ConflictException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Message to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentCopyStepDetails(v **types.CopyStepDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.CopyStepDetails + if *v == nil { + sv = &types.CopyStepDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "DestinationFileLocation": + if err := awsAwsjson11_deserializeDocumentInputFileLocation(&sv.DestinationFileLocation, value); err != nil { + return err + } + + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected WorkflowStepName to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "OverwriteExisting": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected OverwriteExisting to be of type string, got %T instead", value) + } + sv.OverwriteExisting = types.OverwriteExisting(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentCustomStepDetails(v **types.CustomStepDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.CustomStepDetails + if *v == nil { + sv = &types.CustomStepDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected WorkflowStepName to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "Target": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CustomStepTarget to be of type string, got %T instead", value) + } + sv.Target = ptr.String(jtv) + } + + case "TimeoutSeconds": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected CustomStepTimeoutSeconds to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.TimeoutSeconds = ptr.Int32(int32(i64)) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentDeleteStepDetails(v **types.DeleteStepDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.DeleteStepDetails + if *v == nil { + sv = &types.DeleteStepDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected WorkflowStepName to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentDescribedAccess(v **types.DescribedAccess, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.DescribedAccess + if *v == nil { + sv = &types.DescribedAccess{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ExternalId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ExternalId to be of type string, got %T instead", value) + } + sv.ExternalId = ptr.String(jtv) + } + + case "HomeDirectory": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected HomeDirectory to be of type string, got %T instead", value) + } + sv.HomeDirectory = ptr.String(jtv) + } + + case "HomeDirectoryMappings": + if err := awsAwsjson11_deserializeDocumentHomeDirectoryMappings(&sv.HomeDirectoryMappings, value); err != nil { + return err + } + + case "HomeDirectoryType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected HomeDirectoryType to be of type string, got %T instead", value) + } + sv.HomeDirectoryType = types.HomeDirectoryType(jtv) + } + + case "Policy": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Policy to be of type string, got %T instead", value) + } + sv.Policy = ptr.String(jtv) + } + + case "PosixProfile": + if err := awsAwsjson11_deserializeDocumentPosixProfile(&sv.PosixProfile, value); err != nil { + return err + } + + case "Role": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Role to be of type string, got %T instead", value) + } + sv.Role = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentDescribedExecution(v **types.DescribedExecution, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.DescribedExecution + if *v == nil { + sv = &types.DescribedExecution{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ExecutionId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ExecutionId to be of type string, got %T instead", value) + } + sv.ExecutionId = ptr.String(jtv) + } + + case "ExecutionRole": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Role to be of type string, got %T instead", value) + } + sv.ExecutionRole = ptr.String(jtv) + } + + case "InitialFileLocation": + if err := awsAwsjson11_deserializeDocumentFileLocation(&sv.InitialFileLocation, value); err != nil { + return err + } + + case "LoggingConfiguration": + if err := awsAwsjson11_deserializeDocumentLoggingConfiguration(&sv.LoggingConfiguration, value); err != nil { + return err + } + + case "PosixProfile": + if err := awsAwsjson11_deserializeDocumentPosixProfile(&sv.PosixProfile, value); err != nil { + return err + } + + case "Results": + if err := awsAwsjson11_deserializeDocumentExecutionResults(&sv.Results, value); err != nil { + return err + } + + case "ServiceMetadata": + if err := awsAwsjson11_deserializeDocumentServiceMetadata(&sv.ServiceMetadata, value); err != nil { + return err + } + + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ExecutionStatus to be of type string, got %T instead", value) + } + sv.Status = types.ExecutionStatus(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentDescribedSecurityPolicy(v **types.DescribedSecurityPolicy, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.DescribedSecurityPolicy + if *v == nil { + sv = &types.DescribedSecurityPolicy{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Fips": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Fips to be of type *bool, got %T instead", value) + } + sv.Fips = ptr.Bool(jtv) + } + + case "SecurityPolicyName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SecurityPolicyName to be of type string, got %T instead", value) + } + sv.SecurityPolicyName = ptr.String(jtv) + } + + case "SshCiphers": + if err := awsAwsjson11_deserializeDocumentSecurityPolicyOptions(&sv.SshCiphers, value); err != nil { + return err + } + + case "SshKexs": + if err := awsAwsjson11_deserializeDocumentSecurityPolicyOptions(&sv.SshKexs, value); err != nil { + return err + } + + case "SshMacs": + if err := awsAwsjson11_deserializeDocumentSecurityPolicyOptions(&sv.SshMacs, value); err != nil { + return err + } + + case "TlsCiphers": + if err := awsAwsjson11_deserializeDocumentSecurityPolicyOptions(&sv.TlsCiphers, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentDescribedServer(v **types.DescribedServer, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.DescribedServer + if *v == nil { + sv = &types.DescribedServer{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + case "Certificate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Certificate to be of type string, got %T instead", value) + } + sv.Certificate = ptr.String(jtv) + } + + case "Domain": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Domain to be of type string, got %T instead", value) + } + sv.Domain = types.Domain(jtv) + } + + case "EndpointDetails": + if err := awsAwsjson11_deserializeDocumentEndpointDetails(&sv.EndpointDetails, value); err != nil { + return err + } + + case "EndpointType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EndpointType to be of type string, got %T instead", value) + } + sv.EndpointType = types.EndpointType(jtv) + } + + case "HostKeyFingerprint": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected HostKeyFingerprint to be of type string, got %T instead", value) + } + sv.HostKeyFingerprint = ptr.String(jtv) + } + + case "IdentityProviderDetails": + if err := awsAwsjson11_deserializeDocumentIdentityProviderDetails(&sv.IdentityProviderDetails, value); err != nil { + return err + } + + case "IdentityProviderType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected IdentityProviderType to be of type string, got %T instead", value) + } + sv.IdentityProviderType = types.IdentityProviderType(jtv) + } + + case "LoggingRole": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Role to be of type string, got %T instead", value) + } + sv.LoggingRole = ptr.String(jtv) + } + + case "ProtocolDetails": + if err := awsAwsjson11_deserializeDocumentProtocolDetails(&sv.ProtocolDetails, value); err != nil { + return err + } + + case "Protocols": + if err := awsAwsjson11_deserializeDocumentProtocols(&sv.Protocols, value); err != nil { + return err + } + + case "SecurityPolicyName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SecurityPolicyName to be of type string, got %T instead", value) + } + sv.SecurityPolicyName = ptr.String(jtv) + } + + case "ServerId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ServerId to be of type string, got %T instead", value) + } + sv.ServerId = ptr.String(jtv) + } + + case "State": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected State to be of type string, got %T instead", value) + } + sv.State = types.State(jtv) + } + + case "Tags": + if err := awsAwsjson11_deserializeDocumentTags(&sv.Tags, value); err != nil { + return err + } + + case "UserCount": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected UserCount to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.UserCount = ptr.Int32(int32(i64)) + } + + case "WorkflowDetails": + if err := awsAwsjson11_deserializeDocumentWorkflowDetails(&sv.WorkflowDetails, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentDescribedUser(v **types.DescribedUser, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.DescribedUser + if *v == nil { + sv = &types.DescribedUser{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + case "HomeDirectory": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected HomeDirectory to be of type string, got %T instead", value) + } + sv.HomeDirectory = ptr.String(jtv) + } + + case "HomeDirectoryMappings": + if err := awsAwsjson11_deserializeDocumentHomeDirectoryMappings(&sv.HomeDirectoryMappings, value); err != nil { + return err + } + + case "HomeDirectoryType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected HomeDirectoryType to be of type string, got %T instead", value) + } + sv.HomeDirectoryType = types.HomeDirectoryType(jtv) + } + + case "Policy": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Policy to be of type string, got %T instead", value) + } + sv.Policy = ptr.String(jtv) + } + + case "PosixProfile": + if err := awsAwsjson11_deserializeDocumentPosixProfile(&sv.PosixProfile, value); err != nil { + return err + } + + case "Role": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Role to be of type string, got %T instead", value) + } + sv.Role = ptr.String(jtv) + } + + case "SshPublicKeys": + if err := awsAwsjson11_deserializeDocumentSshPublicKeys(&sv.SshPublicKeys, value); err != nil { + return err + } + + case "Tags": + if err := awsAwsjson11_deserializeDocumentTags(&sv.Tags, value); err != nil { + return err + } + + case "UserName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected UserName to be of type string, got %T instead", value) + } + sv.UserName = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentDescribedWorkflow(v **types.DescribedWorkflow, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.DescribedWorkflow + if *v == nil { + sv = &types.DescribedWorkflow{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + case "Description": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected WorkflowDescription to be of type string, got %T instead", value) + } + sv.Description = ptr.String(jtv) + } + + case "OnExceptionSteps": + if err := awsAwsjson11_deserializeDocumentWorkflowSteps(&sv.OnExceptionSteps, value); err != nil { + return err + } + + case "Steps": + if err := awsAwsjson11_deserializeDocumentWorkflowSteps(&sv.Steps, value); err != nil { + return err + } + + case "Tags": + if err := awsAwsjson11_deserializeDocumentTags(&sv.Tags, value); err != nil { + return err + } + + case "WorkflowId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected WorkflowId to be of type string, got %T instead", value) + } + sv.WorkflowId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentEfsFileLocation(v **types.EfsFileLocation, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.EfsFileLocation + if *v == nil { + sv = &types.EfsFileLocation{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "FileSystemId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EfsFileSystemId to be of type string, got %T instead", value) + } + sv.FileSystemId = ptr.String(jtv) + } + + case "Path": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EfsPath to be of type string, got %T instead", value) + } + sv.Path = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentEndpointDetails(v **types.EndpointDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.EndpointDetails + if *v == nil { + sv = &types.EndpointDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AddressAllocationIds": + if err := awsAwsjson11_deserializeDocumentAddressAllocationIds(&sv.AddressAllocationIds, value); err != nil { + return err + } + + case "SecurityGroupIds": + if err := awsAwsjson11_deserializeDocumentSecurityGroupIds(&sv.SecurityGroupIds, value); err != nil { + return err + } + + case "SubnetIds": + if err := awsAwsjson11_deserializeDocumentSubnetIds(&sv.SubnetIds, value); err != nil { + return err + } + + case "VpcEndpointId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VpcEndpointId to be of type string, got %T instead", value) + } + sv.VpcEndpointId = ptr.String(jtv) + } + + case "VpcId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VpcId to be of type string, got %T instead", value) + } + sv.VpcId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentExecutionError(v **types.ExecutionError, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ExecutionError + if *v == nil { + sv = &types.ExecutionError{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ExecutionErrorMessage to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + case "Type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ExecutionErrorType to be of type string, got %T instead", value) + } + sv.Type = types.ExecutionErrorType(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentExecutionResults(v **types.ExecutionResults, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ExecutionResults + if *v == nil { + sv = &types.ExecutionResults{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "OnExceptionSteps": + if err := awsAwsjson11_deserializeDocumentExecutionStepResults(&sv.OnExceptionSteps, value); err != nil { + return err + } + + case "Steps": + if err := awsAwsjson11_deserializeDocumentExecutionStepResults(&sv.Steps, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentExecutionStepResult(v **types.ExecutionStepResult, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ExecutionStepResult + if *v == nil { + sv = &types.ExecutionStepResult{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Error": + if err := awsAwsjson11_deserializeDocumentExecutionError(&sv.Error, value); err != nil { + return err + } + + case "Outputs": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected StepResultOutputsJson to be of type string, got %T instead", value) + } + sv.Outputs = ptr.String(jtv) + } + + case "StepType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected WorkflowStepType to be of type string, got %T instead", value) + } + sv.StepType = types.WorkflowStepType(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentExecutionStepResults(v *[]types.ExecutionStepResult, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.ExecutionStepResult + if *v == nil { + cv = []types.ExecutionStepResult{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ExecutionStepResult + destAddr := &col + if err := awsAwsjson11_deserializeDocumentExecutionStepResult(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentFileLocation(v **types.FileLocation, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.FileLocation + if *v == nil { + sv = &types.FileLocation{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "EfsFileLocation": + if err := awsAwsjson11_deserializeDocumentEfsFileLocation(&sv.EfsFileLocation, value); err != nil { + return err + } + + case "S3FileLocation": + if err := awsAwsjson11_deserializeDocumentS3FileLocation(&sv.S3FileLocation, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentHomeDirectoryMapEntry(v **types.HomeDirectoryMapEntry, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.HomeDirectoryMapEntry + if *v == nil { + sv = &types.HomeDirectoryMapEntry{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Entry": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected MapEntry to be of type string, got %T instead", value) + } + sv.Entry = ptr.String(jtv) + } + + case "Target": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected MapTarget to be of type string, got %T instead", value) + } + sv.Target = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentHomeDirectoryMappings(v *[]types.HomeDirectoryMapEntry, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.HomeDirectoryMapEntry + if *v == nil { + cv = []types.HomeDirectoryMapEntry{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.HomeDirectoryMapEntry + destAddr := &col + if err := awsAwsjson11_deserializeDocumentHomeDirectoryMapEntry(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentIdentityProviderDetails(v **types.IdentityProviderDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.IdentityProviderDetails + if *v == nil { + sv = &types.IdentityProviderDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "DirectoryId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DirectoryId to be of type string, got %T instead", value) + } + sv.DirectoryId = ptr.String(jtv) + } + + case "InvocationRole": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Role to be of type string, got %T instead", value) + } + sv.InvocationRole = ptr.String(jtv) + } + + case "Url": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Url to be of type string, got %T instead", value) + } + sv.Url = ptr.String(jtv) + } + + default: + _, _ = key, value + + } } - - errorBody.Seek(0, io.SeekStart) - return output + *v = sv + return nil } -func awsAwsjson11_deserializeErrorThrottlingException(response *smithyhttp.Response, errorBody *bytes.Reader) error { - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) +func awsAwsjson11_deserializeDocumentInputFileLocation(v **types.InputFileLocation, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } - body := io.TeeReader(errorBody, ringBuffer) - decoder := json.NewDecoder(body) - decoder.UseNumber() - var shape interface{} - if err := decoder.Decode(&shape); err != nil && err != io.EOF { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - return err + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) } - output := &types.ThrottlingException{} - err := awsAwsjson11_deserializeDocumentThrottlingException(&output, shape) + var sv *types.InputFileLocation + if *v == nil { + sv = &types.InputFileLocation{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "EfsFileLocation": + if err := awsAwsjson11_deserializeDocumentEfsFileLocation(&sv.EfsFileLocation, value); err != nil { + return err + } + + case "S3FileLocation": + if err := awsAwsjson11_deserializeDocumentS3InputFileLocation(&sv.S3FileLocation, value); err != nil { + return err + } + + default: + _, _ = key, value - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), } - return err } - - errorBody.Seek(0, io.SeekStart) - return output + *v = sv + return nil } -func awsAwsjson11_deserializeDocumentAccessDeniedException(v **types.AccessDeniedException, value interface{}) error { +func awsAwsjson11_deserializeDocumentInternalServiceError(v **types.InternalServiceError, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3226,9 +5431,9 @@ func awsAwsjson11_deserializeDocumentAccessDeniedException(v **types.AccessDenie return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AccessDeniedException + var sv *types.InternalServiceError if *v == nil { - sv = &types.AccessDeniedException{} + sv = &types.InternalServiceError{} } else { sv = *v } @@ -3239,7 +5444,7 @@ func awsAwsjson11_deserializeDocumentAccessDeniedException(v **types.AccessDenie if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ServiceErrorMessage to be of type string, got %T instead", value) + return fmt.Errorf("expected Message to be of type string, got %T instead", value) } sv.Message = ptr.String(jtv) } @@ -3253,7 +5458,7 @@ func awsAwsjson11_deserializeDocumentAccessDeniedException(v **types.AccessDenie return nil } -func awsAwsjson11_deserializeDocumentAddressAllocationIds(v *[]string, value interface{}) error { +func awsAwsjson11_deserializeDocumentInvalidNextTokenException(v **types.InvalidNextTokenException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3261,35 +5466,39 @@ func awsAwsjson11_deserializeDocumentAddressAllocationIds(v *[]string, value int return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []string + var sv *types.InvalidNextTokenException if *v == nil { - cv = []string{} + sv = &types.InvalidNextTokenException{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col string - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected AddressAllocationId to be of type string, got %T instead", value) + for key, value := range shape { + switch key { + case "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Message to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) } - col = jtv - } - cv = append(cv, col) + default: + _, _ = key, value + + } } - *v = cv + *v = sv return nil } -func awsAwsjson11_deserializeDocumentConflictException(v **types.ConflictException, value interface{}) error { +func awsAwsjson11_deserializeDocumentInvalidRequestException(v **types.InvalidRequestException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3302,9 +5511,9 @@ func awsAwsjson11_deserializeDocumentConflictException(v **types.ConflictExcepti return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ConflictException + var sv *types.InvalidRequestException if *v == nil { - sv = &types.ConflictException{} + sv = &types.InvalidRequestException{} } else { sv = *v } @@ -3329,7 +5538,7 @@ func awsAwsjson11_deserializeDocumentConflictException(v **types.ConflictExcepti return nil } -func awsAwsjson11_deserializeDocumentDescribedAccess(v **types.DescribedAccess, value interface{}) error { +func awsAwsjson11_deserializeDocumentListedAccess(v **types.ListedAccess, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3342,9 +5551,9 @@ func awsAwsjson11_deserializeDocumentDescribedAccess(v **types.DescribedAccess, return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.DescribedAccess + var sv *types.ListedAccess if *v == nil { - sv = &types.DescribedAccess{} + sv = &types.ListedAccess{} } else { sv = *v } @@ -3369,11 +5578,6 @@ func awsAwsjson11_deserializeDocumentDescribedAccess(v **types.DescribedAccess, sv.HomeDirectory = ptr.String(jtv) } - case "HomeDirectoryMappings": - if err := awsAwsjson11_deserializeDocumentHomeDirectoryMappings(&sv.HomeDirectoryMappings, value); err != nil { - return err - } - case "HomeDirectoryType": if value != nil { jtv, ok := value.(string) @@ -3383,20 +5587,6 @@ func awsAwsjson11_deserializeDocumentDescribedAccess(v **types.DescribedAccess, sv.HomeDirectoryType = types.HomeDirectoryType(jtv) } - case "Policy": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Policy to be of type string, got %T instead", value) - } - sv.Policy = ptr.String(jtv) - } - - case "PosixProfile": - if err := awsAwsjson11_deserializeDocumentPosixProfile(&sv.PosixProfile, value); err != nil { - return err - } - case "Role": if value != nil { jtv, ok := value.(string) @@ -3415,7 +5605,41 @@ func awsAwsjson11_deserializeDocumentDescribedAccess(v **types.DescribedAccess, return nil } -func awsAwsjson11_deserializeDocumentDescribedSecurityPolicy(v **types.DescribedSecurityPolicy, value interface{}) error { +func awsAwsjson11_deserializeDocumentListedAccesses(v *[]types.ListedAccess, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.ListedAccess + if *v == nil { + cv = []types.ListedAccess{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ListedAccess + destAddr := &col + if err := awsAwsjson11_deserializeDocumentListedAccess(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentListedExecution(v **types.ListedExecution, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3428,51 +5652,41 @@ func awsAwsjson11_deserializeDocumentDescribedSecurityPolicy(v **types.Described return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.DescribedSecurityPolicy + var sv *types.ListedExecution if *v == nil { - sv = &types.DescribedSecurityPolicy{} + sv = &types.ListedExecution{} } else { sv = *v } for key, value := range shape { switch key { - case "Fips": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Fips to be of type *bool, got %T instead", value) - } - sv.Fips = ptr.Bool(jtv) - } - - case "SecurityPolicyName": + case "ExecutionId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected SecurityPolicyName to be of type string, got %T instead", value) + return fmt.Errorf("expected ExecutionId to be of type string, got %T instead", value) } - sv.SecurityPolicyName = ptr.String(jtv) - } - - case "SshCiphers": - if err := awsAwsjson11_deserializeDocumentSecurityPolicyOptions(&sv.SshCiphers, value); err != nil { - return err + sv.ExecutionId = ptr.String(jtv) } - case "SshKexs": - if err := awsAwsjson11_deserializeDocumentSecurityPolicyOptions(&sv.SshKexs, value); err != nil { + case "InitialFileLocation": + if err := awsAwsjson11_deserializeDocumentFileLocation(&sv.InitialFileLocation, value); err != nil { return err } - case "SshMacs": - if err := awsAwsjson11_deserializeDocumentSecurityPolicyOptions(&sv.SshMacs, value); err != nil { + case "ServiceMetadata": + if err := awsAwsjson11_deserializeDocumentServiceMetadata(&sv.ServiceMetadata, value); err != nil { return err } - case "TlsCiphers": - if err := awsAwsjson11_deserializeDocumentSecurityPolicyOptions(&sv.TlsCiphers, value); err != nil { - return err + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ExecutionStatus to be of type string, got %T instead", value) + } + sv.Status = types.ExecutionStatus(jtv) } default: @@ -3484,7 +5698,41 @@ func awsAwsjson11_deserializeDocumentDescribedSecurityPolicy(v **types.Described return nil } -func awsAwsjson11_deserializeDocumentDescribedServer(v **types.DescribedServer, value interface{}) error { +func awsAwsjson11_deserializeDocumentListedExecutions(v *[]types.ListedExecution, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.ListedExecution + if *v == nil { + cv = []types.ListedExecution{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ListedExecution + destAddr := &col + if err := awsAwsjson11_deserializeDocumentListedExecution(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentListedServer(v **types.ListedServer, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3497,9 +5745,9 @@ func awsAwsjson11_deserializeDocumentDescribedServer(v **types.DescribedServer, return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.DescribedServer + var sv *types.ListedServer if *v == nil { - sv = &types.DescribedServer{} + sv = &types.ListedServer{} } else { sv = *v } @@ -3515,15 +5763,6 @@ func awsAwsjson11_deserializeDocumentDescribedServer(v **types.DescribedServer, sv.Arn = ptr.String(jtv) } - case "Certificate": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Certificate to be of type string, got %T instead", value) - } - sv.Certificate = ptr.String(jtv) - } - case "Domain": if value != nil { jtv, ok := value.(string) @@ -3533,32 +5772,13 @@ func awsAwsjson11_deserializeDocumentDescribedServer(v **types.DescribedServer, sv.Domain = types.Domain(jtv) } - case "EndpointDetails": - if err := awsAwsjson11_deserializeDocumentEndpointDetails(&sv.EndpointDetails, value); err != nil { - return err - } - case "EndpointType": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected EndpointType to be of type string, got %T instead", value) } - sv.EndpointType = types.EndpointType(jtv) - } - - case "HostKeyFingerprint": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected HostKeyFingerprint to be of type string, got %T instead", value) - } - sv.HostKeyFingerprint = ptr.String(jtv) - } - - case "IdentityProviderDetails": - if err := awsAwsjson11_deserializeDocumentIdentityProviderDetails(&sv.IdentityProviderDetails, value); err != nil { - return err + sv.EndpointType = types.EndpointType(jtv) } case "IdentityProviderType": @@ -3579,25 +5799,6 @@ func awsAwsjson11_deserializeDocumentDescribedServer(v **types.DescribedServer, sv.LoggingRole = ptr.String(jtv) } - case "ProtocolDetails": - if err := awsAwsjson11_deserializeDocumentProtocolDetails(&sv.ProtocolDetails, value); err != nil { - return err - } - - case "Protocols": - if err := awsAwsjson11_deserializeDocumentProtocols(&sv.Protocols, value); err != nil { - return err - } - - case "SecurityPolicyName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected SecurityPolicyName to be of type string, got %T instead", value) - } - sv.SecurityPolicyName = ptr.String(jtv) - } - case "ServerId": if value != nil { jtv, ok := value.(string) @@ -3616,11 +5817,6 @@ func awsAwsjson11_deserializeDocumentDescribedServer(v **types.DescribedServer, sv.State = types.State(jtv) } - case "Tags": - if err := awsAwsjson11_deserializeDocumentTags(&sv.Tags, value); err != nil { - return err - } - case "UserCount": if value != nil { jtv, ok := value.(json.Number) @@ -3643,7 +5839,41 @@ func awsAwsjson11_deserializeDocumentDescribedServer(v **types.DescribedServer, return nil } -func awsAwsjson11_deserializeDocumentDescribedUser(v **types.DescribedUser, value interface{}) error { +func awsAwsjson11_deserializeDocumentListedServers(v *[]types.ListedServer, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.ListedServer + if *v == nil { + cv = []types.ListedServer{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ListedServer + destAddr := &col + if err := awsAwsjson11_deserializeDocumentListedServer(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentListedUser(v **types.ListedUser, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3656,9 +5886,9 @@ func awsAwsjson11_deserializeDocumentDescribedUser(v **types.DescribedUser, valu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.DescribedUser + var sv *types.ListedUser if *v == nil { - sv = &types.DescribedUser{} + sv = &types.ListedUser{} } else { sv = *v } @@ -3683,11 +5913,6 @@ func awsAwsjson11_deserializeDocumentDescribedUser(v **types.DescribedUser, valu sv.HomeDirectory = ptr.String(jtv) } - case "HomeDirectoryMappings": - if err := awsAwsjson11_deserializeDocumentHomeDirectoryMappings(&sv.HomeDirectoryMappings, value); err != nil { - return err - } - case "HomeDirectoryType": if value != nil { jtv, ok := value.(string) @@ -3697,20 +5922,6 @@ func awsAwsjson11_deserializeDocumentDescribedUser(v **types.DescribedUser, valu sv.HomeDirectoryType = types.HomeDirectoryType(jtv) } - case "Policy": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Policy to be of type string, got %T instead", value) - } - sv.Policy = ptr.String(jtv) - } - - case "PosixProfile": - if err := awsAwsjson11_deserializeDocumentPosixProfile(&sv.PosixProfile, value); err != nil { - return err - } - case "Role": if value != nil { jtv, ok := value.(string) @@ -3720,14 +5931,17 @@ func awsAwsjson11_deserializeDocumentDescribedUser(v **types.DescribedUser, valu sv.Role = ptr.String(jtv) } - case "SshPublicKeys": - if err := awsAwsjson11_deserializeDocumentSshPublicKeys(&sv.SshPublicKeys, value); err != nil { - return err - } - - case "Tags": - if err := awsAwsjson11_deserializeDocumentTags(&sv.Tags, value); err != nil { - return err + case "SshPublicKeyCount": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected SshPublicKeyCount to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.SshPublicKeyCount = ptr.Int32(int32(i64)) } case "UserName": @@ -3748,7 +5962,41 @@ func awsAwsjson11_deserializeDocumentDescribedUser(v **types.DescribedUser, valu return nil } -func awsAwsjson11_deserializeDocumentEndpointDetails(v **types.EndpointDetails, value interface{}) error { +func awsAwsjson11_deserializeDocumentListedUsers(v *[]types.ListedUser, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.ListedUser + if *v == nil { + cv = []types.ListedUser{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ListedUser + destAddr := &col + if err := awsAwsjson11_deserializeDocumentListedUser(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentListedWorkflow(v **types.ListedWorkflow, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3761,46 +6009,40 @@ func awsAwsjson11_deserializeDocumentEndpointDetails(v **types.EndpointDetails, return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.EndpointDetails + var sv *types.ListedWorkflow if *v == nil { - sv = &types.EndpointDetails{} + sv = &types.ListedWorkflow{} } else { sv = *v } for key, value := range shape { switch key { - case "AddressAllocationIds": - if err := awsAwsjson11_deserializeDocumentAddressAllocationIds(&sv.AddressAllocationIds, value); err != nil { - return err - } - - case "SecurityGroupIds": - if err := awsAwsjson11_deserializeDocumentSecurityGroupIds(&sv.SecurityGroupIds, value); err != nil { - return err - } - - case "SubnetIds": - if err := awsAwsjson11_deserializeDocumentSubnetIds(&sv.SubnetIds, value); err != nil { - return err + case "Arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) } - case "VpcEndpointId": + case "Description": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected VpcEndpointId to be of type string, got %T instead", value) + return fmt.Errorf("expected WorkflowDescription to be of type string, got %T instead", value) } - sv.VpcEndpointId = ptr.String(jtv) + sv.Description = ptr.String(jtv) } - case "VpcId": + case "WorkflowId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected VpcId to be of type string, got %T instead", value) + return fmt.Errorf("expected WorkflowId to be of type string, got %T instead", value) } - sv.VpcId = ptr.String(jtv) + sv.WorkflowId = ptr.String(jtv) } default: @@ -3812,7 +6054,41 @@ func awsAwsjson11_deserializeDocumentEndpointDetails(v **types.EndpointDetails, return nil } -func awsAwsjson11_deserializeDocumentHomeDirectoryMapEntry(v **types.HomeDirectoryMapEntry, value interface{}) error { +func awsAwsjson11_deserializeDocumentListedWorkflows(v *[]types.ListedWorkflow, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.ListedWorkflow + if *v == nil { + cv = []types.ListedWorkflow{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ListedWorkflow + destAddr := &col + if err := awsAwsjson11_deserializeDocumentListedWorkflow(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentLoggingConfiguration(v **types.LoggingConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3825,31 +6101,31 @@ func awsAwsjson11_deserializeDocumentHomeDirectoryMapEntry(v **types.HomeDirecto return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.HomeDirectoryMapEntry + var sv *types.LoggingConfiguration if *v == nil { - sv = &types.HomeDirectoryMapEntry{} + sv = &types.LoggingConfiguration{} } else { sv = *v } for key, value := range shape { switch key { - case "Entry": + case "LoggingRole": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected MapEntry to be of type string, got %T instead", value) + return fmt.Errorf("expected Role to be of type string, got %T instead", value) } - sv.Entry = ptr.String(jtv) + sv.LoggingRole = ptr.String(jtv) } - case "Target": + case "LogGroupName": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected MapTarget to be of type string, got %T instead", value) + return fmt.Errorf("expected LogGroupName to be of type string, got %T instead", value) } - sv.Target = ptr.String(jtv) + sv.LogGroupName = ptr.String(jtv) } default: @@ -3861,7 +6137,7 @@ func awsAwsjson11_deserializeDocumentHomeDirectoryMapEntry(v **types.HomeDirecto return nil } -func awsAwsjson11_deserializeDocumentHomeDirectoryMappings(v *[]types.HomeDirectoryMapEntry, value interface{}) error { +func awsAwsjson11_deserializeDocumentOnUploadWorkflowDetails(v *[]types.WorkflowDetail, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3874,17 +6150,17 @@ func awsAwsjson11_deserializeDocumentHomeDirectoryMappings(v *[]types.HomeDirect return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.HomeDirectoryMapEntry + var cv []types.WorkflowDetail if *v == nil { - cv = []types.HomeDirectoryMapEntry{} + cv = []types.WorkflowDetail{} } else { cv = *v } for _, value := range shape { - var col types.HomeDirectoryMapEntry + var col types.WorkflowDetail destAddr := &col - if err := awsAwsjson11_deserializeDocumentHomeDirectoryMapEntry(&destAddr, value); err != nil { + if err := awsAwsjson11_deserializeDocumentWorkflowDetail(&destAddr, value); err != nil { return err } col = *destAddr @@ -3895,7 +6171,7 @@ func awsAwsjson11_deserializeDocumentHomeDirectoryMappings(v *[]types.HomeDirect return nil } -func awsAwsjson11_deserializeDocumentIdentityProviderDetails(v **types.IdentityProviderDetails, value interface{}) error { +func awsAwsjson11_deserializeDocumentPosixProfile(v **types.PosixProfile, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3908,40 +6184,44 @@ func awsAwsjson11_deserializeDocumentIdentityProviderDetails(v **types.IdentityP return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.IdentityProviderDetails + var sv *types.PosixProfile if *v == nil { - sv = &types.IdentityProviderDetails{} + sv = &types.PosixProfile{} } else { sv = *v } for key, value := range shape { switch key { - case "DirectoryId": + case "Gid": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected DirectoryId to be of type string, got %T instead", value) + return fmt.Errorf("expected PosixId to be json.Number, got %T instead", value) } - sv.DirectoryId = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Gid = ptr.Int64(i64) } - case "InvocationRole": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Role to be of type string, got %T instead", value) - } - sv.InvocationRole = ptr.String(jtv) + case "SecondaryGids": + if err := awsAwsjson11_deserializeDocumentSecondaryGids(&sv.SecondaryGids, value); err != nil { + return err } - case "Url": + case "Uid": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected Url to be of type string, got %T instead", value) + return fmt.Errorf("expected PosixId to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err } - sv.Url = ptr.String(jtv) + sv.Uid = ptr.Int64(i64) } default: @@ -3953,7 +6233,7 @@ func awsAwsjson11_deserializeDocumentIdentityProviderDetails(v **types.IdentityP return nil } -func awsAwsjson11_deserializeDocumentInternalServiceError(v **types.InternalServiceError, value interface{}) error { +func awsAwsjson11_deserializeDocumentProtocolDetails(v **types.ProtocolDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3966,22 +6246,22 @@ func awsAwsjson11_deserializeDocumentInternalServiceError(v **types.InternalServ return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.InternalServiceError + var sv *types.ProtocolDetails if *v == nil { - sv = &types.InternalServiceError{} + sv = &types.ProtocolDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Message": + case "PassiveIp": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Message to be of type string, got %T instead", value) + return fmt.Errorf("expected PassiveIp to be of type string, got %T instead", value) } - sv.Message = ptr.String(jtv) + sv.PassiveIp = ptr.String(jtv) } default: @@ -3993,7 +6273,7 @@ func awsAwsjson11_deserializeDocumentInternalServiceError(v **types.InternalServ return nil } -func awsAwsjson11_deserializeDocumentInvalidNextTokenException(v **types.InvalidNextTokenException, value interface{}) error { +func awsAwsjson11_deserializeDocumentProtocols(v *[]types.Protocol, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4001,39 +6281,35 @@ func awsAwsjson11_deserializeDocumentInvalidNextTokenException(v **types.Invalid return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.InvalidNextTokenException + var cv []types.Protocol if *v == nil { - sv = &types.InvalidNextTokenException{} + cv = []types.Protocol{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "Message": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Message to be of type string, got %T instead", value) - } - sv.Message = ptr.String(jtv) + for _, value := range shape { + var col types.Protocol + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Protocol to be of type string, got %T instead", value) } - - default: - _, _ = key, value - + col = types.Protocol(jtv) } + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsAwsjson11_deserializeDocumentInvalidRequestException(v **types.InvalidRequestException, value interface{}) error { +func awsAwsjson11_deserializeDocumentResourceExistsException(v **types.ResourceExistsException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4046,9 +6322,9 @@ func awsAwsjson11_deserializeDocumentInvalidRequestException(v **types.InvalidRe return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.InvalidRequestException + var sv *types.ResourceExistsException if *v == nil { - sv = &types.InvalidRequestException{} + sv = &types.ResourceExistsException{} } else { sv = *v } @@ -4064,6 +6340,24 @@ func awsAwsjson11_deserializeDocumentInvalidRequestException(v **types.InvalidRe sv.Message = ptr.String(jtv) } + case "Resource": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Resource to be of type string, got %T instead", value) + } + sv.Resource = ptr.String(jtv) + } + + case "ResourceType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceType to be of type string, got %T instead", value) + } + sv.ResourceType = ptr.String(jtv) + } + default: _, _ = key, value @@ -4073,7 +6367,7 @@ func awsAwsjson11_deserializeDocumentInvalidRequestException(v **types.InvalidRe return nil } -func awsAwsjson11_deserializeDocumentListedAccess(v **types.ListedAccess, value interface{}) error { +func awsAwsjson11_deserializeDocumentResourceNotFoundException(v **types.ResourceNotFoundException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4086,49 +6380,40 @@ func awsAwsjson11_deserializeDocumentListedAccess(v **types.ListedAccess, value return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ListedAccess + var sv *types.ResourceNotFoundException if *v == nil { - sv = &types.ListedAccess{} + sv = &types.ResourceNotFoundException{} } else { sv = *v } for key, value := range shape { switch key { - case "ExternalId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ExternalId to be of type string, got %T instead", value) - } - sv.ExternalId = ptr.String(jtv) - } - - case "HomeDirectory": + case "Message": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected HomeDirectory to be of type string, got %T instead", value) + return fmt.Errorf("expected Message to be of type string, got %T instead", value) } - sv.HomeDirectory = ptr.String(jtv) + sv.Message = ptr.String(jtv) } - case "HomeDirectoryType": + case "Resource": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected HomeDirectoryType to be of type string, got %T instead", value) + return fmt.Errorf("expected Resource to be of type string, got %T instead", value) } - sv.HomeDirectoryType = types.HomeDirectoryType(jtv) + sv.Resource = ptr.String(jtv) } - case "Role": + case "ResourceType": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Role to be of type string, got %T instead", value) + return fmt.Errorf("expected ResourceType to be of type string, got %T instead", value) } - sv.Role = ptr.String(jtv) + sv.ResourceType = ptr.String(jtv) } default: @@ -4140,41 +6425,7 @@ func awsAwsjson11_deserializeDocumentListedAccess(v **types.ListedAccess, value return nil } -func awsAwsjson11_deserializeDocumentListedAccesses(v *[]types.ListedAccess, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var cv []types.ListedAccess - if *v == nil { - cv = []types.ListedAccess{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.ListedAccess - destAddr := &col - if err := awsAwsjson11_deserializeDocumentListedAccess(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsAwsjson11_deserializeDocumentListedServer(v **types.ListedServer, value interface{}) error { +func awsAwsjson11_deserializeDocumentS3FileLocation(v **types.S3FileLocation, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4187,89 +6438,49 @@ func awsAwsjson11_deserializeDocumentListedServer(v **types.ListedServer, value return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ListedServer + var sv *types.S3FileLocation if *v == nil { - sv = &types.ListedServer{} + sv = &types.S3FileLocation{} } else { sv = *v } for key, value := range shape { switch key { - case "Arn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) - } - sv.Arn = ptr.String(jtv) - } - - case "Domain": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Domain to be of type string, got %T instead", value) - } - sv.Domain = types.Domain(jtv) - } - - case "EndpointType": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected EndpointType to be of type string, got %T instead", value) - } - sv.EndpointType = types.EndpointType(jtv) - } - - case "IdentityProviderType": + case "Bucket": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected IdentityProviderType to be of type string, got %T instead", value) + return fmt.Errorf("expected S3Bucket to be of type string, got %T instead", value) } - sv.IdentityProviderType = types.IdentityProviderType(jtv) + sv.Bucket = ptr.String(jtv) } - case "LoggingRole": + case "Etag": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Role to be of type string, got %T instead", value) + return fmt.Errorf("expected S3Etag to be of type string, got %T instead", value) } - sv.LoggingRole = ptr.String(jtv) + sv.Etag = ptr.String(jtv) } - case "ServerId": + case "Key": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ServerId to be of type string, got %T instead", value) + return fmt.Errorf("expected S3Key to be of type string, got %T instead", value) } - sv.ServerId = ptr.String(jtv) + sv.Key = ptr.String(jtv) } - case "State": + case "VersionId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected State to be of type string, got %T instead", value) - } - sv.State = types.State(jtv) - } - - case "UserCount": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected UserCount to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected S3VersionId to be of type string, got %T instead", value) } - sv.UserCount = ptr.Int32(int32(i64)) + sv.VersionId = ptr.String(jtv) } default: @@ -4281,41 +6492,7 @@ func awsAwsjson11_deserializeDocumentListedServer(v **types.ListedServer, value return nil } -func awsAwsjson11_deserializeDocumentListedServers(v *[]types.ListedServer, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var cv []types.ListedServer - if *v == nil { - cv = []types.ListedServer{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.ListedServer - destAddr := &col - if err := awsAwsjson11_deserializeDocumentListedServer(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsAwsjson11_deserializeDocumentListedUser(v **types.ListedUser, value interface{}) error { +func awsAwsjson11_deserializeDocumentS3InputFileLocation(v **types.S3InputFileLocation, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4328,71 +6505,80 @@ func awsAwsjson11_deserializeDocumentListedUser(v **types.ListedUser, value inte return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ListedUser + var sv *types.S3InputFileLocation if *v == nil { - sv = &types.ListedUser{} + sv = &types.S3InputFileLocation{} } else { sv = *v } for key, value := range shape { switch key { - case "Arn": + case "Bucket": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + return fmt.Errorf("expected S3Bucket to be of type string, got %T instead", value) } - sv.Arn = ptr.String(jtv) + sv.Bucket = ptr.String(jtv) } - case "HomeDirectory": + case "Key": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected HomeDirectory to be of type string, got %T instead", value) + return fmt.Errorf("expected S3Key to be of type string, got %T instead", value) } - sv.HomeDirectory = ptr.String(jtv) + sv.Key = ptr.String(jtv) } - case "HomeDirectoryType": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected HomeDirectoryType to be of type string, got %T instead", value) - } - sv.HomeDirectoryType = types.HomeDirectoryType(jtv) - } + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentS3Tag(v **types.S3Tag, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } - case "Role": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Role to be of type string, got %T instead", value) - } - sv.Role = ptr.String(jtv) - } + var sv *types.S3Tag + if *v == nil { + sv = &types.S3Tag{} + } else { + sv = *v + } - case "SshPublicKeyCount": + for key, value := range shape { + switch key { + case "Key": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected SshPublicKeyCount to be json.Number, got %T instead", value) + return fmt.Errorf("expected S3TagKey to be of type string, got %T instead", value) } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.SshPublicKeyCount = ptr.Int32(int32(i64)) + sv.Key = ptr.String(jtv) } - case "UserName": + case "Value": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected UserName to be of type string, got %T instead", value) + return fmt.Errorf("expected S3TagValue to be of type string, got %T instead", value) } - sv.UserName = ptr.String(jtv) + sv.Value = ptr.String(jtv) } default: @@ -4404,7 +6590,7 @@ func awsAwsjson11_deserializeDocumentListedUser(v **types.ListedUser, value inte return nil } -func awsAwsjson11_deserializeDocumentListedUsers(v *[]types.ListedUser, value interface{}) error { +func awsAwsjson11_deserializeDocumentS3Tags(v *[]types.S3Tag, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4417,17 +6603,17 @@ func awsAwsjson11_deserializeDocumentListedUsers(v *[]types.ListedUser, value in return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.ListedUser + var cv []types.S3Tag if *v == nil { - cv = []types.ListedUser{} + cv = []types.S3Tag{} } else { cv = *v } for _, value := range shape { - var col types.ListedUser + var col types.S3Tag destAddr := &col - if err := awsAwsjson11_deserializeDocumentListedUser(&destAddr, value); err != nil { + if err := awsAwsjson11_deserializeDocumentS3Tag(&destAddr, value); err != nil { return err } col = *destAddr @@ -4438,7 +6624,7 @@ func awsAwsjson11_deserializeDocumentListedUsers(v *[]types.ListedUser, value in return nil } -func awsAwsjson11_deserializeDocumentPosixProfile(v **types.PosixProfile, value interface{}) error { +func awsAwsjson11_deserializeDocumentSecondaryGids(v *[]int64, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4446,61 +6632,75 @@ func awsAwsjson11_deserializeDocumentPosixProfile(v **types.PosixProfile, value return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.PosixProfile + var cv []int64 if *v == nil { - sv = &types.PosixProfile{} + cv = []int64{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "Gid": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected PosixId to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.Gid = ptr.Int64(i64) + for _, value := range shape { + var col int64 + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected PosixId to be json.Number, got %T instead", value) } - - case "SecondaryGids": - if err := awsAwsjson11_deserializeDocumentSecondaryGids(&sv.SecondaryGids, value); err != nil { + i64, err := jtv.Int64() + if err != nil { return err } + col = i64 + } + cv = append(cv, col) - case "Uid": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected PosixId to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.Uid = ptr.Int64(i64) - } + } + *v = cv + return nil +} - default: - _, _ = key, value +func awsAwsjson11_deserializeDocumentSecurityGroupIds(v *[]string, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []string + if *v == nil { + cv = []string{} + } else { + cv = *v + } + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SecurityGroupId to be of type string, got %T instead", value) + } + col = jtv } + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsAwsjson11_deserializeDocumentProtocolDetails(v **types.ProtocolDetails, value interface{}) error { +func awsAwsjson11_deserializeDocumentSecurityPolicyNames(v *[]string, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4508,39 +6708,35 @@ func awsAwsjson11_deserializeDocumentProtocolDetails(v **types.ProtocolDetails, return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ProtocolDetails + var cv []string if *v == nil { - sv = &types.ProtocolDetails{} + cv = []string{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "PassiveIp": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected PassiveIp to be of type string, got %T instead", value) - } - sv.PassiveIp = ptr.String(jtv) + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SecurityPolicyName to be of type string, got %T instead", value) } - - default: - _, _ = key, value - + col = jtv } + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsAwsjson11_deserializeDocumentProtocols(v *[]types.Protocol, value interface{}) error { +func awsAwsjson11_deserializeDocumentSecurityPolicyOptions(v *[]string, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4553,21 +6749,21 @@ func awsAwsjson11_deserializeDocumentProtocols(v *[]types.Protocol, value interf return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.Protocol + var cv []string if *v == nil { - cv = []types.Protocol{} + cv = []string{} } else { cv = *v } for _, value := range shape { - var col types.Protocol + var col string if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Protocol to be of type string, got %T instead", value) + return fmt.Errorf("expected SecurityPolicyOption to be of type string, got %T instead", value) } - col = types.Protocol(jtv) + col = jtv } cv = append(cv, col) @@ -4576,7 +6772,7 @@ func awsAwsjson11_deserializeDocumentProtocols(v *[]types.Protocol, value interf return nil } -func awsAwsjson11_deserializeDocumentResourceExistsException(v **types.ResourceExistsException, value interface{}) error { +func awsAwsjson11_deserializeDocumentServiceMetadata(v **types.ServiceMetadata, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4589,40 +6785,58 @@ func awsAwsjson11_deserializeDocumentResourceExistsException(v **types.ResourceE return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ResourceExistsException + var sv *types.ServiceMetadata if *v == nil { - sv = &types.ResourceExistsException{} + sv = &types.ServiceMetadata{} } else { sv = *v } for key, value := range shape { switch key { - case "Message": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Message to be of type string, got %T instead", value) - } - sv.Message = ptr.String(jtv) + case "UserDetails": + if err := awsAwsjson11_deserializeDocumentUserDetails(&sv.UserDetails, value); err != nil { + return err } - case "Resource": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Resource to be of type string, got %T instead", value) - } - sv.Resource = ptr.String(jtv) - } + default: + _, _ = key, value - case "ResourceType": + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentServiceUnavailableException(v **types.ServiceUnavailableException, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ServiceUnavailableException + if *v == nil { + sv = &types.ServiceUnavailableException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Message": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ResourceType to be of type string, got %T instead", value) + return fmt.Errorf("expected ServiceErrorMessage to be of type string, got %T instead", value) } - sv.ResourceType = ptr.String(jtv) + sv.Message = ptr.String(jtv) } default: @@ -4634,7 +6848,7 @@ func awsAwsjson11_deserializeDocumentResourceExistsException(v **types.ResourceE return nil } -func awsAwsjson11_deserializeDocumentResourceNotFoundException(v **types.ResourceNotFoundException, value interface{}) error { +func awsAwsjson11_deserializeDocumentSshPublicKey(v **types.SshPublicKey, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4647,40 +6861,47 @@ func awsAwsjson11_deserializeDocumentResourceNotFoundException(v **types.Resourc return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ResourceNotFoundException + var sv *types.SshPublicKey if *v == nil { - sv = &types.ResourceNotFoundException{} + sv = &types.SshPublicKey{} } else { sv = *v } for key, value := range shape { switch key { - case "Message": + case "DateImported": if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Message to be of type string, got %T instead", value) + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.DateImported = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected DateImported to be a JSON Number, got %T instead", value) + } - sv.Message = ptr.String(jtv) } - case "Resource": + case "SshPublicKeyBody": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Resource to be of type string, got %T instead", value) + return fmt.Errorf("expected SshPublicKeyBody to be of type string, got %T instead", value) } - sv.Resource = ptr.String(jtv) + sv.SshPublicKeyBody = ptr.String(jtv) } - case "ResourceType": + case "SshPublicKeyId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ResourceType to be of type string, got %T instead", value) + return fmt.Errorf("expected SshPublicKeyId to be of type string, got %T instead", value) } - sv.ResourceType = ptr.String(jtv) + sv.SshPublicKeyId = ptr.String(jtv) } default: @@ -4692,7 +6913,7 @@ func awsAwsjson11_deserializeDocumentResourceNotFoundException(v **types.Resourc return nil } -func awsAwsjson11_deserializeDocumentSecondaryGids(v *[]int64, value interface{}) error { +func awsAwsjson11_deserializeDocumentSshPublicKeys(v *[]types.SshPublicKey, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4705,26 +6926,20 @@ func awsAwsjson11_deserializeDocumentSecondaryGids(v *[]int64, value interface{} return fmt.Errorf("unexpected JSON type %v", value) } - var cv []int64 + var cv []types.SshPublicKey if *v == nil { - cv = []int64{} + cv = []types.SshPublicKey{} } else { cv = *v } for _, value := range shape { - var col int64 - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected PosixId to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - col = i64 + var col types.SshPublicKey + destAddr := &col + if err := awsAwsjson11_deserializeDocumentSshPublicKey(&destAddr, value); err != nil { + return err } + col = *destAddr cv = append(cv, col) } @@ -4732,7 +6947,7 @@ func awsAwsjson11_deserializeDocumentSecondaryGids(v *[]int64, value interface{} return nil } -func awsAwsjson11_deserializeDocumentSecurityGroupIds(v *[]string, value interface{}) error { +func awsAwsjson11_deserializeDocumentSubnetIds(v *[]string, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4757,7 +6972,7 @@ func awsAwsjson11_deserializeDocumentSecurityGroupIds(v *[]string, value interfa if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected SecurityGroupId to be of type string, got %T instead", value) + return fmt.Errorf("expected SubnetId to be of type string, got %T instead", value) } col = jtv } @@ -4768,7 +6983,7 @@ func awsAwsjson11_deserializeDocumentSecurityGroupIds(v *[]string, value interfa return nil } -func awsAwsjson11_deserializeDocumentSecurityPolicyNames(v *[]string, value interface{}) error { +func awsAwsjson11_deserializeDocumentTag(v **types.Tag, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4776,35 +6991,48 @@ func awsAwsjson11_deserializeDocumentSecurityPolicyNames(v *[]string, value inte return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []string + var sv *types.Tag if *v == nil { - cv = []string{} + sv = &types.Tag{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col string - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected SecurityPolicyName to be of type string, got %T instead", value) + for key, value := range shape { + switch key { + case "Key": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TagKey to be of type string, got %T instead", value) + } + sv.Key = ptr.String(jtv) } - col = jtv - } - cv = append(cv, col) + case "Value": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TagValue to be of type string, got %T instead", value) + } + sv.Value = ptr.String(jtv) + } + + default: + _, _ = key, value + + } } - *v = cv + *v = sv return nil } -func awsAwsjson11_deserializeDocumentSecurityPolicyOptions(v *[]string, value interface{}) error { +func awsAwsjson11_deserializeDocumentTags(v *[]types.Tag, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4817,22 +7045,20 @@ func awsAwsjson11_deserializeDocumentSecurityPolicyOptions(v *[]string, value in return fmt.Errorf("unexpected JSON type %v", value) } - var cv []string + var cv []types.Tag if *v == nil { - cv = []string{} + cv = []types.Tag{} } else { cv = *v } for _, value := range shape { - var col string - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected SecurityPolicyOption to be of type string, got %T instead", value) - } - col = jtv + var col types.Tag + destAddr := &col + if err := awsAwsjson11_deserializeDocumentTag(&destAddr, value); err != nil { + return err } + col = *destAddr cv = append(cv, col) } @@ -4840,7 +7066,7 @@ func awsAwsjson11_deserializeDocumentSecurityPolicyOptions(v *[]string, value in return nil } -func awsAwsjson11_deserializeDocumentServiceUnavailableException(v **types.ServiceUnavailableException, value interface{}) error { +func awsAwsjson11_deserializeDocumentTagStepDetails(v **types.TagStepDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4853,22 +7079,27 @@ func awsAwsjson11_deserializeDocumentServiceUnavailableException(v **types.Servi return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ServiceUnavailableException + var sv *types.TagStepDetails if *v == nil { - sv = &types.ServiceUnavailableException{} + sv = &types.TagStepDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Message": + case "Name": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ServiceErrorMessage to be of type string, got %T instead", value) + return fmt.Errorf("expected WorkflowStepName to be of type string, got %T instead", value) } - sv.Message = ptr.String(jtv) + sv.Name = ptr.String(jtv) + } + + case "Tags": + if err := awsAwsjson11_deserializeDocumentS3Tags(&sv.Tags, value); err != nil { + return err } default: @@ -4880,7 +7111,7 @@ func awsAwsjson11_deserializeDocumentServiceUnavailableException(v **types.Servi return nil } -func awsAwsjson11_deserializeDocumentSshPublicKey(v **types.SshPublicKey, value interface{}) error { +func awsAwsjson11_deserializeDocumentThrottlingException(v **types.ThrottlingException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4893,47 +7124,80 @@ func awsAwsjson11_deserializeDocumentSshPublicKey(v **types.SshPublicKey, value return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.SshPublicKey + var sv *types.ThrottlingException if *v == nil { - sv = &types.SshPublicKey{} + sv = &types.ThrottlingException{} } else { sv = *v } for key, value := range shape { switch key { - case "DateImported": + case "RetryAfterSeconds": if value != nil { - switch jtv := value.(type) { - case json.Number: - f64, err := jtv.Float64() - if err != nil { - return err - } - sv.DateImported = ptr.Time(smithytime.ParseEpochSeconds(f64)) + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RetryAfterSeconds to be of type string, got %T instead", value) + } + sv.RetryAfterSeconds = ptr.String(jtv) + } - default: - return fmt.Errorf("expected DateImported to be a JSON Number, got %T instead", value) + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentUserDetails(v **types.UserDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.UserDetails + if *v == nil { + sv = &types.UserDetails{} + } else { + sv = *v + } + for key, value := range shape { + switch key { + case "ServerId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ServerId to be of type string, got %T instead", value) } + sv.ServerId = ptr.String(jtv) } - case "SshPublicKeyBody": + case "SessionId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected SshPublicKeyBody to be of type string, got %T instead", value) + return fmt.Errorf("expected SessionId to be of type string, got %T instead", value) } - sv.SshPublicKeyBody = ptr.String(jtv) + sv.SessionId = ptr.String(jtv) } - case "SshPublicKeyId": + case "UserName": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected SshPublicKeyId to be of type string, got %T instead", value) + return fmt.Errorf("expected UserName to be of type string, got %T instead", value) } - sv.SshPublicKeyId = ptr.String(jtv) + sv.UserName = ptr.String(jtv) } default: @@ -4945,7 +7209,7 @@ func awsAwsjson11_deserializeDocumentSshPublicKey(v **types.SshPublicKey, value return nil } -func awsAwsjson11_deserializeDocumentSshPublicKeys(v *[]types.SshPublicKey, value interface{}) error { +func awsAwsjson11_deserializeDocumentWorkflowDetail(v **types.WorkflowDetail, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4953,33 +7217,48 @@ func awsAwsjson11_deserializeDocumentSshPublicKeys(v *[]types.SshPublicKey, valu return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.SshPublicKey + var sv *types.WorkflowDetail if *v == nil { - cv = []types.SshPublicKey{} + sv = &types.WorkflowDetail{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col types.SshPublicKey - destAddr := &col - if err := awsAwsjson11_deserializeDocumentSshPublicKey(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + for key, value := range shape { + switch key { + case "ExecutionRole": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Role to be of type string, got %T instead", value) + } + sv.ExecutionRole = ptr.String(jtv) + } + + case "WorkflowId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected WorkflowId to be of type string, got %T instead", value) + } + sv.WorkflowId = ptr.String(jtv) + } + + default: + _, _ = key, value + } } - *v = cv + *v = sv return nil } -func awsAwsjson11_deserializeDocumentSubnetIds(v *[]string, value interface{}) error { +func awsAwsjson11_deserializeDocumentWorkflowDetails(v **types.WorkflowDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4987,35 +7266,35 @@ func awsAwsjson11_deserializeDocumentSubnetIds(v *[]string, value interface{}) e return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []string + var sv *types.WorkflowDetails if *v == nil { - cv = []string{} + sv = &types.WorkflowDetails{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col string - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected SubnetId to be of type string, got %T instead", value) + for key, value := range shape { + switch key { + case "OnUpload": + if err := awsAwsjson11_deserializeDocumentOnUploadWorkflowDetails(&sv.OnUpload, value); err != nil { + return err } - col = jtv - } - cv = append(cv, col) + default: + _, _ = key, value + + } } - *v = cv + *v = sv return nil } -func awsAwsjson11_deserializeDocumentTag(v **types.Tag, value interface{}) error { +func awsAwsjson11_deserializeDocumentWorkflowStep(v **types.WorkflowStep, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5028,31 +7307,42 @@ func awsAwsjson11_deserializeDocumentTag(v **types.Tag, value interface{}) error return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.Tag + var sv *types.WorkflowStep if *v == nil { - sv = &types.Tag{} + sv = &types.WorkflowStep{} } else { sv = *v } for key, value := range shape { switch key { - case "Key": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected TagKey to be of type string, got %T instead", value) - } - sv.Key = ptr.String(jtv) + case "CopyStepDetails": + if err := awsAwsjson11_deserializeDocumentCopyStepDetails(&sv.CopyStepDetails, value); err != nil { + return err + } + + case "CustomStepDetails": + if err := awsAwsjson11_deserializeDocumentCustomStepDetails(&sv.CustomStepDetails, value); err != nil { + return err + } + + case "DeleteStepDetails": + if err := awsAwsjson11_deserializeDocumentDeleteStepDetails(&sv.DeleteStepDetails, value); err != nil { + return err + } + + case "TagStepDetails": + if err := awsAwsjson11_deserializeDocumentTagStepDetails(&sv.TagStepDetails, value); err != nil { + return err } - case "Value": + case "Type": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected TagValue to be of type string, got %T instead", value) + return fmt.Errorf("expected WorkflowStepType to be of type string, got %T instead", value) } - sv.Value = ptr.String(jtv) + sv.Type = types.WorkflowStepType(jtv) } default: @@ -5064,7 +7354,7 @@ func awsAwsjson11_deserializeDocumentTag(v **types.Tag, value interface{}) error return nil } -func awsAwsjson11_deserializeDocumentTags(v *[]types.Tag, value interface{}) error { +func awsAwsjson11_deserializeDocumentWorkflowSteps(v *[]types.WorkflowStep, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5077,17 +7367,17 @@ func awsAwsjson11_deserializeDocumentTags(v *[]types.Tag, value interface{}) err return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.Tag + var cv []types.WorkflowStep if *v == nil { - cv = []types.Tag{} + cv = []types.WorkflowStep{} } else { cv = *v } for _, value := range shape { - var col types.Tag + var col types.WorkflowStep destAddr := &col - if err := awsAwsjson11_deserializeDocumentTag(&destAddr, value); err != nil { + if err := awsAwsjson11_deserializeDocumentWorkflowStep(&destAddr, value); err != nil { return err } col = *destAddr @@ -5098,7 +7388,7 @@ func awsAwsjson11_deserializeDocumentTags(v *[]types.Tag, value interface{}) err return nil } -func awsAwsjson11_deserializeDocumentThrottlingException(v **types.ThrottlingException, value interface{}) error { +func awsAwsjson11_deserializeOpDocumentCreateAccessOutput(v **CreateAccessOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5111,22 +7401,31 @@ func awsAwsjson11_deserializeDocumentThrottlingException(v **types.ThrottlingExc return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ThrottlingException + var sv *CreateAccessOutput if *v == nil { - sv = &types.ThrottlingException{} + sv = &CreateAccessOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "RetryAfterSeconds": + case "ExternalId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected RetryAfterSeconds to be of type string, got %T instead", value) + return fmt.Errorf("expected ExternalId to be of type string, got %T instead", value) } - sv.RetryAfterSeconds = ptr.String(jtv) + sv.ExternalId = ptr.String(jtv) + } + + case "ServerId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ServerId to be of type string, got %T instead", value) + } + sv.ServerId = ptr.String(jtv) } default: @@ -5138,7 +7437,7 @@ func awsAwsjson11_deserializeDocumentThrottlingException(v **types.ThrottlingExc return nil } -func awsAwsjson11_deserializeOpDocumentCreateAccessOutput(v **CreateAccessOutput, value interface{}) error { +func awsAwsjson11_deserializeOpDocumentCreateServerOutput(v **CreateServerOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5151,24 +7450,15 @@ func awsAwsjson11_deserializeOpDocumentCreateAccessOutput(v **CreateAccessOutput return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CreateAccessOutput + var sv *CreateServerOutput if *v == nil { - sv = &CreateAccessOutput{} + sv = &CreateServerOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "ExternalId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ExternalId to be of type string, got %T instead", value) - } - sv.ExternalId = ptr.String(jtv) - } - case "ServerId": if value != nil { jtv, ok := value.(string) @@ -5187,7 +7477,7 @@ func awsAwsjson11_deserializeOpDocumentCreateAccessOutput(v **CreateAccessOutput return nil } -func awsAwsjson11_deserializeOpDocumentCreateServerOutput(v **CreateServerOutput, value interface{}) error { +func awsAwsjson11_deserializeOpDocumentCreateUserOutput(v **CreateUserOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5200,9 +7490,9 @@ func awsAwsjson11_deserializeOpDocumentCreateServerOutput(v **CreateServerOutput return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CreateServerOutput + var sv *CreateUserOutput if *v == nil { - sv = &CreateServerOutput{} + sv = &CreateUserOutput{} } else { sv = *v } @@ -5218,6 +7508,15 @@ func awsAwsjson11_deserializeOpDocumentCreateServerOutput(v **CreateServerOutput sv.ServerId = ptr.String(jtv) } + case "UserName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected UserName to be of type string, got %T instead", value) + } + sv.UserName = ptr.String(jtv) + } + default: _, _ = key, value @@ -5227,7 +7526,7 @@ func awsAwsjson11_deserializeOpDocumentCreateServerOutput(v **CreateServerOutput return nil } -func awsAwsjson11_deserializeOpDocumentCreateUserOutput(v **CreateUserOutput, value interface{}) error { +func awsAwsjson11_deserializeOpDocumentCreateWorkflowOutput(v **CreateWorkflowOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5240,31 +7539,22 @@ func awsAwsjson11_deserializeOpDocumentCreateUserOutput(v **CreateUserOutput, va return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CreateUserOutput + var sv *CreateWorkflowOutput if *v == nil { - sv = &CreateUserOutput{} + sv = &CreateWorkflowOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "ServerId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ServerId to be of type string, got %T instead", value) - } - sv.ServerId = ptr.String(jtv) - } - - case "UserName": + case "WorkflowId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected UserName to be of type string, got %T instead", value) + return fmt.Errorf("expected WorkflowId to be of type string, got %T instead", value) } - sv.UserName = ptr.String(jtv) + sv.WorkflowId = ptr.String(jtv) } default: @@ -5321,6 +7611,51 @@ func awsAwsjson11_deserializeOpDocumentDescribeAccessOutput(v **DescribeAccessOu return nil } +func awsAwsjson11_deserializeOpDocumentDescribeExecutionOutput(v **DescribeExecutionOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *DescribeExecutionOutput + if *v == nil { + sv = &DescribeExecutionOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Execution": + if err := awsAwsjson11_deserializeDocumentDescribedExecution(&sv.Execution, value); err != nil { + return err + } + + case "WorkflowId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected WorkflowId to be of type string, got %T instead", value) + } + sv.WorkflowId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentDescribeSecurityPolicyOutput(v **DescribeSecurityPolicyOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -5438,6 +7773,42 @@ func awsAwsjson11_deserializeOpDocumentDescribeUserOutput(v **DescribeUserOutput return nil } +func awsAwsjson11_deserializeOpDocumentDescribeWorkflowOutput(v **DescribeWorkflowOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *DescribeWorkflowOutput + if *v == nil { + sv = &DescribeWorkflowOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Workflow": + if err := awsAwsjson11_deserializeDocumentDescribedWorkflow(&sv.Workflow, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentImportSshPublicKeyOutput(v **ImportSshPublicKeyOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -5550,6 +7921,60 @@ func awsAwsjson11_deserializeOpDocumentListAccessesOutput(v **ListAccessesOutput return nil } +func awsAwsjson11_deserializeOpDocumentListExecutionsOutput(v **ListExecutionsOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *ListExecutionsOutput + if *v == nil { + sv = &ListExecutionsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Executions": + if err := awsAwsjson11_deserializeDocumentListedExecutions(&sv.Executions, value); err != nil { + return err + } + + case "NextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NextToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + case "WorkflowId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected WorkflowId to be of type string, got %T instead", value) + } + sv.WorkflowId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentListSecurityPoliciesOutput(v **ListSecurityPoliciesOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -5748,6 +8173,82 @@ func awsAwsjson11_deserializeOpDocumentListUsersOutput(v **ListUsersOutput, valu return nil } +func awsAwsjson11_deserializeOpDocumentListWorkflowsOutput(v **ListWorkflowsOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *ListWorkflowsOutput + if *v == nil { + sv = &ListWorkflowsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "NextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NextToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + case "Workflows": + if err := awsAwsjson11_deserializeDocumentListedWorkflows(&sv.Workflows, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeOpDocumentSendWorkflowStepStateOutput(v **SendWorkflowStepStateOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *SendWorkflowStepStateOutput + if *v == nil { + sv = &SendWorkflowStepStateOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentTestIdentityProviderOutput(v **TestIdentityProviderOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/transfer/generated.json b/service/transfer/generated.json index ded5c1efcff..58dae2d9556 100644 --- a/service/transfer/generated.json +++ b/service/transfer/generated.json @@ -8,20 +8,27 @@ "api_op_CreateAccess.go", "api_op_CreateServer.go", "api_op_CreateUser.go", + "api_op_CreateWorkflow.go", "api_op_DeleteAccess.go", "api_op_DeleteServer.go", "api_op_DeleteSshPublicKey.go", "api_op_DeleteUser.go", + "api_op_DeleteWorkflow.go", "api_op_DescribeAccess.go", + "api_op_DescribeExecution.go", "api_op_DescribeSecurityPolicy.go", "api_op_DescribeServer.go", "api_op_DescribeUser.go", + "api_op_DescribeWorkflow.go", "api_op_ImportSshPublicKey.go", "api_op_ListAccesses.go", + "api_op_ListExecutions.go", "api_op_ListSecurityPolicies.go", "api_op_ListServers.go", "api_op_ListTagsForResource.go", "api_op_ListUsers.go", + "api_op_ListWorkflows.go", + "api_op_SendWorkflowStepState.go", "api_op_StartServer.go", "api_op_StopServer.go", "api_op_TagResource.go", diff --git a/service/transfer/serializers.go b/service/transfer/serializers.go index ac369ed1380..fe08b5c9c92 100644 --- a/service/transfer/serializers.go +++ b/service/transfer/serializers.go @@ -155,6 +155,53 @@ func (m *awsAwsjson11_serializeOpCreateUser) HandleSerialize(ctx context.Context return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpCreateWorkflow struct { +} + +func (*awsAwsjson11_serializeOpCreateWorkflow) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpCreateWorkflow) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*CreateWorkflowInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.CreateWorkflow") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentCreateWorkflowInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + type awsAwsjson11_serializeOpDeleteAccess struct { } @@ -343,14 +390,14 @@ func (m *awsAwsjson11_serializeOpDeleteUser) HandleSerialize(ctx context.Context return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpDescribeAccess struct { +type awsAwsjson11_serializeOpDeleteWorkflow struct { } -func (*awsAwsjson11_serializeOpDescribeAccess) ID() string { +func (*awsAwsjson11_serializeOpDeleteWorkflow) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpDescribeAccess) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpDeleteWorkflow) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -358,7 +405,7 @@ func (m *awsAwsjson11_serializeOpDescribeAccess) HandleSerialize(ctx context.Con return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeAccessInput) + input, ok := in.Parameters.(*DeleteWorkflowInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -371,10 +418,10 @@ func (m *awsAwsjson11_serializeOpDescribeAccess) HandleSerialize(ctx context.Con return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.DescribeAccess") + httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.DeleteWorkflow") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentDescribeAccessInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentDeleteWorkflowInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -390,14 +437,14 @@ func (m *awsAwsjson11_serializeOpDescribeAccess) HandleSerialize(ctx context.Con return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpDescribeSecurityPolicy struct { +type awsAwsjson11_serializeOpDescribeAccess struct { } -func (*awsAwsjson11_serializeOpDescribeSecurityPolicy) ID() string { +func (*awsAwsjson11_serializeOpDescribeAccess) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpDescribeSecurityPolicy) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpDescribeAccess) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -405,7 +452,7 @@ func (m *awsAwsjson11_serializeOpDescribeSecurityPolicy) HandleSerialize(ctx con return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeSecurityPolicyInput) + input, ok := in.Parameters.(*DescribeAccessInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -418,10 +465,10 @@ func (m *awsAwsjson11_serializeOpDescribeSecurityPolicy) HandleSerialize(ctx con return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.DescribeSecurityPolicy") + httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.DescribeAccess") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentDescribeSecurityPolicyInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentDescribeAccessInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -437,14 +484,14 @@ func (m *awsAwsjson11_serializeOpDescribeSecurityPolicy) HandleSerialize(ctx con return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpDescribeServer struct { +type awsAwsjson11_serializeOpDescribeExecution struct { } -func (*awsAwsjson11_serializeOpDescribeServer) ID() string { +func (*awsAwsjson11_serializeOpDescribeExecution) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpDescribeServer) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpDescribeExecution) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -452,7 +499,7 @@ func (m *awsAwsjson11_serializeOpDescribeServer) HandleSerialize(ctx context.Con return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeServerInput) + input, ok := in.Parameters.(*DescribeExecutionInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -465,10 +512,10 @@ func (m *awsAwsjson11_serializeOpDescribeServer) HandleSerialize(ctx context.Con return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.DescribeServer") + httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.DescribeExecution") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentDescribeServerInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentDescribeExecutionInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -484,14 +531,14 @@ func (m *awsAwsjson11_serializeOpDescribeServer) HandleSerialize(ctx context.Con return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpDescribeUser struct { +type awsAwsjson11_serializeOpDescribeSecurityPolicy struct { } -func (*awsAwsjson11_serializeOpDescribeUser) ID() string { +func (*awsAwsjson11_serializeOpDescribeSecurityPolicy) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpDescribeUser) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpDescribeSecurityPolicy) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -499,7 +546,7 @@ func (m *awsAwsjson11_serializeOpDescribeUser) HandleSerialize(ctx context.Conte return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeUserInput) + input, ok := in.Parameters.(*DescribeSecurityPolicyInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -512,10 +559,10 @@ func (m *awsAwsjson11_serializeOpDescribeUser) HandleSerialize(ctx context.Conte return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.DescribeUser") + httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.DescribeSecurityPolicy") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentDescribeUserInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentDescribeSecurityPolicyInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -531,14 +578,14 @@ func (m *awsAwsjson11_serializeOpDescribeUser) HandleSerialize(ctx context.Conte return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpImportSshPublicKey struct { +type awsAwsjson11_serializeOpDescribeServer struct { } -func (*awsAwsjson11_serializeOpImportSshPublicKey) ID() string { +func (*awsAwsjson11_serializeOpDescribeServer) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpImportSshPublicKey) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpDescribeServer) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -546,7 +593,7 @@ func (m *awsAwsjson11_serializeOpImportSshPublicKey) HandleSerialize(ctx context return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ImportSshPublicKeyInput) + input, ok := in.Parameters.(*DescribeServerInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -559,10 +606,10 @@ func (m *awsAwsjson11_serializeOpImportSshPublicKey) HandleSerialize(ctx context return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.ImportSshPublicKey") + httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.DescribeServer") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentImportSshPublicKeyInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentDescribeServerInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -578,14 +625,14 @@ func (m *awsAwsjson11_serializeOpImportSshPublicKey) HandleSerialize(ctx context return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpListAccesses struct { +type awsAwsjson11_serializeOpDescribeUser struct { } -func (*awsAwsjson11_serializeOpListAccesses) ID() string { +func (*awsAwsjson11_serializeOpDescribeUser) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpListAccesses) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpDescribeUser) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -593,7 +640,7 @@ func (m *awsAwsjson11_serializeOpListAccesses) HandleSerialize(ctx context.Conte return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListAccessesInput) + input, ok := in.Parameters.(*DescribeUserInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -606,10 +653,10 @@ func (m *awsAwsjson11_serializeOpListAccesses) HandleSerialize(ctx context.Conte return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.ListAccesses") + httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.DescribeUser") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentListAccessesInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentDescribeUserInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -625,14 +672,14 @@ func (m *awsAwsjson11_serializeOpListAccesses) HandleSerialize(ctx context.Conte return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpListSecurityPolicies struct { +type awsAwsjson11_serializeOpDescribeWorkflow struct { } -func (*awsAwsjson11_serializeOpListSecurityPolicies) ID() string { +func (*awsAwsjson11_serializeOpDescribeWorkflow) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpListSecurityPolicies) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpDescribeWorkflow) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -640,7 +687,7 @@ func (m *awsAwsjson11_serializeOpListSecurityPolicies) HandleSerialize(ctx conte return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListSecurityPoliciesInput) + input, ok := in.Parameters.(*DescribeWorkflowInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -653,10 +700,10 @@ func (m *awsAwsjson11_serializeOpListSecurityPolicies) HandleSerialize(ctx conte return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.ListSecurityPolicies") + httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.DescribeWorkflow") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentListSecurityPoliciesInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentDescribeWorkflowInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -672,14 +719,14 @@ func (m *awsAwsjson11_serializeOpListSecurityPolicies) HandleSerialize(ctx conte return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpListServers struct { +type awsAwsjson11_serializeOpImportSshPublicKey struct { } -func (*awsAwsjson11_serializeOpListServers) ID() string { +func (*awsAwsjson11_serializeOpImportSshPublicKey) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpListServers) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpImportSshPublicKey) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -687,7 +734,7 @@ func (m *awsAwsjson11_serializeOpListServers) HandleSerialize(ctx context.Contex return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListServersInput) + input, ok := in.Parameters.(*ImportSshPublicKeyInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -700,10 +747,10 @@ func (m *awsAwsjson11_serializeOpListServers) HandleSerialize(ctx context.Contex return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.ListServers") + httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.ImportSshPublicKey") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentListServersInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentImportSshPublicKeyInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -719,14 +766,14 @@ func (m *awsAwsjson11_serializeOpListServers) HandleSerialize(ctx context.Contex return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpListTagsForResource struct { +type awsAwsjson11_serializeOpListAccesses struct { } -func (*awsAwsjson11_serializeOpListTagsForResource) ID() string { +func (*awsAwsjson11_serializeOpListAccesses) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpListTagsForResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpListAccesses) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -734,7 +781,7 @@ func (m *awsAwsjson11_serializeOpListTagsForResource) HandleSerialize(ctx contex return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListTagsForResourceInput) + input, ok := in.Parameters.(*ListAccessesInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -747,10 +794,10 @@ func (m *awsAwsjson11_serializeOpListTagsForResource) HandleSerialize(ctx contex return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.ListTagsForResource") + httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.ListAccesses") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentListTagsForResourceInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentListAccessesInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -766,14 +813,14 @@ func (m *awsAwsjson11_serializeOpListTagsForResource) HandleSerialize(ctx contex return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpListUsers struct { +type awsAwsjson11_serializeOpListExecutions struct { } -func (*awsAwsjson11_serializeOpListUsers) ID() string { +func (*awsAwsjson11_serializeOpListExecutions) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpListUsers) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpListExecutions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -781,7 +828,7 @@ func (m *awsAwsjson11_serializeOpListUsers) HandleSerialize(ctx context.Context, return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListUsersInput) + input, ok := in.Parameters.(*ListExecutionsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -794,10 +841,10 @@ func (m *awsAwsjson11_serializeOpListUsers) HandleSerialize(ctx context.Context, return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.ListUsers") + httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.ListExecutions") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentListUsersInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentListExecutionsInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -813,14 +860,14 @@ func (m *awsAwsjson11_serializeOpListUsers) HandleSerialize(ctx context.Context, return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpStartServer struct { +type awsAwsjson11_serializeOpListSecurityPolicies struct { } -func (*awsAwsjson11_serializeOpStartServer) ID() string { +func (*awsAwsjson11_serializeOpListSecurityPolicies) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpStartServer) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpListSecurityPolicies) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -828,7 +875,7 @@ func (m *awsAwsjson11_serializeOpStartServer) HandleSerialize(ctx context.Contex return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*StartServerInput) + input, ok := in.Parameters.(*ListSecurityPoliciesInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -841,10 +888,10 @@ func (m *awsAwsjson11_serializeOpStartServer) HandleSerialize(ctx context.Contex return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.StartServer") + httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.ListSecurityPolicies") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentStartServerInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentListSecurityPoliciesInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -860,14 +907,14 @@ func (m *awsAwsjson11_serializeOpStartServer) HandleSerialize(ctx context.Contex return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpStopServer struct { +type awsAwsjson11_serializeOpListServers struct { } -func (*awsAwsjson11_serializeOpStopServer) ID() string { +func (*awsAwsjson11_serializeOpListServers) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpStopServer) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpListServers) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -875,7 +922,7 @@ func (m *awsAwsjson11_serializeOpStopServer) HandleSerialize(ctx context.Context return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*StopServerInput) + input, ok := in.Parameters.(*ListServersInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -888,10 +935,10 @@ func (m *awsAwsjson11_serializeOpStopServer) HandleSerialize(ctx context.Context return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.StopServer") + httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.ListServers") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentStopServerInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentListServersInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -907,14 +954,14 @@ func (m *awsAwsjson11_serializeOpStopServer) HandleSerialize(ctx context.Context return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpTagResource struct { +type awsAwsjson11_serializeOpListTagsForResource struct { } -func (*awsAwsjson11_serializeOpTagResource) ID() string { +func (*awsAwsjson11_serializeOpListTagsForResource) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpTagResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpListTagsForResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -922,7 +969,7 @@ func (m *awsAwsjson11_serializeOpTagResource) HandleSerialize(ctx context.Contex return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*TagResourceInput) + input, ok := in.Parameters.(*ListTagsForResourceInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -935,10 +982,10 @@ func (m *awsAwsjson11_serializeOpTagResource) HandleSerialize(ctx context.Contex return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.TagResource") + httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.ListTagsForResource") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentTagResourceInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentListTagsForResourceInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -954,14 +1001,14 @@ func (m *awsAwsjson11_serializeOpTagResource) HandleSerialize(ctx context.Contex return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpTestIdentityProvider struct { +type awsAwsjson11_serializeOpListUsers struct { } -func (*awsAwsjson11_serializeOpTestIdentityProvider) ID() string { +func (*awsAwsjson11_serializeOpListUsers) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpTestIdentityProvider) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpListUsers) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -969,7 +1016,7 @@ func (m *awsAwsjson11_serializeOpTestIdentityProvider) HandleSerialize(ctx conte return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*TestIdentityProviderInput) + input, ok := in.Parameters.(*ListUsersInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -982,10 +1029,10 @@ func (m *awsAwsjson11_serializeOpTestIdentityProvider) HandleSerialize(ctx conte return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.TestIdentityProvider") + httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.ListUsers") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentTestIdentityProviderInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentListUsersInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -1001,14 +1048,14 @@ func (m *awsAwsjson11_serializeOpTestIdentityProvider) HandleSerialize(ctx conte return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpUntagResource struct { +type awsAwsjson11_serializeOpListWorkflows struct { } -func (*awsAwsjson11_serializeOpUntagResource) ID() string { +func (*awsAwsjson11_serializeOpListWorkflows) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpUntagResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpListWorkflows) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -1016,7 +1063,7 @@ func (m *awsAwsjson11_serializeOpUntagResource) HandleSerialize(ctx context.Cont return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*UntagResourceInput) + input, ok := in.Parameters.(*ListWorkflowsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -1029,10 +1076,10 @@ func (m *awsAwsjson11_serializeOpUntagResource) HandleSerialize(ctx context.Cont return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.UntagResource") + httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.ListWorkflows") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentUntagResourceInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentListWorkflowsInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -1048,14 +1095,14 @@ func (m *awsAwsjson11_serializeOpUntagResource) HandleSerialize(ctx context.Cont return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpUpdateAccess struct { +type awsAwsjson11_serializeOpSendWorkflowStepState struct { } -func (*awsAwsjson11_serializeOpUpdateAccess) ID() string { +func (*awsAwsjson11_serializeOpSendWorkflowStepState) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpUpdateAccess) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpSendWorkflowStepState) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -1063,7 +1110,7 @@ func (m *awsAwsjson11_serializeOpUpdateAccess) HandleSerialize(ctx context.Conte return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*UpdateAccessInput) + input, ok := in.Parameters.(*SendWorkflowStepStateInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -1076,10 +1123,10 @@ func (m *awsAwsjson11_serializeOpUpdateAccess) HandleSerialize(ctx context.Conte return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.UpdateAccess") + httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.SendWorkflowStepState") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentUpdateAccessInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentSendWorkflowStepStateInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -1095,14 +1142,14 @@ func (m *awsAwsjson11_serializeOpUpdateAccess) HandleSerialize(ctx context.Conte return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpUpdateServer struct { +type awsAwsjson11_serializeOpStartServer struct { } -func (*awsAwsjson11_serializeOpUpdateServer) ID() string { +func (*awsAwsjson11_serializeOpStartServer) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpUpdateServer) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpStartServer) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -1110,7 +1157,7 @@ func (m *awsAwsjson11_serializeOpUpdateServer) HandleSerialize(ctx context.Conte return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*UpdateServerInput) + input, ok := in.Parameters.(*StartServerInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -1123,10 +1170,10 @@ func (m *awsAwsjson11_serializeOpUpdateServer) HandleSerialize(ctx context.Conte return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.UpdateServer") + httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.StartServer") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentUpdateServerInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentStartServerInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -1142,14 +1189,14 @@ func (m *awsAwsjson11_serializeOpUpdateServer) HandleSerialize(ctx context.Conte return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpUpdateUser struct { +type awsAwsjson11_serializeOpStopServer struct { } -func (*awsAwsjson11_serializeOpUpdateUser) ID() string { +func (*awsAwsjson11_serializeOpStopServer) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpUpdateUser) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpStopServer) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -1157,7 +1204,7 @@ func (m *awsAwsjson11_serializeOpUpdateUser) HandleSerialize(ctx context.Context return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*UpdateUserInput) + input, ok := in.Parameters.(*StopServerInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -1170,10 +1217,10 @@ func (m *awsAwsjson11_serializeOpUpdateUser) HandleSerialize(ctx context.Context return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.UpdateUser") + httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.StopServer") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentUpdateUserInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentStopServerInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -1188,33 +1235,390 @@ func (m *awsAwsjson11_serializeOpUpdateUser) HandleSerialize(ctx context.Context return next.HandleSerialize(ctx, in) } -func awsAwsjson11_serializeDocumentAddressAllocationIds(v []string, value smithyjson.Value) error { - array := value.Array() - defer array.Close() - for i := range v { - av := array.Value() - av.String(v[i]) - } - return nil +type awsAwsjson11_serializeOpTagResource struct { } -func awsAwsjson11_serializeDocumentEndpointDetails(v *types.EndpointDetails, value smithyjson.Value) error { - object := value.Object() - defer object.Close() +func (*awsAwsjson11_serializeOpTagResource) ID() string { + return "OperationSerializer" +} - if v.AddressAllocationIds != nil { - ok := object.Key("AddressAllocationIds") - if err := awsAwsjson11_serializeDocumentAddressAllocationIds(v.AddressAllocationIds, ok); err != nil { - return err - } +func (m *awsAwsjson11_serializeOpTagResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - if v.SecurityGroupIds != nil { - ok := object.Key("SecurityGroupIds") - if err := awsAwsjson11_serializeDocumentSecurityGroupIds(v.SecurityGroupIds, ok); err != nil { - return err - } + input, ok := in.Parameters.(*TagResourceInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.TagResource") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentTagResourceInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + +type awsAwsjson11_serializeOpTestIdentityProvider struct { +} + +func (*awsAwsjson11_serializeOpTestIdentityProvider) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpTestIdentityProvider) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*TestIdentityProviderInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.TestIdentityProvider") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentTestIdentityProviderInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + +type awsAwsjson11_serializeOpUntagResource struct { +} + +func (*awsAwsjson11_serializeOpUntagResource) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpUntagResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*UntagResourceInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.UntagResource") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentUntagResourceInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + +type awsAwsjson11_serializeOpUpdateAccess struct { +} + +func (*awsAwsjson11_serializeOpUpdateAccess) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpUpdateAccess) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*UpdateAccessInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.UpdateAccess") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentUpdateAccessInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + +type awsAwsjson11_serializeOpUpdateServer struct { +} + +func (*awsAwsjson11_serializeOpUpdateServer) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpUpdateServer) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*UpdateServerInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.UpdateServer") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentUpdateServerInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + +type awsAwsjson11_serializeOpUpdateUser struct { +} + +func (*awsAwsjson11_serializeOpUpdateUser) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpUpdateUser) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*UpdateUserInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("TransferService.UpdateUser") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentUpdateUserInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsAwsjson11_serializeDocumentAddressAllocationIds(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + +func awsAwsjson11_serializeDocumentCopyStepDetails(v *types.CopyStepDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DestinationFileLocation != nil { + ok := object.Key("DestinationFileLocation") + if err := awsAwsjson11_serializeDocumentInputFileLocation(v.DestinationFileLocation, ok); err != nil { + return err + } + } + + if v.Name != nil { + ok := object.Key("Name") + ok.String(*v.Name) + } + + if len(v.OverwriteExisting) > 0 { + ok := object.Key("OverwriteExisting") + ok.String(string(v.OverwriteExisting)) + } + + return nil +} + +func awsAwsjson11_serializeDocumentCustomStepDetails(v *types.CustomStepDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Name != nil { + ok := object.Key("Name") + ok.String(*v.Name) + } + + if v.Target != nil { + ok := object.Key("Target") + ok.String(*v.Target) + } + + if v.TimeoutSeconds != nil { + ok := object.Key("TimeoutSeconds") + ok.Integer(*v.TimeoutSeconds) + } + + return nil +} + +func awsAwsjson11_serializeDocumentDeleteStepDetails(v *types.DeleteStepDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Name != nil { + ok := object.Key("Name") + ok.String(*v.Name) + } + + return nil +} + +func awsAwsjson11_serializeDocumentEfsFileLocation(v *types.EfsFileLocation, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.FileSystemId != nil { + ok := object.Key("FileSystemId") + ok.String(*v.FileSystemId) + } + + if v.Path != nil { + ok := object.Key("Path") + ok.String(*v.Path) + } + + return nil +} + +func awsAwsjson11_serializeDocumentEndpointDetails(v *types.EndpointDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AddressAllocationIds != nil { + ok := object.Key("AddressAllocationIds") + if err := awsAwsjson11_serializeDocumentAddressAllocationIds(v.AddressAllocationIds, ok); err != nil { + return err + } + } + + if v.SecurityGroupIds != nil { + ok := object.Key("SecurityGroupIds") + if err := awsAwsjson11_serializeDocumentSecurityGroupIds(v.SecurityGroupIds, ok); err != nil { + return err + } } if v.SubnetIds != nil { @@ -1289,6 +1693,40 @@ func awsAwsjson11_serializeDocumentIdentityProviderDetails(v *types.IdentityProv return nil } +func awsAwsjson11_serializeDocumentInputFileLocation(v *types.InputFileLocation, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.EfsFileLocation != nil { + ok := object.Key("EfsFileLocation") + if err := awsAwsjson11_serializeDocumentEfsFileLocation(v.EfsFileLocation, ok); err != nil { + return err + } + } + + if v.S3FileLocation != nil { + ok := object.Key("S3FileLocation") + if err := awsAwsjson11_serializeDocumentS3InputFileLocation(v.S3FileLocation, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson11_serializeDocumentOnUploadWorkflowDetails(v []types.WorkflowDetail, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsAwsjson11_serializeDocumentWorkflowDetail(&v[i], av); err != nil { + return err + } + } + return nil +} + func awsAwsjson11_serializeDocumentPosixProfile(v *types.PosixProfile, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1336,6 +1774,53 @@ func awsAwsjson11_serializeDocumentProtocols(v []types.Protocol, value smithyjso return nil } +func awsAwsjson11_serializeDocumentS3InputFileLocation(v *types.S3InputFileLocation, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Bucket != nil { + ok := object.Key("Bucket") + ok.String(*v.Bucket) + } + + if v.Key != nil { + ok := object.Key("Key") + ok.String(*v.Key) + } + + return nil +} + +func awsAwsjson11_serializeDocumentS3Tag(v *types.S3Tag, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Key != nil { + ok := object.Key("Key") + ok.String(*v.Key) + } + + if v.Value != nil { + ok := object.Key("Value") + ok.String(*v.Value) + } + + return nil +} + +func awsAwsjson11_serializeDocumentS3Tags(v []types.S3Tag, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsAwsjson11_serializeDocumentS3Tag(&v[i], av); err != nil { + return err + } + } + return nil +} + func awsAwsjson11_serializeDocumentSecondaryGids(v []int64, value smithyjson.Value) error { array := value.Array() defer array.Close() @@ -1410,6 +1895,109 @@ func awsAwsjson11_serializeDocumentTags(v []types.Tag, value smithyjson.Value) e return nil } +func awsAwsjson11_serializeDocumentTagStepDetails(v *types.TagStepDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Name != nil { + ok := object.Key("Name") + ok.String(*v.Name) + } + + if v.Tags != nil { + ok := object.Key("Tags") + if err := awsAwsjson11_serializeDocumentS3Tags(v.Tags, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson11_serializeDocumentWorkflowDetail(v *types.WorkflowDetail, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ExecutionRole != nil { + ok := object.Key("ExecutionRole") + ok.String(*v.ExecutionRole) + } + + if v.WorkflowId != nil { + ok := object.Key("WorkflowId") + ok.String(*v.WorkflowId) + } + + return nil +} + +func awsAwsjson11_serializeDocumentWorkflowDetails(v *types.WorkflowDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.OnUpload != nil { + ok := object.Key("OnUpload") + if err := awsAwsjson11_serializeDocumentOnUploadWorkflowDetails(v.OnUpload, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson11_serializeDocumentWorkflowStep(v *types.WorkflowStep, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.CopyStepDetails != nil { + ok := object.Key("CopyStepDetails") + if err := awsAwsjson11_serializeDocumentCopyStepDetails(v.CopyStepDetails, ok); err != nil { + return err + } + } + + if v.CustomStepDetails != nil { + ok := object.Key("CustomStepDetails") + if err := awsAwsjson11_serializeDocumentCustomStepDetails(v.CustomStepDetails, ok); err != nil { + return err + } + } + + if v.DeleteStepDetails != nil { + ok := object.Key("DeleteStepDetails") + if err := awsAwsjson11_serializeDocumentDeleteStepDetails(v.DeleteStepDetails, ok); err != nil { + return err + } + } + + if v.TagStepDetails != nil { + ok := object.Key("TagStepDetails") + if err := awsAwsjson11_serializeDocumentTagStepDetails(v.TagStepDetails, ok); err != nil { + return err + } + } + + if len(v.Type) > 0 { + ok := object.Key("Type") + ok.String(string(v.Type)) + } + + return nil +} + +func awsAwsjson11_serializeDocumentWorkflowSteps(v []types.WorkflowStep, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsAwsjson11_serializeDocumentWorkflowStep(&v[i], av); err != nil { + return err + } + } + return nil +} + func awsAwsjson11_serializeOpDocumentCreateAccessInput(v *CreateAccessInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1528,6 +2116,13 @@ func awsAwsjson11_serializeOpDocumentCreateServerInput(v *CreateServerInput, val } } + if v.WorkflowDetails != nil { + ok := object.Key("WorkflowDetails") + if err := awsAwsjson11_serializeDocumentWorkflowDetails(v.WorkflowDetails, ok); err != nil { + return err + } + } + return nil } @@ -1594,6 +2189,39 @@ func awsAwsjson11_serializeOpDocumentCreateUserInput(v *CreateUserInput, value s return nil } +func awsAwsjson11_serializeOpDocumentCreateWorkflowInput(v *CreateWorkflowInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Description != nil { + ok := object.Key("Description") + ok.String(*v.Description) + } + + if v.OnExceptionSteps != nil { + ok := object.Key("OnExceptionSteps") + if err := awsAwsjson11_serializeDocumentWorkflowSteps(v.OnExceptionSteps, ok); err != nil { + return err + } + } + + if v.Steps != nil { + ok := object.Key("Steps") + if err := awsAwsjson11_serializeDocumentWorkflowSteps(v.Steps, ok); err != nil { + return err + } + } + + if v.Tags != nil { + ok := object.Key("Tags") + if err := awsAwsjson11_serializeDocumentTags(v.Tags, ok); err != nil { + return err + } + } + + return nil +} + func awsAwsjson11_serializeOpDocumentDeleteAccessInput(v *DeleteAccessInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1662,6 +2290,18 @@ func awsAwsjson11_serializeOpDocumentDeleteUserInput(v *DeleteUserInput, value s return nil } +func awsAwsjson11_serializeOpDocumentDeleteWorkflowInput(v *DeleteWorkflowInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.WorkflowId != nil { + ok := object.Key("WorkflowId") + ok.String(*v.WorkflowId) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentDescribeAccessInput(v *DescribeAccessInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1679,6 +2319,23 @@ func awsAwsjson11_serializeOpDocumentDescribeAccessInput(v *DescribeAccessInput, return nil } +func awsAwsjson11_serializeOpDocumentDescribeExecutionInput(v *DescribeExecutionInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ExecutionId != nil { + ok := object.Key("ExecutionId") + ok.String(*v.ExecutionId) + } + + if v.WorkflowId != nil { + ok := object.Key("WorkflowId") + ok.String(*v.WorkflowId) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentDescribeSecurityPolicyInput(v *DescribeSecurityPolicyInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1720,6 +2377,18 @@ func awsAwsjson11_serializeOpDocumentDescribeUserInput(v *DescribeUserInput, val return nil } +func awsAwsjson11_serializeOpDocumentDescribeWorkflowInput(v *DescribeWorkflowInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.WorkflowId != nil { + ok := object.Key("WorkflowId") + ok.String(*v.WorkflowId) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentImportSshPublicKeyInput(v *ImportSshPublicKeyInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1764,6 +2433,28 @@ func awsAwsjson11_serializeOpDocumentListAccessesInput(v *ListAccessesInput, val return nil } +func awsAwsjson11_serializeOpDocumentListExecutionsInput(v *ListExecutionsInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.MaxResults != nil { + ok := object.Key("MaxResults") + ok.Integer(*v.MaxResults) + } + + if v.NextToken != nil { + ok := object.Key("NextToken") + ok.String(*v.NextToken) + } + + if v.WorkflowId != nil { + ok := object.Key("WorkflowId") + ok.String(*v.WorkflowId) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentListSecurityPoliciesInput(v *ListSecurityPoliciesInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1842,6 +2533,50 @@ func awsAwsjson11_serializeOpDocumentListUsersInput(v *ListUsersInput, value smi return nil } +func awsAwsjson11_serializeOpDocumentListWorkflowsInput(v *ListWorkflowsInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.MaxResults != nil { + ok := object.Key("MaxResults") + ok.Integer(*v.MaxResults) + } + + if v.NextToken != nil { + ok := object.Key("NextToken") + ok.String(*v.NextToken) + } + + return nil +} + +func awsAwsjson11_serializeOpDocumentSendWorkflowStepStateInput(v *SendWorkflowStepStateInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ExecutionId != nil { + ok := object.Key("ExecutionId") + ok.String(*v.ExecutionId) + } + + if len(v.Status) > 0 { + ok := object.Key("Status") + ok.String(string(v.Status)) + } + + if v.Token != nil { + ok := object.Key("Token") + ok.String(*v.Token) + } + + if v.WorkflowId != nil { + ok := object.Key("WorkflowId") + ok.String(*v.WorkflowId) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentStartServerInput(v *StartServerInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -2049,6 +2784,13 @@ func awsAwsjson11_serializeOpDocumentUpdateServerInput(v *UpdateServerInput, val ok.String(*v.ServerId) } + if v.WorkflowDetails != nil { + ok := object.Key("WorkflowDetails") + if err := awsAwsjson11_serializeDocumentWorkflowDetails(v.WorkflowDetails, ok); err != nil { + return err + } + } + return nil } diff --git a/service/transfer/types/enums.go b/service/transfer/types/enums.go index 541889db853..976f7b9da27 100644 --- a/service/transfer/types/enums.go +++ b/service/transfer/types/enums.go @@ -2,6 +2,24 @@ package types +type CustomStepStatus string + +// Enum values for CustomStepStatus +const ( + CustomStepStatusSuccess CustomStepStatus = "SUCCESS" + CustomStepStatusFailure CustomStepStatus = "FAILURE" +) + +// Values returns all known values for CustomStepStatus. Note that this can be +// expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (CustomStepStatus) Values() []CustomStepStatus { + return []CustomStepStatus{ + "SUCCESS", + "FAILURE", + } +} + type Domain string // Enum values for Domain @@ -40,6 +58,44 @@ func (EndpointType) Values() []EndpointType { } } +type ExecutionErrorType string + +// Enum values for ExecutionErrorType +const ( + ExecutionErrorTypePermissionDenied ExecutionErrorType = "PERMISSION_DENIED" +) + +// Values returns all known values for ExecutionErrorType. Note that this can be +// expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (ExecutionErrorType) Values() []ExecutionErrorType { + return []ExecutionErrorType{ + "PERMISSION_DENIED", + } +} + +type ExecutionStatus string + +// Enum values for ExecutionStatus +const ( + ExecutionStatusInProgress ExecutionStatus = "IN_PROGRESS" + ExecutionStatusCompleted ExecutionStatus = "COMPLETED" + ExecutionStatusException ExecutionStatus = "EXCEPTION" + ExecutionStatusHandlingException ExecutionStatus = "HANDLING_EXCEPTION" +) + +// Values returns all known values for ExecutionStatus. Note that this can be +// expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (ExecutionStatus) Values() []ExecutionStatus { + return []ExecutionStatus{ + "IN_PROGRESS", + "COMPLETED", + "EXCEPTION", + "HANDLING_EXCEPTION", + } +} + type HomeDirectoryType string // Enum values for HomeDirectoryType @@ -78,6 +134,24 @@ func (IdentityProviderType) Values() []IdentityProviderType { } } +type OverwriteExisting string + +// Enum values for OverwriteExisting +const ( + OverwriteExistingTrue OverwriteExisting = "TRUE" + OverwriteExistingFalse OverwriteExisting = "FALSE" +) + +// Values returns all known values for OverwriteExisting. Note that this can be +// expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (OverwriteExisting) Values() []OverwriteExisting { + return []OverwriteExisting{ + "TRUE", + "FALSE", + } +} + type Protocol string // Enum values for Protocol @@ -123,3 +197,25 @@ func (State) Values() []State { "STOP_FAILED", } } + +type WorkflowStepType string + +// Enum values for WorkflowStepType +const ( + WorkflowStepTypeCopy WorkflowStepType = "COPY" + WorkflowStepTypeCustom WorkflowStepType = "CUSTOM" + WorkflowStepTypeTag WorkflowStepType = "TAG" + WorkflowStepTypeDelete WorkflowStepType = "DELETE" +) + +// Values returns all known values for WorkflowStepType. Note that this can be +// expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (WorkflowStepType) Values() []WorkflowStepType { + return []WorkflowStepType{ + "COPY", + "CUSTOM", + "TAG", + "DELETE", + } +} diff --git a/service/transfer/types/errors.go b/service/transfer/types/errors.go index ef7283f98be..3493e63792e 100644 --- a/service/transfer/types/errors.go +++ b/service/transfer/types/errors.go @@ -26,7 +26,7 @@ func (e *AccessDeniedException) ErrorMessage() string { func (e *AccessDeniedException) ErrorCode() string { return "AccessDeniedException" } func (e *AccessDeniedException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// This exception is thrown when the UpdatServer is called for a file transfer +// This exception is thrown when the UpdateServer is called for a file transfer // protocol-enabled server that has VPC as the endpoint type and the server's // VpcEndpointID is not in the available state. type ConflictException struct { diff --git a/service/transfer/types/types.go b/service/transfer/types/types.go index f76d7d9345b..0956969f5e2 100644 --- a/service/transfer/types/types.go +++ b/service/transfer/types/types.go @@ -7,6 +7,47 @@ import ( "time" ) +// Each step type has its own StepDetails structure. +type CopyStepDetails struct { + + // Specifies the location for the file being copied. Only applicable for the Copy + // type of workflow steps. + DestinationFileLocation *InputFileLocation + + // The name of the step, used as an identifier. + Name *string + + // A flag that indicates whether or not to overwrite an existing file of the same + // name. The default is FALSE. + OverwriteExisting OverwriteExisting + + noSmithyDocumentSerde +} + +// Each step type has its own StepDetails structure. +type CustomStepDetails struct { + + // The name of the step, used as an identifier. + Name *string + + // The ARN for the lambda function that is being called. + Target *string + + // Timeout, in seconds, for the step. + TimeoutSeconds *int32 + + noSmithyDocumentSerde +} + +// The name of the step, used to identify the step that is being deleted. +type DeleteStepDetails struct { + + // The name of the step, used as an identifier. + Name *string + + noSmithyDocumentSerde +} + // Describes the properties of the access that was specified. type DescribedAccess struct { @@ -34,21 +75,20 @@ type DescribedAccess struct { // specify a target, it is displayed as is. You also must ensure that your Amazon // Web Services Identity and Access Management (IAM) role provides access to paths // in Target. This value can only be set when HomeDirectoryType is set to LOGICAL. - // In most cases, you can use this value instead of the scope-down policy to lock - // down the associated access to the designated home directory ("chroot"). To do - // this, you can set Entry to '/' and set Target to the HomeDirectory parameter - // value. + // In most cases, you can use this value instead of the session policy to lock down + // the associated access to the designated home directory ("chroot"). To do this, + // you can set Entry to '/' and set Target to the HomeDirectory parameter value. HomeDirectoryMappings []HomeDirectoryMapEntry // The type of landing directory (folder) you want your users' home directory to be // when they log into the server. If you set it to PATH, the user will see the // absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol - // clients. If you set it LOGICAL, you will need to provide mappings in the + // clients. If you set it LOGICAL, you need to provide mappings in the // HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths visible to // your users. HomeDirectoryType HomeDirectoryType - // A scope-down policy for your user so that you can use the same IAM role across + // A session policy for your user so that you can use the same IAM role across // multiple users. This policy scopes down user access to portions of their Amazon // S3 bucket. Variables that you can use inside this policy include // ${Transfer:UserName}, ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}. @@ -72,6 +112,45 @@ type DescribedAccess struct { noSmithyDocumentSerde } +// The details for an execution object. +type DescribedExecution struct { + + // A unique identifier for the execution of a workflow. + ExecutionId *string + + // The IAM role associated with the execution. + ExecutionRole *string + + // A structure that describes the Amazon S3 or EFS file location. This is the file + // location when the execution begins: if the file is being copied, this is the + // initial (as opposed to destination) file location. + InitialFileLocation *FileLocation + + // The IAM logging role associated with the execution. + LoggingConfiguration *LoggingConfiguration + + // The full POSIX identity, including user ID (Uid), group ID (Gid), and any + // secondary groups IDs (SecondaryGids), that controls your users' access to your + // Amazon EFS file systems. The POSIX permissions that are set on files and + // directories in your file system determine the level of access your users get + // when transferring files into and out of your Amazon EFS file systems. + PosixProfile *PosixProfile + + // A structure that describes the execution results. This includes a list of the + // steps along with the details of each step, error type and message (if any), and + // the OnExceptionSteps structure. + Results *ExecutionResults + + // A container object for the session details associated with a workflow. + ServiceMetadata *ServiceMetadata + + // The status is one of the execution. Can be in progress, completed, exception + // encountered, or handling the exception. + Status ExecutionStatus + + noSmithyDocumentSerde +} + // Describes the properties of a security policy that was specified. For more // information about security policies, see Working with security policies // (https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html). @@ -202,6 +281,10 @@ type DescribedServer struct { // the ServerId. UserCount *int32 + // Specifies the workflow ID for the workflow to assign and the execution role used + // for executing the workflow. + WorkflowDetails *WorkflowDetails + noSmithyDocumentSerde } @@ -225,20 +308,20 @@ type DescribedUser struct { // specify a target, it is displayed as is. You also must ensure that your Amazon // Web Services Identity and Access Management (IAM) role provides access to paths // in Target. This value can only be set when HomeDirectoryType is set to LOGICAL. - // In most cases, you can use this value instead of the scope-down policy to lock - // your user down to the designated home directory ("chroot"). To do this, you can - // set Entry to '/' and set Target to the HomeDirectory parameter value. + // In most cases, you can use this value instead of the session policy to lock your + // user down to the designated home directory ("chroot"). To do this, you can set + // Entry to '/' and set Target to the HomeDirectory parameter value. HomeDirectoryMappings []HomeDirectoryMapEntry // The type of landing directory (folder) you want your users' home directory to be // when they log into the server. If you set it to PATH, the user will see the // absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol - // clients. If you set it LOGICAL, you will need to provide mappings in the + // clients. If you set it LOGICAL, you need to provide mappings in the // HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths visible to // your users. HomeDirectoryType HomeDirectoryType - // A scope-down policy for your user so that you can use the same IAM role across + // A session policy for your user so that you can use the same IAM role across // multiple users. This policy scopes down user access to portions of their Amazon // S3 bucket. Variables that you can use inside this policy include // ${Transfer:UserName}, ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}. @@ -276,6 +359,57 @@ type DescribedUser struct { noSmithyDocumentSerde } +// Describes the properties of the specified workflow +type DescribedWorkflow struct { + + // Specifies the unique Amazon Resource Name (ARN) for the workflow. + // + // This member is required. + Arn *string + + // Specifies the text description for the workflow. + Description *string + + // Specifies the steps (actions) to take if any errors are encountered during + // execution of the workflow. + OnExceptionSteps []WorkflowStep + + // Specifies the details for the steps that are in the specified workflow. + Steps []WorkflowStep + + // Key-value pairs that can be used to group and search for workflows. Tags are + // metadata attached to workflows for any purpose. + Tags []Tag + + // A unique identifier for the workflow. + WorkflowId *string + + noSmithyDocumentSerde +} + +// Specifies the details for the file location for the file being used in the +// workflow. Only applicable if you are using Amazon EFS for storage. You need to +// provide the file system ID and the pathname. The pathname can represent either a +// path or a file. This is determined by whether or not you end the path value with +// the forward slash (/) character. If the final character is "/", then your file +// is copied to the folder, and its name does not change. If, rather, the final +// character is alphanumeric, your uploaded file is renamed to the path value. In +// this case, if a file with that name already exists, it is overwritten. For +// example, if your path is shared-files/bob/, your uploaded files are copied to +// the shared-files/bob/, folder. If your path is shared-files/today, each uploaded +// file is copied to the shared-files folder and named today: each upload +// overwrites the previous version of the bob file. +type EfsFileLocation struct { + + // The ID of the file system, assigned by Amazon EFS. + FileSystemId *string + + // The pathname for the folder being used by a workflow. + Path *string + + noSmithyDocumentSerde +} + // The virtual private cloud (VPC) endpoint settings that are configured for your // file transfer protocol-enabled server. With a VPC endpoint, you can restrict // access to your server and resources only within your VPC. To control incoming @@ -321,6 +455,80 @@ type EndpointDetails struct { noSmithyDocumentSerde } +// Specifies the error message and type, for an error that occurs during the +// execution of the workflow. +type ExecutionError struct { + + // Specifies the descriptive message that corresponds to the ErrorType. + // + // This member is required. + Message *string + + // Specifies the error type: currently, the only valid value is PERMISSION_DENIED, + // which occurs if your policy does not contain the correct permissions to complete + // one or more of the steps in the workflow. + // + // This member is required. + Type ExecutionErrorType + + noSmithyDocumentSerde +} + +// Specifies the steps in the workflow, as well as the steps to execute in case of +// any errors during workflow execution. +type ExecutionResults struct { + + // Specifies the steps (actions) to take if any errors are encountered during + // execution of the workflow. + OnExceptionSteps []ExecutionStepResult + + // Specifies the details for the steps that are in the specified workflow. + Steps []ExecutionStepResult + + noSmithyDocumentSerde +} + +// Specifies the following details for the step: error (if any), outputs (if any), +// and the step type. +type ExecutionStepResult struct { + + // Specifies the details for an error, if it occurred during execution of the + // specified workfow step. + Error *ExecutionError + + // The values for the key/value pair applied as a tag to the file. Only applicable + // if the step type is TAG. + Outputs *string + + // One of the available step types. + // + // * Copy: copy the file to another location + // + // * + // Custom: custom step with a lambda target + // + // * Delete: delete the file + // + // * Tag: add + // a tag to the file + StepType WorkflowStepType + + noSmithyDocumentSerde +} + +// Specifies the Amazon S3 or EFS file details to be used in the step. +type FileLocation struct { + + // Specifies the Amazon EFS ID and the path for the file being used. + EfsFileLocation *EfsFileLocation + + // Specifies the S3 details for the file being used, such as bucket, Etag, and so + // forth. + S3FileLocation *S3FileLocation + + noSmithyDocumentSerde +} + // Represents an object that contains entries and targets for // HomeDirectoryMappings. The following is an Entry and Target pair example for // chroot. [ { "Entry:": "/", "Target": "/bucket_name/home/mydirectory" } ] If the @@ -364,6 +572,19 @@ type IdentityProviderDetails struct { noSmithyDocumentSerde } +// Specifies the location for the file being copied. Only applicable for the Copy +// type of workflow steps. +type InputFileLocation struct { + + // Specifies the details for the Amazon EFS file being copied. + EfsFileLocation *EfsFileLocation + + // Specifies the details for the S3 file being copied. + S3FileLocation *S3InputFileLocation + + noSmithyDocumentSerde +} + // Lists the properties for one or more specified associated accesses. type ListedAccess struct { @@ -387,7 +608,7 @@ type ListedAccess struct { // The type of landing directory (folder) you want your users' home directory to be // when they log into the server. If you set it to PATH, the user will see the // absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol - // clients. If you set it LOGICAL, you will need to provide mappings in the + // clients. If you set it LOGICAL, you need to provide mappings in the // HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths visible to // your users. HomeDirectoryType HomeDirectoryType @@ -403,6 +624,27 @@ type ListedAccess struct { noSmithyDocumentSerde } +// Returns properties of the execution that is specified. +type ListedExecution struct { + + // A unique identifier for the execution of a workflow. + ExecutionId *string + + // A structure that describes the Amazon S3 or EFS file location. This is the file + // location when the execution begins: if the file is being copied, this is the + // initial (as opposed to destination) file location. + InitialFileLocation *FileLocation + + // A container object for the session details associated with a workflow. + ServiceMetadata *ServiceMetadata + + // The status is one of the execution. Can be in progress, completed, exception + // encountered, or handling the exception. + Status ExecutionStatus + + noSmithyDocumentSerde +} + // Returns properties of a file transfer protocol-enabled server that was // specified. type ListedServer struct { @@ -473,7 +715,7 @@ type ListedUser struct { // The type of landing directory (folder) you want your users' home directory to be // when they log into the server. If you set it to PATH, the user will see the // absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol - // clients. If you set it LOGICAL, you will need to provide mappings in the + // clients. If you set it LOGICAL, you need to provide mappings in the // HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths visible to // your users. HomeDirectoryType HomeDirectoryType @@ -501,6 +743,38 @@ type ListedUser struct { noSmithyDocumentSerde } +// Contains the ID, text description, and Amazon Resource Name (ARN) for the +// workflow. +type ListedWorkflow struct { + + // Specifies the unique Amazon Resource Name (ARN) for the workflow. + Arn *string + + // Specifies the text description for the workflow. + Description *string + + // A unique identifier for the workflow. + WorkflowId *string + + noSmithyDocumentSerde +} + +// Consists of the logging role and the log group name. +type LoggingConfiguration struct { + + // The name of the CloudWatch logging group for the Amazon Web Services Transfer + // server to which this workflow belongs. + LogGroupName *string + + // Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity and + // Access Management (IAM) role that allows a server to turn on Amazon CloudWatch + // logging for Amazon S3 or Amazon EFS events. When set, user activity can be + // viewed in your CloudWatch logs. + LoggingRole *string + + noSmithyDocumentSerde +} + // The full POSIX identity, including user ID (Uid), group ID (Gid), and any // secondary groups IDs (SecondaryGids), that controls your users' access to your // Amazon EFS file systems. The POSIX permissions that are set on files and @@ -532,12 +806,89 @@ type ProtocolDetails struct { // IPv4 address, such as the external IP address of a firewall, router, or load // balancer. For example: aws transfer update-server --protocol-details // PassiveIp=0.0.0.0 Replace 0.0.0.0 in the example above with the actual IP - // address you want to use. + // address you want to use. If you change the PassiveIp value, you must stop and + // then restart your Transfer server for the change to take effect. For details on + // using Passive IP (PASV) in a NAT environment, see Configuring your FTPS server + // behind a firewall or NAT with Amazon Web Services Transfer Family + // (http://aws.amazon.com/blogs/storage/configuring-your-ftps-server-behind-a-firewall-or-nat-with-aws-transfer-family/). PassiveIp *string noSmithyDocumentSerde } +// Specifies the details for the file location for the file being used in the +// workflow. Only applicable if you are using S3 storage. You need to provide the +// bucket and key. The key can represent either a path or a file. This is +// determined by whether or not you end the key value with the forward slash (/) +// character. If the final character is "/", then your file is copied to the +// folder, and its name does not change. If, rather, the final character is +// alphanumeric, your uploaded file is renamed to the path value. In this case, if +// a file with that name already exists, it is overwritten. For example, if your +// path is shared-files/bob/, your uploaded files are copied to the +// shared-files/bob/, folder. If your path is shared-files/today, each uploaded +// file is copied to the shared-files folder and named today: each upload +// overwrites the previous version of the bob file. +type S3FileLocation struct { + + // Specifies the S3 bucket that contains the file being used. + Bucket *string + + // The entity tag is a hash of the object. The ETag reflects changes only to the + // contents of an object, not its metadata. + Etag *string + + // The name assigned to the file when it was created in S3. You use the object key + // to retrieve the object. + Key *string + + // Specifies the file version. + VersionId *string + + noSmithyDocumentSerde +} + +// Specifies the details for the S3 file being copied. +type S3InputFileLocation struct { + + // Specifies the S3 bucket that contains the file being copied. + Bucket *string + + // The name assigned to the file when it was created in S3. You use the object key + // to retrieve the object. + Key *string + + noSmithyDocumentSerde +} + +// Specifies the key-value pair that are assigned to a file during the execution of +// a Tagging step. +type S3Tag struct { + + // The name assigned to the tag that you create. + // + // This member is required. + Key *string + + // The value that corresponds to the key. + // + // This member is required. + Value *string + + noSmithyDocumentSerde +} + +// A container object for the session details associated with a workflow. +type ServiceMetadata struct { + + // The Server ID (ServerId), Session ID (SessionId) and user (UserName) make up the + // UserDetails. + // + // This member is required. + UserDetails *UserDetails + + noSmithyDocumentSerde +} + // Provides information about the public Secure Shell (SSH) key that is associated // with a user account for the specific file transfer protocol-enabled server (as // identified by ServerId). The information returned includes the date the key was @@ -584,4 +935,111 @@ type Tag struct { noSmithyDocumentSerde } +// Each step type has its own StepDetails structure. The key/value pairs used to +// tag a file during the execution of a workflow step. +type TagStepDetails struct { + + // The name of the step, used as an identifier. + Name *string + + // Array that contains from 1 to 10 key/value pairs. + Tags []S3Tag + + noSmithyDocumentSerde +} + +// Specifies the user name, server ID, and session ID for a workflow. +type UserDetails struct { + + // The system-assigned unique identifier for a Transfer server instance. + // + // This member is required. + ServerId *string + + // A unique string that identifies a user account associated with a server. + // + // This member is required. + UserName *string + + // The system-assigned unique identifier for a session that corresponds to the + // workflow. + SessionId *string + + noSmithyDocumentSerde +} + +// Specifies the workflow ID for the workflow to assign and the execution role used +// for executing the workflow. +type WorkflowDetail struct { + + // Includes the necessary permissions for S3, EFS, and Lambda operations that + // Transfer can assume, so that all workflow steps can operate on the required + // resources + // + // This member is required. + ExecutionRole *string + + // A unique identifier for the workflow. + // + // This member is required. + WorkflowId *string + + noSmithyDocumentSerde +} + +// Container for the WorkflowDetail data type. It is used by actions that trigger a +// workflow to begin execution. +type WorkflowDetails struct { + + // A trigger that starts a workflow: the workflow begins to execute after a file is + // uploaded. + // + // This member is required. + OnUpload []WorkflowDetail + + noSmithyDocumentSerde +} + +// The basic building block of a workflow. +type WorkflowStep struct { + + // Details for a step that performs a file copy. Consists of the following + // values: + // + // * A description + // + // * An S3 or EFS location for the destination of the + // file copy. + // + // * A flag that indicates whether or not to overwrite an existing file + // of the same name. The default is FALSE. + CopyStepDetails *CopyStepDetails + + // Details for a step that invokes a lambda function. Consists of the lambda + // function name, target, and timeout (in seconds). + CustomStepDetails *CustomStepDetails + + // You need to specify the name of the file to be deleted. + DeleteStepDetails *DeleteStepDetails + + // Details for a step that creates one or more tags. You specify one or more tags: + // each tag contains a key/value pair. + TagStepDetails *TagStepDetails + + // Currently, the following step types are supported. + // + // * Copy: copy the file to + // another location + // + // * Custom: custom step with a lambda target + // + // * Delete: delete + // the file + // + // * Tag: add a tag to the file + Type WorkflowStepType + + noSmithyDocumentSerde +} + type noSmithyDocumentSerde = smithydocument.NoSerde diff --git a/service/transfer/validators.go b/service/transfer/validators.go index 5f487f788f1..e1161e9134a 100644 --- a/service/transfer/validators.go +++ b/service/transfer/validators.go @@ -70,6 +70,26 @@ func (m *validateOpCreateUser) HandleInitialize(ctx context.Context, in middlewa return next.HandleInitialize(ctx, in) } +type validateOpCreateWorkflow struct { +} + +func (*validateOpCreateWorkflow) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateWorkflow) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateWorkflowInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateWorkflowInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDeleteAccess struct { } @@ -150,6 +170,26 @@ func (m *validateOpDeleteUser) HandleInitialize(ctx context.Context, in middlewa return next.HandleInitialize(ctx, in) } +type validateOpDeleteWorkflow struct { +} + +func (*validateOpDeleteWorkflow) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeleteWorkflow) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeleteWorkflowInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeleteWorkflowInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDescribeAccess struct { } @@ -170,6 +210,26 @@ func (m *validateOpDescribeAccess) HandleInitialize(ctx context.Context, in midd return next.HandleInitialize(ctx, in) } +type validateOpDescribeExecution struct { +} + +func (*validateOpDescribeExecution) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDescribeExecution) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DescribeExecutionInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDescribeExecutionInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDescribeSecurityPolicy struct { } @@ -230,6 +290,26 @@ func (m *validateOpDescribeUser) HandleInitialize(ctx context.Context, in middle return next.HandleInitialize(ctx, in) } +type validateOpDescribeWorkflow struct { +} + +func (*validateOpDescribeWorkflow) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDescribeWorkflow) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DescribeWorkflowInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDescribeWorkflowInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpImportSshPublicKey struct { } @@ -270,6 +350,26 @@ func (m *validateOpListAccesses) HandleInitialize(ctx context.Context, in middle return next.HandleInitialize(ctx, in) } +type validateOpListExecutions struct { +} + +func (*validateOpListExecutions) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpListExecutions) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListExecutionsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpListExecutionsInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpListTagsForResource struct { } @@ -310,6 +410,26 @@ func (m *validateOpListUsers) HandleInitialize(ctx context.Context, in middlewar return next.HandleInitialize(ctx, in) } +type validateOpSendWorkflowStepState struct { +} + +func (*validateOpSendWorkflowStepState) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpSendWorkflowStepState) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*SendWorkflowStepStateInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpSendWorkflowStepStateInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpStartServer struct { } @@ -482,6 +602,10 @@ func addOpCreateUserValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateUser{}, middleware.After) } +func addOpCreateWorkflowValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateWorkflow{}, middleware.After) +} + func addOpDeleteAccessValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteAccess{}, middleware.After) } @@ -498,10 +622,18 @@ func addOpDeleteUserValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteUser{}, middleware.After) } +func addOpDeleteWorkflowValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeleteWorkflow{}, middleware.After) +} + func addOpDescribeAccessValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDescribeAccess{}, middleware.After) } +func addOpDescribeExecutionValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDescribeExecution{}, middleware.After) +} + func addOpDescribeSecurityPolicyValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDescribeSecurityPolicy{}, middleware.After) } @@ -514,6 +646,10 @@ func addOpDescribeUserValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDescribeUser{}, middleware.After) } +func addOpDescribeWorkflowValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDescribeWorkflow{}, middleware.After) +} + func addOpImportSshPublicKeyValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpImportSshPublicKey{}, middleware.After) } @@ -522,6 +658,10 @@ func addOpListAccessesValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpListAccesses{}, middleware.After) } +func addOpListExecutionsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListExecutions{}, middleware.After) +} + func addOpListTagsForResourceValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpListTagsForResource{}, middleware.After) } @@ -530,6 +670,10 @@ func addOpListUsersValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpListUsers{}, middleware.After) } +func addOpSendWorkflowStepStateValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpSendWorkflowStepState{}, middleware.After) +} + func addOpStartServerValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpStartServer{}, middleware.After) } @@ -597,6 +741,23 @@ func validateHomeDirectoryMappings(v []types.HomeDirectoryMapEntry) error { } } +func validateOnUploadWorkflowDetails(v []types.WorkflowDetail) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "OnUploadWorkflowDetails"} + for i := range v { + if err := validateWorkflowDetail(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validatePosixProfile(v *types.PosixProfile) error { if v == nil { return nil @@ -615,6 +776,41 @@ func validatePosixProfile(v *types.PosixProfile) error { } } +func validateS3Tag(v *types.S3Tag) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "S3Tag"} + if v.Key == nil { + invalidParams.Add(smithy.NewErrParamRequired("Key")) + } + if v.Value == nil { + invalidParams.Add(smithy.NewErrParamRequired("Value")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateS3Tags(v []types.S3Tag) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "S3Tags"} + for i := range v { + if err := validateS3Tag(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateTag(v *types.Tag) error { if v == nil { return nil @@ -650,6 +846,94 @@ func validateTags(v []types.Tag) error { } } +func validateTagStepDetails(v *types.TagStepDetails) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "TagStepDetails"} + if v.Tags != nil { + if err := validateS3Tags(v.Tags); err != nil { + invalidParams.AddNested("Tags", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateWorkflowDetail(v *types.WorkflowDetail) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "WorkflowDetail"} + if v.WorkflowId == nil { + invalidParams.Add(smithy.NewErrParamRequired("WorkflowId")) + } + if v.ExecutionRole == nil { + invalidParams.Add(smithy.NewErrParamRequired("ExecutionRole")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateWorkflowDetails(v *types.WorkflowDetails) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "WorkflowDetails"} + if v.OnUpload == nil { + invalidParams.Add(smithy.NewErrParamRequired("OnUpload")) + } else if v.OnUpload != nil { + if err := validateOnUploadWorkflowDetails(v.OnUpload); err != nil { + invalidParams.AddNested("OnUpload", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateWorkflowStep(v *types.WorkflowStep) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "WorkflowStep"} + if v.TagStepDetails != nil { + if err := validateTagStepDetails(v.TagStepDetails); err != nil { + invalidParams.AddNested("TagStepDetails", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateWorkflowSteps(v []types.WorkflowStep) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "WorkflowSteps"} + for i := range v { + if err := validateWorkflowStep(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpCreateAccessInput(v *CreateAccessInput) error { if v == nil { return nil @@ -691,6 +975,11 @@ func validateOpCreateServerInput(v *CreateServerInput) error { invalidParams.AddNested("Tags", err.(smithy.InvalidParamsError)) } } + if v.WorkflowDetails != nil { + if err := validateWorkflowDetails(v.WorkflowDetails); err != nil { + invalidParams.AddNested("WorkflowDetails", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { @@ -734,6 +1023,35 @@ func validateOpCreateUserInput(v *CreateUserInput) error { } } +func validateOpCreateWorkflowInput(v *CreateWorkflowInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateWorkflowInput"} + if v.Steps == nil { + invalidParams.Add(smithy.NewErrParamRequired("Steps")) + } else if v.Steps != nil { + if err := validateWorkflowSteps(v.Steps); err != nil { + invalidParams.AddNested("Steps", err.(smithy.InvalidParamsError)) + } + } + if v.OnExceptionSteps != nil { + if err := validateWorkflowSteps(v.OnExceptionSteps); err != nil { + invalidParams.AddNested("OnExceptionSteps", err.(smithy.InvalidParamsError)) + } + } + if v.Tags != nil { + if err := validateTags(v.Tags); err != nil { + invalidParams.AddNested("Tags", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDeleteAccessInput(v *DeleteAccessInput) error { if v == nil { return nil @@ -806,6 +1124,21 @@ func validateOpDeleteUserInput(v *DeleteUserInput) error { } } +func validateOpDeleteWorkflowInput(v *DeleteWorkflowInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteWorkflowInput"} + if v.WorkflowId == nil { + invalidParams.Add(smithy.NewErrParamRequired("WorkflowId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDescribeAccessInput(v *DescribeAccessInput) error { if v == nil { return nil @@ -824,6 +1157,24 @@ func validateOpDescribeAccessInput(v *DescribeAccessInput) error { } } +func validateOpDescribeExecutionInput(v *DescribeExecutionInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DescribeExecutionInput"} + if v.ExecutionId == nil { + invalidParams.Add(smithy.NewErrParamRequired("ExecutionId")) + } + if v.WorkflowId == nil { + invalidParams.Add(smithy.NewErrParamRequired("WorkflowId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDescribeSecurityPolicyInput(v *DescribeSecurityPolicyInput) error { if v == nil { return nil @@ -872,6 +1223,21 @@ func validateOpDescribeUserInput(v *DescribeUserInput) error { } } +func validateOpDescribeWorkflowInput(v *DescribeWorkflowInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DescribeWorkflowInput"} + if v.WorkflowId == nil { + invalidParams.Add(smithy.NewErrParamRequired("WorkflowId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpImportSshPublicKeyInput(v *ImportSshPublicKeyInput) error { if v == nil { return nil @@ -908,6 +1274,21 @@ func validateOpListAccessesInput(v *ListAccessesInput) error { } } +func validateOpListExecutionsInput(v *ListExecutionsInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ListExecutionsInput"} + if v.WorkflowId == nil { + invalidParams.Add(smithy.NewErrParamRequired("WorkflowId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpListTagsForResourceInput(v *ListTagsForResourceInput) error { if v == nil { return nil @@ -938,6 +1319,30 @@ func validateOpListUsersInput(v *ListUsersInput) error { } } +func validateOpSendWorkflowStepStateInput(v *SendWorkflowStepStateInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "SendWorkflowStepStateInput"} + if v.WorkflowId == nil { + invalidParams.Add(smithy.NewErrParamRequired("WorkflowId")) + } + if v.ExecutionId == nil { + invalidParams.Add(smithy.NewErrParamRequired("ExecutionId")) + } + if v.Token == nil { + invalidParams.Add(smithy.NewErrParamRequired("Token")) + } + if len(v.Status) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Status")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpStartServerInput(v *StartServerInput) error { if v == nil { return nil @@ -1062,6 +1467,11 @@ func validateOpUpdateServerInput(v *UpdateServerInput) error { if v.ServerId == nil { invalidParams.Add(smithy.NewErrParamRequired("ServerId")) } + if v.WorkflowDetails != nil { + if err := validateWorkflowDetails(v.WorkflowDetails); err != nil { + invalidParams.AddNested("WorkflowDetails", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else {