diff --git a/.changelog/363a08743a6e4e4391d172a921cc46de.json b/.changelog/363a08743a6e4e4391d172a921cc46de.json new file mode 100644 index 00000000000..cd83cd87289 --- /dev/null +++ b/.changelog/363a08743a6e4e4391d172a921cc46de.json @@ -0,0 +1,8 @@ +{ + "id": "363a0874-3a6e-4e43-91d1-72a921cc46de", + "type": "feature", + "description": "AWS CodeBuild Now Supports BuildBatch in Reserved Capacity and Lambda", + "modules": [ + "service/codebuild" + ] +} \ No newline at end of file diff --git a/.changelog/94eaf6a720df425ca6f2826f052d8da2.json b/.changelog/94eaf6a720df425ca6f2826f052d8da2.json new file mode 100644 index 00000000000..5560c8c6e27 --- /dev/null +++ b/.changelog/94eaf6a720df425ca6f2826f052d8da2.json @@ -0,0 +1,8 @@ +{ + "id": "94eaf6a7-20df-425c-a6f2-826f052d8da2", + "type": "feature", + "description": "AWS Firewall Manager now lets you combine multiple resource tags using the logical AND operator or the logical OR operator.", + "modules": [ + "service/fms" + ] +} \ No newline at end of file diff --git a/.changelog/f54a81e6625841a587177326bb6b6f87.json b/.changelog/f54a81e6625841a587177326bb6b6f87.json new file mode 100644 index 00000000000..e43a6d861fc --- /dev/null +++ b/.changelog/f54a81e6625841a587177326bb6b6f87.json @@ -0,0 +1,8 @@ +{ + "id": "f54a81e6-6258-41a5-8717-7326bb6b6f87", + "type": "feature", + "description": "This release expands AWS Compute Optimizer rightsizing recommendation support for Amazon EC2 Auto Scaling groups to include those with scaling policies and multiple instance types.", + "modules": [ + "service/computeoptimizer" + ] +} \ No newline at end of file diff --git a/service/codebuild/api_op_StartBuild.go b/service/codebuild/api_op_StartBuild.go index 8e449901061..6d4d9ecdfaa 100644 --- a/service/codebuild/api_op_StartBuild.go +++ b/service/codebuild/api_op_StartBuild.go @@ -169,7 +169,8 @@ type StartBuildInput struct { // Set to true to report to your source provider the status of a build's start // and completion. If you use this option with a source provider other than GitHub, - // GitHub Enterprise, or Bitbucket, an invalidInputException is thrown. + // GitHub Enterprise, GitLab, GitLab Self Managed, or Bitbucket, an + // invalidInputException is thrown. // // To be able to report the build status to the source provider, the user // associated with the source provider must have write access to the repo. If the diff --git a/service/codebuild/deserializers.go b/service/codebuild/deserializers.go index 1aed0ec3927..e0663459fd3 100644 --- a/service/codebuild/deserializers.go +++ b/service/codebuild/deserializers.go @@ -6005,6 +6005,11 @@ func awsAwsjson11_deserializeDocumentBatchRestrictions(v **types.BatchRestrictio return err } + case "fleetsAllowed": + if err := awsAwsjson11_deserializeDocumentFleetsAllowed(&sv.FleetsAllowed, value); err != nil { + return err + } + case "maximumBuildsAllowed": if value != nil { jtv, ok := value.(json.Number) @@ -8997,6 +9002,42 @@ func awsAwsjson11_deserializeDocumentFleets(v *[]types.Fleet, value interface{}) return nil } +func awsAwsjson11_deserializeDocumentFleetsAllowed(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 awsAwsjson11_deserializeDocumentFleetStatus(v **types.FleetStatus, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/codebuild/serializers.go b/service/codebuild/serializers.go index 21b0b8a3b49..82105ca609d 100644 --- a/service/codebuild/serializers.go +++ b/service/codebuild/serializers.go @@ -3077,6 +3077,13 @@ func awsAwsjson11_serializeDocumentBatchRestrictions(v *types.BatchRestrictions, } } + if v.FleetsAllowed != nil { + ok := object.Key("fleetsAllowed") + if err := awsAwsjson11_serializeDocumentFleetsAllowed(v.FleetsAllowed, ok); err != nil { + return err + } + } + if v.MaximumBuildsAllowed != nil { ok := object.Key("maximumBuildsAllowed") ok.Integer(*v.MaximumBuildsAllowed) @@ -3319,6 +3326,17 @@ func awsAwsjson11_serializeDocumentFleetProxyRules(v []types.FleetProxyRule, val return nil } +func awsAwsjson11_serializeDocumentFleetsAllowed(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_serializeDocumentGitSubmodulesConfig(v *types.GitSubmodulesConfig, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/codebuild/types/types.go b/service/codebuild/types/types.go index 2a6c1a28418..6708e9a2a17 100644 --- a/service/codebuild/types/types.go +++ b/service/codebuild/types/types.go @@ -39,6 +39,12 @@ type BatchRestrictions struct { // [Build environment compute types]: https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html ComputeTypesAllowed []string + // An array of strings that specify the fleets that are allowed for the batch + // build. See [Run builds on reserved capacity fleets]in the CodeBuild User Guide for more information. + // + // [Run builds on reserved capacity fleets]: https://docs.aws.amazon.com/codebuild/latest/userguide/fleets.html + FleetsAllowed []string + // Specifies the maximum number of builds allowed. MaximumBuildsAllowed *int32 @@ -2050,8 +2056,9 @@ type ProjectSource struct { // Set to true to report the status of a build's start and finish to your source // provider. This option is valid only when your source provider is GitHub, GitHub - // Enterprise, GitLab, GitLab Self Managed, or Bitbucket. If this is set and you - // use a different source provider, an invalidInputException is thrown. + // Enterprise, GitLab, GitLab Self Managed, GitLab, GitLab Self Managed, or + // Bitbucket. If this is set and you use a different source provider, an + // invalidInputException is thrown. // // To be able to report the build status to the source provider, the user // associated with the source provider must have write access to the repo. If the diff --git a/service/computeoptimizer/deserializers.go b/service/computeoptimizer/deserializers.go index fca1ce246cf..9644eafe796 100644 --- a/service/computeoptimizer/deserializers.go +++ b/service/computeoptimizer/deserializers.go @@ -4190,6 +4190,15 @@ func awsAwsjson10_deserializeDocumentAutoScalingGroupConfiguration(v **types.Aut for key, value := range shape { switch key { + case "allocationStrategy": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AllocationStrategy to be of type string, got %T instead", value) + } + sv.AllocationStrategy = types.AllocationStrategy(jtv) + } + case "desiredCapacity": if value != nil { jtv, ok := value.(json.Number) @@ -4203,11 +4212,45 @@ func awsAwsjson10_deserializeDocumentAutoScalingGroupConfiguration(v **types.Aut sv.DesiredCapacity = int32(i64) } + case "estimatedInstanceHourReductionPercentage": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.EstimatedInstanceHourReductionPercentage = ptr.Float64(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.EstimatedInstanceHourReductionPercentage = ptr.Float64(f64) + + default: + return fmt.Errorf("expected NullableEstimatedInstanceHourReductionPercentage to be a JSON Number, got %T instead", value) + + } + } + case "instanceType": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected InstanceType to be of type string, got %T instead", value) + return fmt.Errorf("expected NullableInstanceType to be of type string, got %T instead", value) } sv.InstanceType = ptr.String(jtv) } @@ -4238,6 +4281,20 @@ func awsAwsjson10_deserializeDocumentAutoScalingGroupConfiguration(v **types.Aut sv.MinSize = int32(i64) } + case "mixedInstanceTypes": + if err := awsAwsjson10_deserializeDocumentMixedInstanceTypes(&sv.MixedInstanceTypes, value); err != nil { + return err + } + + case "type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AsgType to be of type string, got %T instead", value) + } + sv.Type = types.AsgType(jtv) + } + default: _, _ = key, value @@ -10100,6 +10157,42 @@ func awsAwsjson10_deserializeDocumentMissingAuthenticationToken(v **types.Missin return nil } +func awsAwsjson10_deserializeDocumentMixedInstanceTypes(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 MixedInstanceType to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsAwsjson10_deserializeDocumentOptInRequiredException(v **types.OptInRequiredException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/computeoptimizer/types/enums.go b/service/computeoptimizer/types/enums.go index e1e4154ec96..6d98369eb24 100644 --- a/service/computeoptimizer/types/enums.go +++ b/service/computeoptimizer/types/enums.go @@ -2,6 +2,44 @@ package types +type AllocationStrategy string + +// Enum values for AllocationStrategy +const ( + AllocationStrategyPrioritized AllocationStrategy = "Prioritized" + AllocationStrategyLowestPrice AllocationStrategy = "LowestPrice" +) + +// Values returns all known values for AllocationStrategy. 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 (AllocationStrategy) Values() []AllocationStrategy { + return []AllocationStrategy{ + "Prioritized", + "LowestPrice", + } +} + +type AsgType string + +// Enum values for AsgType +const ( + AsgTypeSingleInstanceType AsgType = "SingleInstanceType" + AsgTypeMixedInstanceType AsgType = "MixedInstanceTypes" +) + +// Values returns all known values for AsgType. 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 (AsgType) Values() []AsgType { + return []AsgType{ + "SingleInstanceType", + "MixedInstanceTypes", + } +} + type AutoScalingConfiguration string // Enum values for AutoScalingConfiguration @@ -431,72 +469,79 @@ type ExportableAutoScalingGroupField string // Enum values for ExportableAutoScalingGroupField const ( - ExportableAutoScalingGroupFieldAccountId ExportableAutoScalingGroupField = "AccountId" - ExportableAutoScalingGroupFieldAutoScalingGroupArn ExportableAutoScalingGroupField = "AutoScalingGroupArn" - ExportableAutoScalingGroupFieldAutoScalingGroupName ExportableAutoScalingGroupField = "AutoScalingGroupName" - ExportableAutoScalingGroupFieldFinding ExportableAutoScalingGroupField = "Finding" - ExportableAutoScalingGroupFieldUtilizationMetricsCpuMaximum ExportableAutoScalingGroupField = "UtilizationMetricsCpuMaximum" - ExportableAutoScalingGroupFieldUtilizationMetricsMemoryMaximum ExportableAutoScalingGroupField = "UtilizationMetricsMemoryMaximum" - ExportableAutoScalingGroupFieldUtilizationMetricsEbsReadOpsPerSecondMaximum ExportableAutoScalingGroupField = "UtilizationMetricsEbsReadOpsPerSecondMaximum" - ExportableAutoScalingGroupFieldUtilizationMetricsEbsWriteOpsPerSecondMaximum ExportableAutoScalingGroupField = "UtilizationMetricsEbsWriteOpsPerSecondMaximum" - ExportableAutoScalingGroupFieldUtilizationMetricsEbsReadBytesPerSecondMaximum ExportableAutoScalingGroupField = "UtilizationMetricsEbsReadBytesPerSecondMaximum" - ExportableAutoScalingGroupFieldUtilizationMetricsEbsWriteBytesPerSecondMaximum ExportableAutoScalingGroupField = "UtilizationMetricsEbsWriteBytesPerSecondMaximum" - ExportableAutoScalingGroupFieldUtilizationMetricsDiskReadOpsPerSecondMaximum ExportableAutoScalingGroupField = "UtilizationMetricsDiskReadOpsPerSecondMaximum" - ExportableAutoScalingGroupFieldUtilizationMetricsDiskWriteOpsPerSecondMaximum ExportableAutoScalingGroupField = "UtilizationMetricsDiskWriteOpsPerSecondMaximum" - ExportableAutoScalingGroupFieldUtilizationMetricsDiskReadBytesPerSecondMaximum ExportableAutoScalingGroupField = "UtilizationMetricsDiskReadBytesPerSecondMaximum" - ExportableAutoScalingGroupFieldUtilizationMetricsDiskWriteBytesPerSecondMaximum ExportableAutoScalingGroupField = "UtilizationMetricsDiskWriteBytesPerSecondMaximum" - ExportableAutoScalingGroupFieldUtilizationMetricsNetworkInBytesPerSecondMaximum ExportableAutoScalingGroupField = "UtilizationMetricsNetworkInBytesPerSecondMaximum" - ExportableAutoScalingGroupFieldUtilizationMetricsNetworkOutBytesPerSecondMaximum ExportableAutoScalingGroupField = "UtilizationMetricsNetworkOutBytesPerSecondMaximum" - ExportableAutoScalingGroupFieldUtilizationMetricsNetworkPacketsInPerSecondMaximum ExportableAutoScalingGroupField = "UtilizationMetricsNetworkPacketsInPerSecondMaximum" - ExportableAutoScalingGroupFieldUtilizationMetricsNetworkPacketsOutPerSecondMaximum ExportableAutoScalingGroupField = "UtilizationMetricsNetworkPacketsOutPerSecondMaximum" - ExportableAutoScalingGroupFieldLookbackPeriodInDays ExportableAutoScalingGroupField = "LookbackPeriodInDays" - ExportableAutoScalingGroupFieldCurrentConfigurationInstanceType ExportableAutoScalingGroupField = "CurrentConfigurationInstanceType" - ExportableAutoScalingGroupFieldCurrentConfigurationDesiredCapacity ExportableAutoScalingGroupField = "CurrentConfigurationDesiredCapacity" - ExportableAutoScalingGroupFieldCurrentConfigurationMinSize ExportableAutoScalingGroupField = "CurrentConfigurationMinSize" - ExportableAutoScalingGroupFieldCurrentConfigurationMaxSize ExportableAutoScalingGroupField = "CurrentConfigurationMaxSize" - ExportableAutoScalingGroupFieldCurrentOnDemandPrice ExportableAutoScalingGroupField = "CurrentOnDemandPrice" - ExportableAutoScalingGroupFieldCurrentStandardOneYearNoUpfrontReservedPrice ExportableAutoScalingGroupField = "CurrentStandardOneYearNoUpfrontReservedPrice" - ExportableAutoScalingGroupFieldCurrentStandardThreeYearNoUpfrontReservedPrice ExportableAutoScalingGroupField = "CurrentStandardThreeYearNoUpfrontReservedPrice" - ExportableAutoScalingGroupFieldCurrentVcpus ExportableAutoScalingGroupField = "CurrentVCpus" - ExportableAutoScalingGroupFieldCurrentMemory ExportableAutoScalingGroupField = "CurrentMemory" - ExportableAutoScalingGroupFieldCurrentStorage ExportableAutoScalingGroupField = "CurrentStorage" - ExportableAutoScalingGroupFieldCurrentNetwork ExportableAutoScalingGroupField = "CurrentNetwork" - ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationInstanceType ExportableAutoScalingGroupField = "RecommendationOptionsConfigurationInstanceType" - ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationDesiredCapacity ExportableAutoScalingGroupField = "RecommendationOptionsConfigurationDesiredCapacity" - ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationMinSize ExportableAutoScalingGroupField = "RecommendationOptionsConfigurationMinSize" - ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationMaxSize ExportableAutoScalingGroupField = "RecommendationOptionsConfigurationMaxSize" - ExportableAutoScalingGroupFieldRecommendationOptionsProjectedUtilizationMetricsCpuMaximum ExportableAutoScalingGroupField = "RecommendationOptionsProjectedUtilizationMetricsCpuMaximum" - ExportableAutoScalingGroupFieldRecommendationOptionsProjectedUtilizationMetricsMemoryMaximum ExportableAutoScalingGroupField = "RecommendationOptionsProjectedUtilizationMetricsMemoryMaximum" - ExportableAutoScalingGroupFieldRecommendationOptionsPerformanceRisk ExportableAutoScalingGroupField = "RecommendationOptionsPerformanceRisk" - ExportableAutoScalingGroupFieldRecommendationOptionsOnDemandPrice ExportableAutoScalingGroupField = "RecommendationOptionsOnDemandPrice" - ExportableAutoScalingGroupFieldRecommendationOptionsStandardOneYearNoUpfrontReservedPrice ExportableAutoScalingGroupField = "RecommendationOptionsStandardOneYearNoUpfrontReservedPrice" - ExportableAutoScalingGroupFieldRecommendationOptionsStandardThreeYearNoUpfrontReservedPrice ExportableAutoScalingGroupField = "RecommendationOptionsStandardThreeYearNoUpfrontReservedPrice" - ExportableAutoScalingGroupFieldRecommendationOptionsVcpus ExportableAutoScalingGroupField = "RecommendationOptionsVcpus" - ExportableAutoScalingGroupFieldRecommendationOptionsMemory ExportableAutoScalingGroupField = "RecommendationOptionsMemory" - ExportableAutoScalingGroupFieldRecommendationOptionsStorage ExportableAutoScalingGroupField = "RecommendationOptionsStorage" - ExportableAutoScalingGroupFieldRecommendationOptionsNetwork ExportableAutoScalingGroupField = "RecommendationOptionsNetwork" - ExportableAutoScalingGroupFieldLastRefreshTimestamp ExportableAutoScalingGroupField = "LastRefreshTimestamp" - ExportableAutoScalingGroupFieldCurrentPerformanceRisk ExportableAutoScalingGroupField = "CurrentPerformanceRisk" - ExportableAutoScalingGroupFieldRecommendationOptionsSavingsOpportunityPercentage ExportableAutoScalingGroupField = "RecommendationOptionsSavingsOpportunityPercentage" - ExportableAutoScalingGroupFieldRecommendationOptionsEstimatedMonthlySavingsCurrency ExportableAutoScalingGroupField = "RecommendationOptionsEstimatedMonthlySavingsCurrency" - ExportableAutoScalingGroupFieldRecommendationOptionsEstimatedMonthlySavingsValue ExportableAutoScalingGroupField = "RecommendationOptionsEstimatedMonthlySavingsValue" - ExportableAutoScalingGroupFieldEffectiveRecommendationPreferencesCpuVendorArchitectures ExportableAutoScalingGroupField = "EffectiveRecommendationPreferencesCpuVendorArchitectures" - ExportableAutoScalingGroupFieldEffectiveRecommendationPreferencesEnhancedInfrastructureMetrics ExportableAutoScalingGroupField = "EffectiveRecommendationPreferencesEnhancedInfrastructureMetrics" - ExportableAutoScalingGroupFieldEffectiveRecommendationPreferencesInferredWorkloadTypes ExportableAutoScalingGroupField = "EffectiveRecommendationPreferencesInferredWorkloadTypes" - ExportableAutoScalingGroupFieldEffectiveRecommendationPreferencesPreferredResources ExportableAutoScalingGroupField = "EffectiveRecommendationPreferencesPreferredResources" - ExportableAutoScalingGroupFieldEffectiveRecommendationPreferencesLookbackPeriod ExportableAutoScalingGroupField = "EffectiveRecommendationPreferencesLookBackPeriod" - ExportableAutoScalingGroupFieldInferredWorkloadTypes ExportableAutoScalingGroupField = "InferredWorkloadTypes" - ExportableAutoScalingGroupFieldRecommendationOptionsMigrationEffort ExportableAutoScalingGroupField = "RecommendationOptionsMigrationEffort" - ExportableAutoScalingGroupFieldCurrentInstanceGpuInfo ExportableAutoScalingGroupField = "CurrentInstanceGpuInfo" - ExportableAutoScalingGroupFieldRecommendationOptionsInstanceGpuInfo ExportableAutoScalingGroupField = "RecommendationOptionsInstanceGpuInfo" - ExportableAutoScalingGroupFieldUtilizationMetricsGpuPercentageMaximum ExportableAutoScalingGroupField = "UtilizationMetricsGpuPercentageMaximum" - ExportableAutoScalingGroupFieldUtilizationMetricsGpuMemoryPercentageMaximum ExportableAutoScalingGroupField = "UtilizationMetricsGpuMemoryPercentageMaximum" - ExportableAutoScalingGroupFieldRecommendationOptionsProjectedUtilizationMetricsGpuMaximum ExportableAutoScalingGroupField = "RecommendationOptionsProjectedUtilizationMetricsGpuPercentageMaximum" - ExportableAutoScalingGroupFieldRecommendationOptionsProjectedUtilizationMetricsGpuMemoryMaximum ExportableAutoScalingGroupField = "RecommendationOptionsProjectedUtilizationMetricsGpuMemoryPercentageMaximum" - ExportableAutoScalingGroupFieldEffectiveRecommendationPreferencesSavingsEstimationMode ExportableAutoScalingGroupField = "EffectiveRecommendationPreferencesSavingsEstimationMode" - ExportableAutoScalingGroupFieldRecommendationOptionsSavingsOpportunityAfterDiscountsPercentage ExportableAutoScalingGroupField = "RecommendationOptionsSavingsOpportunityAfterDiscountsPercentage" - ExportableAutoScalingGroupFieldRecommendationOptionsEstimatedMonthlySavingsCurrencyAfterDiscounts ExportableAutoScalingGroupField = "RecommendationOptionsEstimatedMonthlySavingsCurrencyAfterDiscounts" - ExportableAutoScalingGroupFieldRecommendationOptionsEstimatedMonthlySavingsValueAfterDiscounts ExportableAutoScalingGroupField = "RecommendationOptionsEstimatedMonthlySavingsValueAfterDiscounts" + ExportableAutoScalingGroupFieldAccountId ExportableAutoScalingGroupField = "AccountId" + ExportableAutoScalingGroupFieldAutoScalingGroupArn ExportableAutoScalingGroupField = "AutoScalingGroupArn" + ExportableAutoScalingGroupFieldAutoScalingGroupName ExportableAutoScalingGroupField = "AutoScalingGroupName" + ExportableAutoScalingGroupFieldFinding ExportableAutoScalingGroupField = "Finding" + ExportableAutoScalingGroupFieldUtilizationMetricsCpuMaximum ExportableAutoScalingGroupField = "UtilizationMetricsCpuMaximum" + ExportableAutoScalingGroupFieldUtilizationMetricsMemoryMaximum ExportableAutoScalingGroupField = "UtilizationMetricsMemoryMaximum" + ExportableAutoScalingGroupFieldUtilizationMetricsEbsReadOpsPerSecondMaximum ExportableAutoScalingGroupField = "UtilizationMetricsEbsReadOpsPerSecondMaximum" + ExportableAutoScalingGroupFieldUtilizationMetricsEbsWriteOpsPerSecondMaximum ExportableAutoScalingGroupField = "UtilizationMetricsEbsWriteOpsPerSecondMaximum" + ExportableAutoScalingGroupFieldUtilizationMetricsEbsReadBytesPerSecondMaximum ExportableAutoScalingGroupField = "UtilizationMetricsEbsReadBytesPerSecondMaximum" + ExportableAutoScalingGroupFieldUtilizationMetricsEbsWriteBytesPerSecondMaximum ExportableAutoScalingGroupField = "UtilizationMetricsEbsWriteBytesPerSecondMaximum" + ExportableAutoScalingGroupFieldUtilizationMetricsDiskReadOpsPerSecondMaximum ExportableAutoScalingGroupField = "UtilizationMetricsDiskReadOpsPerSecondMaximum" + ExportableAutoScalingGroupFieldUtilizationMetricsDiskWriteOpsPerSecondMaximum ExportableAutoScalingGroupField = "UtilizationMetricsDiskWriteOpsPerSecondMaximum" + ExportableAutoScalingGroupFieldUtilizationMetricsDiskReadBytesPerSecondMaximum ExportableAutoScalingGroupField = "UtilizationMetricsDiskReadBytesPerSecondMaximum" + ExportableAutoScalingGroupFieldUtilizationMetricsDiskWriteBytesPerSecondMaximum ExportableAutoScalingGroupField = "UtilizationMetricsDiskWriteBytesPerSecondMaximum" + ExportableAutoScalingGroupFieldUtilizationMetricsNetworkInBytesPerSecondMaximum ExportableAutoScalingGroupField = "UtilizationMetricsNetworkInBytesPerSecondMaximum" + ExportableAutoScalingGroupFieldUtilizationMetricsNetworkOutBytesPerSecondMaximum ExportableAutoScalingGroupField = "UtilizationMetricsNetworkOutBytesPerSecondMaximum" + ExportableAutoScalingGroupFieldUtilizationMetricsNetworkPacketsInPerSecondMaximum ExportableAutoScalingGroupField = "UtilizationMetricsNetworkPacketsInPerSecondMaximum" + ExportableAutoScalingGroupFieldUtilizationMetricsNetworkPacketsOutPerSecondMaximum ExportableAutoScalingGroupField = "UtilizationMetricsNetworkPacketsOutPerSecondMaximum" + ExportableAutoScalingGroupFieldLookbackPeriodInDays ExportableAutoScalingGroupField = "LookbackPeriodInDays" + ExportableAutoScalingGroupFieldCurrentConfigurationInstanceType ExportableAutoScalingGroupField = "CurrentConfigurationInstanceType" + ExportableAutoScalingGroupFieldCurrentConfigurationDesiredCapacity ExportableAutoScalingGroupField = "CurrentConfigurationDesiredCapacity" + ExportableAutoScalingGroupFieldCurrentConfigurationMinSize ExportableAutoScalingGroupField = "CurrentConfigurationMinSize" + ExportableAutoScalingGroupFieldCurrentConfigurationMaxSize ExportableAutoScalingGroupField = "CurrentConfigurationMaxSize" + ExportableAutoScalingGroupFieldCurrentConfigurationAllocationStrategy ExportableAutoScalingGroupField = "CurrentConfigurationAllocationStrategy" + ExportableAutoScalingGroupFieldCurrentConfigurationMixedInstanceTypes ExportableAutoScalingGroupField = "CurrentConfigurationMixedInstanceTypes" + ExportableAutoScalingGroupFieldCurrentConfigurationType ExportableAutoScalingGroupField = "CurrentConfigurationType" + ExportableAutoScalingGroupFieldCurrentOnDemandPrice ExportableAutoScalingGroupField = "CurrentOnDemandPrice" + ExportableAutoScalingGroupFieldCurrentStandardOneYearNoUpfrontReservedPrice ExportableAutoScalingGroupField = "CurrentStandardOneYearNoUpfrontReservedPrice" + ExportableAutoScalingGroupFieldCurrentStandardThreeYearNoUpfrontReservedPrice ExportableAutoScalingGroupField = "CurrentStandardThreeYearNoUpfrontReservedPrice" + ExportableAutoScalingGroupFieldCurrentVcpus ExportableAutoScalingGroupField = "CurrentVCpus" + ExportableAutoScalingGroupFieldCurrentMemory ExportableAutoScalingGroupField = "CurrentMemory" + ExportableAutoScalingGroupFieldCurrentStorage ExportableAutoScalingGroupField = "CurrentStorage" + ExportableAutoScalingGroupFieldCurrentNetwork ExportableAutoScalingGroupField = "CurrentNetwork" + ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationInstanceType ExportableAutoScalingGroupField = "RecommendationOptionsConfigurationInstanceType" + ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationDesiredCapacity ExportableAutoScalingGroupField = "RecommendationOptionsConfigurationDesiredCapacity" + ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationMinSize ExportableAutoScalingGroupField = "RecommendationOptionsConfigurationMinSize" + ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationMaxSize ExportableAutoScalingGroupField = "RecommendationOptionsConfigurationMaxSize" + ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationEstimatedInstanceHourReductionPercentage ExportableAutoScalingGroupField = "RecommendationOptionsConfigurationEstimatedInstanceHourReductionPercentage" + ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationAllocationStrategy ExportableAutoScalingGroupField = "RecommendationOptionsConfigurationAllocationStrategy" + ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationMixedInstanceTypes ExportableAutoScalingGroupField = "RecommendationOptionsConfigurationMixedInstanceTypes" + ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationType ExportableAutoScalingGroupField = "RecommendationOptionsConfigurationType" + ExportableAutoScalingGroupFieldRecommendationOptionsProjectedUtilizationMetricsCpuMaximum ExportableAutoScalingGroupField = "RecommendationOptionsProjectedUtilizationMetricsCpuMaximum" + ExportableAutoScalingGroupFieldRecommendationOptionsProjectedUtilizationMetricsMemoryMaximum ExportableAutoScalingGroupField = "RecommendationOptionsProjectedUtilizationMetricsMemoryMaximum" + ExportableAutoScalingGroupFieldRecommendationOptionsPerformanceRisk ExportableAutoScalingGroupField = "RecommendationOptionsPerformanceRisk" + ExportableAutoScalingGroupFieldRecommendationOptionsOnDemandPrice ExportableAutoScalingGroupField = "RecommendationOptionsOnDemandPrice" + ExportableAutoScalingGroupFieldRecommendationOptionsStandardOneYearNoUpfrontReservedPrice ExportableAutoScalingGroupField = "RecommendationOptionsStandardOneYearNoUpfrontReservedPrice" + ExportableAutoScalingGroupFieldRecommendationOptionsStandardThreeYearNoUpfrontReservedPrice ExportableAutoScalingGroupField = "RecommendationOptionsStandardThreeYearNoUpfrontReservedPrice" + ExportableAutoScalingGroupFieldRecommendationOptionsVcpus ExportableAutoScalingGroupField = "RecommendationOptionsVcpus" + ExportableAutoScalingGroupFieldRecommendationOptionsMemory ExportableAutoScalingGroupField = "RecommendationOptionsMemory" + ExportableAutoScalingGroupFieldRecommendationOptionsStorage ExportableAutoScalingGroupField = "RecommendationOptionsStorage" + ExportableAutoScalingGroupFieldRecommendationOptionsNetwork ExportableAutoScalingGroupField = "RecommendationOptionsNetwork" + ExportableAutoScalingGroupFieldLastRefreshTimestamp ExportableAutoScalingGroupField = "LastRefreshTimestamp" + ExportableAutoScalingGroupFieldCurrentPerformanceRisk ExportableAutoScalingGroupField = "CurrentPerformanceRisk" + ExportableAutoScalingGroupFieldRecommendationOptionsSavingsOpportunityPercentage ExportableAutoScalingGroupField = "RecommendationOptionsSavingsOpportunityPercentage" + ExportableAutoScalingGroupFieldRecommendationOptionsEstimatedMonthlySavingsCurrency ExportableAutoScalingGroupField = "RecommendationOptionsEstimatedMonthlySavingsCurrency" + ExportableAutoScalingGroupFieldRecommendationOptionsEstimatedMonthlySavingsValue ExportableAutoScalingGroupField = "RecommendationOptionsEstimatedMonthlySavingsValue" + ExportableAutoScalingGroupFieldEffectiveRecommendationPreferencesCpuVendorArchitectures ExportableAutoScalingGroupField = "EffectiveRecommendationPreferencesCpuVendorArchitectures" + ExportableAutoScalingGroupFieldEffectiveRecommendationPreferencesEnhancedInfrastructureMetrics ExportableAutoScalingGroupField = "EffectiveRecommendationPreferencesEnhancedInfrastructureMetrics" + ExportableAutoScalingGroupFieldEffectiveRecommendationPreferencesInferredWorkloadTypes ExportableAutoScalingGroupField = "EffectiveRecommendationPreferencesInferredWorkloadTypes" + ExportableAutoScalingGroupFieldEffectiveRecommendationPreferencesPreferredResources ExportableAutoScalingGroupField = "EffectiveRecommendationPreferencesPreferredResources" + ExportableAutoScalingGroupFieldEffectiveRecommendationPreferencesLookbackPeriod ExportableAutoScalingGroupField = "EffectiveRecommendationPreferencesLookBackPeriod" + ExportableAutoScalingGroupFieldInferredWorkloadTypes ExportableAutoScalingGroupField = "InferredWorkloadTypes" + ExportableAutoScalingGroupFieldRecommendationOptionsMigrationEffort ExportableAutoScalingGroupField = "RecommendationOptionsMigrationEffort" + ExportableAutoScalingGroupFieldCurrentInstanceGpuInfo ExportableAutoScalingGroupField = "CurrentInstanceGpuInfo" + ExportableAutoScalingGroupFieldRecommendationOptionsInstanceGpuInfo ExportableAutoScalingGroupField = "RecommendationOptionsInstanceGpuInfo" + ExportableAutoScalingGroupFieldUtilizationMetricsGpuPercentageMaximum ExportableAutoScalingGroupField = "UtilizationMetricsGpuPercentageMaximum" + ExportableAutoScalingGroupFieldUtilizationMetricsGpuMemoryPercentageMaximum ExportableAutoScalingGroupField = "UtilizationMetricsGpuMemoryPercentageMaximum" + ExportableAutoScalingGroupFieldRecommendationOptionsProjectedUtilizationMetricsGpuMaximum ExportableAutoScalingGroupField = "RecommendationOptionsProjectedUtilizationMetricsGpuPercentageMaximum" + ExportableAutoScalingGroupFieldRecommendationOptionsProjectedUtilizationMetricsGpuMemoryMaximum ExportableAutoScalingGroupField = "RecommendationOptionsProjectedUtilizationMetricsGpuMemoryPercentageMaximum" + ExportableAutoScalingGroupFieldEffectiveRecommendationPreferencesSavingsEstimationMode ExportableAutoScalingGroupField = "EffectiveRecommendationPreferencesSavingsEstimationMode" + ExportableAutoScalingGroupFieldRecommendationOptionsSavingsOpportunityAfterDiscountsPercentage ExportableAutoScalingGroupField = "RecommendationOptionsSavingsOpportunityAfterDiscountsPercentage" + ExportableAutoScalingGroupFieldRecommendationOptionsEstimatedMonthlySavingsCurrencyAfterDiscounts ExportableAutoScalingGroupField = "RecommendationOptionsEstimatedMonthlySavingsCurrencyAfterDiscounts" + ExportableAutoScalingGroupFieldRecommendationOptionsEstimatedMonthlySavingsValueAfterDiscounts ExportableAutoScalingGroupField = "RecommendationOptionsEstimatedMonthlySavingsValueAfterDiscounts" ) // Values returns all known values for ExportableAutoScalingGroupField. Note that @@ -529,6 +574,9 @@ func (ExportableAutoScalingGroupField) Values() []ExportableAutoScalingGroupFiel "CurrentConfigurationDesiredCapacity", "CurrentConfigurationMinSize", "CurrentConfigurationMaxSize", + "CurrentConfigurationAllocationStrategy", + "CurrentConfigurationMixedInstanceTypes", + "CurrentConfigurationType", "CurrentOnDemandPrice", "CurrentStandardOneYearNoUpfrontReservedPrice", "CurrentStandardThreeYearNoUpfrontReservedPrice", @@ -540,6 +588,10 @@ func (ExportableAutoScalingGroupField) Values() []ExportableAutoScalingGroupFiel "RecommendationOptionsConfigurationDesiredCapacity", "RecommendationOptionsConfigurationMinSize", "RecommendationOptionsConfigurationMaxSize", + "RecommendationOptionsConfigurationEstimatedInstanceHourReductionPercentage", + "RecommendationOptionsConfigurationAllocationStrategy", + "RecommendationOptionsConfigurationMixedInstanceTypes", + "RecommendationOptionsConfigurationType", "RecommendationOptionsProjectedUtilizationMetricsCpuMaximum", "RecommendationOptionsProjectedUtilizationMetricsMemoryMaximum", "RecommendationOptionsPerformanceRisk", diff --git a/service/computeoptimizer/types/types.go b/service/computeoptimizer/types/types.go index fe0cd7d610e..f30c5970638 100644 --- a/service/computeoptimizer/types/types.go +++ b/service/computeoptimizer/types/types.go @@ -30,21 +30,40 @@ type AccountEnrollmentStatus struct { noSmithyDocumentSerde } -// Describes the configuration of an Auto Scaling group. +// Describes the configuration of an EC2 Auto Scaling group. type AutoScalingGroupConfiguration struct { - // The desired capacity, or number of instances, for the Auto Scaling group. + // Describes the allocation strategy that the EC2 Auto Scaling group uses. This + // field is only available for EC2 Auto Scaling groups with mixed instance types. + AllocationStrategy AllocationStrategy + + // The desired capacity, or number of instances, for the EC2 Auto Scaling group. DesiredCapacity int32 - // The instance type for the Auto Scaling group. + // Describes the projected percentage reduction in instance hours after adopting + // the recommended configuration. This field is only available for EC2 Auto Scaling + // groups with scaling policies. + EstimatedInstanceHourReductionPercentage *float64 + + // The instance type for the EC2 Auto Scaling group. InstanceType *string - // The maximum size, or maximum number of instances, for the Auto Scaling group. + // The maximum size, or maximum number of instances, for the EC2 Auto Scaling + // group. MaxSize int32 - // The minimum size, or minimum number of instances, for the Auto Scaling group. + // The minimum size, or minimum number of instances, for the EC2 Auto Scaling + // group. MinSize int32 + // List the instance types within an EC2 Auto Scaling group that has mixed + // instance types. + MixedInstanceTypes []string + + // Describes whether the EC2 Auto Scaling group has a single instance type or a + // mixed instance type configuration. + Type AsgType + noSmithyDocumentSerde } diff --git a/service/efs/internal/endpoints/endpoints.go b/service/efs/internal/endpoints/endpoints.go index 6f9eafd1124..8e46f2966f5 100644 --- a/service/efs/internal/endpoints/endpoints.go +++ b/service/efs/internal/endpoints/endpoints.go @@ -247,6 +247,15 @@ var defaultPartitions = endpoints.Partitions{ }: { Hostname: "elasticfilesystem-fips.ap-southeast-5.amazonaws.com", }, + endpoints.EndpointKey{ + Region: "ap-southeast-7", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-southeast-7", + Variant: endpoints.FIPSVariant, + }: { + Hostname: "elasticfilesystem-fips.ap-southeast-7.amazonaws.com", + }, endpoints.EndpointKey{ Region: "ca-central-1", }: endpoints.Endpoint{}, @@ -445,6 +454,15 @@ var defaultPartitions = endpoints.Partitions{ }, Deprecated: aws.TrueTernary, }, + endpoints.EndpointKey{ + Region: "fips-ap-southeast-7", + }: endpoints.Endpoint{ + Hostname: "elasticfilesystem-fips.ap-southeast-7.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "ap-southeast-7", + }, + Deprecated: aws.TrueTernary, + }, endpoints.EndpointKey{ Region: "fips-ca-central-1", }: endpoints.Endpoint{ diff --git a/service/fms/deserializers.go b/service/fms/deserializers.go index f5fc13d2b02..9d548dce318 100644 --- a/service/fms/deserializers.go +++ b/service/fms/deserializers.go @@ -9739,6 +9739,15 @@ func awsAwsjson11_deserializeDocumentPolicy(v **types.Policy, value interface{}) return err } + case "ResourceTagLogicalOperator": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceTagLogicalOperator to be of type string, got %T instead", value) + } + sv.ResourceTagLogicalOperator = types.ResourceTagLogicalOperator(jtv) + } + case "ResourceTags": if err := awsAwsjson11_deserializeDocumentResourceTags(&sv.ResourceTags, value); err != nil { return err diff --git a/service/fms/serializers.go b/service/fms/serializers.go index efc3d67f046..c5a0dc6377a 100644 --- a/service/fms/serializers.go +++ b/service/fms/serializers.go @@ -3039,6 +3039,11 @@ func awsAwsjson11_serializeDocumentPolicy(v *types.Policy, value smithyjson.Valu } } + if len(v.ResourceTagLogicalOperator) > 0 { + ok := object.Key("ResourceTagLogicalOperator") + ok.String(string(v.ResourceTagLogicalOperator)) + } + if v.ResourceTags != nil { ok := object.Key("ResourceTags") if err := awsAwsjson11_serializeDocumentResourceTags(v.ResourceTags, ok); err != nil { diff --git a/service/fms/types/enums.go b/service/fms/types/enums.go index 83cfd499204..81cda16a5c8 100644 --- a/service/fms/types/enums.go +++ b/service/fms/types/enums.go @@ -336,6 +336,25 @@ func (ResourceSetStatus) Values() []ResourceSetStatus { } } +type ResourceTagLogicalOperator string + +// Enum values for ResourceTagLogicalOperator +const ( + ResourceTagLogicalOperatorAnd ResourceTagLogicalOperator = "AND" + ResourceTagLogicalOperatorOr ResourceTagLogicalOperator = "OR" +) + +// Values returns all known values for ResourceTagLogicalOperator. 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 (ResourceTagLogicalOperator) Values() []ResourceTagLogicalOperator { + return []ResourceTagLogicalOperator{ + "AND", + "OR", + } +} + type RuleOrder string // Enum values for RuleOrder diff --git a/service/fms/types/types.go b/service/fms/types/types.go index f40c7dbdddc..b142a249378 100644 --- a/service/fms/types/types.go +++ b/service/fms/types/types.go @@ -1430,6 +1430,13 @@ type Policy struct { // The unique identifiers of the resource sets used by the policy. ResourceSetIds []string + // Specifies whether to combine multiple resource tags with AND, so that a + // resource must have all tags to be included or excluded, or OR, so that a + // resource must have at least one tag. + // + // Default: AND + ResourceTagLogicalOperator ResourceTagLogicalOperator + // An array of ResourceTag objects. ResourceTags []ResourceTag @@ -1866,9 +1873,9 @@ type ResourceSetSummary struct { // resource should be included or excluded from the Firewall Manager policy. Tags // enable you to categorize your Amazon Web Services resources in different ways, // for example, by purpose, owner, or environment. Each tag consists of a key and -// an optional value. Firewall Manager combines the tags with "AND" so that, if you -// add more than one tag to a policy scope, a resource must have all the specified -// tags to be included or excluded. For more information, see [Working with Tag Editor]. +// an optional value. If you add more than one tag to a policy, you can specify +// whether to combine them using the logical AND operator or the logical OR +// operator. For more information, see [Working with Tag Editor]. // // Every resource tag must have a string value, either a non-empty string or an // empty string. If you don't provide a value for a resource tag, Firewall Manager