diff --git a/clients/client-auto-scaling/src/AutoScaling.ts b/clients/client-auto-scaling/src/AutoScaling.ts index 63860b74db7a..bbe636e2ba5e 100644 --- a/clients/client-auto-scaling/src/AutoScaling.ts +++ b/clients/client-auto-scaling/src/AutoScaling.ts @@ -559,9 +559,14 @@ export class AutoScaling extends AutoScalingClient { * group:

*
    *
  1. - *

    (Optional) Create a Lambda function and a rule that allows Amazon EventBridge to - * invoke your Lambda function when Amazon EC2 Auto Scaling launches or terminates - * instances.

    + *

    (Optional) Create a launch template or launch configuration with a user data + * script that runs while an instance is in a wait state due to a lifecycle + * hook.

    + *
  2. + *
  3. + *

    (Optional) Create a Lambda function and a rule that allows Amazon EventBridge to invoke + * your Lambda function when an instance is put into a wait state due to a + * lifecycle hook.

    *
  4. *
  5. *

    (Optional) Create a notification target and an IAM role. The target can be @@ -574,7 +579,7 @@ export class AutoScaling extends AutoScalingClient { *

  6. *
  7. *

    If you need more time, record the lifecycle action heartbeat to keep the - * instance in a pending state.

    + * instance in a wait state.

    *
  8. *
  9. *

    @@ -620,8 +625,7 @@ export class AutoScaling extends AutoScalingClient { *

    * We strongly recommend using a launch template when calling this operation to ensure full functionality for Amazon EC2 Auto Scaling and Amazon EC2. *

    - *

    Creates an Auto Scaling group with - * the specified name and attributes.

    + *

    Creates an Auto Scaling group with the specified name and attributes.

    *

    If you exceed your maximum limit of Auto Scaling groups, the call fails. To query this limit, * call the DescribeAccountLimits API. For information about updating * this limit, see Amazon EC2 Auto Scaling service @@ -1762,7 +1766,7 @@ export class AutoScaling extends AutoScalingClient { /** *

    Gets information about a warm pool and its instances.

    *

    For more information, see Warm pools for - * Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide.

    + * Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide.

    */ public describeWarmPool( args: DescribeWarmPoolCommandInput, @@ -2112,16 +2116,21 @@ export class AutoScaling extends AutoScalingClient { /** *

    Creates or updates a lifecycle hook for the specified Auto Scaling group.

    - *

    A lifecycle hook enables an Auto Scaling group to be aware of events in the Auto Scaling instance - * lifecycle, and then perform a custom action when the corresponding lifecycle event - * occurs.

    + *

    Lifecycle hooks let you create solutions that are aware of events in the Auto Scaling instance + * lifecycle, and then perform a custom action on instances when the corresponding + * lifecycle event occurs.

    *

    This step is a part of the procedure for adding a lifecycle hook to an Auto Scaling * group:

    *
      *
    1. - *

      (Optional) Create a Lambda function and a rule that allows Amazon EventBridge to - * invoke your Lambda function when Amazon EC2 Auto Scaling launches or terminates - * instances.

      + *

      (Optional) Create a launch template or launch configuration with a user data + * script that runs while an instance is in a wait state due to a lifecycle + * hook.

      + *
    2. + *
    3. + *

      (Optional) Create a Lambda function and a rule that allows Amazon EventBridge to invoke + * your Lambda function when an instance is put into a wait state due to a + * lifecycle hook.

      *
    4. *
    5. *

      (Optional) Create a notification target and an IAM role. The target can be @@ -2136,7 +2145,7 @@ export class AutoScaling extends AutoScalingClient { *

    6. *
    7. *

      If you need more time, record the lifecycle action heartbeat to keep the - * instance in a pending state using the RecordLifecycleActionHeartbeat API call.

      + * instance in a wait state using the RecordLifecycleActionHeartbeat API call.

      *
    8. *
    9. *

      If you finish before the timeout period ends, send a callback by using the @@ -2338,9 +2347,14 @@ export class AutoScaling extends AutoScalingClient { * group:

      *
        *
      1. - *

        (Optional) Create a Lambda function and a rule that allows Amazon EventBridge to - * invoke your Lambda function when Amazon EC2 Auto Scaling launches or terminates - * instances.

        + *

        (Optional) Create a launch template or launch configuration with a user data + * script that runs while an instance is in a wait state due to a lifecycle + * hook.

        + *
      2. + *
      3. + *

        (Optional) Create a Lambda function and a rule that allows Amazon EventBridge to invoke + * your Lambda function when an instance is put into a wait state due to a + * lifecycle hook.

        *
      4. *
      5. *

        (Optional) Create a notification target and an IAM role. The target can be @@ -2354,7 +2368,7 @@ export class AutoScaling extends AutoScalingClient { *

      6. *

        * If you need more time, record the lifecycle action - * heartbeat to keep the instance in a pending state. + * heartbeat to keep the instance in a wait state. *

        *
      7. *
      8. @@ -2670,8 +2684,7 @@ export class AutoScaling extends AutoScalingClient { *

        * We strongly recommend that all Auto Scaling groups use launch templates to ensure full functionality for Amazon EC2 Auto Scaling and Amazon EC2. *

        - *

        Updates the configuration for - * the specified Auto Scaling group.

        + *

        Updates the configuration for the specified Auto Scaling group.

        *

        To update an Auto Scaling group, specify the name of the group and the parameter that you want * to change. Any parameters that you don't specify are not changed by this update request. * The new settings take effect on any scaling activities after this call returns. diff --git a/clients/client-auto-scaling/src/commands/CompleteLifecycleActionCommand.ts b/clients/client-auto-scaling/src/commands/CompleteLifecycleActionCommand.ts index 64e8c8c169f0..27f9c9710350 100644 --- a/clients/client-auto-scaling/src/commands/CompleteLifecycleActionCommand.ts +++ b/clients/client-auto-scaling/src/commands/CompleteLifecycleActionCommand.ts @@ -28,9 +28,14 @@ export interface CompleteLifecycleActionCommandOutput extends CompleteLifecycleA * group:

        *
          *
        1. - *

          (Optional) Create a Lambda function and a rule that allows Amazon EventBridge to - * invoke your Lambda function when Amazon EC2 Auto Scaling launches or terminates - * instances.

          + *

          (Optional) Create a launch template or launch configuration with a user data + * script that runs while an instance is in a wait state due to a lifecycle + * hook.

          + *
        2. + *
        3. + *

          (Optional) Create a Lambda function and a rule that allows Amazon EventBridge to invoke + * your Lambda function when an instance is put into a wait state due to a + * lifecycle hook.

          *
        4. *
        5. *

          (Optional) Create a notification target and an IAM role. The target can be @@ -43,7 +48,7 @@ export interface CompleteLifecycleActionCommandOutput extends CompleteLifecycleA *

        6. *
        7. *

          If you need more time, record the lifecycle action heartbeat to keep the - * instance in a pending state.

          + * instance in a wait state.

          *
        8. *
        9. *

          diff --git a/clients/client-auto-scaling/src/commands/CreateAutoScalingGroupCommand.ts b/clients/client-auto-scaling/src/commands/CreateAutoScalingGroupCommand.ts index cccf8c7e3289..1ac258069a7b 100644 --- a/clients/client-auto-scaling/src/commands/CreateAutoScalingGroupCommand.ts +++ b/clients/client-auto-scaling/src/commands/CreateAutoScalingGroupCommand.ts @@ -25,8 +25,7 @@ export interface CreateAutoScalingGroupCommandOutput extends __MetadataBearer {} *

          * We strongly recommend using a launch template when calling this operation to ensure full functionality for Amazon EC2 Auto Scaling and Amazon EC2. *

          - *

          Creates an Auto Scaling group with - * the specified name and attributes.

          + *

          Creates an Auto Scaling group with the specified name and attributes.

          *

          If you exceed your maximum limit of Auto Scaling groups, the call fails. To query this limit, * call the DescribeAccountLimits API. For information about updating * this limit, see Amazon EC2 Auto Scaling service diff --git a/clients/client-auto-scaling/src/commands/DescribeWarmPoolCommand.ts b/clients/client-auto-scaling/src/commands/DescribeWarmPoolCommand.ts index 395b57078f2a..6eb83ab78e40 100644 --- a/clients/client-auto-scaling/src/commands/DescribeWarmPoolCommand.ts +++ b/clients/client-auto-scaling/src/commands/DescribeWarmPoolCommand.ts @@ -24,7 +24,7 @@ export interface DescribeWarmPoolCommandOutput extends DescribeWarmPoolAnswer, _ /** *

          Gets information about a warm pool and its instances.

          *

          For more information, see Warm pools for - * Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide.

          + * Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide.

          * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-auto-scaling/src/commands/PutLifecycleHookCommand.ts b/clients/client-auto-scaling/src/commands/PutLifecycleHookCommand.ts index 5ff80424f7f4..b1c416d691aa 100644 --- a/clients/client-auto-scaling/src/commands/PutLifecycleHookCommand.ts +++ b/clients/client-auto-scaling/src/commands/PutLifecycleHookCommand.ts @@ -23,16 +23,21 @@ export interface PutLifecycleHookCommandOutput extends PutLifecycleHookAnswer, _ /** *

          Creates or updates a lifecycle hook for the specified Auto Scaling group.

          - *

          A lifecycle hook enables an Auto Scaling group to be aware of events in the Auto Scaling instance - * lifecycle, and then perform a custom action when the corresponding lifecycle event - * occurs.

          + *

          Lifecycle hooks let you create solutions that are aware of events in the Auto Scaling instance + * lifecycle, and then perform a custom action on instances when the corresponding + * lifecycle event occurs.

          *

          This step is a part of the procedure for adding a lifecycle hook to an Auto Scaling * group:

          *
            *
          1. - *

            (Optional) Create a Lambda function and a rule that allows Amazon EventBridge to - * invoke your Lambda function when Amazon EC2 Auto Scaling launches or terminates - * instances.

            + *

            (Optional) Create a launch template or launch configuration with a user data + * script that runs while an instance is in a wait state due to a lifecycle + * hook.

            + *
          2. + *
          3. + *

            (Optional) Create a Lambda function and a rule that allows Amazon EventBridge to invoke + * your Lambda function when an instance is put into a wait state due to a + * lifecycle hook.

            *
          4. *
          5. *

            (Optional) Create a notification target and an IAM role. The target can be @@ -47,7 +52,7 @@ export interface PutLifecycleHookCommandOutput extends PutLifecycleHookAnswer, _ *

          6. *
          7. *

            If you need more time, record the lifecycle action heartbeat to keep the - * instance in a pending state using the RecordLifecycleActionHeartbeat API call.

            + * instance in a wait state using the RecordLifecycleActionHeartbeat API call.

            *
          8. *
          9. *

            If you finish before the timeout period ends, send a callback by using the diff --git a/clients/client-auto-scaling/src/commands/RecordLifecycleActionHeartbeatCommand.ts b/clients/client-auto-scaling/src/commands/RecordLifecycleActionHeartbeatCommand.ts index 459496f0d5f6..d1bf65d2fef8 100644 --- a/clients/client-auto-scaling/src/commands/RecordLifecycleActionHeartbeatCommand.ts +++ b/clients/client-auto-scaling/src/commands/RecordLifecycleActionHeartbeatCommand.ts @@ -30,9 +30,14 @@ export interface RecordLifecycleActionHeartbeatCommandOutput * group:

            *
              *
            1. - *

              (Optional) Create a Lambda function and a rule that allows Amazon EventBridge to - * invoke your Lambda function when Amazon EC2 Auto Scaling launches or terminates - * instances.

              + *

              (Optional) Create a launch template or launch configuration with a user data + * script that runs while an instance is in a wait state due to a lifecycle + * hook.

              + *
            2. + *
            3. + *

              (Optional) Create a Lambda function and a rule that allows Amazon EventBridge to invoke + * your Lambda function when an instance is put into a wait state due to a + * lifecycle hook.

              *
            4. *
            5. *

              (Optional) Create a notification target and an IAM role. The target can be @@ -46,7 +51,7 @@ export interface RecordLifecycleActionHeartbeatCommandOutput *

            6. *

              * If you need more time, record the lifecycle action - * heartbeat to keep the instance in a pending state. + * heartbeat to keep the instance in a wait state. *

              *
            7. *
            8. diff --git a/clients/client-auto-scaling/src/commands/UpdateAutoScalingGroupCommand.ts b/clients/client-auto-scaling/src/commands/UpdateAutoScalingGroupCommand.ts index 7be19a0107f8..08bb1fc58064 100644 --- a/clients/client-auto-scaling/src/commands/UpdateAutoScalingGroupCommand.ts +++ b/clients/client-auto-scaling/src/commands/UpdateAutoScalingGroupCommand.ts @@ -25,8 +25,7 @@ export interface UpdateAutoScalingGroupCommandOutput extends __MetadataBearer {} *

              * We strongly recommend that all Auto Scaling groups use launch templates to ensure full functionality for Amazon EC2 Auto Scaling and Amazon EC2. *

              - *

              Updates the configuration for - * the specified Auto Scaling group.

              + *

              Updates the configuration for the specified Auto Scaling group.

              *

              To update an Auto Scaling group, specify the name of the group and the parameter that you want * to change. Any parameters that you don't specify are not changed by this update request. * The new settings take effect on any scaling activities after this call returns. diff --git a/clients/client-auto-scaling/src/models/models_0.ts b/clients/client-auto-scaling/src/models/models_0.ts index 3bc480caa2f5..e3a9ab629f63 100644 --- a/clients/client-auto-scaling/src/models/models_0.ts +++ b/clients/client-auto-scaling/src/models/models_0.ts @@ -800,7 +800,9 @@ export interface LifecycleHookSpecification { /** *

              The ARN of the IAM role that allows the Auto Scaling group to publish to the specified - * notification target, for example, an Amazon SNS topic or an Amazon SQS queue.

              + * notification target.

              + *

              Valid only if the notification target is an Amazon SNS topic or an Amazon SQS queue. Required + * for new lifecycle hooks, but optional when updating existing hooks.

              */ RoleARN?: string; } @@ -1171,6 +1173,9 @@ export interface InstanceRequirements { * attributes, we will exclude instance types whose price is higher than your threshold. * The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off * price protection, specify a high value, such as 999999.

              + *

              If you set DesiredCapacityType to vcpu or + * memory-mib, the price protection threshold is applied based on the per + * vCPU or per memory price instead of the per instance price.

              *

              Default: 100 *

              */ @@ -1183,6 +1188,9 @@ export interface InstanceRequirements { * your attributes, we will exclude instance types whose price is higher than your * threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. * To turn off price protection, specify a high value, such as 999999.

              + *

              If you set DesiredCapacityType to vcpu or + * memory-mib, the price protection threshold is applied based on the per + * vCPU or per memory price instead of the per instance price.

              *

              Default: 20 *

              */ @@ -1376,18 +1384,16 @@ export interface LaunchTemplateOverrides { * overage. For example, if there are two units remaining to fulfill capacity, and Amazon EC2 Auto Scaling * can only launch an instance with a WeightedCapacity of five units, the * instance is launched, and the desired capacity is exceeded by three units. For more - * information, see Instance weighting for - * Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. Value must be in the - * range of 1–999.

              + * information, see Configuring instance weighting for Amazon EC2 Auto Scaling in the + * Amazon EC2 Auto Scaling User Guide. Value must be in the range of 1–999.

              */ WeightedCapacity?: string; /** - *

              Provides the launch template to be used when launching the instance type specified in - * InstanceType. For example, some instance types might require a launch - * template with a different AMI. If not provided, Amazon EC2 Auto Scaling uses the launch template that's - * defined for your mixed instances policy. For more information, see Specifying a - * different launch template for an instance type in the + *

              Provides a launch template for the specified instance type or instance requirements. + * For example, some instance types might require a launch template with a different AMI. + * If not provided, Amazon EC2 Auto Scaling uses the launch template that's defined for your mixed + * instances policy. For more information, see Specifying a different launch template for an instance type in the * Amazon EC2 Auto Scaling User Guide.

              */ LaunchTemplateSpecification?: LaunchTemplateSpecification; @@ -1543,9 +1549,9 @@ export interface CreateAutoScalingGroupType { * * * - *

              For more information, see Auto Scaling groups with multiple - * instance types and purchase options in the Amazon EC2 Auto Scaling User - * Guide.

              + *

              For more information, see Auto Scaling + * groups with multiple instance types and purchase options in the + * Amazon EC2 Auto Scaling User Guide.

              */ MixedInstancesPolicy?: MixedInstancesPolicy; @@ -1630,7 +1636,7 @@ export interface CreateAutoScalingGroupType { * of an EC2 instance that has come into service and marking it unhealthy due to a failed * health check. The default value is 0. For more information, see Health * check grace period in the Amazon EC2 Auto Scaling User Guide.

              - *

              Conditional: Required if you are adding an ELB health check.

              + *

              Required if you are adding an ELB health check.

              */ HealthCheckGracePeriod?: number; @@ -2731,6 +2737,7 @@ export enum LifecycleState { TERMINATING = "Terminating", TERMINATING_PROCEED = "Terminating:Proceed", TERMINATING_WAIT = "Terminating:Wait", + WARMED_HIBERNATED = "Warmed:Hibernated", WARMED_PENDING = "Warmed:Pending", WARMED_PENDING_PROCEED = "Warmed:Pending:Proceed", WARMED_PENDING_WAIT = "Warmed:Pending:Wait", @@ -2874,7 +2881,30 @@ export namespace TagDescription { }); } +/** + *

              Describes an instance reuse policy for a warm pool.

              + *

              For more information, see Warm pools for + * Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide.

              + */ +export interface InstanceReusePolicy { + /** + *

              Specifies whether instances in the Auto Scaling group can be returned to the warm pool on + * scale in.

              + */ + ReuseOnScaleIn?: boolean; +} + +export namespace InstanceReusePolicy { + /** + * @internal + */ + export const filterSensitiveLog = (obj: InstanceReusePolicy): any => ({ + ...obj, + }); +} + export enum WarmPoolState { + Hibernated = "Hibernated", Running = "Running", Stopped = "Stopped", } @@ -2907,6 +2937,11 @@ export interface WarmPoolConfiguration { *

              The status of a warm pool that is marked for deletion.

              */ Status?: WarmPoolStatus | string; + + /** + *

              The instance reuse policy.

              + */ + InstanceReusePolicy?: InstanceReusePolicy; } export namespace WarmPoolConfiguration { @@ -3864,9 +3899,10 @@ export namespace LaunchConfigurationsType { } /** - *

              Describes a lifecycle hook, which enables an Auto Scaling group to be aware of events in the - * Auto Scaling instance lifecycle, and then perform a custom action when the corresponding - * lifecycle event occurs.

              + *

              Describes a lifecycle hook. A lifecycle hook lets you create solutions that are aware + * of events in the Auto Scaling instance lifecycle, and then perform a custom action on instances + * when the corresponding lifecycle event + * occurs.

              */ export interface LifecycleHook { /** @@ -3902,7 +3938,7 @@ export interface LifecycleHook { /** *

              The ARN of the IAM role that allows the Auto Scaling group to publish to the specified - * notification target.

              + * notification target (an Amazon SNS topic or an Amazon SQS queue).

              */ RoleARN?: string; @@ -5267,18 +5303,18 @@ export interface PredefinedMetricSpecification { *
            9. *
            10. *

              - * ASGAverageNetworkIn - Average number of bytes received on all - * network interfaces by the Auto Scaling group.

              + * ASGAverageNetworkIn - Average number of bytes received (per + * instance per minute) for the Auto Scaling group.

              *
            11. *
            12. *

              - * ASGAverageNetworkOut - Average number of bytes sent out on all - * network interfaces by the Auto Scaling group.

              + * ASGAverageNetworkOut - Average number of bytes sent out (per + * instance per minute) for the Auto Scaling group.

              *
            13. *
            14. *

              - * ALBRequestCountPerTarget - Number of requests completed per - * target in an Application Load Balancer target group.

              + * ALBRequestCountPerTarget - Average Application Load Balancer request count (per + * target per minute) for your Auto Scaling group.

              *
            15. * */ @@ -5337,6 +5373,13 @@ export interface TargetTrackingConfiguration { /** *

              The target value for the metric.

              + * + *

              Some metrics are based on a count instead of a percentage, such as the request + * count for an Application Load Balancer or the number of messages in an SQS queue. If the scaling policy + * specifies one of these metrics, specify the target utilization as the optimal + * average request or message count per instance during any one-minute interval. + *

              + *
              */ TargetValue: number | undefined; @@ -5712,15 +5755,13 @@ export interface ScheduledUpdateGroupAction { /** *

              The date and time in UTC for this action to start. For example, - * "2019-06-01T00:00:00Z". - *

              + * "2019-06-01T00:00:00Z".

              */ StartTime?: Date; /** *

              The date and time in UTC for the recurring schedule to end. For example, - * "2019-06-01T00:00:00Z". - *

              + * "2019-06-01T00:00:00Z".

              */ EndTime?: Date; @@ -6572,8 +6613,9 @@ export interface PutLifecycleHookType { /** *

              The ARN of the IAM role that allows the Auto Scaling group to publish to the specified - * notification target, for example, an Amazon SNS topic or an Amazon SQS queue.

              - *

              Required for new lifecycle hooks, but optional when updating existing hooks.

              + * notification target.

              + *

              Valid only if the notification target is an Amazon SNS topic or an Amazon SQS queue. Required + * for new lifecycle hooks, but optional when updating existing hooks.

              */ RoleARN?: string; @@ -6986,6 +7028,13 @@ export interface PutWarmPoolType { * Default is Stopped.

              */ PoolState?: WarmPoolState | string; + + /** + *

              Indicates whether instances in the Auto Scaling group can be returned to the warm pool on + * scale in. The default is to terminate instances in the Auto Scaling group when the group scales + * in.

              + */ + InstanceReusePolicy?: InstanceReusePolicy; } export namespace PutWarmPoolType { @@ -7344,9 +7393,9 @@ export interface UpdateAutoScalingGroupType { /** *

              An embedded object that specifies a mixed instances policy. For more information, see - * Auto Scaling groups with multiple - * instance types and purchase options in the Amazon EC2 Auto Scaling User - * Guide.

              + * Auto Scaling + * groups with multiple instance types and purchase options in the + * Amazon EC2 Auto Scaling User Guide.

              */ MixedInstancesPolicy?: MixedInstancesPolicy; @@ -7402,7 +7451,7 @@ export interface UpdateAutoScalingGroupType { * of an EC2 instance that has come into service and marking it unhealthy due to a failed * health check. The default value is 0. For more information, see Health * check grace period in the Amazon EC2 Auto Scaling User Guide.

              - *

              Conditional: Required if you are adding an ELB health check.

              + *

              Required if you are adding an ELB health check.

              */ HealthCheckGracePeriod?: number; diff --git a/clients/client-auto-scaling/src/protocols/Aws_query.ts b/clients/client-auto-scaling/src/protocols/Aws_query.ts index f2a25ca4a8ca..0ce906bc2444 100644 --- a/clients/client-auto-scaling/src/protocols/Aws_query.ts +++ b/clients/client-auto-scaling/src/protocols/Aws_query.ts @@ -310,6 +310,7 @@ import { InstanceRefreshProgressDetails, InstanceRefreshWarmPoolProgress, InstanceRequirements, + InstanceReusePolicy, InstancesDistribution, InvalidNextToken, LaunchConfiguration, @@ -5588,6 +5589,14 @@ const serializeAws_queryInstanceRequirements = (input: InstanceRequirements, con return entries; }; +const serializeAws_queryInstanceReusePolicy = (input: InstanceReusePolicy, context: __SerdeContext): any => { + const entries: any = {}; + if (input.ReuseOnScaleIn !== undefined && input.ReuseOnScaleIn !== null) { + entries["ReuseOnScaleIn"] = input.ReuseOnScaleIn; + } + return entries; +}; + const serializeAws_queryInstancesDistribution = (input: InstancesDistribution, context: __SerdeContext): any => { const entries: any = {}; if (input.OnDemandAllocationStrategy !== undefined && input.OnDemandAllocationStrategy !== null) { @@ -6415,6 +6424,13 @@ const serializeAws_queryPutWarmPoolType = (input: PutWarmPoolType, context: __Se if (input.PoolState !== undefined && input.PoolState !== null) { entries["PoolState"] = input.PoolState; } + if (input.InstanceReusePolicy !== undefined && input.InstanceReusePolicy !== null) { + const memberEntries = serializeAws_queryInstanceReusePolicy(input.InstanceReusePolicy, context); + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `InstanceReusePolicy.${key}`; + entries[loc] = value; + }); + } return entries; }; @@ -8512,6 +8528,16 @@ const deserializeAws_queryInstanceRequirements = (output: any, context: __SerdeC return contents; }; +const deserializeAws_queryInstanceReusePolicy = (output: any, context: __SerdeContext): InstanceReusePolicy => { + const contents: any = { + ReuseOnScaleIn: undefined, + }; + if (output["ReuseOnScaleIn"] !== undefined) { + contents.ReuseOnScaleIn = __parseBoolean(output["ReuseOnScaleIn"]); + } + return contents; +}; + const deserializeAws_queryInstances = (output: any, context: __SerdeContext): Instance[] => { return (output || []) .filter((e: any) => e != null) @@ -10045,6 +10071,7 @@ const deserializeAws_queryWarmPoolConfiguration = (output: any, context: __Serde MinSize: undefined, PoolState: undefined, Status: undefined, + InstanceReusePolicy: undefined, }; if (output["MaxGroupPreparedCapacity"] !== undefined) { contents.MaxGroupPreparedCapacity = __strictParseInt32(output["MaxGroupPreparedCapacity"]) as number; @@ -10058,6 +10085,9 @@ const deserializeAws_queryWarmPoolConfiguration = (output: any, context: __Serde if (output["Status"] !== undefined) { contents.Status = __expectString(output["Status"]); } + if (output["InstanceReusePolicy"] !== undefined) { + contents.InstanceReusePolicy = deserializeAws_queryInstanceReusePolicy(output["InstanceReusePolicy"], context); + } return contents; }; diff --git a/clients/client-databrew/src/models/models_0.ts b/clients/client-databrew/src/models/models_0.ts index b1d79ec98a49..6c8772d41724 100644 --- a/clients/client-databrew/src/models/models_0.ts +++ b/clients/client-databrew/src/models/models_0.ts @@ -1652,6 +1652,12 @@ export interface Output { *

              Represents options that define how DataBrew formats job output files.

              */ FormatOptions?: OutputFormatOptions; + + /** + *

              Maximum number of files to be generated by the job and written to the output folder. For output partitioned + * by column(s), the MaxOutputFiles value is the maximum number of files per partition.

              + */ + MaxOutputFiles?: number; } export namespace Output { diff --git a/clients/client-databrew/src/protocols/Aws_restJson1.ts b/clients/client-databrew/src/protocols/Aws_restJson1.ts index d272f54ec1c1..f305d67ba3ae 100644 --- a/clients/client-databrew/src/protocols/Aws_restJson1.ts +++ b/clients/client-databrew/src/protocols/Aws_restJson1.ts @@ -4616,6 +4616,8 @@ const serializeAws_restJson1Output = (input: Output, context: __SerdeContext): a }), ...(input.Location !== undefined && input.Location !== null && { Location: serializeAws_restJson1S3Location(input.Location, context) }), + ...(input.MaxOutputFiles !== undefined && + input.MaxOutputFiles !== null && { MaxOutputFiles: input.MaxOutputFiles }), ...(input.Overwrite !== undefined && input.Overwrite !== null && { Overwrite: input.Overwrite }), ...(input.PartitionColumns !== undefined && input.PartitionColumns !== null && { @@ -5504,6 +5506,7 @@ const deserializeAws_restJson1Output = (output: any, context: __SerdeContext): O output.Location !== undefined && output.Location !== null ? deserializeAws_restJson1S3Location(output.Location, context) : undefined, + MaxOutputFiles: __expectInt32(output.MaxOutputFiles), Overwrite: __expectBoolean(output.Overwrite), PartitionColumns: output.PartitionColumns !== undefined && output.PartitionColumns !== null diff --git a/clients/client-fms/README.md b/clients/client-fms/README.md index 085952dab1f2..f2df970c5db9 100644 --- a/clients/client-fms/README.md +++ b/clients/client-fms/README.md @@ -8,12 +8,12 @@ AWS SDK for JavaScript FMS Client for Node.js, Browser and React Native.

              This is the Firewall Manager API Reference. This guide is for -developers who need detailed information about the Firewall Manager API actions, data -types, and errors. For detailed information about Firewall Manager features, see the -Firewall Manager Developer Guide.

              -

              Some API actions require explicit resource permissions. For information, see the developer guide topic -Firewall Manager required permissions for API actions. -

              +developers who need detailed information about the Firewall Manager API actions, data types, and +errors. For detailed information about Firewall Manager features, see the Firewall Manager +Developer Guide.

              +

              Some API actions require explicit resource permissions. For information, see the +developer guide topic Firewall Manager required permissions +for API actions.

              ## Installing diff --git a/clients/client-fms/src/FMS.ts b/clients/client-fms/src/FMS.ts index bd657c93e060..c0ada770ca0a 100644 --- a/clients/client-fms/src/FMS.ts +++ b/clients/client-fms/src/FMS.ts @@ -114,19 +114,20 @@ import { FMSClient } from "./FMSClient"; /** *

              This is the Firewall Manager API Reference. This guide is for - * developers who need detailed information about the Firewall Manager API actions, data - * types, and errors. For detailed information about Firewall Manager features, see the - * Firewall Manager Developer Guide.

              - *

              Some API actions require explicit resource permissions. For information, see the developer guide topic - * Firewall Manager required permissions for API actions. - *

              + * developers who need detailed information about the Firewall Manager API actions, data types, and + * errors. For detailed information about Firewall Manager features, see the Firewall Manager + * Developer Guide.

              + *

              Some API actions require explicit resource permissions. For information, see the + * developer guide topic Firewall Manager required permissions + * for API actions.

              */ export class FMS extends FMSClient { /** - *

              Sets the Firewall Manager administrator account. The account must be - * a member of the organization in Organizations whose resources you want to protect. - * Firewall Manager sets the permissions that allow the account to administer your Firewall Manager policies.

              - *

              The account that you associate with Firewall Manager is called the Firewall Manager administrator account.

              + *

              Sets the Firewall Manager administrator account. The account must be a member of the + * organization in Organizations whose resources you want to protect. Firewall Manager sets the + * permissions that allow the account to administer your Firewall Manager policies.

              + *

              The account that you associate with Firewall Manager is called the Firewall Manager administrator + * account.

              */ public associateAdminAccount( args: AssociateAdminAccountCommandInput, @@ -190,8 +191,8 @@ export class FMS extends FMSClient { } /** - *

              Deletes an Firewall Manager association with the IAM role and the Amazon Simple - * Notification Service (SNS) topic that is used to record Firewall Manager SNS logs.

              + *

              Deletes an Firewall Manager association with the IAM role and the Amazon Simple Notification + * Service (SNS) topic that is used to record Firewall Manager SNS logs.

              */ public deleteNotificationChannel( args: DeleteNotificationChannelCommandInput, @@ -284,9 +285,9 @@ export class FMS extends FMSClient { } /** - *

              Disassociates the account that has been set as the Firewall Manager administrator - * account. To set a different account as the administrator account, you must submit an - * AssociateAdminAccount request.

              + *

              Disassociates the account that has been set as the Firewall Manager administrator account. To + * set a different account as the administrator account, you must submit an + * AssociateAdminAccount request.

              */ public disassociateAdminAccount( args: DisassociateAdminAccountCommandInput, @@ -318,8 +319,8 @@ export class FMS extends FMSClient { } /** - *

              Returns the Organizations account that is associated with Firewall Manager - * as the Firewall Manager administrator.

              + *

              Returns the Organizations account that is associated with Firewall Manager as the Firewall Manager + * administrator.

              */ public getAdminAccount( args: GetAdminAccountCommandInput, @@ -378,27 +379,27 @@ export class FMS extends FMSClient { /** *

              Returns detailed compliance information about the specified member account. Details - * include resources that are in and out of compliance with the specified policy.

              + * include resources that are in and out of compliance with the specified policy.

              *
                *
              • - *

                Resources are - * considered noncompliant for WAF and Shield Advanced policies if the specified policy has - * not been applied to them.

                + *

                Resources are considered noncompliant for WAF and Shield Advanced policies + * if the specified policy has not been applied to them.

                *
              • *
              • - *

                Resources are considered noncompliant for security group policies if - * they are in scope of the policy, they violate one or more of the policy rules, and remediation - * is disabled or not possible.

                + *

                Resources are considered noncompliant for security group policies if they are in + * scope of the policy, they violate one or more of the policy rules, and remediation is + * disabled or not possible.

                *
              • *
              • - *

                Resources are considered noncompliant for Network Firewall policies - * if a firewall is missing in the VPC, if the firewall endpoint isn't set up in an expected Availability Zone and subnet, - * if a subnet created by the Firewall Manager doesn't have the expected route table, - * and for modifications to a firewall policy that violate the Firewall Manager policy's rules.

                + *

                Resources are considered noncompliant for Network Firewall policies if a firewall is + * missing in the VPC, if the firewall endpoint isn't set up in an expected Availability + * Zone and subnet, if a subnet created by the Firewall Manager doesn't have the expected route + * table, and for modifications to a firewall policy that violate the Firewall Manager policy's + * rules.

                *
              • *
              • - *

                Resources are considered noncompliant for DNS Firewall policies - * if a DNS Firewall rule group is missing from the rule group associations for the VPC.

                + *

                Resources are considered noncompliant for DNS Firewall policies if a DNS Firewall + * rule group is missing from the rule group associations for the VPC.

                *
              • *
              */ @@ -433,8 +434,8 @@ export class FMS extends FMSClient { /** *

              Information - * about the Amazon Simple Notification Service (SNS) topic that is used to - * record Firewall Manager SNS logs.

              + * about the Amazon Simple Notification Service (SNS) topic that is used to + * record Firewall Manager SNS logs.

              */ public getNotificationChannel( args: GetNotificationChannelCommandInput, @@ -493,7 +494,8 @@ export class FMS extends FMSClient { /** *

              If you created a Shield Advanced policy, returns policy-level attack summary information - * in the event of a potential DDoS attack. Other policy types are currently unsupported.

              + * in the event of a potential DDoS attack. Other policy types are currently + * unsupported.

              */ public getProtectionStatus( args: GetProtectionStatusCommandInput, @@ -557,7 +559,8 @@ export class FMS extends FMSClient { } /** - *

              Retrieves violations for a resource based on the specified Firewall Manager policy and Amazon Web Services account.

              + *

              Retrieves violations for a resource based on the specified Firewall Manager policy and Amazon Web Services + * account.

              */ public getViolationDetails( args: GetViolationDetailsCommandInput, @@ -622,8 +625,8 @@ export class FMS extends FMSClient { /** *

              Returns an array of PolicyComplianceStatus objects. Use - * PolicyComplianceStatus to get a summary of which member accounts are protected - * by the specified policy.

              + * PolicyComplianceStatus to get a summary of which member accounts are + * protected by the specified policy.

              */ public listComplianceStatus( args: ListComplianceStatusCommandInput, @@ -656,9 +659,9 @@ export class FMS extends FMSClient { /** *

              Returns a MemberAccounts object that lists the member accounts in the - * administrator's Amazon Web Services organization.

              + * administrator's Amazon Web Services organization.

              *

              The ListMemberAccounts must be submitted by the account that is set as the - * Firewall Manager administrator.

              + * Firewall Manager administrator.

              */ public listMemberAccounts( args: ListMemberAccountsCommandInput, @@ -751,7 +754,7 @@ export class FMS extends FMSClient { } /** - *

              Retrieves the list of tags for the specified Amazon Web Services resource.

              + *

              Retrieves the list of tags for the specified Amazon Web Services resource.

              */ public listTagsForResource( args: ListTagsForResourceCommandInput, @@ -809,11 +812,12 @@ export class FMS extends FMSClient { } /** - *

              Designates the IAM role and Amazon Simple Notification Service (SNS) topic that - * Firewall Manager uses to record SNS logs.

              - *

              To perform this action outside of the console, you must configure the SNS topic to allow the Firewall Manager - * role AWSServiceRoleForFMS to publish SNS logs. For more information, see - * Firewall Manager required permissions for API actions in the Firewall Manager Developer Guide.

              + *

              Designates the IAM role and Amazon Simple Notification Service (SNS) topic that Firewall Manager + * uses to record SNS logs.

              + *

              To perform this action outside of the console, you must configure the SNS topic to allow + * the Firewall Manager role AWSServiceRoleForFMS to publish SNS logs. For more information, + * see Firewall Manager required permissions + * for API actions in the Firewall Manager Developer Guide.

              */ public putNotificationChannel( args: PutNotificationChannelCommandInput, @@ -850,34 +854,33 @@ export class FMS extends FMSClient { *
                *
              • *

                An WAF policy (type WAFV2), which defines rule groups to run first in the - * corresponding WAF web ACL and rule groups to run last in the web ACL.

                + * corresponding WAF web ACL and rule groups to run last in the web ACL.

                *
              • *
              • *

                An WAF Classic policy (type WAF), which defines a rule group.

                *
              • *
              • *

                A Shield Advanced policy, which applies Shield Advanced protection to specified - * accounts and resources.

                + * accounts and resources.

                *
              • *
              • *

                A security group policy, which manages VPC security groups across your Amazon Web Services - * organization.

                + * organization.

                *
              • *
              • - *

                An Network Firewall policy, which provides firewall rules to filter network traffic in specified - * Amazon VPCs.

                + *

                An Network Firewall policy, which provides firewall rules to filter network traffic in + * specified Amazon VPCs.

                *
              • *
              • - *

                A DNS Firewall policy, which provides Route 53 Resolver DNS Firewall rules to filter DNS queries for - * specified VPCs.

                + *

                A DNS Firewall policy, which provides Route 53 Resolver DNS Firewall rules to filter DNS + * queries for specified VPCs.

                *
              • *
              - *

              Each policy is specific to one of the types. If you want to enforce more than one - * policy type across accounts, create multiple policies. You can create multiple - * policies for each type.

              + *

              Each policy is specific to one of the types. If you want to enforce more than one policy + * type across accounts, create multiple policies. You can create multiple policies for each + * type.

              *

              You must be subscribed to Shield Advanced to create a Shield Advanced policy. For more - * information about subscribing to Shield Advanced, see - * CreateSubscription.

              + * information about subscribing to Shield Advanced, see CreateSubscription.

              */ public putPolicy(args: PutPolicyCommandInput, options?: __HttpHandlerOptions): Promise; public putPolicy(args: PutPolicyCommandInput, cb: (err: any, data?: PutPolicyCommandOutput) => void): void; diff --git a/clients/client-fms/src/FMSClient.ts b/clients/client-fms/src/FMSClient.ts index 0dde4dd4b8bc..dcb783de3f5c 100644 --- a/clients/client-fms/src/FMSClient.ts +++ b/clients/client-fms/src/FMSClient.ts @@ -322,12 +322,12 @@ export interface FMSClientResolvedConfig extends FMSClientResolvedConfigType {} /** *

              This is the Firewall Manager API Reference. This guide is for - * developers who need detailed information about the Firewall Manager API actions, data - * types, and errors. For detailed information about Firewall Manager features, see the - * Firewall Manager Developer Guide.

              - *

              Some API actions require explicit resource permissions. For information, see the developer guide topic - * Firewall Manager required permissions for API actions. - *

              + * developers who need detailed information about the Firewall Manager API actions, data types, and + * errors. For detailed information about Firewall Manager features, see the Firewall Manager + * Developer Guide.

              + *

              Some API actions require explicit resource permissions. For information, see the + * developer guide topic Firewall Manager required permissions + * for API actions.

              */ export class FMSClient extends __Client< __HttpHandlerOptions, diff --git a/clients/client-fms/src/commands/AssociateAdminAccountCommand.ts b/clients/client-fms/src/commands/AssociateAdminAccountCommand.ts index 90fc44da888a..fdbbcfa08bb7 100644 --- a/clients/client-fms/src/commands/AssociateAdminAccountCommand.ts +++ b/clients/client-fms/src/commands/AssociateAdminAccountCommand.ts @@ -22,10 +22,11 @@ export interface AssociateAdminAccountCommandInput extends AssociateAdminAccount export interface AssociateAdminAccountCommandOutput extends __MetadataBearer {} /** - *

              Sets the Firewall Manager administrator account. The account must be - * a member of the organization in Organizations whose resources you want to protect. - * Firewall Manager sets the permissions that allow the account to administer your Firewall Manager policies.

              - *

              The account that you associate with Firewall Manager is called the Firewall Manager administrator account.

              + *

              Sets the Firewall Manager administrator account. The account must be a member of the + * organization in Organizations whose resources you want to protect. Firewall Manager sets the + * permissions that allow the account to administer your Firewall Manager policies.

              + *

              The account that you associate with Firewall Manager is called the Firewall Manager administrator + * account.

              * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-fms/src/commands/DeleteNotificationChannelCommand.ts b/clients/client-fms/src/commands/DeleteNotificationChannelCommand.ts index fecc749c91be..664c8bcfcd6a 100644 --- a/clients/client-fms/src/commands/DeleteNotificationChannelCommand.ts +++ b/clients/client-fms/src/commands/DeleteNotificationChannelCommand.ts @@ -22,8 +22,8 @@ export interface DeleteNotificationChannelCommandInput extends DeleteNotificatio export interface DeleteNotificationChannelCommandOutput extends __MetadataBearer {} /** - *

              Deletes an Firewall Manager association with the IAM role and the Amazon Simple - * Notification Service (SNS) topic that is used to record Firewall Manager SNS logs.

              + *

              Deletes an Firewall Manager association with the IAM role and the Amazon Simple Notification + * Service (SNS) topic that is used to record Firewall Manager SNS logs.

              * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-fms/src/commands/DisassociateAdminAccountCommand.ts b/clients/client-fms/src/commands/DisassociateAdminAccountCommand.ts index c7a6e4403383..09af8c1f4bda 100644 --- a/clients/client-fms/src/commands/DisassociateAdminAccountCommand.ts +++ b/clients/client-fms/src/commands/DisassociateAdminAccountCommand.ts @@ -22,9 +22,9 @@ export interface DisassociateAdminAccountCommandInput extends DisassociateAdminA export interface DisassociateAdminAccountCommandOutput extends __MetadataBearer {} /** - *

              Disassociates the account that has been set as the Firewall Manager administrator - * account. To set a different account as the administrator account, you must submit an - * AssociateAdminAccount request.

              + *

              Disassociates the account that has been set as the Firewall Manager administrator account. To + * set a different account as the administrator account, you must submit an + * AssociateAdminAccount request.

              * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-fms/src/commands/GetAdminAccountCommand.ts b/clients/client-fms/src/commands/GetAdminAccountCommand.ts index f5cc28ba8193..a8874ead7758 100644 --- a/clients/client-fms/src/commands/GetAdminAccountCommand.ts +++ b/clients/client-fms/src/commands/GetAdminAccountCommand.ts @@ -22,8 +22,8 @@ export interface GetAdminAccountCommandInput extends GetAdminAccountRequest {} export interface GetAdminAccountCommandOutput extends GetAdminAccountResponse, __MetadataBearer {} /** - *

              Returns the Organizations account that is associated with Firewall Manager - * as the Firewall Manager administrator.

              + *

              Returns the Organizations account that is associated with Firewall Manager as the Firewall Manager + * administrator.

              * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-fms/src/commands/GetComplianceDetailCommand.ts b/clients/client-fms/src/commands/GetComplianceDetailCommand.ts index 46d9deafacb1..1f41465d2a2b 100644 --- a/clients/client-fms/src/commands/GetComplianceDetailCommand.ts +++ b/clients/client-fms/src/commands/GetComplianceDetailCommand.ts @@ -23,27 +23,27 @@ export interface GetComplianceDetailCommandOutput extends GetComplianceDetailRes /** *

              Returns detailed compliance information about the specified member account. Details - * include resources that are in and out of compliance with the specified policy.

              + * include resources that are in and out of compliance with the specified policy.

              *
                *
              • - *

                Resources are - * considered noncompliant for WAF and Shield Advanced policies if the specified policy has - * not been applied to them.

                + *

                Resources are considered noncompliant for WAF and Shield Advanced policies + * if the specified policy has not been applied to them.

                *
              • *
              • - *

                Resources are considered noncompliant for security group policies if - * they are in scope of the policy, they violate one or more of the policy rules, and remediation - * is disabled or not possible.

                + *

                Resources are considered noncompliant for security group policies if they are in + * scope of the policy, they violate one or more of the policy rules, and remediation is + * disabled or not possible.

                *
              • *
              • - *

                Resources are considered noncompliant for Network Firewall policies - * if a firewall is missing in the VPC, if the firewall endpoint isn't set up in an expected Availability Zone and subnet, - * if a subnet created by the Firewall Manager doesn't have the expected route table, - * and for modifications to a firewall policy that violate the Firewall Manager policy's rules.

                + *

                Resources are considered noncompliant for Network Firewall policies if a firewall is + * missing in the VPC, if the firewall endpoint isn't set up in an expected Availability + * Zone and subnet, if a subnet created by the Firewall Manager doesn't have the expected route + * table, and for modifications to a firewall policy that violate the Firewall Manager policy's + * rules.

                *
              • *
              • - *

                Resources are considered noncompliant for DNS Firewall policies - * if a DNS Firewall rule group is missing from the rule group associations for the VPC.

                + *

                Resources are considered noncompliant for DNS Firewall policies if a DNS Firewall + * rule group is missing from the rule group associations for the VPC.

                *
              • *
              * @example diff --git a/clients/client-fms/src/commands/GetNotificationChannelCommand.ts b/clients/client-fms/src/commands/GetNotificationChannelCommand.ts index 48a717ed0807..657e3a1065ae 100644 --- a/clients/client-fms/src/commands/GetNotificationChannelCommand.ts +++ b/clients/client-fms/src/commands/GetNotificationChannelCommand.ts @@ -23,8 +23,8 @@ export interface GetNotificationChannelCommandOutput extends GetNotificationChan /** *

              Information - * about the Amazon Simple Notification Service (SNS) topic that is used to - * record Firewall Manager SNS logs.

              + * about the Amazon Simple Notification Service (SNS) topic that is used to + * record Firewall Manager SNS logs.

              * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-fms/src/commands/GetProtectionStatusCommand.ts b/clients/client-fms/src/commands/GetProtectionStatusCommand.ts index 5eabe590614a..351cd7e1c6a9 100644 --- a/clients/client-fms/src/commands/GetProtectionStatusCommand.ts +++ b/clients/client-fms/src/commands/GetProtectionStatusCommand.ts @@ -23,7 +23,8 @@ export interface GetProtectionStatusCommandOutput extends GetProtectionStatusRes /** *

              If you created a Shield Advanced policy, returns policy-level attack summary information - * in the event of a potential DDoS attack. Other policy types are currently unsupported.

              + * in the event of a potential DDoS attack. Other policy types are currently + * unsupported.

              * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-fms/src/commands/GetViolationDetailsCommand.ts b/clients/client-fms/src/commands/GetViolationDetailsCommand.ts index ba8ebadc7392..cdb92ea6bc47 100644 --- a/clients/client-fms/src/commands/GetViolationDetailsCommand.ts +++ b/clients/client-fms/src/commands/GetViolationDetailsCommand.ts @@ -22,7 +22,8 @@ export interface GetViolationDetailsCommandInput extends GetViolationDetailsRequ export interface GetViolationDetailsCommandOutput extends GetViolationDetailsResponse, __MetadataBearer {} /** - *

              Retrieves violations for a resource based on the specified Firewall Manager policy and Amazon Web Services account.

              + *

              Retrieves violations for a resource based on the specified Firewall Manager policy and Amazon Web Services + * account.

              * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-fms/src/commands/ListComplianceStatusCommand.ts b/clients/client-fms/src/commands/ListComplianceStatusCommand.ts index 406d00e9a406..0e590f861074 100644 --- a/clients/client-fms/src/commands/ListComplianceStatusCommand.ts +++ b/clients/client-fms/src/commands/ListComplianceStatusCommand.ts @@ -23,8 +23,8 @@ export interface ListComplianceStatusCommandOutput extends ListComplianceStatusR /** *

              Returns an array of PolicyComplianceStatus objects. Use - * PolicyComplianceStatus to get a summary of which member accounts are protected - * by the specified policy.

              + * PolicyComplianceStatus to get a summary of which member accounts are + * protected by the specified policy.

              * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-fms/src/commands/ListMemberAccountsCommand.ts b/clients/client-fms/src/commands/ListMemberAccountsCommand.ts index 654c54a92896..a56b2f11cc9d 100644 --- a/clients/client-fms/src/commands/ListMemberAccountsCommand.ts +++ b/clients/client-fms/src/commands/ListMemberAccountsCommand.ts @@ -23,9 +23,9 @@ export interface ListMemberAccountsCommandOutput extends ListMemberAccountsRespo /** *

              Returns a MemberAccounts object that lists the member accounts in the - * administrator's Amazon Web Services organization.

              + * administrator's Amazon Web Services organization.

              *

              The ListMemberAccounts must be submitted by the account that is set as the - * Firewall Manager administrator.

              + * Firewall Manager administrator.

              * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-fms/src/commands/ListTagsForResourceCommand.ts b/clients/client-fms/src/commands/ListTagsForResourceCommand.ts index 909152b4730c..c174402aa7ce 100644 --- a/clients/client-fms/src/commands/ListTagsForResourceCommand.ts +++ b/clients/client-fms/src/commands/ListTagsForResourceCommand.ts @@ -22,7 +22,7 @@ export interface ListTagsForResourceCommandInput extends ListTagsForResourceRequ export interface ListTagsForResourceCommandOutput extends ListTagsForResourceResponse, __MetadataBearer {} /** - *

              Retrieves the list of tags for the specified Amazon Web Services resource.

              + *

              Retrieves the list of tags for the specified Amazon Web Services resource.

              * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-fms/src/commands/PutNotificationChannelCommand.ts b/clients/client-fms/src/commands/PutNotificationChannelCommand.ts index 359b188677f2..684485195dc4 100644 --- a/clients/client-fms/src/commands/PutNotificationChannelCommand.ts +++ b/clients/client-fms/src/commands/PutNotificationChannelCommand.ts @@ -22,11 +22,12 @@ export interface PutNotificationChannelCommandInput extends PutNotificationChann export interface PutNotificationChannelCommandOutput extends __MetadataBearer {} /** - *

              Designates the IAM role and Amazon Simple Notification Service (SNS) topic that - * Firewall Manager uses to record SNS logs.

              - *

              To perform this action outside of the console, you must configure the SNS topic to allow the Firewall Manager - * role AWSServiceRoleForFMS to publish SNS logs. For more information, see - * Firewall Manager required permissions for API actions in the Firewall Manager Developer Guide.

              + *

              Designates the IAM role and Amazon Simple Notification Service (SNS) topic that Firewall Manager + * uses to record SNS logs.

              + *

              To perform this action outside of the console, you must configure the SNS topic to allow + * the Firewall Manager role AWSServiceRoleForFMS to publish SNS logs. For more information, + * see Firewall Manager required permissions + * for API actions in the Firewall Manager Developer Guide.

              * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-fms/src/commands/PutPolicyCommand.ts b/clients/client-fms/src/commands/PutPolicyCommand.ts index d5623dd796f7..5ece86300c7c 100644 --- a/clients/client-fms/src/commands/PutPolicyCommand.ts +++ b/clients/client-fms/src/commands/PutPolicyCommand.ts @@ -24,34 +24,33 @@ export interface PutPolicyCommandOutput extends PutPolicyResponse, __MetadataBea *
                *
              • *

                An WAF policy (type WAFV2), which defines rule groups to run first in the - * corresponding WAF web ACL and rule groups to run last in the web ACL.

                + * corresponding WAF web ACL and rule groups to run last in the web ACL.

                *
              • *
              • *

                An WAF Classic policy (type WAF), which defines a rule group.

                *
              • *
              • *

                A Shield Advanced policy, which applies Shield Advanced protection to specified - * accounts and resources.

                + * accounts and resources.

                *
              • *
              • *

                A security group policy, which manages VPC security groups across your Amazon Web Services - * organization.

                + * organization.

                *
              • *
              • - *

                An Network Firewall policy, which provides firewall rules to filter network traffic in specified - * Amazon VPCs.

                + *

                An Network Firewall policy, which provides firewall rules to filter network traffic in + * specified Amazon VPCs.

                *
              • *
              • - *

                A DNS Firewall policy, which provides Route 53 Resolver DNS Firewall rules to filter DNS queries for - * specified VPCs.

                + *

                A DNS Firewall policy, which provides Route 53 Resolver DNS Firewall rules to filter DNS + * queries for specified VPCs.

                *
              • *
              - *

              Each policy is specific to one of the types. If you want to enforce more than one - * policy type across accounts, create multiple policies. You can create multiple - * policies for each type.

              + *

              Each policy is specific to one of the types. If you want to enforce more than one policy + * type across accounts, create multiple policies. You can create multiple policies for each + * type.

              *

              You must be subscribed to Shield Advanced to create a Shield Advanced policy. For more - * information about subscribing to Shield Advanced, see - * CreateSubscription.

              + * information about subscribing to Shield Advanced, see CreateSubscription.

              * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-fms/src/models/models_0.ts b/clients/client-fms/src/models/models_0.ts index dcf76a14fda7..d0be23585a3f 100644 --- a/clients/client-fms/src/models/models_0.ts +++ b/clients/client-fms/src/models/models_0.ts @@ -45,7 +45,9 @@ export interface App { AppName: string | undefined; /** - *

              The IP protocol name or number. The name can be one of tcp, udp, or icmp. For information on possible numbers, see Protocol Numbers.

              + *

              The IP protocol name or number. The name can be one of tcp, + * udp, or icmp. For information on possible numbers, see Protocol + * Numbers.

              */ Protocol: string | undefined; @@ -79,9 +81,9 @@ export interface AppsListData { ListName: string | undefined; /** - *

              A unique identifier for each update to the list. When you update - * the list, the update token must match the token of the current version of the application list. - * You can retrieve the update token by getting the list.

              + *

              A unique identifier for each update to the list. When you update the list, the update + * token must match the token of the current version of the application list. You can retrieve + * the update token by getting the list.

              */ ListUpdateToken?: string; @@ -101,7 +103,8 @@ export interface AppsListData { AppsList: App[] | undefined; /** - *

              A map of previous version numbers to their corresponding App object arrays.

              + *

              A map of previous version numbers to their corresponding App object + * arrays.

              */ PreviousAppsList?: { [key: string]: App[] }; } @@ -151,10 +154,8 @@ export namespace AppsListDataSummary { export interface AssociateAdminAccountRequest { /** - *

              The Amazon Web Services account ID to associate with Firewall Manager as the Firewall Manager - * administrator account. This must be an Organizations member account. - * For more information about Organizations, see - * Managing the Amazon Web Services Accounts in Your Organization.

              + *

              The Amazon Web Services account ID to associate with Firewall Manager as the Firewall Manager administrator account. + * This must be an Organizations member account. For more information about Organizations, see Managing the Amazon Web Services Accounts in Your Organization.

              */ AdminAccount: string | undefined; } @@ -169,8 +170,8 @@ export namespace AssociateAdminAccountRequest { } /** - *

              The operation failed because of a system problem, even though the request was valid. Retry - * your request.

              + *

              The operation failed because of a system problem, even though the request was valid. + * Retry your request.

              */ export class InternalErrorException extends __BaseException { readonly name: "InternalErrorException" = "InternalErrorException"; @@ -212,11 +213,11 @@ export class InvalidInputException extends __BaseException { } /** - *

              The operation failed because there was nothing to do or the operation wasn't possible. For example, you might have - * submitted an AssociateAdminAccount request for an account ID that - * was already set as the Firewall Manager administrator. Or you might have tried to access a Region - * that's disabled by default, and that you need to enable for the Firewall Manager - * administrator account and for Organizations before you can access it.

              + *

              The operation failed because there was nothing to do or the operation wasn't possible. + * For example, you might have submitted an AssociateAdminAccount request for an + * account ID that was already set as the Firewall Manager administrator. Or you might have tried to + * access a Region that's disabled by default, and that you need to enable for the Firewall Manager + * administrator account and for Organizations before you can access it.

              */ export class InvalidOperationException extends __BaseException { readonly name: "InvalidOperationException" = "InvalidOperationException"; @@ -238,9 +239,9 @@ export class InvalidOperationException extends __BaseException { /** *

              The operation exceeds a resource limit, for example, the maximum number of - * policy objects that you can create for an Amazon Web Services account. For more information, - * see Firewall - * Manager Limits in the WAF Developer Guide.

              + * policy objects that you can create for an Amazon Web Services account. For more + * information, see Firewall Manager Limits in the + * WAF Developer Guide.

              */ export class LimitExceededException extends __BaseException { readonly name: "LimitExceededException" = "LimitExceededException"; @@ -291,7 +292,8 @@ export interface AwsEc2NetworkInterfaceViolation { ViolationTarget?: string; /** - *

              List of security groups that violate the rules specified in the primary security group of the Firewall Manager policy.

              + *

              List of security groups that violate the rules specified in the primary security group + * of the Firewall Manager policy.

              */ ViolatingSecurityGroups?: string[]; } @@ -332,7 +334,8 @@ export namespace AwsEc2InstanceViolation { export interface DeleteAppsListRequest { /** *

              The ID of the applications list that you want to delete. You can retrieve this ID from - * PutAppsList, ListAppsLists, and GetAppsList.

              + * PutAppsList, ListAppsLists, and + * GetAppsList.

              */ ListId: string | undefined; } @@ -360,7 +363,7 @@ export namespace DeleteNotificationChannelRequest { export interface DeletePolicyRequest { /** *

              The ID of the policy that you want to delete. You can retrieve this ID from - * PutPolicy and ListPolicies.

              + * PutPolicy and ListPolicies.

              */ PolicyId: string | undefined; @@ -378,23 +381,23 @@ export interface DeletePolicyRequest { *

              Deletes web ACLs that contain no rules or rule groups

              * * - *

              For security group policies, the cleanup does the following for each security group in - * the policy:

              + *

              For security group policies, the cleanup does the following for each security group + * in the policy:

              *
                *
              • *

                Disassociates the security group from in-scope resources

                *
              • *
              • - *

                Deletes the security group if it was created through Firewall Manager and if it's - * no longer associated with any resources through another policy

                + *

                Deletes the security group if it was created through Firewall Manager and if it's no + * longer associated with any resources through another policy

                *
              • *
              - *

              After the cleanup, in-scope resources are no longer protected by web ACLs in this policy. - * Protection of out-of-scope resources remains unchanged. Scope is determined by tags that you - * create and accounts that you associate with the policy. When creating the policy, if you - * specify that only resources in specific accounts or with specific tags are in scope of the - * policy, those accounts and resources are handled by the policy. All others are out of scope. - * If you don't specify tags or accounts, all resources are in scope.

              + *

              After the cleanup, in-scope resources are no longer protected by web ACLs in this + * policy. Protection of out-of-scope resources remains unchanged. Scope is determined by tags + * that you create and accounts that you associate with the policy. When creating the policy, + * if you specify that only resources in specific accounts or with specific tags are in scope + * of the policy, those accounts and resources are handled by the policy. All others are out + * of scope. If you don't specify tags or accounts, all resources are in scope.

              */ DeleteAllPolicyResources?: boolean; } @@ -411,7 +414,8 @@ export namespace DeletePolicyRequest { export interface DeleteProtocolsListRequest { /** *

              The ID of the protocols list that you want to delete. You can retrieve this ID from - * PutProtocolsList, ListProtocolsLists, and GetProtocolsLost.

              + * PutProtocolsList, ListProtocolsLists, and + * GetProtocolsLost.

              */ ListId: string | undefined; } @@ -454,8 +458,7 @@ export interface GetAdminAccountResponse { AdminAccount?: string; /** - *

              The status of the Amazon Web Services account that you set as the Firewall Manager - * administrator.

              + *

              The status of the Amazon Web Services account that you set as the Firewall Manager administrator.

              */ RoleStatus?: AccountRoleStatus | string; } @@ -514,7 +517,7 @@ export namespace GetAppsListResponse { export interface GetComplianceDetailRequest { /** *

              The ID of the policy that you want to get the details for. PolicyId is - * returned by PutPolicy and by ListPolicies.

              + * returned by PutPolicy and by ListPolicies.

              */ PolicyId: string | undefined; @@ -544,6 +547,7 @@ export enum ViolationReason { BlackHoleRouteDetected = "BLACK_HOLE_ROUTE_DETECTED", BlackHoleRouteDetectedInFirewallSubnet = "BLACK_HOLE_ROUTE_DETECTED_IN_FIREWALL_SUBNET", FMSCreatedSecurityGroupEdited = "FMS_CREATED_SECURITY_GROUP_EDITED", + FirewallSubnetIsOutOfScope = "FIREWALL_SUBNET_IS_OUT_OF_SCOPE", FirewallSubnetMissingExpectedRoute = "FIREWALL_SUBNET_MISSING_EXPECTED_ROUTE", InternetGatewayMissingExpectedRoute = "INTERNET_GATEWAY_MISSING_EXPECTED_ROUTE", InternetTrafficNotInspected = "INTERNET_TRAFFIC_NOT_INSPECTED", @@ -560,6 +564,7 @@ export enum ViolationReason { ResourceMissingWebAcl = "RESOURCE_MISSING_WEB_ACL", ResourceMissingWebaclOrShieldProtection = "RESOURCE_MISSING_WEB_ACL_OR_SHIELD_PROTECTION", ResourceViolatesAuditSecurityGroup = "RESOURCE_VIOLATES_AUDIT_SECURITY_GROUP", + RouteHasOutOfScopeEndpoint = "ROUTE_HAS_OUT_OF_SCOPE_ENDPOINT", SecurityGroupRedundant = "SECURITY_GROUP_REDUNDANT", SecurityGroupUnused = "SECURITY_GROUP_UNUSED", TrafficInspectionCrossesAZBoundary = "TRAFFIC_INSPECTION_CROSSES_AZ_BOUNDARY", @@ -583,12 +588,18 @@ export interface ComplianceViolator { ViolationReason?: ViolationReason | string; /** - *

              The resource type. This is in the format shown in the Amazon Web Services Resource Types Reference. For example: - * AWS::ElasticLoadBalancingV2::LoadBalancer, - * AWS::CloudFront::Distribution, or - * AWS::NetworkFirewall::FirewallPolicy.

              + *

              The resource type. This is in the format shown in the Amazon Web Services + * Resource Types Reference. For example: + * AWS::ElasticLoadBalancingV2::LoadBalancer, + * AWS::CloudFront::Distribution, or + * AWS::NetworkFirewall::FirewallPolicy.

              */ ResourceType?: string; + + /** + *

              Metadata about the resource that doesn't comply with the policy scope.

              + */ + Metadata?: { [key: string]: string }; } export namespace ComplianceViolator { @@ -602,8 +613,9 @@ export namespace ComplianceViolator { /** *

              Describes - * the noncompliant resources in a member account for a specific Firewall Manager policy. A maximum of 100 entries are displayed. If more than 100 resources are - * noncompliant, EvaluationLimitExceeded is set to True.

              + * the noncompliant resources in a member account for a specific Firewall Manager + * policy. A maximum of 100 entries are displayed. If more than 100 resources are + * noncompliant, EvaluationLimitExceeded is set to True.

              */ export interface PolicyComplianceDetail { /** @@ -622,26 +634,25 @@ export interface PolicyComplianceDetail { MemberAccount?: string; /** - *

              An array of resources that aren't protected by the WAF or Shield Advanced policy or - * that aren't in compliance with the security group policy.

              + *

              An array of resources that aren't protected by the WAF or Shield Advanced policy + * or that aren't in compliance with the security group policy.

              */ Violators?: ComplianceViolator[]; /** - *

              Indicates if over 100 resources are noncompliant with the Firewall Manager - * policy.

              + *

              Indicates if over 100 resources are noncompliant with the Firewall Manager policy.

              */ EvaluationLimitExceeded?: boolean; /** *

              A timestamp that indicates when the returned information should be considered out of - * date.

              + * date.

              */ ExpiredAt?: Date; /** - *

              Details about problems with dependent services, such as WAF or Config, - * and the error message received that indicates the problem with the service.

              + *

              Details about problems with dependent services, such as WAF or Config, and the + * error message received that indicates the problem with the service.

              */ IssueInfoMap?: { [key: string]: string }; } @@ -658,7 +669,7 @@ export namespace PolicyComplianceDetail { export interface GetComplianceDetailResponse { /** *

              Information about the resources and the policy that you specified in the - * GetComplianceDetail request.

              + * GetComplianceDetail request.

              */ PolicyComplianceDetail?: PolicyComplianceDetail; } @@ -726,13 +737,13 @@ export enum CustomerPolicyScopeIdType { } /** - *

              The resource tags that Firewall Manager uses to determine if a particular 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.

              + *

              The resource tags that Firewall Manager uses to determine if a particular 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.

              */ export interface ResourceTag { /** @@ -755,6 +766,53 @@ export namespace ResourceTag { }); } +export enum FirewallDeploymentModel { + CENTRALIZED = "CENTRALIZED", +} + +/** + *

              Configures the firewall policy deployment model of Network Firewall. For information about + * Network Firewall deployment models, see Network Firewall example + * architectures with routing in the Network Firewall Developer + * Guide.

              + */ +export interface NetworkFirewallPolicy { + /** + *

              Defines the deployment model to use for the firewall policy. To use a distributed model, + * set PolicyOption to NULL.

              + */ + FirewallDeploymentModel?: FirewallDeploymentModel | string; +} + +export namespace NetworkFirewallPolicy { + /** + * @internal + */ + export const filterSensitiveLog = (obj: NetworkFirewallPolicy): any => ({ + ...obj, + }); +} + +/** + *

              Contains the Network Firewall firewall policy options to configure a centralized deployment + * model.

              + */ +export interface PolicyOption { + /** + *

              Defines the deployment model to use for the firewall policy.

              + */ + NetworkFirewallPolicy?: NetworkFirewallPolicy; +} + +export namespace PolicyOption { + /** + * @internal + */ + export const filterSensitiveLog = (obj: PolicyOption): any => ({ + ...obj, + }); +} + export enum SecurityServiceType { DNS_FIREWALL = "DNS_FIREWALL", NETWORK_FIREWALL = "NETWORK_FIREWALL", @@ -771,11 +829,11 @@ export enum SecurityServiceType { */ export interface SecurityServicePolicyData { /** - *

              The service that the policy is using to protect the resources. This specifies the type of - * policy that is created, either an WAF policy, a Shield Advanced policy, or a security - * group policy. For security group policies, Firewall Manager supports one security group for - * each common policy and for each content audit policy. This is an adjustable limit that you can - * increase by contacting Amazon Web Services Support.

              + *

              The service that the policy is using to protect the resources. This specifies the type + * of policy that is created, either an WAF policy, a Shield Advanced policy, or a + * security group policy. For security group policies, Firewall Manager supports one security group for + * each common policy and for each content audit policy. This is an adjustable limit that you + * can increase by contacting Amazon Web Services Support.

              */ Type: SecurityServiceType | string | undefined; @@ -789,25 +847,159 @@ export interface SecurityServicePolicyData { * "{\"type\":\"DNS_FIREWALL\",\"preProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-1\",\"priority\":10}],\"postProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-2\",\"priority\":9911}]}" *

              * - *

              Valid values for preProcessRuleGroups are between 1 and 99. Valid values for postProcessRuleGroups are between 9901 and 10000.

              + *

              Valid values for preProcessRuleGroups are between 1 and 99. Valid + * values for postProcessRuleGroups are between 9901 and 10000.

              *
              * *
            16. - *

              Example: NETWORK_FIREWALL + *

              Example: NETWORK_FIREWALL - Centralized deployment + * model.

              + *

              + * "{\"type\":\"NETWORK_FIREWALL\",\"awsNetworkFirewallConfig\":{\"networkFirewallStatelessRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\",\"priority\":1}],\"networkFirewallStatelessDefaultActions\":[\"aws:forward_to_sfe\",\"customActionName\"],\"networkFirewallStatelessFragmentDefaultActions\":[\"aws:forward_to_sfe\",\"customActionName\"],\"networkFirewallStatelessCustomActions\":[{\"actionName\":\"customActionName\",\"actionDefinition\":{\"publishMetricAction\":{\"dimensions\":[{\"value\":\"metricdimensionvalue\"}]}}}],\"networkFirewallStatefulRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\"}],\"networkFirewallLoggingConfiguration\":{\"logDestinationConfigs\":[{\"logDestinationType\":\"S3\",\"logType\":\"ALERT\",\"logDestination\":{\"bucketName\":\"s3-bucket-name\"}},{\"logDestinationType\":\"S3\",\"logType\":\"FLOW\",\"logDestination\":{\"bucketName\":\"s3-bucket-name\"}}],\"overrideExistingConfig\":true}},\"firewallDeploymentModel\":{\"centralizedFirewallDeploymentModel\":{\"centralizedFirewallOrchestrationConfig\":{\"inspectionVpcIds\":[{\"resourceId\":\"vpc-1234\",\"accountId\":\"123456789011\"}],\"firewallCreationConfig\":{\"endpointLocation\":{\"availabilityZoneConfigList\":[{\"availabilityZoneId\":null,\"availabilityZoneName\":\"us-east-1a\",\"allowedIPV4CidrList\":[\"10.0.0.0/28\"]}]}},\"allowedIPV4CidrList\":[]}}}}" + *

              + *

              To use the centralized deployment model, you must set PolicyOption to + * CENTRALIZED.

              + *
            17. + *
            18. + *

              Example: NETWORK_FIREWALL - Distributed deployment model with + * automatic Availability Zone configuration. With automatic Availbility Zone + * configuration, Firewall Manager chooses which Availability Zones to create the endpoints in.

              + *

              + * "{ \"type\": \"NETWORK_FIREWALL\", + * \"networkFirewallStatelessRuleGroupReferences\": [ { \"resourceARN\": + * \"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\", + * \"priority\": 1 } ], \"networkFirewallStatelessDefaultActions\": [ + * \"aws:forward_to_sfe\", \"customActionName\" ], + * \"networkFirewallStatelessFragmentDefaultActions\": [ \"aws:forward_to_sfe\", + * \"customActionName\" ], \"networkFirewallStatelessCustomActions\": [ { + * \"actionName\": \"customActionName\", \"actionDefinition\": { + * \"publishMetricAction\": { \"dimensions\": [ { \"value\": \"metricdimensionvalue\" + * } ] } } } ], \"networkFirewallStatefulRuleGroupReferences\": [ { \"resourceARN\": + * \"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\" } ], + * \"networkFirewallOrchestrationConfig\": { \"singleFirewallEndpointPerVPC\": false, + * \"allowedIPV4CidrList\": [ \"10.0.0.0/28\", \"192.168.0.0/28\" ], + * \"routeManagementAction\": \"OFF\" }, \"networkFirewallLoggingConfiguration\": { + * \"logDestinationConfigs\": [ { \"logDestinationType\": \"S3\", \"logType\": + * \"ALERT\", \"logDestination\": { \"bucketName\": \"s3-bucket-name\" } }, { + * \"logDestinationType\": \"S3\", \"logType\": \"FLOW\", \"logDestination\": { + * \"bucketName\": \"s3-bucket-name\" } } ], \"overrideExistingConfig\": true } + * }" + *

              + *

              To use the distributed deployment model, you must set PolicyOption to + * NULL.

              + *
            19. + *
            20. + *

              Example: NETWORK_FIREWALL - Distributed deployment model with + * automatic Availability Zone configuration, and route management.

              + *

              + * "{ \"type\": \"NETWORK_FIREWALL\", + * \"networkFirewallStatelessRuleGroupReferences\": [ { \"resourceARN\": + * \"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\", + * \"priority\": 1 } ], \"networkFirewallStatelessDefaultActions\": [ + * \"aws:forward_to_sfe\", \"customActionName\" ], + * \"networkFirewallStatelessFragmentDefaultActions\": [ \"aws:forward_to_sfe\", + * \"customActionName\" ], \"networkFirewallStatelessCustomActions\": [ { + * \"actionName\": \"customActionName\", \"actionDefinition\": { + * \"publishMetricAction\": { \"dimensions\": [ { \"value\": \"metricdimensionvalue\" + * } ] } } } ], \"networkFirewallStatefulRuleGroupReferences\": [ { \"resourceARN\": + * \"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\" } ], + * \"networkFirewallOrchestrationConfig\": { \"singleFirewallEndpointPerVPC\": false, + * \"allowedIPV4CidrList\": [ \"10.0.0.0/28\", \"192.168.0.0/28\" ], + * \"routeManagementAction\": \"MONITOR\", \"routeManagementTargetTypes\": [ + * \"InternetGateway\" ] }, \"networkFirewallLoggingConfiguration\": { + * \"logDestinationConfigs\": [ { \"logDestinationType\": \"S3\", \"logType\": + * \"ALERT\", \"logDestination\": { \"bucketName\": \"s3-bucket-name\" } }, { + * \"logDestinationType\": \"S3\", \"logType\": \"FLOW\", \"logDestination\": { + * \"bucketName\": \"s3-bucket-name\" } } ], \"overrideExistingConfig\": true } + * }" + *

              + *
            21. + *
            22. + *

              Example: NETWORK_FIREWALL - Distributed deployment model with + * custom Availability Zone configuration. With custom Availability Zone configuration, + * you define which specific Availability Zones to create endpoints in by configuring + * firewallCreationConfig.

              + *

              + * "{ + * \"type\":\"NETWORK_FIREWALL\",\"networkFirewallStatelessRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\",\"priority\":1}], + * \"networkFirewallStatelessDefaultActions\":[ \"aws:forward_to_sfe\", + * \"customActionName\" ], \"networkFirewallStatelessFragmentDefaultActions\":[ + * \"aws:forward_to_sfe\", \"fragmentcustomactionname\" ], + * \"networkFirewallStatelessCustomActions\":[ { \"actionName\":\"customActionName\", + * \"actionDefinition\":{ \"publishMetricAction\":{ \"dimensions\":[ { + * \"value\":\"metricdimensionvalue\" } ] } } }, { + * \"actionName\":\"fragmentcustomactionname\", \"actionDefinition\":{ + * \"publishMetricAction\":{ \"dimensions\":[ { + * \"value\":\"fragmentmetricdimensionvalue\" } ] } } } ], + * \"networkFirewallStatefulRuleGroupReferences\":[ { + * \"resourceARN\":\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\" + * } ], \"networkFirewallOrchestrationConfig\":{ \"firewallCreationConfig\":{ + * \"endpointLocation\":{ \"availabilityZoneConfigList\":[ { + * \"availabilityZoneId\":null, \"availabilityZoneName\":\"us-east-1a\", + * \"allowedIPV4CidrList\":[ \"10.0.0.0/28\" ] }, { ¯\"availabilityZoneId\":null, + * \"availabilityZoneName\":\"us-east-1b\", \"allowedIPV4CidrList\":[ \"10.0.0.0/28\" + * ] } ] } }, \"singleFirewallEndpointPerVPC\":false, \"allowedIPV4CidrList\":null, + * \"routeManagementAction\":\"OFF\", \"networkFirewallLoggingConfiguration\":{ + * \"logDestinationConfigs\":[ { \"logDestinationType\":\"S3\", + * \"logType\":\"ALERT\", \"logDestination\":{ \"bucketName\":\"s3-bucket-name\" } }, + * { \"logDestinationType\":\"S3\", \"logType\":\"FLOW\", \"logDestination\":{ + * \"bucketName\":\"s3-bucket-name\" } } ], \"overrideExistingConfig\":boolean } + * }" *

              + *
            23. + *
            24. + *

              Example: NETWORK_FIREWALL - Distributed deployment model with + * custom Availability Zone configuration, and route management.

              *

              - * "{\"type\":\"NETWORK_FIREWALL\",\"networkFirewallStatelessRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-west-1:1234567891011:stateless-rulegroup/rulegroup2\",\"priority\":10}],\"networkFirewallStatelessDefaultActions\":[\"aws:pass\",\"custom1\"],\"networkFirewallStatelessFragmentDefaultActions\":[\"custom2\",\"aws:pass\"],\"networkFirewallStatelessCustomActions\":[{\"actionName\":\"custom1\",\"actionDefinition\":{\"publishMetricAction\":{\"dimensions\":[{\"value\":\"dimension1\"}]}}},{\"actionName\":\"custom2\",\"actionDefinition\":{\"publishMetricAction\":{\"dimensions\":[{\"value\":\"dimension2\"}]}}}],\"networkFirewallStatefulRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-west-1:1234567891011:stateful-rulegroup/rulegroup1\"}],\"networkFirewallOrchestrationConfig\":{\"singleFirewallEndpointPerVPC\":true,\"allowedIPV4CidrList\":[\"10.24.34.0/28\"]} }" + * "{ + * \"type\":\"NETWORK_FIREWALL\",\"networkFirewallStatelessRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\",\"priority\":1}], + * \"networkFirewallStatelessDefaultActions\":[ \"aws:forward_to_sfe\", + * \"customActionName\" ], \"networkFirewallStatelessFragmentDefaultActions\":[ + * \"aws:forward_to_sfe\", \"fragmentcustomactionname\" ], + * \"networkFirewallStatelessCustomActions\":[ { \"actionName\":\"customActionName\", + * \"actionDefinition\":{ \"publishMetricAction\":{ \"dimensions\":[ { + * \"value\":\"metricdimensionvalue\" } ] } } }, { + * \"actionName\":\"fragmentcustomactionname\", \"actionDefinition\":{ + * \"publishMetricAction\":{ \"dimensions\":[ { + * \"value\":\"fragmentmetricdimensionvalue\" } ] } } } ], + * \"networkFirewallStatefulRuleGroupReferences\":[ { + * \"resourceARN\":\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\" + * } ], \"networkFirewallOrchestrationConfig\":{ \"firewallCreationConfig\":{ + * \"endpointLocation\":{ \"availabilityZoneConfigList\":[ { + * \"availabilityZoneId\":null, \"availabilityZoneName\":\"us-east-1a\", + * \"allowedIPV4CidrList\":[ \"10.0.0.0/28\" ] }, { ¯\"availabilityZoneId\":null, + * \"availabilityZoneName\":\"us-east-1b\", \"allowedIPV4CidrList\":[ \"10.0.0.0/28\" + * ] } ] } }, \"singleFirewallEndpointPerVPC\":false, \"allowedIPV4CidrList\":null, + * \"routeManagementAction\":\"MONITOR\", \"routeManagementTargetTypes\":[ + * \"InternetGateway\" ], \"routeManagementConfig\":{ + * \"allowCrossAZTrafficIfNoEndpoint\":true } }, + * \"networkFirewallLoggingConfiguration\":{ \"logDestinationConfigs\":[ { + * \"logDestinationType\":\"S3\", \"logType\":\"ALERT\", \"logDestination\":{ + * \"bucketName\":\"s3-bucket-name\" } }, { \"logDestinationType\":\"S3\", + * \"logType\":\"FLOW\", \"logDestination\":{ \"bucketName\":\"s3-bucket-name\" } } + * ], \"overrideExistingConfig\":boolean } }" *

              *
            25. *
            26. *

              Specification for SHIELD_ADVANCED for Amazon CloudFront distributions

              *

              - * "{\"type\":\"SHIELD_ADVANCED\",\"automaticResponseConfiguration\": {\"automaticResponseStatus\":\"ENABLED|IGNORED|DISABLED\", \"automaticResponseAction\":\"BLOCK|COUNT\"}, \"overrideCustomerWebaclClassic\":true|false}" + * "{\"type\":\"SHIELD_ADVANCED\",\"automaticResponseConfiguration\": + * {\"automaticResponseStatus\":\"ENABLED|IGNORED|DISABLED\", + * \"automaticResponseAction\":\"BLOCK|COUNT\"}, + * \"overrideCustomerWebaclClassic\":true|false}" *

              - *

              For example: "{\"type\":\"SHIELD_ADVANCED\",\"automaticResponseConfiguration\": {\"automaticResponseStatus\":\"ENABLED\", \"automaticResponseAction\":\"COUNT\"}}" + *

              For example: + * "{\"type\":\"SHIELD_ADVANCED\",\"automaticResponseConfiguration\": + * {\"automaticResponseStatus\":\"ENABLED\", + * \"automaticResponseAction\":\"COUNT\"}}" *

              - *

              The default value for automaticResponseStatus is IGNORED. The value for automaticResponseAction is only required when automaticResponseStatus is set to ENABLED. The default value for overrideCustomerWebaclClassic is false.

              - *

              For other resource types that you can protect with a Shield Advanced policy, this ManagedServiceData configuration is an empty string.

              + *

              The default value for automaticResponseStatus is + * IGNORED. The value for automaticResponseAction is only + * required when automaticResponseStatus is set to ENABLED. + * The default value for overrideCustomerWebaclClassic is + * false.

              + *

              For other resource types that you can protect with a Shield Advanced policy, this + * ManagedServiceData configuration is an empty string.

              *
            27. *
            28. *

              Example: WAFV2 @@ -815,27 +1007,37 @@ export interface SecurityServicePolicyData { *

              * "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesAmazonIpReputationList\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[{\"name\":\"NoUserAgent_HEADER\"}]}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":{\"logDestinationConfigs\":[\"arn:aws:firehose:us-west-2:12345678912:deliverystream/aws-waf-logs-fms-admin-destination\"],\"redactedFields\":[{\"redactedFieldType\":\"SingleHeader\",\"redactedFieldValue\":\"Cookies\"},{\"redactedFieldType\":\"Method\"}]}}" *

              - *

              In the loggingConfiguration, you can specify one logDestinationConfigs, you can optionally provide up to 20 redactedFields, and the RedactedFieldType must be one of URI, QUERY_STRING, HEADER, or METHOD.

              + *

              In the loggingConfiguration, you can specify one + * logDestinationConfigs, you can optionally provide up to 20 + * redactedFields, and the RedactedFieldType must be one of + * URI, QUERY_STRING, HEADER, or + * METHOD.

              *
            29. *
            30. *

              Example: WAF Classic *

              *

              - * "{\"type\": \"WAF\", \"ruleGroups\": [{\"id\":\"12345678-1bcd-9012-efga-0987654321ab\", \"overrideAction\" : {\"type\": \"COUNT\"}}], \"defaultAction\": {\"type\": \"BLOCK\"}}" + * "{\"type\": \"WAF\", \"ruleGroups\": + * [{\"id\":\"12345678-1bcd-9012-efga-0987654321ab\", \"overrideAction\" : {\"type\": + * \"COUNT\"}}], \"defaultAction\": {\"type\": \"BLOCK\"}}" *

              *
            31. *
            32. *

              Example: SECURITY_GROUPS_COMMON *

              *

              - * "{\"type\":\"SECURITY_GROUPS_COMMON\",\"revertManualSecurityGroupChanges\":false,\"exclusiveResourceSecurityGroupManagement\":false, \"applyToAllEC2InstanceENIs\":false,\"securityGroups\":[{\"id\":\" sg-000e55995d61a06bd\"}]}" + * "{\"type\":\"SECURITY_GROUPS_COMMON\",\"revertManualSecurityGroupChanges\":false,\"exclusiveResourceSecurityGroupManagement\":false, + * \"applyToAllEC2InstanceENIs\":false,\"securityGroups\":[{\"id\":\" + * sg-000e55995d61a06bd\"}]}" *

              *
            33. *
            34. - *

              Example: Shared VPCs. Apply the preceding policy to resources in shared VPCs as well as to those in VPCs that the account owns - *

              + *

              Example: Shared VPCs. Apply the preceding policy to resources in shared VPCs as + * well as to those in VPCs that the account owns

              *

              - * "{\"type\":\"SECURITY_GROUPS_COMMON\",\"revertManualSecurityGroupChanges\":false,\"exclusiveResourceSecurityGroupManagement\":false, \"applyToAllEC2InstanceENIs\":false,\"includeSharedVPC\":true,\"securityGroups\":[{\"id\":\" sg-000e55995d61a06bd\"}]}" + * "{\"type\":\"SECURITY_GROUPS_COMMON\",\"revertManualSecurityGroupChanges\":false,\"exclusiveResourceSecurityGroupManagement\":false, + * \"applyToAllEC2InstanceENIs\":false,\"includeSharedVPC\":true,\"securityGroups\":[{\"id\":\" + * sg-000e55995d61a06bd\"}]}" *

              *
            35. *
            36. @@ -845,10 +1047,10 @@ export interface SecurityServicePolicyData { * "{\"type\":\"SECURITY_GROUPS_CONTENT_AUDIT\",\"securityGroups\":[{\"id\":\"sg-000e55995d61a06bd\"}],\"securityGroupAction\":{\"type\":\"ALLOW\"}}" *

              *

              The security group action for content audit can be ALLOW or - * DENY. For ALLOW, all in-scope security group rules must be - * within the allowed range of the policy's security group rules. For DENY, all - * in-scope security group rules must not contain a value or a range that matches a rule - * value or range in the policy security group.

              + * DENY. For ALLOW, all in-scope security group rules must + * be within the allowed range of the policy's security group rules. For + * DENY, all in-scope security group rules must not contain a value or a + * range that matches a rule value or range in the policy security group.

              *
            37. *
            38. *

              Example: SECURITY_GROUPS_USAGE_AUDIT @@ -860,6 +1062,12 @@ export interface SecurityServicePolicyData { * */ ManagedServiceData?: string; + + /** + *

              Contains the Network Firewall firewall policy options to configure a centralized deployment + * model.

              + */ + PolicyOption?: PolicyOption; } export namespace SecurityServicePolicyData { @@ -887,10 +1095,10 @@ export interface Policy { /** *

              A unique identifier for each update to the policy. When issuing a PutPolicy - * request, the PolicyUpdateToken in the request must match the - * PolicyUpdateToken of the current policy version. To get the - * PolicyUpdateToken of the current policy version, use a GetPolicy - * request.

              + * request, the PolicyUpdateToken in the request must match the + * PolicyUpdateToken of the current policy version. To get the + * PolicyUpdateToken of the current policy version, use a + * GetPolicy request.

              */ PolicyUpdateToken?: string; @@ -901,21 +1109,26 @@ export interface Policy { /** *

              The type of resource protected by or in scope of the policy. This is in the format shown - * in the Amazon Web Services Resource Types Reference. - * To apply this policy to multiple resource types, specify a resource type of ResourceTypeList and then specify the resource types in a ResourceTypeList.

              - *

              For WAF and Shield Advanced, resource types include - * AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::ElasticLoadBalancing::LoadBalancer, AWS::EC2::EIP, and - * AWS::CloudFront::Distribution. For a security group common policy, valid values - * are AWS::EC2::NetworkInterface and AWS::EC2::Instance. For a - * security group content audit policy, valid values are AWS::EC2::SecurityGroup, - * AWS::EC2::NetworkInterface, and AWS::EC2::Instance. For a security - * group usage audit policy, the value is AWS::EC2::SecurityGroup. For an Network Firewall policy or DNS Firewall policy, - * the value is AWS::EC2::VPC.

              + * in the Amazon Web Services + * Resource Types Reference. To apply this policy to multiple resource types, + * specify a resource type of ResourceTypeList and then specify the resource + * types in a ResourceTypeList.

              + *

              For WAF and Shield Advanced, resource types include + * AWS::ElasticLoadBalancingV2::LoadBalancer, + * AWS::ElasticLoadBalancing::LoadBalancer, AWS::EC2::EIP, and + * AWS::CloudFront::Distribution. For a security group common policy, valid + * values are AWS::EC2::NetworkInterface and AWS::EC2::Instance. For + * a security group content audit policy, valid values are + * AWS::EC2::SecurityGroup, AWS::EC2::NetworkInterface, and + * AWS::EC2::Instance. For a security group usage audit policy, the value is + * AWS::EC2::SecurityGroup. For an Network Firewall policy or DNS Firewall policy, + * the value is AWS::EC2::VPC.

              */ ResourceType: string | undefined; /** - *

              An array of ResourceType objects. Use this only to specify multiple resource types. To specify a single resource type, use ResourceType.

              + *

              An array of ResourceType objects. Use this only to specify multiple + * resource types. To specify a single resource type, use ResourceType.

              */ ResourceTypeList?: string[]; @@ -926,9 +1139,11 @@ export interface Policy { /** *

              If set to True, resources with the tags that are specified in the - * ResourceTag array are not in scope of the policy. If set to False, - * and the ResourceTag array is not null, only resources with the specified tags are - * in scope of the policy.

              + * ResourceTag array are not in scope of the policy. If set to + * False, and the ResourceTag array is not null, only resources + * with the specified tags are in scope of the policy.

              + *

              This option isn't available for the centralized deployment model when creating policies + * to configure Network Firewall.

              */ ExcludeResourceTags: boolean | undefined; @@ -947,52 +1162,66 @@ export interface Policy { DeleteUnusedFMManagedResources?: boolean; /** - *

              Specifies the Amazon Web Services account IDs and Organizations organizational units (OUs) to include in the policy. - * Specifying an OU is the equivalent of specifying all accounts in the OU and in any of its child OUs, including any child OUs and accounts that are added at a later time.

              - *

              You can specify inclusions or exclusions, but not both. If you specify an IncludeMap, Firewall Manager - * applies the policy to all accounts specified by the IncludeMap, and - * does not evaluate any ExcludeMap specifications. If you do not specify an IncludeMap, then Firewall Manager - * applies the policy to all accounts except for those specified by the ExcludeMap.

              + *

              Specifies the Amazon Web Services account IDs and Organizations organizational units (OUs) to include in + * the policy. Specifying an OU is the equivalent of specifying all accounts in the OU and in + * any of its child OUs, including any child OUs and accounts that are added at a later + * time.

              + *

              You can specify inclusions or exclusions, but not both. If you specify an + * IncludeMap, Firewall Manager applies the policy to all accounts specified by the + * IncludeMap, and does not evaluate any ExcludeMap + * specifications. If you do not specify an IncludeMap, then Firewall Manager applies the + * policy to all accounts except for those specified by the ExcludeMap.

              *

              You can specify account IDs, OUs, or a combination:

              *
                *
              • - *

                Specify account IDs by setting the key to ACCOUNT. For example, the following is a valid map: - * {“ACCOUNT” : [“accountID1”, “accountID2”]}.

                + *

                Specify account IDs by setting the key to ACCOUNT. For example, the + * following is a valid map: {“ACCOUNT” : [“accountID1”, + * “accountID2”]}.

                *
              • *
              • - *

                Specify OUs by setting the key to ORG_UNIT. For example, the following is a valid map: - * {“ORG_UNIT” : [“ouid111”, “ouid112”]}.

                + *

                Specify OUs by setting the key to ORG_UNIT. For example, the + * following is a valid map: {“ORG_UNIT” : [“ouid111”, “ouid112”]}.

                *
              • *
              • - *

                Specify accounts and OUs together in a single map, separated with a comma. For example, the following is a valid map: - * {“ACCOUNT” : [“accountID1”, “accountID2”], “ORG_UNIT” : [“ouid111”, “ouid112”]}.

                + *

                Specify accounts and OUs together in a single map, separated with a comma. For + * example, the following is a valid map: {“ACCOUNT” : [“accountID1”, + * “accountID2”], “ORG_UNIT” : [“ouid111”, “ouid112”]}.

                *
              • *
              + *

              This option isn't available for the centralized deployment model when creating policies + * to configure Network Firewall.

              */ IncludeMap?: { [key: string]: string[] }; /** - *

              Specifies the Amazon Web Services account IDs and Organizations organizational units (OUs) to exclude from the policy. - * Specifying an OU is the equivalent of specifying all accounts in the OU and in any of its child OUs, including any child OUs and accounts that are added at a later time.

              - *

              You can specify inclusions or exclusions, but not both. If you specify an IncludeMap, Firewall Manager - * applies the policy to all accounts specified by the IncludeMap, and - * does not evaluate any ExcludeMap specifications. If you do not specify an IncludeMap, then Firewall Manager - * applies the policy to all accounts except for those specified by the ExcludeMap.

              + *

              Specifies the Amazon Web Services account IDs and Organizations organizational units (OUs) to exclude from + * the policy. Specifying an OU is the equivalent of specifying all accounts in the OU and in + * any of its child OUs, including any child OUs and accounts that are added at a later + * time.

              + *

              You can specify inclusions or exclusions, but not both. If you specify an + * IncludeMap, Firewall Manager applies the policy to all accounts specified by the + * IncludeMap, and does not evaluate any ExcludeMap + * specifications. If you do not specify an IncludeMap, then Firewall Manager applies the + * policy to all accounts except for those specified by the ExcludeMap.

              *

              You can specify account IDs, OUs, or a combination:

              *
                *
              • - *

                Specify account IDs by setting the key to ACCOUNT. For example, the following is a valid map: - * {“ACCOUNT” : [“accountID1”, “accountID2”]}.

                + *

                Specify account IDs by setting the key to ACCOUNT. For example, the + * following is a valid map: {“ACCOUNT” : [“accountID1”, + * “accountID2”]}.

                *
              • *
              • - *

                Specify OUs by setting the key to ORG_UNIT. For example, the following is a valid map: - * {“ORG_UNIT” : [“ouid111”, “ouid112”]}.

                + *

                Specify OUs by setting the key to ORG_UNIT. For example, the + * following is a valid map: {“ORG_UNIT” : [“ouid111”, “ouid112”]}.

                *
              • *
              • - *

                Specify accounts and OUs together in a single map, separated with a comma. For example, the following is a valid map: - * {“ACCOUNT” : [“accountID1”, “accountID2”], “ORG_UNIT” : [“ouid111”, “ouid112”]}.

                + *

                Specify accounts and OUs together in a single map, separated with a comma. For + * example, the following is a valid map: {“ACCOUNT” : [“accountID1”, + * “accountID2”], “ORG_UNIT” : [“ouid111”, “ouid112”]}.

                *
              • *
              + *

              This option isn't available for the centralized deployment model when creating policies + * to configure Network Firewall.

              */ ExcludeMap?: { [key: string]: string[] }; } @@ -1061,31 +1290,36 @@ export interface GetProtectionStatusRequest { MemberAccountId?: string; /** - *

              The start of the time period to query for the attacks. This is a timestamp type. The - * request syntax listing indicates a number type because the default used by Firewall Manager is Unix time in seconds. However, any valid timestamp format is - * allowed.

              + *

              The start of the time period to query for the attacks. This is a timestamp + * type. The request syntax listing indicates a number type because the default + * used by Firewall Manager is Unix time in seconds. However, any valid timestamp format + * is allowed.

              */ StartTime?: Date; /** - *

              The end of the time period to query for the attacks. This is a timestamp type. The - * request syntax listing indicates a number type because the default used by Firewall Manager is Unix time in seconds. However, any valid timestamp format is - * allowed.

              + *

              The end of the time period to query for the attacks. This is a timestamp + * type. The request syntax listing indicates a number type because the default + * used by Firewall Manager is Unix time in seconds. However, any valid timestamp format + * is allowed.

              */ EndTime?: Date; /** - *

              If you specify a value for MaxResults and you have more objects than the number that you specify - * for MaxResults, Firewall Manager returns a NextToken value in the response, which you can use to retrieve another group of - * objects. For the second and subsequent GetProtectionStatus requests, specify the value of NextToken - * from the previous response to get information about another batch of objects.

              + *

              If you specify a value for MaxResults and you have more objects than the + * number that you specify for MaxResults, Firewall Manager returns a + * NextToken value in the response, which you can use to retrieve another + * group of objects. For the second and subsequent GetProtectionStatus requests, + * specify the value of NextToken from the previous response to get information + * about another batch of objects.

              */ NextToken?: string; /** - *

              Specifies the number of objects that you want Firewall Manager to return for this request. If you have more - * objects than the number that you specify for MaxResults, the response includes a - * NextToken value that you can use to get another batch of objects.

              + *

              Specifies the number of objects that you want Firewall Manager to return for this request. If + * you have more objects than the number that you specify for MaxResults, the + * response includes a NextToken value that you can use to get another batch of + * objects.

              */ MaxResults?: number; } @@ -1135,13 +1369,14 @@ export interface GetProtectionStatusResponse { Data?: string; /** - *

              If you have more objects than the number that you specified for MaxResults in the request, - * the response includes a NextToken value. To list more objects, submit another - * GetProtectionStatus request, and specify the NextToken value from the response in the - * NextToken value in the next request.

              - *

              Amazon Web Services SDKs provide auto-pagination that identify NextToken in a response and - * make subsequent request calls automatically on your behalf. However, this feature is not - * supported by GetProtectionStatus. You must submit subsequent requests with + *

              If you have more objects than the number that you specified for MaxResults + * in the request, the response includes a NextToken value. To list more objects, + * submit another GetProtectionStatus request, and specify the + * NextToken value from the response in the NextToken value in + * the next request.

              + *

              Amazon Web Services SDKs provide auto-pagination that identify NextToken in a response + * and make subsequent request calls automatically on your behalf. However, this feature is + * not supported by GetProtectionStatus. You must submit subsequent requests with * NextToken using your own processes.

              */ NextToken?: string; @@ -1192,9 +1427,9 @@ export interface ProtocolsListData { ListName: string | undefined; /** - *

              A unique identifier for each update to the list. When you update - * the list, the update token must match the token of the current version of the application list. - * You can retrieve the update token by getting the list.

              + *

              A unique identifier for each update to the list. When you update the list, the update + * token must match the token of the current version of the application list. You can retrieve + * the update token by getting the list.

              */ ListUpdateToken?: string; @@ -1251,7 +1486,8 @@ export namespace GetProtocolsListResponse { export interface GetViolationDetailsRequest { /** - *

              The ID of the Firewall Manager policy that you want the details for. This currently only supports security group content audit policies.

              + *

              The ID of the Firewall Manager policy that you want the details for. This currently only + * supports security group content audit policies.

              */ PolicyId: string | undefined; @@ -1266,14 +1502,11 @@ export interface GetViolationDetailsRequest { ResourceId: string | undefined; /** - *

              The resource type. This is in the format shown in the Amazon Web Services Resource Types Reference. - * Supported resource types are: - * AWS::EC2::Instance, - * AWS::EC2::NetworkInterface, - * AWS::EC2::SecurityGroup, - * AWS::NetworkFirewall::FirewallPolicy, and - * AWS::EC2::Subnet. - *

              + *

              The resource type. This is in the format shown in the Amazon Web Services + * Resource Types Reference. Supported resource types are: + * AWS::EC2::Instance, AWS::EC2::NetworkInterface, + * AWS::EC2::SecurityGroup, AWS::NetworkFirewall::FirewallPolicy, + * and AWS::EC2::Subnet.

              */ ResourceType: string | undefined; } @@ -1288,16 +1521,23 @@ export namespace GetViolationDetailsRequest { } /** - *

              A collection of key:value pairs associated with an Amazon Web Services resource. The key:value pair can be anything you define. Typically, the tag key represents a category (such as "environment") and the tag value represents a specific value within that category (such as "test," "development," or "production"). You can add up to 50 tags to each Amazon Web Services resource.

              + *

              A collection of key:value pairs associated with an Amazon Web Services resource. The key:value pair + * can be anything you define. Typically, the tag key represents a category (such as + * "environment") and the tag value represents a specific value within that category (such as + * "test," "development," or "production"). You can add up to 50 tags to each Amazon Web Services resource. + *

              */ export interface Tag { /** - *

              Part of the key:value pair that defines a tag. You can use a tag key to describe a category of information, such as "customer." Tag keys are case-sensitive.

              + *

              Part of the key:value pair that defines a tag. You can use a tag key to describe a + * category of information, such as "customer." Tag keys are case-sensitive.

              */ Key: string | undefined; /** - *

              Part of the key:value pair that defines a tag. You can use a tag value to describe a specific value within a category, such as "companyA" or "companyB." Tag values are case-sensitive.

              + *

              Part of the key:value pair that defines a tag. You can use a tag value to describe a + * specific value within a category, such as "companyA" or "companyB." Tag values are + * case-sensitive.

              */ Value: string | undefined; } @@ -1312,7 +1552,8 @@ export namespace Tag { } /** - *

              The reference rule that partially matches the ViolationTarget rule and violation reason.

              + *

              The reference rule that partially matches the ViolationTarget rule and + * violation reason.

              */ export interface PartialMatch { /** @@ -1360,17 +1601,20 @@ export interface SecurityGroupRuleDescription { PrefixListId?: string; /** - *

              The IP protocol name (tcp, udp, icmp, icmpv6) or number.

              + *

              The IP protocol name (tcp, udp, icmp, + * icmpv6) or number.

              */ Protocol?: string; /** - *

              The start of the port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type number. A value of -1 indicates all ICMP/ICMPv6 types.

              + *

              The start of the port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type + * number. A value of -1 indicates all ICMP/ICMPv6 types.

              */ FromPort?: number; /** - *

              The end of the port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code. A value of -1 indicates all ICMP/ICMPv6 codes.

              + *

              The end of the port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code. A value + * of -1 indicates all ICMP/ICMPv6 codes.

              */ ToPort?: number; } @@ -1399,7 +1643,8 @@ export interface SecurityGroupRemediationAction { Description?: string; /** - *

              The final state of the rule specified in the ViolationTarget after it is remediated.

              + *

              The final state of the rule specified in the ViolationTarget after it is + * remediated.

              */ RemediationResult?: SecurityGroupRuleDescription; @@ -1419,7 +1664,8 @@ export namespace SecurityGroupRemediationAction { } /** - *

              Violation detail for the rule violation in a security group when compared to the primary security group of the Firewall Manager policy.

              + *

              Violation detail for the rule violation in a security group when compared to the primary + * security group of the Firewall Manager policy.

              */ export interface AwsVPCSecurityGroupViolation { /** @@ -1433,7 +1679,8 @@ export interface AwsVPCSecurityGroupViolation { ViolationTargetDescription?: string; /** - *

              List of rules specified in the security group of the Firewall Manager policy that partially match the ViolationTarget rule.

              + *

              List of rules specified in the security group of the Firewall Manager policy that partially + * match the ViolationTarget rule.

              */ PartialMatches?: PartialMatch[]; @@ -1453,8 +1700,8 @@ export namespace AwsVPCSecurityGroupViolation { } /** - *

              A DNS Firewall rule group that Firewall Manager - * tried to associate with a VPC is already associated with the VPC and can't be associated again.

              + *

              A DNS Firewall rule group that Firewall Manager tried to associate with a VPC is already associated + * with the VPC and can't be associated again.

              */ export interface DnsDuplicateRuleGroupViolation { /** @@ -1478,7 +1725,9 @@ export namespace DnsDuplicateRuleGroupViolation { } /** - *

              The VPC that Firewall Manager was applying a DNS Fireall policy to reached the limit for associated DNS Firewall rule groups. Firewall Manager tried to associate another rule group with the VPC and failed due to the limit.

              + *

              The VPC that Firewall Manager was applying a DNS Fireall policy to reached the limit for associated + * DNS Firewall rule groups. Firewall Manager tried to associate another rule group with the VPC and + * failed due to the limit.

              */ export interface DnsRuleGroupLimitExceededViolation { /** @@ -1492,7 +1741,7 @@ export interface DnsRuleGroupLimitExceededViolation { ViolationTargetDescription?: string; /** - *

              The number of rule groups currently associated with the VPC.

              + *

              The number of rule groups currently associated with the VPC.

              */ NumberOfRuleGroupsAlreadyAssociated?: number; } @@ -1507,8 +1756,8 @@ export namespace DnsRuleGroupLimitExceededViolation { } /** - *

              A rule group that Firewall Manager - * tried to associate with a VPC has the same priority as a rule group that's already associated.

              + *

              A rule group that Firewall Manager tried to associate with a VPC has the same priority as a rule + * group that's already associated.

              */ export interface DnsRuleGroupPriorityConflictViolation { /** @@ -1517,7 +1766,8 @@ export interface DnsRuleGroupPriorityConflictViolation { ViolationTarget?: string; /** - *

              A description of the violation that specifies the VPC and the rule group that's already associated with it.

              + *

              A description of the violation that specifies the VPC and the rule group that's already + * associated with it.

              */ ViolationTargetDescription?: string; @@ -1527,14 +1777,15 @@ export interface DnsRuleGroupPriorityConflictViolation { ConflictingPriority?: number; /** - *

              The ID of the Firewall Manager DNS Firewall policy that was already applied to the VPC. - * This policy contains the rule group that's already associated with the VPC.

              + *

              The ID of the Firewall Manager DNS Firewall policy that was already applied to the VPC. This policy + * contains the rule group that's already associated with the VPC.

              */ ConflictingPolicyId?: string; /** - *

              The priorities of rule groups that are already associated with the VPC. To retry your operation, - * choose priority settings that aren't in this list for the rule groups in your new DNS Firewall policy.

              + *

              The priorities of rule groups that are already associated with the VPC. To retry your + * operation, choose priority settings that aren't in this list for the rule groups in your + * new DNS Firewall policy.

              */ UnavailablePriorities?: number[]; } @@ -1548,6 +1799,45 @@ export namespace DnsRuleGroupPriorityConflictViolation { }); } +/** + *

              Contains details about the firewall subnet that violates the policy scope.

              + */ +export interface FirewallSubnetIsOutOfScopeViolation { + /** + *

              The ID of the firewall subnet that violates the policy scope.

              + */ + FirewallSubnetId?: string; + + /** + *

              The VPC ID of the firewall subnet that violates the policy scope.

              + */ + VpcId?: string; + + /** + *

              The Availability Zone of the firewall subnet that violates the policy scope.

              + */ + SubnetAvailabilityZone?: string; + + /** + *

              The Availability Zone ID of the firewall subnet that violates the policy scope.

              + */ + SubnetAvailabilityZoneId?: string; + + /** + *

              The VPC endpoint ID of the firewall subnet that violates the policy scope.

              + */ + VpcEndpointId?: string; +} + +export namespace FirewallSubnetIsOutOfScopeViolation { + /** + * @internal + */ + export const filterSensitiveLog = (obj: FirewallSubnetIsOutOfScopeViolation): any => ({ + ...obj, + }); +} + export enum DestinationType { IPV4 = "IPV4", IPV6 = "IPV6", @@ -1602,7 +1892,8 @@ export namespace Route { } /** - *

              Violation detail for an internet gateway route with an inactive state in the customer subnet route table or Network Firewall subnet route table.

              + *

              Violation detail for an internet gateway route with an inactive state in the customer + * subnet route table or Network Firewall subnet route table.

              */ export interface NetworkFirewallBlackHoleRouteDetectedViolation { /** @@ -1680,7 +1971,8 @@ export namespace ExpectedRoute { } /** - *

              Violation detail for the subnet for which internet traffic that hasn't been inspected.

              + *

              Violation detail for the subnet for which internet traffic that hasn't been + * inspected.

              */ export interface NetworkFirewallInternetTrafficNotInspectedViolation { /** @@ -1769,8 +2061,9 @@ export namespace NetworkFirewallInternetTrafficNotInspectedViolation { } /** - *

              Violation detail for the improperly configured subnet route. It's possible there is a missing route table route, - * or a configuration that causes traffic to cross an Availability Zone boundary.

              + *

              Violation detail for the improperly configured subnet route. It's possible there is a + * missing route table route, or a configuration that causes traffic to cross an Availability + * Zone boundary.

              */ export interface NetworkFirewallInvalidRouteConfigurationViolation { /** @@ -1893,8 +2186,8 @@ export namespace NetworkFirewallMissingExpectedRoutesViolation { } /** - *

              Violation detail for Network Firewall for a subnet that's not associated to the expected - * Firewall Manager managed route table.

              + *

              Violation detail for Network Firewall for a subnet that's not associated to the expected Firewall Manager + * managed route table.

              */ export interface NetworkFirewallMissingExpectedRTViolation { /** @@ -1913,7 +2206,8 @@ export interface NetworkFirewallMissingExpectedRTViolation { AvailabilityZone?: string; /** - *

              The resource ID of the current route table that's associated with the subnet, if one is available.

              + *

              The resource ID of the current route table that's associated with the subnet, if one is + * available.

              */ CurrentRouteTable?: string; @@ -1933,8 +2227,8 @@ export namespace NetworkFirewallMissingExpectedRTViolation { } /** - *

              Violation detail for Network Firewall for a subnet that doesn't have a - * Firewall Manager managed firewall in its VPC.

              + *

              Violation detail for Network Firewall for a subnet that doesn't have a Firewall Manager managed firewall + * in its VPC.

              */ export interface NetworkFirewallMissingFirewallViolation { /** @@ -1968,8 +2262,8 @@ export namespace NetworkFirewallMissingFirewallViolation { } /** - *

              Violation detail for Network Firewall for an Availability Zone that's - * missing the expected Firewall Manager managed subnet.

              + *

              Violation detail for Network Firewall for an Availability Zone that's missing the expected + * Firewall Manager managed subnet.

              */ export interface NetworkFirewallMissingSubnetViolation { /** @@ -2041,7 +2335,8 @@ export interface StatelessRuleGroup { ResourceId?: string; /** - *

              The priority of the rule group. Network Firewall evaluates the stateless rule groups in a firewall policy starting from the lowest priority setting.

              + *

              The priority of the rule group. Network Firewall evaluates the stateless rule groups in a + * firewall policy starting from the lowest priority setting.

              */ Priority?: number; } @@ -2065,17 +2360,20 @@ export interface NetworkFirewallPolicyDescription { StatelessRuleGroups?: StatelessRuleGroup[]; /** - *

              The actions to take on packets that don't match any of the stateless rule groups.

              + *

              The actions to take on packets that don't match any of the stateless rule groups. + *

              */ StatelessDefaultActions?: string[]; /** - *

              The actions to take on packet fragments that don't match any of the stateless rule groups.

              + *

              The actions to take on packet fragments that don't match any of the stateless rule + * groups.

              */ StatelessFragmentDefaultActions?: string[]; /** - *

              Names of custom actions that are available for use in the stateless default actions settings.

              + *

              Names of custom actions that are available for use in the stateless default actions + * settings.

              */ StatelessCustomActions?: string[]; @@ -2095,8 +2393,8 @@ export namespace NetworkFirewallPolicyDescription { } /** - *

              Violation detail for Network Firewall for a firewall policy that has a different - * NetworkFirewallPolicyDescription than is required by the Firewall Manager policy.

              + *

              Violation detail for Network Firewall for a firewall policy that has a different NetworkFirewallPolicyDescription than is required by the Firewall Manager policy. + *

              */ export interface NetworkFirewallPolicyModifiedViolation { /** @@ -2110,7 +2408,8 @@ export interface NetworkFirewallPolicyModifiedViolation { CurrentPolicyDescription?: NetworkFirewallPolicyDescription; /** - *

              The policy that should be in use in the individual account in order to be compliant.

              + *

              The policy that should be in use in the individual account in order to be compliant. + *

              */ ExpectedPolicyDescription?: NetworkFirewallPolicyDescription; } @@ -2178,7 +2477,7 @@ export interface NetworkFirewallUnexpectedGatewayRoutesViolation { ViolatingRoutes?: Route[]; /** - *

              Information about the route table.

              + *

              Information about the route table.

              */ RouteTableId?: string; @@ -2198,11 +2497,13 @@ export namespace NetworkFirewallUnexpectedGatewayRoutesViolation { } /** - *

              The action of associating an EC2 resource, such as a subnet or internet gateway, with a route table.

              + *

              The action of associating an EC2 resource, such as a subnet or internet gateway, with a + * route table.

              */ export interface EC2AssociateRouteTableAction { /** - *

              A description of the EC2 route table that is associated with the remediation action.

              + *

              A description of the EC2 route table that is associated with the remediation + * action.

              */ Description?: string; @@ -2212,12 +2513,14 @@ export interface EC2AssociateRouteTableAction { RouteTableId: ActionTarget | undefined; /** - *

              The ID of the subnet for the EC2 route table that is associated with the remediation action.

              + *

              The ID of the subnet for the EC2 route table that is associated with the remediation + * action.

              */ SubnetId?: ActionTarget; /** - *

              The ID of the gateway to be used with the EC2 route table that is associated with the remediation action.

              + *

              The ID of the gateway to be used with the EC2 route table that is associated with the + * remediation action.

              */ GatewayId?: ActionTarget; } @@ -2236,17 +2539,20 @@ export namespace EC2AssociateRouteTableAction { */ export interface EC2CopyRouteTableAction { /** - *

              A description of the copied EC2 route table that is associated with the remediation action.

              + *

              A description of the copied EC2 route table that is associated with the remediation + * action.

              */ Description?: string; /** - *

              The VPC ID of the copied EC2 route table that is associated with the remediation action.

              + *

              The VPC ID of the copied EC2 route table that is associated with the remediation + * action.

              */ VpcId: ActionTarget | undefined; /** - *

              The ID of the copied EC2 route table that is associated with the remediation action.

              + *

              The ID of the copied EC2 route table that is associated with the remediation + * action.

              */ RouteTableId: ActionTarget | undefined; } @@ -2285,12 +2591,14 @@ export interface EC2CreateRouteAction { DestinationIpv6CidrBlock?: string; /** - *

              Information about the ID of a VPC endpoint. Supported for Gateway Load Balancer endpoints only.

              + *

              Information about the ID of a VPC endpoint. Supported for Gateway Load Balancer + * endpoints only.

              */ VpcEndpointId?: ActionTarget; /** - *

              Information about the ID of an internet gateway or virtual private gateway attached to your VPC.

              + *

              Information about the ID of an internet gateway or virtual private gateway attached to + * your VPC.

              */ GatewayId?: ActionTarget; @@ -2343,7 +2651,8 @@ export interface EC2DeleteRouteAction { Description?: string; /** - *

              Information about the IPv4 CIDR range for the route. The value you specify must match the CIDR for the route exactly.

              + *

              Information about the IPv4 CIDR range for the route. The value you specify must match + * the CIDR for the route exactly.

              */ DestinationCidrBlock?: string; @@ -2353,7 +2662,8 @@ export interface EC2DeleteRouteAction { DestinationPrefixListId?: string; /** - *

              Information about the IPv6 CIDR range for the route. The value you specify must match the CIDR for the route exactly.

              + *

              Information about the IPv6 CIDR range for the route. The value you specify must match + * the CIDR for the route exactly.

              */ DestinationIpv6CidrBlock?: string; @@ -2382,7 +2692,8 @@ export interface EC2ReplaceRouteAction { Description?: string; /** - *

              Information about the IPv4 CIDR address block used for the destination match. The value that you provide must match the CIDR of an existing route in the table.

              + *

              Information about the IPv4 CIDR address block used for the destination match. The value + * that you provide must match the CIDR of an existing route in the table.

              */ DestinationCidrBlock?: string; @@ -2392,7 +2703,8 @@ export interface EC2ReplaceRouteAction { DestinationPrefixListId?: string; /** - *

              Information about the IPv6 CIDR address block used for the destination match. The value that you provide must match the CIDR of an existing route in the table.

              + *

              Information about the IPv6 CIDR address block used for the destination match. The value + * that you provide must match the CIDR of an existing route in the table.

              */ DestinationIpv6CidrBlock?: string; @@ -2445,6 +2757,34 @@ export namespace EC2ReplaceRouteTableAssociationAction { }); } +/** + *

              Contains information about the actions that you can take to remediate scope violations + * caused by your policy's FirewallCreationConfig. + * FirewallCreationConfig is an optional configuration that you can use to + * choose which Availability Zones Firewall Manager creates Network Firewall endpoints in.

              + */ +export interface FMSPolicyUpdateFirewallCreationConfigAction { + /** + *

              Describes the remedial action.

              + */ + Description?: string; + + /** + *

              A FirewallCreationConfig that you can copy into your current policy's + * SecurityServiceData in order to remedy scope violations.

              + */ + FirewallCreationConfig?: string; +} + +export namespace FMSPolicyUpdateFirewallCreationConfigAction { + /** + * @internal + */ + export const filterSensitiveLog = (obj: FMSPolicyUpdateFirewallCreationConfigAction): any => ({ + ...obj, + }); +} + /** *

              Information about an individual action you can take to remediate a violation.

              */ @@ -2475,7 +2815,8 @@ export interface RemediationAction { EC2CopyRouteTableAction?: EC2CopyRouteTableAction; /** - *

              Information about the ReplaceRouteTableAssociation action in the Amazon EC2 API.

              + *

              Information about the ReplaceRouteTableAssociation action in the Amazon EC2 + * API.

              */ EC2ReplaceRouteTableAssociationAction?: EC2ReplaceRouteTableAssociationAction; @@ -2488,6 +2829,11 @@ export interface RemediationAction { *

              Information about the CreateRouteTable action in the Amazon EC2 API.

              */ EC2CreateRouteTableAction?: EC2CreateRouteTableAction; + + /** + *

              The remedial action to take when updating a firewall configuration.

              + */ + FMSPolicyUpdateFirewallCreationConfigAction?: FMSPolicyUpdateFirewallCreationConfigAction; } export namespace RemediationAction { @@ -2553,7 +2899,8 @@ export namespace PossibleRemediationAction { } /** - *

              A list of possible remediation action lists. Each individual possible remediation action is a list of individual remediation actions.

              + *

              A list of possible remediation action lists. Each individual possible remediation action + * is a list of individual remediation actions.

              */ export interface PossibleRemediationActions { /** @@ -2576,6 +2923,80 @@ export namespace PossibleRemediationActions { }); } +/** + *

              Contains details about the route endpoint that violates the policy scope.

              + */ +export interface RouteHasOutOfScopeEndpointViolation { + /** + *

              The ID of the subnet associated with the route that violates the policy scope.

              + */ + SubnetId?: string; + + /** + *

              The VPC ID of the route that violates the policy scope.

              + */ + VpcId?: string; + + /** + *

              The ID of the route table.

              + */ + RouteTableId?: string; + + /** + *

              The list of routes that violate the route table.

              + */ + ViolatingRoutes?: Route[]; + + /** + *

              The subnet's Availability Zone.

              + */ + SubnetAvailabilityZone?: string; + + /** + *

              The ID of the subnet's Availability Zone.

              + */ + SubnetAvailabilityZoneId?: string; + + /** + *

              The route table associated with the current firewall subnet.

              + */ + CurrentFirewallSubnetRouteTable?: string; + + /** + *

              The ID of the firewall subnet.

              + */ + FirewallSubnetId?: string; + + /** + *

              The list of firewall subnet routes.

              + */ + FirewallSubnetRoutes?: Route[]; + + /** + *

              The ID of the Internet Gateway.

              + */ + InternetGatewayId?: string; + + /** + *

              The current route table associated with the Internet Gateway.

              + */ + CurrentInternetGatewayRouteTable?: string; + + /** + *

              The routes in the route table associated with the Internet Gateway.

              + */ + InternetGatewayRoutes?: Route[]; +} + +export namespace RouteHasOutOfScopeEndpointViolation { + /** + * @internal + */ + export const filterSensitiveLog = (obj: RouteHasOutOfScopeEndpointViolation): any => ({ + ...obj, + }); +} + /** *

              Violation detail based on resource type.

              */ @@ -2596,28 +3017,28 @@ export interface ResourceViolation { AwsEc2InstanceViolation?: AwsEc2InstanceViolation; /** - *

              Violation detail for an Network Firewall policy that indicates that a subnet has no Firewall Manager - * managed firewall in its VPC.

              + *

              Violation detail for an Network Firewall policy that indicates that a subnet has no Firewall Manager managed + * firewall in its VPC.

              */ NetworkFirewallMissingFirewallViolation?: NetworkFirewallMissingFirewallViolation; /** *

              Violation detail for an Network Firewall policy that indicates that an Availability Zone is - * missing the expected Firewall Manager managed subnet.

              + * missing the expected Firewall Manager managed subnet.

              */ NetworkFirewallMissingSubnetViolation?: NetworkFirewallMissingSubnetViolation; /** - *

              Violation detail for an Network Firewall policy that indicates that a subnet - * is not associated with the expected Firewall Manager managed route table.

              + *

              Violation detail for an Network Firewall policy that indicates that a subnet is not associated + * with the expected Firewall Manager managed route table.

              */ NetworkFirewallMissingExpectedRTViolation?: NetworkFirewallMissingExpectedRTViolation; /** - *

              Violation detail for an Network Firewall policy that indicates that a firewall policy - * in an individual account has been modified in a way that makes it noncompliant. - * For example, the individual account owner might have deleted a rule group, - * changed the priority of a stateless rule group, or changed a policy default action.

              + *

              Violation detail for an Network Firewall policy that indicates that a firewall policy in an + * individual account has been modified in a way that makes it noncompliant. For example, the + * individual account owner might have deleted a rule group, changed the priority of a + * stateless rule group, or changed a policy default action.

              */ NetworkFirewallPolicyModifiedViolation?: NetworkFirewallPolicyModifiedViolation; @@ -2632,7 +3053,8 @@ export interface ResourceViolation { NetworkFirewallInvalidRouteConfigurationViolation?: NetworkFirewallInvalidRouteConfigurationViolation; /** - *

              Violation detail for an internet gateway route with an inactive state in the customer subnet route table or Network Firewall subnet route table.

              + *

              Violation detail for an internet gateway route with an inactive state in the customer + * subnet route table or Network Firewall subnet route table.

              */ NetworkFirewallBlackHoleRouteDetectedViolation?: NetworkFirewallBlackHoleRouteDetectedViolation; @@ -2653,25 +3075,40 @@ export interface ResourceViolation { /** *

              Violation detail for a DNS Firewall policy that indicates that a rule group that Firewall Manager - * tried to associate with a VPC has the same priority as a rule group that's already associated.

              + * tried to associate with a VPC has the same priority as a rule group that's already + * associated.

              */ DnsRuleGroupPriorityConflictViolation?: DnsRuleGroupPriorityConflictViolation; /** *

              Violation detail for a DNS Firewall policy that indicates that a rule group that Firewall Manager - * tried to associate with a VPC is already associated with the VPC and can't be associated again.

              + * tried to associate with a VPC is already associated with the VPC and can't be associated + * again.

              */ DnsDuplicateRuleGroupViolation?: DnsDuplicateRuleGroupViolation; /** - *

              Violation detail for a DNS Firewall policy that indicates that the VPC reached the limit for associated DNS Firewall rule groups. Firewall Manager tried to associate another rule group with the VPC and failed.

              + *

              Violation detail for a DNS Firewall policy that indicates that the VPC reached the limit + * for associated DNS Firewall rule groups. Firewall Manager tried to associate another rule group with + * the VPC and failed.

              */ DnsRuleGroupLimitExceededViolation?: DnsRuleGroupLimitExceededViolation; /** - *

              A list of possible remediation action lists. Each individual possible remediation action is a list of individual remediation actions.

              + *

              A list of possible remediation action lists. Each individual possible remediation action + * is a list of individual remediation actions.

              */ PossibleRemediationActions?: PossibleRemediationActions; + + /** + *

              Contains details about the firewall subnet that violates the policy scope.

              + */ + FirewallSubnetIsOutOfScopeViolation?: FirewallSubnetIsOutOfScopeViolation; + + /** + *

              Contains details about the route endpoint that violates the policy scope.

              + */ + RouteHasOutOfScopeEndpointViolation?: RouteHasOutOfScopeEndpointViolation; } export namespace ResourceViolation { @@ -2684,7 +3121,8 @@ export namespace ResourceViolation { } /** - *

              Violations for a resource based on the specified Firewall Manager policy and Amazon Web Services account.

              + *

              Violations for a resource based on the specified Firewall Manager policy and Amazon Web Services + * account.

              */ export interface ViolationDetail { /** @@ -2714,6 +3152,8 @@ export interface ViolationDetail { /** *

              The ResourceTag objects associated with the resource.

              + *

              This option isn't available for the centralized deployment model when creating policies + * to configure Network Firewall.

              */ ResourceTags?: Tag[]; @@ -2755,16 +3195,17 @@ export interface ListAppsListsRequest { DefaultLists?: boolean; /** - *

              If you specify a value for MaxResults in your list request, and you have more objects than the maximum, - * Firewall Manager returns this token in the response. For all but the first request, you provide the token returned by the prior request - * in the request parameters, to retrieve the next batch of objects.

              + *

              If you specify a value for MaxResults in your list request, and you have + * more objects than the maximum, Firewall Manager returns this token in the response. For all but + * the first request, you provide the token returned by the prior request in the request + * parameters, to retrieve the next batch of objects.

              */ NextToken?: string; /** - *

              The maximum number of objects that you want Firewall Manager to return for this request. If more - * objects are available, in the response, Firewall Manager provides a - * NextToken value that you can use in a subsequent call to get the next batch of objects.

              + *

              The maximum number of objects that you want Firewall Manager to return for this request. If + * more objects are available, in the response, Firewall Manager provides a NextToken + * value that you can use in a subsequent call to get the next batch of objects.

              *

              If you don't specify this, Firewall Manager returns all available objects.

              */ MaxResults: number | undefined; @@ -2786,8 +3227,9 @@ export interface ListAppsListsResponse { AppsLists?: AppsListDataSummary[]; /** - *

              If you specify a value for MaxResults in your list request, and you have more objects than the maximum, - * Firewall Manager returns this token in the response. You can use this token in subsequent requests to retrieve the next batch of objects.

              + *

              If you specify a value for MaxResults in your list request, and you have + * more objects than the maximum, Firewall Manager returns this token in the response. You can use + * this token in subsequent requests to retrieve the next batch of objects.

              */ NextToken?: string; } @@ -2809,21 +3251,21 @@ export interface ListComplianceStatusRequest { /** *

              If you specify a value for MaxResults and you have more - * PolicyComplianceStatus objects than the number that you specify for - * MaxResults, Firewall Manager returns a NextToken value in the - * response that allows you to list another group of PolicyComplianceStatus objects. - * For the second and subsequent ListComplianceStatus requests, specify the value of - * NextToken from the previous response to get information about another batch of - * PolicyComplianceStatus objects.

              + * PolicyComplianceStatus objects than the number that you specify for + * MaxResults, Firewall Manager returns a NextToken value in the + * response that allows you to list another group of PolicyComplianceStatus + * objects. For the second and subsequent ListComplianceStatus requests, specify + * the value of NextToken from the previous response to get information about + * another batch of PolicyComplianceStatus objects.

              */ NextToken?: string; /** - *

              Specifies the number of PolicyComplianceStatus objects that you want - * Firewall Manager to return for this request. If you have more - * PolicyComplianceStatus objects than the number that you specify for - * MaxResults, the response includes a NextToken value that you can - * use to get another batch of PolicyComplianceStatus objects.

              + *

              Specifies the number of PolicyComplianceStatus objects that you want Firewall Manager + * to return for this request. If you have more PolicyComplianceStatus objects + * than the number that you specify for MaxResults, the response includes a + * NextToken value that you can use to get another batch of + * PolicyComplianceStatus objects.

              */ MaxResults?: number; } @@ -2843,9 +3285,9 @@ export enum PolicyComplianceStatusType { } /** - *

              Describes the compliance status for the account. An account is considered noncompliant if - * it includes resources that are not protected by the specified policy or that don't comply with - * the policy.

              + *

              Describes the compliance status for the account. An account is considered noncompliant + * if it includes resources that are not protected by the specified policy or that don't + * comply with the policy.

              */ export interface EvaluationResult { /** @@ -2854,16 +3296,16 @@ export interface EvaluationResult { ComplianceStatus?: PolicyComplianceStatusType | string; /** - *

              The number of resources that are noncompliant with the specified policy. For WAF and - * Shield Advanced policies, a resource is considered noncompliant if it is not associated with - * the policy. For security group policies, a resource is considered noncompliant if it doesn't - * comply with the rules of the policy and remediation is disabled or not possible.

              + *

              The number of resources that are noncompliant with the specified policy. For WAF + * and Shield Advanced policies, a resource is considered noncompliant if it is not associated + * with the policy. For security group policies, a resource is considered noncompliant if it + * doesn't comply with the rules of the policy and remediation is disabled or not + * possible.

              */ ViolatorCount?: number; /** - *

              Indicates that over 100 resources are noncompliant with the Firewall Manager - * policy.

              + *

              Indicates that over 100 resources are noncompliant with the Firewall Manager policy.

              */ EvaluationLimitExceeded?: boolean; } @@ -2879,9 +3321,9 @@ export namespace EvaluationResult { /** *

              Indicates whether the account is compliant with the specified policy. An account is - * considered noncompliant if it includes resources that are not protected by the policy, for - * WAF and Shield Advanced policies, or that are noncompliant with the policy, for security group - * policies.

              + * considered noncompliant if it includes resources that are not protected by the policy, for + * WAF and Shield Advanced policies, or that are noncompliant with the policy, for + * security group policies.

              */ export interface PolicyComplianceStatus { /** @@ -2915,8 +3357,8 @@ export interface PolicyComplianceStatus { LastUpdated?: Date; /** - *

              Details about problems with dependent services, such as WAF or Config, - * and the error message received that indicates the problem with the service.

              + *

              Details about problems with dependent services, such as WAF or Config, and the + * error message received that indicates the problem with the service.

              */ IssueInfoMap?: { [key: string]: string }; } @@ -2938,11 +3380,11 @@ export interface ListComplianceStatusResponse { /** *

              If you have more PolicyComplianceStatus objects than the number that you - * specified for MaxResults in the request, the response includes a - * NextToken value. To list more PolicyComplianceStatus objects, - * submit another ListComplianceStatus request, and specify the - * NextToken value from the response in the NextToken value in the - * next request.

              + * specified for MaxResults in the request, the response includes a + * NextToken value. To list more PolicyComplianceStatus objects, + * submit another ListComplianceStatus request, and specify the + * NextToken value from the response in the NextToken value in + * the next request.

              */ NextToken?: string; } @@ -2958,20 +3400,20 @@ export namespace ListComplianceStatusResponse { export interface ListMemberAccountsRequest { /** - *

              If you specify a value for MaxResults and you have more account IDs than the - * number that you specify for MaxResults, Firewall Manager returns a - * NextToken value in the response that allows you to list another group of IDs. - * For the second and subsequent ListMemberAccountsRequest requests, specify the - * value of NextToken from the previous response to get information about another - * batch of member account IDs.

              + *

              If you specify a value for MaxResults and you have more account IDs than + * the number that you specify for MaxResults, Firewall Manager returns a + * NextToken value in the response that allows you to list another group of + * IDs. For the second and subsequent ListMemberAccountsRequest requests, specify + * the value of NextToken from the previous response to get information about + * another batch of member account IDs.

              */ NextToken?: string; /** - *

              Specifies the number of member account IDs that you want Firewall Manager to return - * for this request. If you have more IDs than the number that you specify for - * MaxResults, the response includes a NextToken value that you can - * use to get another batch of member account IDs.

              + *

              Specifies the number of member account IDs that you want Firewall Manager to return for this + * request. If you have more IDs than the number that you specify for MaxResults, + * the response includes a NextToken value that you can use to get another batch + * of member account IDs.

              */ MaxResults?: number; } @@ -2993,10 +3435,10 @@ export interface ListMemberAccountsResponse { /** *

              If you have more member account IDs than the number that you specified for - * MaxResults in the request, the response includes a NextToken - * value. To list more IDs, submit another ListMemberAccounts request, and specify - * the NextToken value from the response in the NextToken value in the - * next request.

              + * MaxResults in the request, the response includes a NextToken + * value. To list more IDs, submit another ListMemberAccounts request, and + * specify the NextToken value from the response in the NextToken + * value in the next request.

              */ NextToken?: string; } @@ -3013,20 +3455,21 @@ export namespace ListMemberAccountsResponse { export interface ListPoliciesRequest { /** *

              If you specify a value for MaxResults and you have more - * PolicySummary objects than the number that you specify for - * MaxResults, Firewall Manager returns a NextToken value in the - * response that allows you to list another group of PolicySummary objects. For the - * second and subsequent ListPolicies requests, specify the value of - * NextToken from the previous response to get information about another batch of - * PolicySummary objects.

              + * PolicySummary objects than the number that you specify for + * MaxResults, Firewall Manager returns a NextToken value in the + * response that allows you to list another group of PolicySummary objects. For + * the second and subsequent ListPolicies requests, specify the value of + * NextToken from the previous response to get information about another batch + * of PolicySummary objects.

              */ NextToken?: string; /** - *

              Specifies the number of PolicySummary objects that you want Firewall Manager to return for this request. If you have more PolicySummary objects than - * the number that you specify for MaxResults, the response includes a - * NextToken value that you can use to get another batch of - * PolicySummary objects.

              + *

              Specifies the number of PolicySummary objects that you want Firewall Manager to + * return for this request. If you have more PolicySummary objects than the + * number that you specify for MaxResults, the response includes a + * NextToken value that you can use to get another batch of + * PolicySummary objects.

              */ MaxResults?: number; } @@ -3061,22 +3504,23 @@ export interface PolicySummary { /** *

              The type of resource protected by or in scope of the policy. This is in the format shown - * in the Amazon Web Services Resource Types Reference. - * For WAF and Shield Advanced, examples include - * AWS::ElasticLoadBalancingV2::LoadBalancer and - * AWS::CloudFront::Distribution. For a security group common policy, valid values - * are AWS::EC2::NetworkInterface and AWS::EC2::Instance. For a - * security group content audit policy, valid values are AWS::EC2::SecurityGroup, - * AWS::EC2::NetworkInterface, and AWS::EC2::Instance. For a security - * group usage audit policy, the value is AWS::EC2::SecurityGroup. For an Network Firewall policy or DNS Firewall policy, - * the value is AWS::EC2::VPC.

              + * in the Amazon Web Services + * Resource Types Reference. For WAF and Shield Advanced, examples include + * AWS::ElasticLoadBalancingV2::LoadBalancer and + * AWS::CloudFront::Distribution. For a security group common policy, valid + * values are AWS::EC2::NetworkInterface and AWS::EC2::Instance. For + * a security group content audit policy, valid values are + * AWS::EC2::SecurityGroup, AWS::EC2::NetworkInterface, and + * AWS::EC2::Instance. For a security group usage audit policy, the value is + * AWS::EC2::SecurityGroup. For an Network Firewall policy or DNS Firewall policy, + * the value is AWS::EC2::VPC.

              */ ResourceType?: string; /** - *

              The service that the policy is using to protect the resources. This specifies the type of - * policy that is created, either an WAF policy, a Shield Advanced policy, or a security - * group policy.

              + *

              The service that the policy is using to protect the resources. This specifies the type + * of policy that is created, either an WAF policy, a Shield Advanced policy, or a + * security group policy.

              */ SecurityServiceType?: SecurityServiceType | string; @@ -3111,11 +3555,11 @@ export interface ListPoliciesResponse { PolicyList?: PolicySummary[]; /** - *

              If you have more PolicySummary objects than the number that you specified for - * MaxResults in the request, the response includes a NextToken - * value. To list more PolicySummary objects, submit another - * ListPolicies request, and specify the NextToken value from the - * response in the NextToken value in the next request.

              + *

              If you have more PolicySummary objects than the number that you specified + * for MaxResults in the request, the response includes a NextToken + * value. To list more PolicySummary objects, submit another + * ListPolicies request, and specify the NextToken value from the + * response in the NextToken value in the next request.

              */ NextToken?: string; } @@ -3136,16 +3580,17 @@ export interface ListProtocolsListsRequest { DefaultLists?: boolean; /** - *

              If you specify a value for MaxResults in your list request, and you have more objects than the maximum, - * Firewall Manager returns this token in the response. For all but the first request, you provide the token returned by the prior request - * in the request parameters, to retrieve the next batch of objects.

              + *

              If you specify a value for MaxResults in your list request, and you have + * more objects than the maximum, Firewall Manager returns this token in the response. For all but + * the first request, you provide the token returned by the prior request in the request + * parameters, to retrieve the next batch of objects.

              */ NextToken?: string; /** - *

              The maximum number of objects that you want Firewall Manager to return for this request. If more - * objects are available, in the response, Firewall Manager provides a - * NextToken value that you can use in a subsequent call to get the next batch of objects.

              + *

              The maximum number of objects that you want Firewall Manager to return for this request. If + * more objects are available, in the response, Firewall Manager provides a NextToken + * value that you can use in a subsequent call to get the next batch of objects.

              *

              If you don't specify this, Firewall Manager returns all available objects.

              */ MaxResults: number | undefined; @@ -3201,8 +3646,9 @@ export interface ListProtocolsListsResponse { ProtocolsLists?: ProtocolsListDataSummary[]; /** - *

              If you specify a value for MaxResults in your list request, and you have more objects than the maximum, - * Firewall Manager returns this token in the response. You can use this token in subsequent requests to retrieve the next batch of objects.

              + *

              If you specify a value for MaxResults in your list request, and you have + * more objects than the maximum, Firewall Manager returns this token in the response. You can use + * this token in subsequent requests to retrieve the next batch of objects.

              */ NextToken?: string; } @@ -3218,7 +3664,9 @@ export namespace ListProtocolsListsResponse { export interface ListTagsForResourceRequest { /** - *

              The Amazon Resource Name (ARN) of the resource to return tags for. The Firewall Manager resources that support tagging are policies, applications lists, and protocols lists.

              + *

              The Amazon Resource Name (ARN) of the resource to return tags for. The Firewall Manager + * resources that support tagging are policies, applications lists, and protocols lists. + *

              */ ResourceArn: string | undefined; } @@ -3293,13 +3741,13 @@ export namespace PutAppsListResponse { export interface PutNotificationChannelRequest { /** *

              The Amazon Resource Name (ARN) of the SNS topic that collects notifications from - * Firewall Manager.

              + * Firewall Manager.

              */ SnsTopicArn: string | undefined; /** *

              The Amazon Resource Name (ARN) of the IAM role that allows Amazon SNS to record - * Firewall Manager activity.

              + * Firewall Manager activity.

              */ SnsRoleName: string | undefined; } @@ -3399,7 +3847,9 @@ export namespace PutProtocolsListResponse { export interface TagResourceRequest { /** - *

              The Amazon Resource Name (ARN) of the resource to return tags for. The Firewall Manager resources that support tagging are policies, applications lists, and protocols lists.

              + *

              The Amazon Resource Name (ARN) of the resource to return tags for. The Firewall Manager + * resources that support tagging are policies, applications lists, and protocols lists. + *

              */ ResourceArn: string | undefined; @@ -3431,7 +3881,9 @@ export namespace TagResourceResponse { export interface UntagResourceRequest { /** - *

              The Amazon Resource Name (ARN) of the resource to return tags for. The Firewall Manager resources that support tagging are policies, applications lists, and protocols lists.

              + *

              The Amazon Resource Name (ARN) of the resource to return tags for. The Firewall Manager + * resources that support tagging are policies, applications lists, and protocols lists. + *

              */ ResourceArn: string | undefined; diff --git a/clients/client-fms/src/protocols/Aws_json1_1.ts b/clients/client-fms/src/protocols/Aws_json1_1.ts index 406f7d43a3d2..6d9274fc90ed 100644 --- a/clients/client-fms/src/protocols/Aws_json1_1.ts +++ b/clients/client-fms/src/protocols/Aws_json1_1.ts @@ -105,6 +105,8 @@ import { EC2ReplaceRouteTableAssociationAction, EvaluationResult, ExpectedRoute, + FirewallSubnetIsOutOfScopeViolation, + FMSPolicyUpdateFirewallCreationConfigAction, GetAdminAccountRequest, GetAdminAccountResponse, GetAppsListRequest, @@ -145,6 +147,7 @@ import { NetworkFirewallMissingExpectedRTViolation, NetworkFirewallMissingFirewallViolation, NetworkFirewallMissingSubnetViolation, + NetworkFirewallPolicy, NetworkFirewallPolicyDescription, NetworkFirewallPolicyModifiedViolation, NetworkFirewallUnexpectedFirewallRoutesViolation, @@ -153,6 +156,7 @@ import { Policy, PolicyComplianceDetail, PolicyComplianceStatus, + PolicyOption, PolicySummary, PossibleRemediationAction, PossibleRemediationActions, @@ -171,6 +175,7 @@ import { ResourceTag, ResourceViolation, Route, + RouteHasOutOfScopeEndpointViolation, SecurityGroupRemediationAction, SecurityGroupRuleDescription, SecurityServicePolicyData, @@ -2143,6 +2148,13 @@ const serializeAws_json1_1ListTagsForResourceRequest = ( }; }; +const serializeAws_json1_1NetworkFirewallPolicy = (input: NetworkFirewallPolicy, context: __SerdeContext): any => { + return { + ...(input.FirewallDeploymentModel !== undefined && + input.FirewallDeploymentModel !== null && { FirewallDeploymentModel: input.FirewallDeploymentModel }), + }; +}; + const serializeAws_json1_1Policy = (input: Policy, context: __SerdeContext): any => { return { ...(input.DeleteUnusedFMManagedResources !== undefined && @@ -2182,6 +2194,15 @@ const serializeAws_json1_1Policy = (input: Policy, context: __SerdeContext): any }; }; +const serializeAws_json1_1PolicyOption = (input: PolicyOption, context: __SerdeContext): any => { + return { + ...(input.NetworkFirewallPolicy !== undefined && + input.NetworkFirewallPolicy !== null && { + NetworkFirewallPolicy: serializeAws_json1_1NetworkFirewallPolicy(input.NetworkFirewallPolicy, context), + }), + }; +}; + const serializeAws_json1_1PreviousAppsList = (input: { [key: string]: App[] }, context: __SerdeContext): any => { return Object.entries(input).reduce((acc: { [key: string]: any }, [key, value]: [string, any]) => { if (value === null) { @@ -2316,6 +2337,8 @@ const serializeAws_json1_1SecurityServicePolicyData = ( return { ...(input.ManagedServiceData !== undefined && input.ManagedServiceData !== null && { ManagedServiceData: input.ManagedServiceData }), + ...(input.PolicyOption !== undefined && + input.PolicyOption !== null && { PolicyOption: serializeAws_json1_1PolicyOption(input.PolicyOption, context) }), ...(input.Type !== undefined && input.Type !== null && { Type: input.Type }), }; }; @@ -2502,12 +2525,31 @@ const deserializeAws_json1_1AwsVPCSecurityGroupViolation = ( const deserializeAws_json1_1ComplianceViolator = (output: any, context: __SerdeContext): ComplianceViolator => { return { + Metadata: + output.Metadata !== undefined && output.Metadata !== null + ? deserializeAws_json1_1ComplianceViolatorMetadata(output.Metadata, context) + : undefined, ResourceId: __expectString(output.ResourceId), ResourceType: __expectString(output.ResourceType), ViolationReason: __expectString(output.ViolationReason), } as any; }; +const deserializeAws_json1_1ComplianceViolatorMetadata = ( + output: any, + context: __SerdeContext +): { [key: string]: string } => { + return Object.entries(output).reduce((acc: { [key: string]: string }, [key, value]: [string, any]) => { + if (value === null) { + return acc; + } + return { + ...acc, + [key]: __expectString(value) as any, + }; + }, {}); +}; + const deserializeAws_json1_1ComplianceViolators = (output: any, context: __SerdeContext): ComplianceViolator[] => { const retVal = (output || []) .filter((e: any) => e != null) @@ -2767,6 +2809,29 @@ const deserializeAws_json1_1ExpectedRoutes = (output: any, context: __SerdeConte return retVal; }; +const deserializeAws_json1_1FirewallSubnetIsOutOfScopeViolation = ( + output: any, + context: __SerdeContext +): FirewallSubnetIsOutOfScopeViolation => { + return { + FirewallSubnetId: __expectString(output.FirewallSubnetId), + SubnetAvailabilityZone: __expectString(output.SubnetAvailabilityZone), + SubnetAvailabilityZoneId: __expectString(output.SubnetAvailabilityZoneId), + VpcEndpointId: __expectString(output.VpcEndpointId), + VpcId: __expectString(output.VpcId), + } as any; +}; + +const deserializeAws_json1_1FMSPolicyUpdateFirewallCreationConfigAction = ( + output: any, + context: __SerdeContext +): FMSPolicyUpdateFirewallCreationConfigAction => { + return { + Description: __expectString(output.Description), + FirewallCreationConfig: __expectString(output.FirewallCreationConfig), + } as any; +}; + const deserializeAws_json1_1GetAdminAccountResponse = ( output: any, context: __SerdeContext @@ -3157,6 +3222,12 @@ const deserializeAws_json1_1NetworkFirewallMissingSubnetViolation = ( } as any; }; +const deserializeAws_json1_1NetworkFirewallPolicy = (output: any, context: __SerdeContext): NetworkFirewallPolicy => { + return { + FirewallDeploymentModel: __expectString(output.FirewallDeploymentModel), + } as any; +}; + const deserializeAws_json1_1NetworkFirewallPolicyDescription = ( output: any, context: __SerdeContext @@ -3359,6 +3430,15 @@ const deserializeAws_json1_1PolicyComplianceStatusList = ( return retVal; }; +const deserializeAws_json1_1PolicyOption = (output: any, context: __SerdeContext): PolicyOption => { + return { + NetworkFirewallPolicy: + output.NetworkFirewallPolicy !== undefined && output.NetworkFirewallPolicy !== null + ? deserializeAws_json1_1NetworkFirewallPolicy(output.NetworkFirewallPolicy, context) + : undefined, + } as any; +}; + const deserializeAws_json1_1PolicySummary = (output: any, context: __SerdeContext): PolicySummary => { return { DeleteUnusedFMManagedResources: __expectBoolean(output.DeleteUnusedFMManagedResources), @@ -3583,6 +3663,14 @@ const deserializeAws_json1_1RemediationAction = (output: any, context: __SerdeCo context ) : undefined, + FMSPolicyUpdateFirewallCreationConfigAction: + output.FMSPolicyUpdateFirewallCreationConfigAction !== undefined && + output.FMSPolicyUpdateFirewallCreationConfigAction !== null + ? deserializeAws_json1_1FMSPolicyUpdateFirewallCreationConfigAction( + output.FMSPolicyUpdateFirewallCreationConfigAction, + context + ) + : undefined, } as any; }; @@ -3681,6 +3769,10 @@ const deserializeAws_json1_1ResourceViolation = (output: any, context: __SerdeCo context ) : undefined, + FirewallSubnetIsOutOfScopeViolation: + output.FirewallSubnetIsOutOfScopeViolation !== undefined && output.FirewallSubnetIsOutOfScopeViolation !== null + ? deserializeAws_json1_1FirewallSubnetIsOutOfScopeViolation(output.FirewallSubnetIsOutOfScopeViolation, context) + : undefined, NetworkFirewallBlackHoleRouteDetectedViolation: output.NetworkFirewallBlackHoleRouteDetectedViolation !== undefined && output.NetworkFirewallBlackHoleRouteDetectedViolation !== null @@ -3765,6 +3857,10 @@ const deserializeAws_json1_1ResourceViolation = (output: any, context: __SerdeCo output.PossibleRemediationActions !== undefined && output.PossibleRemediationActions !== null ? deserializeAws_json1_1PossibleRemediationActions(output.PossibleRemediationActions, context) : undefined, + RouteHasOutOfScopeEndpointViolation: + output.RouteHasOutOfScopeEndpointViolation !== undefined && output.RouteHasOutOfScopeEndpointViolation !== null + ? deserializeAws_json1_1RouteHasOutOfScopeEndpointViolation(output.RouteHasOutOfScopeEndpointViolation, context) + : undefined, } as any; }; @@ -3789,6 +3885,35 @@ const deserializeAws_json1_1Route = (output: any, context: __SerdeContext): Rout } as any; }; +const deserializeAws_json1_1RouteHasOutOfScopeEndpointViolation = ( + output: any, + context: __SerdeContext +): RouteHasOutOfScopeEndpointViolation => { + return { + CurrentFirewallSubnetRouteTable: __expectString(output.CurrentFirewallSubnetRouteTable), + CurrentInternetGatewayRouteTable: __expectString(output.CurrentInternetGatewayRouteTable), + FirewallSubnetId: __expectString(output.FirewallSubnetId), + FirewallSubnetRoutes: + output.FirewallSubnetRoutes !== undefined && output.FirewallSubnetRoutes !== null + ? deserializeAws_json1_1Routes(output.FirewallSubnetRoutes, context) + : undefined, + InternetGatewayId: __expectString(output.InternetGatewayId), + InternetGatewayRoutes: + output.InternetGatewayRoutes !== undefined && output.InternetGatewayRoutes !== null + ? deserializeAws_json1_1Routes(output.InternetGatewayRoutes, context) + : undefined, + RouteTableId: __expectString(output.RouteTableId), + SubnetAvailabilityZone: __expectString(output.SubnetAvailabilityZone), + SubnetAvailabilityZoneId: __expectString(output.SubnetAvailabilityZoneId), + SubnetId: __expectString(output.SubnetId), + ViolatingRoutes: + output.ViolatingRoutes !== undefined && output.ViolatingRoutes !== null + ? deserializeAws_json1_1Routes(output.ViolatingRoutes, context) + : undefined, + VpcId: __expectString(output.VpcId), + } as any; +}; + const deserializeAws_json1_1Routes = (output: any, context: __SerdeContext): Route[] => { const retVal = (output || []) .filter((e: any) => e != null) @@ -3851,6 +3976,10 @@ const deserializeAws_json1_1SecurityServicePolicyData = ( ): SecurityServicePolicyData => { return { ManagedServiceData: __expectString(output.ManagedServiceData), + PolicyOption: + output.PolicyOption !== undefined && output.PolicyOption !== null + ? deserializeAws_json1_1PolicyOption(output.PolicyOption, context) + : undefined, Type: __expectString(output.Type), } as any; }; diff --git a/clients/client-lightsail/src/Lightsail.ts b/clients/client-lightsail/src/Lightsail.ts index 1e2f6f750655..f3948bbe93c0 100644 --- a/clients/client-lightsail/src/Lightsail.ts +++ b/clients/client-lightsail/src/Lightsail.ts @@ -1016,8 +1016,8 @@ export class Lightsail extends LightsailClient { * an access key ID and corresponding secret access key.

              * *

              Access keys grant full programmatic access to the specified bucket and its objects. You - * can have a maximum of two access keys per bucket. Use the GetBucketAccessKeys action to get a list of current access keys for a specific bucket. For more information - * about access keys, see Creating access keys for a bucket in Amazon Lightsail in the + * can have a maximum of two access keys per bucket. Use the GetBucketAccessKeys action to get a list of current access keys for a specific bucket. For more + * information about access keys, see Creating access keys for a bucket in Amazon Lightsail in the * Amazon Lightsail Developer Guide.

              * * @@ -1635,7 +1635,13 @@ export class Lightsail extends LightsailClient { } /** - *

              Creates an SSH key pair.

              + *

              Creates a custom SSH key pair that you can use with an Amazon Lightsail + * instance.

              + * + *

              Use the DownloadDefaultKeyPair action to create a Lightsail default key + * pair in an Amazon Web Services Region where a default key pair does not currently + * exist.

              + *
              *

              The create key pair operation supports tag-based access control via request * tags. For more information, see the Amazon Lightsail Developer Guide.

              */ @@ -2364,8 +2370,11 @@ export class Lightsail extends LightsailClient { } /** - *

              Deletes a specific SSH key pair.

              - * + *

              Deletes the specified key pair by removing the public key from Amazon Lightsail.

              + *

              You can delete key pairs that were created using the ImportKeyPair and + * CreateKeyPair actions, as well as the Lightsail default key pair. A new default + * key pair will not be created unless you launch an instance without specifying a custom key + * pair, or you call the DownloadDefaultKeyPair API.

              * *

              The delete key pair operation supports tag-based access control via resource * tags applied to the resource identified by key pair name. For more information, @@ -2747,7 +2756,9 @@ export class Lightsail extends LightsailClient { } /** - *

              Downloads the default SSH key pair from the user's account.

              + *

              Downloads the regional Amazon Lightsail default key pair.

              + *

              This action also creates a Lightsail default key pair if a default key pair + * does not currently exist in the Amazon Web Services Region.

              */ public downloadDefaultKeyPair( args: DownloadDefaultKeyPairCommandInput, @@ -2994,8 +3005,8 @@ export class Lightsail extends LightsailClient { * * *

              This action does not return the secret access key value of an access key. You can get a - * secret access key only when you create it from the response of the CreateBucketAccessKey action. If you lose the secret access key, you must - * create a new access key.

              + * secret access key only when you create it from the response of the CreateBucketAccessKey action. If you lose the secret access key, you must create + * a new access key.

              *
              */ public getBucketAccessKeys( @@ -3033,8 +3044,8 @@ export class Lightsail extends LightsailClient { *

              The bucket bundle specifies the monthly cost, storage quota, and data transfer quota for a * bucket.

              * - *

              Use the UpdateBucketBundle action to update the bundle for a - * bucket.

              + *

              Use the UpdateBucketBundle action to update the + * bundle for a bucket.

              */ public getBucketBundles( args: GetBucketBundlesCommandInput, @@ -3838,7 +3849,8 @@ export class Lightsail extends LightsailClient { *

              Returns all export snapshot records created as a result of the export * snapshot operation.

              *

              An export snapshot record can be used to create a new Amazon EC2 instance and its related - * resources with the CreateCloudFormationStack action.

              + * resources with the CreateCloudFormationStack + * action.

              */ public getExportSnapshotRecords( args: GetExportSnapshotRecordsCommandInput, @@ -5697,8 +5709,8 @@ export class Lightsail extends LightsailClient { * *

              A bucket bundle specifies the monthly cost, storage space, and data transfer quota for a * bucket. You can update a bucket's bundle only one time within a monthly AWS billing cycle. To - * determine if you can update a bucket's bundle, use the GetBuckets action. - * The ableToUpdateBundle parameter in the response will indicate whether you can + * determine if you can update a bucket's bundle, use the GetBuckets action. The + * ableToUpdateBundle parameter in the response will indicate whether you can * currently update a bucket's bundle.

              * *

              Update a bucket's bundle if it's consistently going over its storage space or data diff --git a/clients/client-lightsail/src/commands/CreateBucketAccessKeyCommand.ts b/clients/client-lightsail/src/commands/CreateBucketAccessKeyCommand.ts index e21626daf5c7..cb16f18f1d3c 100644 --- a/clients/client-lightsail/src/commands/CreateBucketAccessKeyCommand.ts +++ b/clients/client-lightsail/src/commands/CreateBucketAccessKeyCommand.ts @@ -26,8 +26,8 @@ export interface CreateBucketAccessKeyCommandOutput extends CreateBucketAccessKe * an access key ID and corresponding secret access key.

              * *

              Access keys grant full programmatic access to the specified bucket and its objects. You - * can have a maximum of two access keys per bucket. Use the GetBucketAccessKeys action to get a list of current access keys for a specific bucket. For more information - * about access keys, see Creating access keys for a bucket in Amazon Lightsail in the + * can have a maximum of two access keys per bucket. Use the GetBucketAccessKeys action to get a list of current access keys for a specific bucket. For more + * information about access keys, see Creating access keys for a bucket in Amazon Lightsail in the * Amazon Lightsail Developer Guide.

              * * diff --git a/clients/client-lightsail/src/commands/CreateKeyPairCommand.ts b/clients/client-lightsail/src/commands/CreateKeyPairCommand.ts index 2a726b33dada..1bf81bb46a07 100644 --- a/clients/client-lightsail/src/commands/CreateKeyPairCommand.ts +++ b/clients/client-lightsail/src/commands/CreateKeyPairCommand.ts @@ -22,7 +22,13 @@ export interface CreateKeyPairCommandInput extends CreateKeyPairRequest {} export interface CreateKeyPairCommandOutput extends CreateKeyPairResult, __MetadataBearer {} /** - *

              Creates an SSH key pair.

              + *

              Creates a custom SSH key pair that you can use with an Amazon Lightsail + * instance.

              + * + *

              Use the DownloadDefaultKeyPair action to create a Lightsail default key + * pair in an Amazon Web Services Region where a default key pair does not currently + * exist.

              + *
              *

              The create key pair operation supports tag-based access control via request * tags. For more information, see the Amazon Lightsail Developer Guide.

              * @example diff --git a/clients/client-lightsail/src/commands/DeleteKeyPairCommand.ts b/clients/client-lightsail/src/commands/DeleteKeyPairCommand.ts index b937024b68c2..76cd29a2838c 100644 --- a/clients/client-lightsail/src/commands/DeleteKeyPairCommand.ts +++ b/clients/client-lightsail/src/commands/DeleteKeyPairCommand.ts @@ -22,8 +22,11 @@ export interface DeleteKeyPairCommandInput extends DeleteKeyPairRequest {} export interface DeleteKeyPairCommandOutput extends DeleteKeyPairResult, __MetadataBearer {} /** - *

              Deletes a specific SSH key pair.

              - * + *

              Deletes the specified key pair by removing the public key from Amazon Lightsail.

              + *

              You can delete key pairs that were created using the ImportKeyPair and + * CreateKeyPair actions, as well as the Lightsail default key pair. A new default + * key pair will not be created unless you launch an instance without specifying a custom key + * pair, or you call the DownloadDefaultKeyPair API.

              * *

              The delete key pair operation supports tag-based access control via resource * tags applied to the resource identified by key pair name. For more information, diff --git a/clients/client-lightsail/src/commands/DownloadDefaultKeyPairCommand.ts b/clients/client-lightsail/src/commands/DownloadDefaultKeyPairCommand.ts index 5922a61bb534..678a78efcf01 100644 --- a/clients/client-lightsail/src/commands/DownloadDefaultKeyPairCommand.ts +++ b/clients/client-lightsail/src/commands/DownloadDefaultKeyPairCommand.ts @@ -22,7 +22,9 @@ export interface DownloadDefaultKeyPairCommandInput extends DownloadDefaultKeyPa export interface DownloadDefaultKeyPairCommandOutput extends DownloadDefaultKeyPairResult, __MetadataBearer {} /** - *

              Downloads the default SSH key pair from the user's account.

              + *

              Downloads the regional Amazon Lightsail default key pair.

              + *

              This action also creates a Lightsail default key pair if a default key pair + * does not currently exist in the Amazon Web Services Region.

              * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-lightsail/src/commands/GetBucketAccessKeysCommand.ts b/clients/client-lightsail/src/commands/GetBucketAccessKeysCommand.ts index 9cfde7bc683f..8e633f338eb4 100644 --- a/clients/client-lightsail/src/commands/GetBucketAccessKeysCommand.ts +++ b/clients/client-lightsail/src/commands/GetBucketAccessKeysCommand.ts @@ -26,8 +26,8 @@ export interface GetBucketAccessKeysCommandOutput extends GetBucketAccessKeysRes * * *

              This action does not return the secret access key value of an access key. You can get a - * secret access key only when you create it from the response of the CreateBucketAccessKey action. If you lose the secret access key, you must - * create a new access key.

              + * secret access key only when you create it from the response of the CreateBucketAccessKey action. If you lose the secret access key, you must create + * a new access key.

              *
              * @example * Use a bare-bones client and the command you need to make an API call. diff --git a/clients/client-lightsail/src/commands/GetBucketBundlesCommand.ts b/clients/client-lightsail/src/commands/GetBucketBundlesCommand.ts index 6f766b250bb7..cc61579bb4c5 100644 --- a/clients/client-lightsail/src/commands/GetBucketBundlesCommand.ts +++ b/clients/client-lightsail/src/commands/GetBucketBundlesCommand.ts @@ -27,8 +27,8 @@ export interface GetBucketBundlesCommandOutput extends GetBucketBundlesResult, _ *

              The bucket bundle specifies the monthly cost, storage quota, and data transfer quota for a * bucket.

              * - *

              Use the UpdateBucketBundle action to update the bundle for a - * bucket.

              + *

              Use the UpdateBucketBundle action to update the + * bundle for a bucket.

              * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-lightsail/src/commands/GetExportSnapshotRecordsCommand.ts b/clients/client-lightsail/src/commands/GetExportSnapshotRecordsCommand.ts index 8fd0372a4d4a..6aa9e4f91f40 100644 --- a/clients/client-lightsail/src/commands/GetExportSnapshotRecordsCommand.ts +++ b/clients/client-lightsail/src/commands/GetExportSnapshotRecordsCommand.ts @@ -25,7 +25,8 @@ export interface GetExportSnapshotRecordsCommandOutput extends GetExportSnapshot *

              Returns all export snapshot records created as a result of the export * snapshot operation.

              *

              An export snapshot record can be used to create a new Amazon EC2 instance and its related - * resources with the CreateCloudFormationStack action.

              + * resources with the CreateCloudFormationStack + * action.

              * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-lightsail/src/commands/UpdateBucketBundleCommand.ts b/clients/client-lightsail/src/commands/UpdateBucketBundleCommand.ts index 02e42a42e1f1..9a59734540a5 100644 --- a/clients/client-lightsail/src/commands/UpdateBucketBundleCommand.ts +++ b/clients/client-lightsail/src/commands/UpdateBucketBundleCommand.ts @@ -26,8 +26,8 @@ export interface UpdateBucketBundleCommandOutput extends UpdateBucketBundleResul * *

              A bucket bundle specifies the monthly cost, storage space, and data transfer quota for a * bucket. You can update a bucket's bundle only one time within a monthly AWS billing cycle. To - * determine if you can update a bucket's bundle, use the GetBuckets action. - * The ableToUpdateBundle parameter in the response will indicate whether you can + * determine if you can update a bucket's bundle, use the GetBuckets action. The + * ableToUpdateBundle parameter in the response will indicate whether you can * currently update a bucket's bundle.

              * *

              Update a bucket's bundle if it's consistently going over its storage space or data diff --git a/clients/client-lightsail/src/models/models_0.ts b/clients/client-lightsail/src/models/models_0.ts index 94ed3d0c3f00..a0abadb07a01 100644 --- a/clients/client-lightsail/src/models/models_0.ts +++ b/clients/client-lightsail/src/models/models_0.ts @@ -38,7 +38,7 @@ export enum AccessDirection { *

              Describes the last time an access key was used.

              * * - *

              This object does not include data in the response of a CreateBucketAccessKey action.

              + *

              This object does not include data in the response of a CreateBucketAccessKey action.

              *
              */ export interface AccessKeyLastUsed { @@ -79,7 +79,7 @@ export enum StatusType { *

              Describes an access key for an Amazon Lightsail bucket.

              * *

              Access keys grant full programmatic access to the specified bucket and its objects. You - * can have a maximum of two access keys per bucket. Use the CreateBucketAccessKey action to create an access key for a specific bucket. For + * can have a maximum of two access keys per bucket. Use the CreateBucketAccessKey action to create an access key for a specific bucket. For * more information about access keys, see Creating access keys for a bucket in Amazon Lightsail in the * Amazon Lightsail Developer Guide.

              * @@ -121,7 +121,7 @@ export interface AccessKey { *

              An object that describes the last time the access key was used.

              * * - *

              This object does not include data in the response of a CreateBucketAccessKey action. If the access key has not been used, the + *

              This object does not include data in the response of a CreateBucketAccessKey action. If the access key has not been used, the * region and serviceName values are N/A, and the * lastUsedDate value is null.

              *
              @@ -1675,8 +1675,8 @@ export interface Bucket { *

              A bucket bundle specifies the monthly cost, storage space, and data transfer quota for a * bucket.

              * - *

              Use the UpdateBucketBundle action to change the bundle of a - * bucket.

              + *

              Use the UpdateBucketBundle action to change the + * bundle of a bucket.

              */ bundleId?: string; @@ -1742,7 +1742,8 @@ export interface Bucket { *

              You can update a bucket's bundle only one time within a monthly AWS billing * cycle.

              * - *

              Use the UpdateBucketBundle action to change a bucket's bundle.

              + *

              Use the UpdateBucketBundle action to change a + * bucket's bundle.

              */ ableToUpdateBundle?: boolean; @@ -1756,8 +1757,8 @@ export interface Bucket { *

              An array of objects that describe Lightsail instances that have access to the * bucket.

              * - *

              Use the SetResourceAccessForBucket action to update the instances that - * have access to a bucket.

              + *

              Use the SetResourceAccessForBucket + * action to update the instances that have access to a bucket.

              */ resourcesReceivingAccess?: ResourceReceivingAccess[]; @@ -1964,7 +1965,6 @@ export namespace CacheBehavior { * or file type that your distribution will cache. Alternately, if the distribution's * cacheBehavior is dont-cache, then a per-path cache behavior can be * used to specify a directory, file, or file type that your distribution will not cache.

              - *

              if the cacheBehavior's behavior is set to 'cache', then

              */ export interface CacheBehaviorPerPath { /** @@ -3103,11 +3103,11 @@ export interface Container { *

              Container images sourced from your Lightsail container service, that are registered and * stored on your service, start with a colon (:). For example, if your container * service name is container-service-1, the container image label is - * mystaticsite, and you want to use the third (3) version of the + * mystaticsite, and you want to use the third (3) version of the * registered container image, then you should specify - * :container-service-1.mystaticsite.3. To use the latest version of a container + * :container-service-1.mystaticsite.3. To use the latest version of a container * image, specify latest instead of a version number (for example, - * :container-service-1.mystaticsite.latest). Lightsail will automatically use + * :container-service-1.mystaticsite.latest). Lightsail will automatically use * the highest numbered version of the registered container image.

              * *

              Container images sourced from a public registry like Docker Hub don't start with a colon. @@ -3941,18 +3941,19 @@ export interface CreateBucketRequest { *

              A bucket bundle specifies the monthly cost, storage space, and data transfer quota for a * bucket.

              * - *

              Use the GetBucketBundles action to get a list of bundle IDs that you can - * specify.

              + *

              Use the GetBucketBundles action to get a list of + * bundle IDs that you can specify.

              * - *

              Use the UpdateBucketBundle action to change the bundle after the bucket - * is created.

              + *

              Use the UpdateBucketBundle action to change the + * bundle after the bucket is created.

              */ bundleId: string | undefined; /** *

              The tag keys and optional values to add to the bucket during creation.

              * - *

              Use the TagResource action to tag the bucket after it's created.

              + *

              Use the TagResource action to tag the bucket after it's + * created.

              */ tags?: Tag[]; @@ -4746,8 +4747,8 @@ export enum OriginProtocolPolicyEnum { /** *

              Describes the origin resource of an Amazon Lightsail content delivery network (CDN) * distribution.

              - *

              An origin can be a Lightsail instance or load balancer. A distribution pulls content - * from an origin, caches it, and serves it to viewers via a worldwide network of edge + *

              An origin can be a Lightsail instance, bucket, or load balancer. A distribution pulls + * content from an origin, caches it, and serves it to viewers via a worldwide network of edge * servers.

              */ export interface InputOrigin { @@ -4785,7 +4786,7 @@ export interface CreateDistributionRequest { /** *

              An object that describes the origin resource for the distribution, such as a Lightsail - * instance or load balancer.

              + * instance, bucket, or load balancer.

              *

              The distribution pulls, caches, and serves content from the origin.

              */ origin: InputOrigin | undefined; @@ -4843,8 +4844,8 @@ export namespace CreateDistributionRequest { /** *

              Describes the origin resource of an Amazon Lightsail content delivery network (CDN) * distribution.

              - *

              An origin can be a Lightsail instance or load balancer. A distribution pulls content - * from an origin, caches it, and serves it to viewers via a worldwide network of edge + *

              An origin can be a Lightsail instance, bucket, or load balancer. A distribution pulls + * content from an origin, caches it, and serves it to viewers via a worldwide network of edge * servers.

              */ export interface Origin { @@ -4953,7 +4954,7 @@ export interface LightsailDistribution { /** *

              An object that describes the origin resource of the distribution, such as a Lightsail - * instance or load balancer.

              + * instance, bucket, or load balancer.

              *

              The distribution pulls, caches, and serves content from the origin.

              */ origin?: Origin; @@ -6295,8 +6296,8 @@ export interface DeleteBucketRequest { /** *

              The name of the bucket to delete.

              * - *

              Use the GetBuckets action to get a list of bucket names that you can - * specify.

              + *

              Use the GetBuckets action to get a list of bucket names + * that you can specify.

              */ bucketName: string | undefined; @@ -6309,7 +6310,7 @@ export interface DeleteBucketRequest { *

              The bucket is the origin of a distribution.

              *
            39. *
            40. - *

              The bucket has instances that were granted access to it using the SetResourceAccessForBucket action.

              + *

              The bucket has instances that were granted access to it using the SetResourceAccessForBucket action.

              *
            41. *
            42. *

              The bucket has objects.

              @@ -6362,8 +6363,8 @@ export interface DeleteBucketAccessKeyRequest { /** *

              The ID of the access key to delete.

              * - *

              Use the GetBucketAccessKeys action to get a list of access key IDs that - * you can specify.

              + *

              Use the GetBucketAccessKeys action to get a + * list of access key IDs that you can specify.

              */ accessKeyId: string | undefined; } @@ -6792,6 +6793,15 @@ export interface DeleteKeyPairRequest { *

              The name of the key pair to delete.

              */ keyPairName: string | undefined; + + /** + *

              The RSA fingerprint of the Lightsail default key pair to delete.

              + * + *

              The expectedFingerprint parameter is required only when specifying to + * delete a Lightsail default key pair.

              + *
              + */ + expectedFingerprint?: string; } export namespace DeleteKeyPairRequest { @@ -7616,6 +7626,11 @@ export interface DownloadDefaultKeyPairResult { *

              A base64-encoded RSA private key.

              */ privateKeyBase64?: string; + + /** + *

              The timestamp when the default key pair was created.

              + */ + createdAt?: Date; } export namespace DownloadDefaultKeyPairResult { @@ -8307,7 +8322,8 @@ export interface GetBucketsRequest { /** *

              A Boolean value that indicates whether to include Lightsail instances that were given - * access to the bucket using the SetResourceAccessForBucket action.

              + * access to the bucket using the SetResourceAccessForBucket + * action.

              */ includeConnectedResources?: boolean; } diff --git a/clients/client-lightsail/src/models/models_1.ts b/clients/client-lightsail/src/models/models_1.ts index 84c4b4639bf1..5739b4cb33dd 100644 --- a/clients/client-lightsail/src/models/models_1.ts +++ b/clients/client-lightsail/src/models/models_1.ts @@ -1194,6 +1194,12 @@ export interface GetKeyPairsRequest { * token in a subsequent request.

              */ pageToken?: string; + + /** + *

              A Boolean value that indicates whether to include the default key pair in the response of + * your request.

              + */ + includeDefaultKeyPair?: boolean; } export namespace GetKeyPairsRequest { @@ -5275,8 +5281,8 @@ export interface UpdateBucketBundleRequest { /** *

              The ID of the new bundle to apply to the bucket.

              * - *

              Use the GetBucketBundles action to get a list of bundle IDs that you can - * specify.

              + *

              Use the GetBucketBundles action to get a list of + * bundle IDs that you can specify.

              */ bundleId: string | undefined; } @@ -5401,7 +5407,7 @@ export interface UpdateDistributionRequest { /** *

              An object that describes the origin resource for the distribution, such as a Lightsail - * instance or load balancer.

              + * instance, bucket, or load balancer.

              *

              The distribution pulls, caches, and serves content from the origin.

              */ origin?: InputOrigin; diff --git a/clients/client-lightsail/src/protocols/Aws_json1_1.ts b/clients/client-lightsail/src/protocols/Aws_json1_1.ts index f43c6ac22cfa..7a5064d88594 100644 --- a/clients/client-lightsail/src/protocols/Aws_json1_1.ts +++ b/clients/client-lightsail/src/protocols/Aws_json1_1.ts @@ -12814,6 +12814,8 @@ const serializeAws_json1_1DeleteInstanceSnapshotRequest = ( const serializeAws_json1_1DeleteKeyPairRequest = (input: DeleteKeyPairRequest, context: __SerdeContext): any => { return { + ...(input.expectedFingerprint !== undefined && + input.expectedFingerprint !== null && { expectedFingerprint: input.expectedFingerprint }), ...(input.keyPairName !== undefined && input.keyPairName !== null && { keyPairName: input.keyPairName }), }; }; @@ -13375,6 +13377,8 @@ const serializeAws_json1_1GetKeyPairRequest = (input: GetKeyPairRequest, context const serializeAws_json1_1GetKeyPairsRequest = (input: GetKeyPairsRequest, context: __SerdeContext): any => { return { + ...(input.includeDefaultKeyPair !== undefined && + input.includeDefaultKeyPair !== null && { includeDefaultKeyPair: input.includeDefaultKeyPair }), ...(input.pageToken !== undefined && input.pageToken !== null && { pageToken: input.pageToken }), }; }; @@ -16034,6 +16038,10 @@ const deserializeAws_json1_1DownloadDefaultKeyPairResult = ( context: __SerdeContext ): DownloadDefaultKeyPairResult => { return { + createdAt: + output.createdAt !== undefined && output.createdAt !== null + ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.createdAt))) + : undefined, privateKeyBase64: __expectString(output.privateKeyBase64), publicKeyBase64: __expectString(output.publicKeyBase64), } as any; diff --git a/clients/client-route-53/src/Route53.ts b/clients/client-route-53/src/Route53.ts index 897db54a9f70..dd24b50b6048 100644 --- a/clients/client-route-53/src/Route53.ts +++ b/clients/client-route-53/src/Route53.ts @@ -363,6 +363,28 @@ export class Route53 extends Route53Client { * CreateVPCAssociationAuthorization request. Then the account that created the VPC must submit an * AssociateVPCWithHostedZone request.

              * + * + *

              When granting access, the hosted zone and the Amazon VPC must belong to the same partition. A + * partition is a group of Amazon Web Services Regions. Each Amazon Web Services account is scoped to one + * partition.

              + *

              The following are the supported partitions:

              + *
                + *
              • + *

                + * aws - Amazon Web Services Regions

                + *
              • + *
              • + *

                + * aws-cn - China Regions

                + *
              • + *
              • + *

                + * aws-us-gov - Amazon Web Services GovCloud (US) Region

                + *
              • + *
              + *

              For more information, see Access Management + * in the Amazon Web Services General Reference.

              + *
              */ public associateVPCWithHostedZone( args: AssociateVPCWithHostedZoneCommandInput, @@ -443,8 +465,8 @@ export class Route53 extends Route53Client { *
            43. *
            44. *

              - * UPSERT: If a resource record set does not already exist, Amazon Web Services creates it. - * If a resource set does exist, Route 53 updates it with the values in the request.

              + * UPSERT: If a resource set exists Route 53 updates it with the values in the + * request.

              *
            45. * * @@ -640,6 +662,27 @@ export class Route53 extends Route53Client { * For public hosted zones, this means that the NS and SOA records are not yet available on all Route 53 DNS servers. When the * NS and SOA records are available, the status of the zone changes to INSYNC.

              *

              The CreateHostedZone request requires the caller to have an ec2:DescribeVpcs permission.

              + * + *

              When creating private hosted zones, the Amazon VPC must belong to the same partition + * where the hosted zone is created. A partition is a group of Amazon Web Services Regions. Each Amazon Web Services account is scoped to one partition.

              + *

              The following are the supported partitions:

              + *
                + *
              • + *

                + * aws - Amazon Web Services Regions

                + *
              • + *
              • + *

                + * aws-cn - China Regions

                + *
              • + *
              • + *

                + * aws-us-gov - Amazon Web Services GovCloud (US) Region

                + *
              • + *
              + *

              For more information, see Access Management + * in the Amazon Web Services General Reference.

              + *
              */ public createHostedZone( args: CreateHostedZoneCommandInput, @@ -762,6 +805,28 @@ export class Route53 extends Route53Client { *

              * arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/* *

              + * + *

              To avoid the confused deputy problem, a security issue where an entity without a + * permission for an action can coerce a more-privileged entity to + * perform it, you can optionally limit the permissions that a service + * has to a resource in a resource-based policy by supplying the + * following values:

              + *
                + *
              • + *

                For aws:SourceArn, supply the hosted zone ARN used in creating the query logging + * configuration. For example, aws:SourceArn: + * arn:aws:route53:::hostedzone/hosted zone + * ID.

                + *
              • + *
              • + *

                For aws:SourceAccount, supply the account ID for the account that creates the + * query logging configuration. For example, + * aws:SourceAccount:111111111111.

                + *
              • + *
              + *

              For more information, see The confused + * deputy problem in the Amazon Web Services + * IAM User Guide.

              * *

              You can't use the CloudWatch console to create or edit a resource policy. You must use the CloudWatch API, one of the Amazon Web Services SDKs, * or the CLI.

              @@ -1511,6 +1576,27 @@ export class Route53 extends Route53Client { * If the hosted zone has a value for OwningService, you can't use DisassociateVPCFromHostedZone.

              * * + * + *

              When revoking access, the hosted zone and the Amazon VPC must belong to the same + * partition. A partition is a group of Amazon Web Services Regions. Each Amazon Web Services account is scoped to one partition.

              + *

              The following are the supported partitions:

              + *
                + *
              • + *

                + * aws - Amazon Web Services Regions

                + *
              • + *
              • + *

                + * aws-cn - China Regions

                + *
              • + *
              • + *

                + * aws-us-gov - Amazon Web Services GovCloud (US) Region

                + *
              • + *
              + *

              For more information, see Access Management + * in the Amazon Web Services General Reference.

              + *
              */ public disassociateVPCFromHostedZone( args: DisassociateVPCFromHostedZoneCommandInput, @@ -2406,6 +2492,29 @@ export class Route53 extends Route53Client { * efs.amazonaws.com.

              * * + * + *

              When listing private hosted zones, the hosted zone and the Amazon VPC must belong to + * the same partition where the hosted zones were created. A partition is a group of + * Amazon Web Services Regions. Each Amazon Web Services account is scoped to one + * partition.

              + *

              The following are the supported partitions:

              + *
                + *
              • + *

                + * aws - Amazon Web Services Regions

                + *
              • + *
              • + *

                + * aws-cn - China Regions

                + *
              • + *
              • + *

                + * aws-us-gov - Amazon Web Services GovCloud (US) Region

                + *
              • + *
              + *

              For more information, see Access Management + * in the Amazon Web Services General Reference.

              + *
              */ public listHostedZonesByVPC( args: ListHostedZonesByVPCCommandInput, diff --git a/clients/client-route-53/src/commands/AssociateVPCWithHostedZoneCommand.ts b/clients/client-route-53/src/commands/AssociateVPCWithHostedZoneCommand.ts index 47fa166c31e0..c59675a926a0 100644 --- a/clients/client-route-53/src/commands/AssociateVPCWithHostedZoneCommand.ts +++ b/clients/client-route-53/src/commands/AssociateVPCWithHostedZoneCommand.ts @@ -34,6 +34,28 @@ export interface AssociateVPCWithHostedZoneCommandOutput extends AssociateVPCWit * CreateVPCAssociationAuthorization request. Then the account that created the VPC must submit an * AssociateVPCWithHostedZone request.

              *
              + * + *

              When granting access, the hosted zone and the Amazon VPC must belong to the same partition. A + * partition is a group of Amazon Web Services Regions. Each Amazon Web Services account is scoped to one + * partition.

              + *

              The following are the supported partitions:

              + *
                + *
              • + *

                + * aws - Amazon Web Services Regions

                + *
              • + *
              • + *

                + * aws-cn - China Regions

                + *
              • + *
              • + *

                + * aws-us-gov - Amazon Web Services GovCloud (US) Region

                + *
              • + *
              + *

              For more information, see Access Management + * in the Amazon Web Services General Reference.

              + *
              * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-route-53/src/commands/ChangeResourceRecordSetsCommand.ts b/clients/client-route-53/src/commands/ChangeResourceRecordSetsCommand.ts index 92b8252a9596..0a7eb114a5d5 100644 --- a/clients/client-route-53/src/commands/ChangeResourceRecordSetsCommand.ts +++ b/clients/client-route-53/src/commands/ChangeResourceRecordSetsCommand.ts @@ -72,8 +72,8 @@ export interface ChangeResourceRecordSetsCommandOutput extends ChangeResourceRec * *
            46. *

              - * UPSERT: If a resource record set does not already exist, Amazon Web Services creates it. - * If a resource set does exist, Route 53 updates it with the values in the request.

              + * UPSERT: If a resource set exists Route 53 updates it with the values in the + * request.

              *
            47. * * diff --git a/clients/client-route-53/src/commands/CreateHostedZoneCommand.ts b/clients/client-route-53/src/commands/CreateHostedZoneCommand.ts index 6b51304d794d..df8333e49bce 100644 --- a/clients/client-route-53/src/commands/CreateHostedZoneCommand.ts +++ b/clients/client-route-53/src/commands/CreateHostedZoneCommand.ts @@ -56,6 +56,27 @@ export interface CreateHostedZoneCommandOutput extends CreateHostedZoneResponse, * For public hosted zones, this means that the NS and SOA records are not yet available on all Route 53 DNS servers. When the * NS and SOA records are available, the status of the zone changes to INSYNC.

              *

              The CreateHostedZone request requires the caller to have an ec2:DescribeVpcs permission.

              + * + *

              When creating private hosted zones, the Amazon VPC must belong to the same partition + * where the hosted zone is created. A partition is a group of Amazon Web Services Regions. Each Amazon Web Services account is scoped to one partition.

              + *

              The following are the supported partitions:

              + *
                + *
              • + *

                + * aws - Amazon Web Services Regions

                + *
              • + *
              • + *

                + * aws-cn - China Regions

                + *
              • + *
              • + *

                + * aws-us-gov - Amazon Web Services GovCloud (US) Region

                + *
              • + *
              + *

              For more information, see Access Management + * in the Amazon Web Services General Reference.

              + *
              * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-route-53/src/commands/CreateQueryLoggingConfigCommand.ts b/clients/client-route-53/src/commands/CreateQueryLoggingConfigCommand.ts index f9dd5cef745d..a1f8e1007d53 100644 --- a/clients/client-route-53/src/commands/CreateQueryLoggingConfigCommand.ts +++ b/clients/client-route-53/src/commands/CreateQueryLoggingConfigCommand.ts @@ -82,6 +82,28 @@ export interface CreateQueryLoggingConfigCommandOutput extends CreateQueryLoggin *

              * arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/* *

              + * + *

              To avoid the confused deputy problem, a security issue where an entity without a + * permission for an action can coerce a more-privileged entity to + * perform it, you can optionally limit the permissions that a service + * has to a resource in a resource-based policy by supplying the + * following values:

              + *
                + *
              • + *

                For aws:SourceArn, supply the hosted zone ARN used in creating the query logging + * configuration. For example, aws:SourceArn: + * arn:aws:route53:::hostedzone/hosted zone + * ID.

                + *
              • + *
              • + *

                For aws:SourceAccount, supply the account ID for the account that creates the + * query logging configuration. For example, + * aws:SourceAccount:111111111111.

                + *
              • + *
              + *

              For more information, see The confused + * deputy problem in the Amazon Web Services + * IAM User Guide.

              * *

              You can't use the CloudWatch console to create or edit a resource policy. You must use the CloudWatch API, one of the Amazon Web Services SDKs, * or the CLI.

              diff --git a/clients/client-route-53/src/commands/DisassociateVPCFromHostedZoneCommand.ts b/clients/client-route-53/src/commands/DisassociateVPCFromHostedZoneCommand.ts index d5908dea40f6..a90c4a2e8952 100644 --- a/clients/client-route-53/src/commands/DisassociateVPCFromHostedZoneCommand.ts +++ b/clients/client-route-53/src/commands/DisassociateVPCFromHostedZoneCommand.ts @@ -46,6 +46,27 @@ export interface DisassociateVPCFromHostedZoneCommandOutput * If the hosted zone has a value for OwningService, you can't use DisassociateVPCFromHostedZone.

              * * + * + *

              When revoking access, the hosted zone and the Amazon VPC must belong to the same + * partition. A partition is a group of Amazon Web Services Regions. Each Amazon Web Services account is scoped to one partition.

              + *

              The following are the supported partitions:

              + *
                + *
              • + *

                + * aws - Amazon Web Services Regions

                + *
              • + *
              • + *

                + * aws-cn - China Regions

                + *
              • + *
              • + *

                + * aws-us-gov - Amazon Web Services GovCloud (US) Region

                + *
              • + *
              + *

              For more information, see Access Management + * in the Amazon Web Services General Reference.

              + *
              * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-route-53/src/commands/ListHostedZonesByVPCCommand.ts b/clients/client-route-53/src/commands/ListHostedZonesByVPCCommand.ts index 6ffca95ea755..85180cc89333 100644 --- a/clients/client-route-53/src/commands/ListHostedZonesByVPCCommand.ts +++ b/clients/client-route-53/src/commands/ListHostedZonesByVPCCommand.ts @@ -35,6 +35,29 @@ export interface ListHostedZonesByVPCCommandOutput extends ListHostedZonesByVPCR * efs.amazonaws.com.

              * * + * + *

              When listing private hosted zones, the hosted zone and the Amazon VPC must belong to + * the same partition where the hosted zones were created. A partition is a group of + * Amazon Web Services Regions. Each Amazon Web Services account is scoped to one + * partition.

              + *

              The following are the supported partitions:

              + *
                + *
              • + *

                + * aws - Amazon Web Services Regions

                + *
              • + *
              • + *

                + * aws-cn - China Regions

                + *
              • + *
              • + *

                + * aws-us-gov - Amazon Web Services GovCloud (US) Region

                + *
              • + *
              + *

              For more information, see Access Management + * in the Amazon Web Services General Reference.

              + *
              * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-s3-control/src/models/models_0.ts b/clients/client-s3-control/src/models/models_0.ts index 1be355ea0a00..9d79bde5b35f 100644 --- a/clients/client-s3-control/src/models/models_0.ts +++ b/clients/client-s3-control/src/models/models_0.ts @@ -1631,6 +1631,13 @@ export namespace S3SetObjectAclOperation { }); } +export enum S3ChecksumAlgorithm { + CRC32 = "CRC32", + CRC32C = "CRC32C", + SHA1 = "SHA1", + SHA256 = "SHA256", +} + export enum S3MetadataDirective { COPY = "COPY", REPLACE = "REPLACE", @@ -1857,6 +1864,13 @@ export interface S3CopyObjectOperation { * bucket-level settings for S3 Bucket Key.

              */ BucketKeyEnabled?: boolean; + + /** + *

              Indicates the algorithm you want Amazon S3 to use to create the checksum. For more information + * see + * Checking object integrity in the Amazon S3 User Guide.

              + */ + ChecksumAlgorithm?: S3ChecksumAlgorithm | string; } export namespace S3CopyObjectOperation { diff --git a/clients/client-s3-control/src/protocols/Aws_restXml.ts b/clients/client-s3-control/src/protocols/Aws_restXml.ts index fafe86fe59f1..4f90455dd398 100644 --- a/clients/client-s3-control/src/protocols/Aws_restXml.ts +++ b/clients/client-s3-control/src/protocols/Aws_restXml.ts @@ -6596,6 +6596,12 @@ const serializeAws_restXmlS3CopyObjectOperation = (input: S3CopyObjectOperation, .withName("BucketKeyEnabled"); bodyNode.addChildNode(node); } + if (input.ChecksumAlgorithm !== undefined && input.ChecksumAlgorithm !== null) { + const node = new __XmlNode("S3ChecksumAlgorithm") + .addChildNode(new __XmlText(input.ChecksumAlgorithm)) + .withName("ChecksumAlgorithm"); + bodyNode.addChildNode(node); + } return bodyNode; }; @@ -8680,6 +8686,7 @@ const deserializeAws_restXmlS3CopyObjectOperation = (output: any, context: __Ser ObjectLockMode: undefined, ObjectLockRetainUntilDate: undefined, BucketKeyEnabled: undefined, + ChecksumAlgorithm: undefined, }; if (output["TargetResource"] !== undefined) { contents.TargetResource = __expectString(output["TargetResource"]); @@ -8744,6 +8751,9 @@ const deserializeAws_restXmlS3CopyObjectOperation = (output: any, context: __Ser if (output["BucketKeyEnabled"] !== undefined) { contents.BucketKeyEnabled = __parseBoolean(output["BucketKeyEnabled"]); } + if (output["ChecksumAlgorithm"] !== undefined) { + contents.ChecksumAlgorithm = __expectString(output["ChecksumAlgorithm"]); + } return contents; }; diff --git a/clients/client-s3/package.json b/clients/client-s3/package.json index 0761f105b016..68ae9f815474 100644 --- a/clients/client-s3/package.json +++ b/clients/client-s3/package.json @@ -19,6 +19,7 @@ "module": "./dist-es/index.js", "sideEffects": false, "dependencies": { + "@aws-crypto/sha1-browser": "2.0.0", "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", "@aws-sdk/client-sts": "*", @@ -33,10 +34,10 @@ "@aws-sdk/hash-stream-node": "*", "@aws-sdk/invalid-dependency": "*", "@aws-sdk/md5-js": "*", - "@aws-sdk/middleware-apply-body-checksum": "*", "@aws-sdk/middleware-bucket-endpoint": "*", "@aws-sdk/middleware-content-length": "*", "@aws-sdk/middleware-expect-continue": "*", + "@aws-sdk/middleware-flexible-checksums": "*", "@aws-sdk/middleware-host-header": "*", "@aws-sdk/middleware-location-constraint": "*", "@aws-sdk/middleware-logger": "*", @@ -59,6 +60,8 @@ "@aws-sdk/util-body-length-node": "*", "@aws-sdk/util-defaults-mode-browser": "*", "@aws-sdk/util-defaults-mode-node": "*", + "@aws-sdk/util-stream-browser": "*", + "@aws-sdk/util-stream-node": "*", "@aws-sdk/util-user-agent-browser": "*", "@aws-sdk/util-user-agent-node": "*", "@aws-sdk/util-utf8-browser": "*", diff --git a/clients/client-s3/src/S3.ts b/clients/client-s3/src/S3.ts index 551de41e3517..c3542948db4f 100644 --- a/clients/client-s3/src/S3.ts +++ b/clients/client-s3/src/S3.ts @@ -211,6 +211,11 @@ import { GetObjectAclCommandInput, GetObjectAclCommandOutput, } from "./commands/GetObjectAclCommand"; +import { + GetObjectAttributesCommand, + GetObjectAttributesCommandInput, + GetObjectAttributesCommandOutput, +} from "./commands/GetObjectAttributesCommand"; import { GetObjectCommand, GetObjectCommandInput, GetObjectCommandOutput } from "./commands/GetObjectCommand"; import { GetObjectLegalHoldCommand, @@ -649,9 +654,10 @@ export class S3 extends S3Client { *

              Creates a copy of an object that is already stored in Amazon S3.

              * *

              You can store individual objects of up to 5 TB in Amazon S3. You create a copy of your - * object up to 5 GB in size in a single atomic action using this API. However, to copy - * an object greater than 5 GB, you must use the multipart upload Upload Part - Copy API. - * For more information, see Copy Object Using the REST Multipart Upload API.

              + * object up to 5 GB in size in a single atomic action using this API. However, to copy an + * object greater than 5 GB, you must use the multipart upload Upload Part - Copy + * (UploadPartCopy) API. For more information, see Copy Object Using the + * REST Multipart Upload API.

              *
              *

              All copy requests must be authenticated. Additionally, you must have * read access to the source object and write @@ -694,8 +700,7 @@ export class S3 extends S3Client { * Amazon S3-specific condition keys, see Actions, Resources, and Condition Keys for * Amazon S3.

              *

              - * - * x-amz-copy-source-if Headers + * x-amz-copy-source-if Headers *

              *

              To only copy an object under certain conditions, such as whether the Etag * matches or whether the object was modified before or after a specified date, use the @@ -790,6 +795,12 @@ export class S3 extends S3Client { * all objects written to the bucket by any account will be owned by the bucket owner.

              *
              *

              + * Checksums + *

              + *

              When copying an object, if it has a checksum, that checksum will be copied to the new object + * by default. When you copy the object over, you may optionally specify a different checksum + * algorithm to use with the x-amz-checksum-algorithm header.

              + *

              * Storage Class Options *

              *

              You can use the CopyObject action to change the storage class of an @@ -1116,13 +1127,19 @@ export class S3 extends S3Client { * used to encrypt data, specify the following headers in the request.

              *
                *
              • - *

                x-amz-server-side-encryption

                + *

                + * x-amz-server-side-encryption + *

                *
              • *
              • - *

                x-amz-server-side-encryption-aws-kms-key-id

                + *

                + * x-amz-server-side-encryption-aws-kms-key-id + *

                *
              • *
              • - *

                x-amz-server-side-encryption-context

                + *

                + * x-amz-server-side-encryption-context + *

                *
              • *
              * @@ -1142,13 +1159,19 @@ export class S3 extends S3Client { * encryption keys, provide all the following headers in the request.

              *
                *
              • - *

                x-amz-server-side-encryption-customer-algorithm

                + *

                + * x-amz-server-side-encryption-customer-algorithm + *

                *
              • *
              • - *

                x-amz-server-side-encryption-customer-key

                + *

                + * x-amz-server-side-encryption-customer-key + *

                *
              • *
              • - *

                x-amz-server-side-encryption-customer-key-MD5

                + *

                + * x-amz-server-side-encryption-customer-key-MD5 + *

                *
              • *
              *

              For more information about server-side encryption with KMS keys (SSE-KMS), @@ -1182,19 +1205,29 @@ export class S3 extends S3Client { * use:

              *
                *
              • - *

                x-amz-grant-read

                + *

                + * x-amz-grant-read + *

                *
              • *
              • - *

                x-amz-grant-write

                + *

                + * x-amz-grant-write + *

                *
              • *
              • - *

                x-amz-grant-read-acp

                + *

                + * x-amz-grant-read-acp + *

                *
              • *
              • - *

                x-amz-grant-write-acp

                + *

                + * x-amz-grant-write-acp + *

                *
              • *
              • - *

                x-amz-grant-full-control

                + *

                + * x-amz-grant-full-control + *

                *
              • *
              *

              You specify each grantee as a type=value pair, where the type is one of @@ -2478,13 +2511,15 @@ export class S3 extends S3Client { } /** - *

              Returns the cors configuration information set for the bucket.

              + *

              Returns the Cross-Origin Resource Sharing (CORS) configuration information set for the + * bucket.

              * - *

              To use this operation, you must have permission to perform the s3:GetBucketCORS action. - * By default, the bucket owner has this permission and can grant it to others.

              + *

              To use this operation, you must have permission to perform the + * s3:GetBucketCORS action. By default, the bucket owner has this permission + * and can grant it to others.

              * - *

              For more information about cors, see Enabling - * Cross-Origin Resource Sharing.

              + *

              For more information about CORS, see Enabling Cross-Origin Resource + * Sharing.

              * *

              The following operations are related to GetBucketCors:

              *
                @@ -3292,7 +3327,7 @@ export class S3 extends S3Client { * GetBucketTagging has the following special error:

                *
                  *
                • - *

                  Error code: NoSuchTagSetError + *

                  Error code: NoSuchTagSet *

                  *
                    *
                  • @@ -3472,9 +3507,7 @@ export class S3 extends S3Client { * /examplebucket/photos/2006/February/sample.jpg. For more information about * request types, see HTTP Host Header Bucket Specification.

                    * - *

                    To distribute large files to many people, you can save bandwidth costs by using - * BitTorrent. For more information, see Amazon S3 - * Torrent. For more information about returning the ACL of an object, see GetObjectAcl.

                    + *

                    For more information about returning the ACL of an object, see GetObjectAcl.

                    * *

                    If the object you are retrieving is stored in the S3 Glacier or * S3 Glacier Deep Archive storage class, or S3 Intelligent-Tiering Archive or @@ -3559,8 +3592,8 @@ export class S3 extends S3Client { * Overriding Response Header Values *

                    *

                    There are times when you want to override certain response header values in a GET - * response. For example, you might override the Content-Disposition response header value in - * your GET request.

                    + * response. For example, you might override the Content-Disposition response + * header value in your GET request.

                    * *

                    You can override values for a set of response headers using the following query * parameters. These response header values are sent only on a successful request, that is, @@ -3664,7 +3697,10 @@ export class S3 extends S3Client { /** *

                    Returns the access control list (ACL) of an object. To use this operation, you must have - * READ_ACP access to the object.

                    + * s3:GetObjectAcl permissions or READ_ACP access to the object. + * For more information, see Mapping of ACL permissions and access policy permissions in the Amazon S3 + * User Guide + *

                    *

                    This action is not supported by Amazon S3 on Outposts.

                    *

                    * Versioning @@ -3687,6 +3723,11 @@ export class S3 extends S3Client { *

                  • *
                  • *

                    + * GetObjectAttributes + *

                    + *
                  • + *
                  • + *

                    * DeleteObject *

                    *
                  • @@ -3724,8 +3765,205 @@ export class S3 extends S3Client { } /** - *

                    Gets an object's current Legal Hold status. For more information, see Locking Objects.

                    + *

                    Retrieves all the metadata from an object without returning the object itself. This + * action is useful if you're interested only in an object's metadata. To use + * GetObjectAttributes, you must have READ access to the object.

                    + * + *

                    + * GetObjectAttributes combines the functionality of + * GetObjectAcl, GetObjectLegalHold, + * GetObjectLockConfiguration, GetObjectRetention, + * GetObjectTagging, HeadObject, and ListParts. All + * of the data returned with each of those individual calls can be returned with a single call + * to GetObjectAttributes.

                    + * + *

                    If you encrypt an object by using server-side encryption with customer-provided + * encryption keys (SSE-C) when you store the object in Amazon S3, then when you retrieve the + * metadata from the object, you must use the following headers:

                    + *
                      + *
                    • + *

                      + * x-amz-server-side-encryption-customer-algorithm + *

                      + *
                    • + *
                    • + *

                      + * x-amz-server-side-encryption-customer-key + *

                      + *
                    • + *
                    • + *

                      + * x-amz-server-side-encryption-customer-key-MD5 + *

                      + *
                    • + *
                    + *

                    For more information about SSE-C, see Server-Side Encryption + * (Using Customer-Provided Encryption Keys) in the + * Amazon S3 User Guide.

                    + * + *
                      + *
                    • + *

                      Encryption request headers, such as + * x-amz-server-side-encryption, should not be sent for GET requests + * if your object uses server-side encryption with Amazon Web Services KMS keys stored in Amazon Web Services Key + * Management Service (SSE-KMS) or server-side encryption with Amazon S3 managed + * encryption keys (SSE-S3). If your object does use these types of keys, you'll get + * an HTTP 400 Bad Request error.

                      + *
                    • + *
                    • + *

                      + * The last modified property in this case is the creation date of the object.

                      + *
                    • + *
                    + *
                    + * + *

                    Consider the following when using request headers:

                    + *
                      + *
                    • + *

                      If both of the If-Match and If-Unmodified-Since + * headers are present in the request as follows, then Amazon S3 returns the HTTP + * status code 200 OK and the data requested:

                      + *
                        + *
                      • + *

                        + * If-Match condition evaluates to true.

                        + *
                      • + *
                      • + *

                        + * If-Unmodified-Since condition evaluates to + * false.

                        + *
                      • + *
                      + *
                    • + *
                    • + *

                      If both of the If-None-Match and If-Modified-Since + * headers are present in the request as follows, then Amazon S3 returns the HTTP status code + * 304 Not Modified:

                      + *
                        + *
                      • + *

                        + * If-None-Match condition evaluates to + * false.

                        + *
                      • + *
                      • + *

                        + * If-Modified-Since condition evaluates to + * true.

                        + *
                      • + *
                      + *
                    • + *
                    + * + *

                    For more information about conditional requests, see RFC 7232.

                    + * + *

                    + * Permissions + *

                    + *

                    The permissions that you need to use this operation depend on whether the bucket is + * versioned. If the bucket is versioned, you need both the s3:GetObjectVersion + * and s3:GetObjectVersionAttributes permissions for this operation. If the + * bucket is not versioned, you need the s3:GetObject and + * s3:GetObjectAttributes permissions. For more information, see Specifying + * Permissions in a Policy in the Amazon S3 User Guide. If the + * object that you request does not exist, the error Amazon S3 returns depends on whether you also + * have the s3:ListBucket permission.

                    + *
                      + *
                    • + *

                      If you have the s3:ListBucket permission on the bucket, Amazon S3 + * returns an HTTP status code 404 Not Found ("no such key") error.

                      + *
                    • + *
                    • + *

                      If you don't have the s3:ListBucket permission, Amazon S3 returns an + * HTTP status code 403 Forbidden ("access denied") error.

                      + *
                    • + *
                    + * + *

                    The following actions are related to GetObjectAttributes:

                    + * + */ + public getObjectAttributes( + args: GetObjectAttributesCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public getObjectAttributes( + args: GetObjectAttributesCommandInput, + cb: (err: any, data?: GetObjectAttributesCommandOutput) => void + ): void; + public getObjectAttributes( + args: GetObjectAttributesCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetObjectAttributesCommandOutput) => void + ): void; + public getObjectAttributes( + args: GetObjectAttributesCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetObjectAttributesCommandOutput) => void), + cb?: (err: any, data?: GetObjectAttributesCommandOutput) => void + ): Promise | void { + const command = new GetObjectAttributesCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                    Gets an object's current legal hold status. For more information, see Locking + * Objects.

                    *

                    This action is not supported by Amazon S3 on Outposts.

                    + * + *

                    The following action is related to GetObjectLegalHold:

                    + * */ public getObjectLegalHold( args: GetObjectLegalHoldCommandInput, @@ -3761,6 +3999,15 @@ export class S3 extends S3Client { * configuration will be applied by default to every new object placed in the specified * bucket. For more information, see Locking * Objects.

                    + * + *

                    The following action is related to GetObjectLockConfiguration:

                    + * */ public getObjectLockConfiguration( args: GetObjectLockConfigurationCommandInput, @@ -3794,6 +4041,15 @@ export class S3 extends S3Client { /** *

                    Retrieves an object's retention settings. For more information, see Locking Objects.

                    *

                    This action is not supported by Amazon S3 on Outposts.

                    + * + *

                    The following action is related to GetObjectRetention:

                    + * */ public getObjectRetention( args: GetObjectRetentionCommandInput, @@ -3840,16 +4096,21 @@ export class S3 extends S3Client { * *

                    For information about the Amazon S3 object tagging feature, see Object Tagging.

                    * - *

                    The following action is related to GetObjectTagging:

                    + *

                    The following actions are related to GetObjectTagging:

                    * @@ -4148,13 +4409,18 @@ export class S3 extends S3Client { * *
                  * - *

                  The following action is related to HeadObject:

                  + *

                  The following actions are related to HeadObject:

                  * */ public headObject(args: HeadObjectCommandInput, options?: __HttpHandlerOptions): Promise; @@ -4450,7 +4716,8 @@ export class S3 extends S3Client { } /** - *

                  Returns a list of all buckets owned by the authenticated sender of the request.

                  + *

                  Returns a list of all buckets owned by the authenticated sender of the request. To use + * this operation, you must have the s3:ListAllMyBuckets permission.

                  */ public listBuckets(args: ListBucketsCommandInput, options?: __HttpHandlerOptions): Promise; public listBuckets(args: ListBucketsCommandInput, cb: (err: any, data?: ListBucketsCommandOutput) => void): void; @@ -4774,6 +5041,9 @@ export class S3 extends S3Client { * and a NextPartNumberMarker element. In subsequent ListParts * requests you can include the part-number-marker query string parameter and set its value to * the NextPartNumberMarker field value from the previous response.

                  + *

                  If the upload was created using a checksum algorithm, you will need to have permission + * to the kms:Decrypt action for the request to succeed. + *

                  * *

                  For more information on multipart uploads, see Uploading Objects Using Multipart * Upload.

                  @@ -4805,6 +5075,11 @@ export class S3 extends S3Client { *
                • *
                • *

                  + * GetObjectAttributes + *

                  + *
                • + *
                • + *

                  * ListMultipartUploads *

                  *
                • @@ -4838,10 +5113,10 @@ export class S3 extends S3Client { * bucket-level feature that enables you to perform faster data transfers to Amazon S3.

                  * *

                  To use this operation, you must have permission to perform the - * s3:PutAccelerateConfiguration action. The bucket owner has this permission by default. The - * bucket owner can grant this permission to others. For more information about permissions, - * see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 - * Resources.

                  + * s3:PutAccelerateConfiguration action. The bucket owner has this permission + * by default. The bucket owner can grant this permission to others. For more information + * about permissions, see Permissions Related to Bucket Subresource Operations and Managing + * Access Permissions to Your Amazon S3 Resources.

                  * *

                  The Transfer Acceleration state of a bucket can be set to one of the following two * values:

                  @@ -5374,7 +5649,9 @@ export class S3 extends S3Client { * encryption and Amazon S3 Bucket Key for an existing bucket.

                  *

                  Default encryption for a bucket can use server-side encryption with Amazon S3-managed keys * (SSE-S3) or customer managed keys (SSE-KMS). If you specify default encryption - * using SSE-KMS, you can also configure Amazon S3 Bucket Key. For information about default + * using SSE-KMS, you can also configure Amazon S3 Bucket Key. When the default encryption is SSE-KMS, if + * you upload an object to the bucket and do not specify the KMS key to use for encryption, Amazon S3 + * uses the default Amazon Web Services managed KMS key for your account. For information about default * encryption, see Amazon S3 default bucket encryption * in the Amazon S3 User Guide. For more information about S3 Bucket Keys, * see Amazon S3 Bucket Keys in the Amazon S3 User Guide.

                  @@ -5683,6 +5960,8 @@ export class S3 extends S3Client { /** *

                  Creates a new lifecycle configuration for the bucket or replaces an existing lifecycle + * configuration. Keep in mind that this will overwrite an existing lifecycle configuration, so if + * you want to retain any configuration details, they must be included in the new lifecycle * configuration. For information about lifecycle configuration, see Managing your storage * lifecycle.

                  * @@ -5734,7 +6013,7 @@ export class S3 extends S3Client { * subresources (for example, lifecycle configuration and website configuration). Only the * resource owner (that is, the Amazon Web Services account that created it) can access the resource. The * resource owner can optionally grant access permissions to others by writing an access - * policy. For this operation, a user must get the s3:PutLifecycleConfiguration + * policy. For this operation, a user must get the s3:PutLifecycleConfiguration * permission.

                  * *

                  You can also explicitly deny permissions. Explicit deny also supersedes any other @@ -5743,13 +6022,19 @@ export class S3 extends S3Client { * *

                    *
                  • - *

                    s3:DeleteObject

                    + *

                    + * s3:DeleteObject + *

                    *
                  • *
                  • - *

                    s3:DeleteObjectVersion

                    + *

                    + * s3:DeleteObjectVersion + *

                    *
                  • *
                  • - *

                    s3:PutLifecycleConfiguration

                    + *

                    + * s3:PutLifecycleConfiguration + *

                    *
                  • *
                  * @@ -6036,7 +6321,8 @@ export class S3 extends S3Client { * *

                  You can disable notifications by adding the empty NotificationConfiguration * element.

                  - * + *

                  For more information about the number of event notification configurations that you can create per bucket, see + * Amazon S3 service quotas in Amazon Web Services General Reference.

                  *

                  By default, only the bucket owner can configure notifications on a bucket. However, * bucket owners can use a bucket policy to grant permission to other users to set this * configuration with s3:PutBucketNotification permission.

                  @@ -6468,8 +6754,7 @@ export class S3 extends S3Client { } /** - *

                  Sets the versioning state of an existing bucket. To set the versioning state, you must - * be the bucket owner.

                  + *

                  Sets the versioning state of an existing bucket.

                  *

                  You can set the versioning state with one of the following values:

                  * *

                  @@ -6483,8 +6768,9 @@ export class S3 extends S3Client { *

                  If the versioning state has never been set on a bucket, it has no versioning state; a * GetBucketVersioning request does not return a versioning state value.

                  * - *

                  If the bucket owner enables MFA Delete in the bucket versioning configuration, the - * bucket owner must include the x-amz-mfa request header and the + *

                  In order to enable MFA Delete, you must be the bucket owner. If you are the bucket owner + * and want to enable MFA Delete in the bucket versioning configuration, you must + * include the x-amz-mfa request header and the * Status and the MfaDelete request elements in a request to set * the versioning state of the bucket.

                  * @@ -7047,7 +7333,7 @@ export class S3 extends S3Client { } /** - *

                  Applies a Legal Hold configuration to the specified object. For more information, see + *

                  Applies a legal hold configuration to the specified object. For more information, see * Locking * Objects.

                  *

                  This action is not supported by Amazon S3 on Outposts.

                  @@ -7140,13 +7426,6 @@ export class S3 extends S3Client { * requires the s3:BypassGovernanceRetention permission. *

                  *

                  This action is not supported by Amazon S3 on Outposts.

                  - * - *

                  - * Permissions - *

                  - *

                  When the Object Lock retention mode is set to compliance, you need s3:PutObjectRetention and - * s3:BypassGovernanceRetention permissions. For other requests to PutObjectRetention, - * only s3:PutObjectRetention permissions are required.

                  */ public putObjectRetention( args: PutObjectRetentionCommandInput, @@ -7526,42 +7805,35 @@ export class S3 extends S3Client { *
                    *
                  • *

                    - * - * Expedited - * - Expedited retrievals - * allow you to quickly access your data stored in the S3 Glacier - * storage class or S3 Intelligent-Tiering Archive tier when occasional urgent requests for a - * subset of archives are required. For all but the largest archived objects (250 MB+), - * data accessed using Expedited retrievals is typically made available within 1–5 - * minutes. Provisioned capacity ensures that retrieval capacity for Expedited - * retrievals is available when you need it. Expedited retrievals and provisioned - * capacity are not available for objects stored in the S3 Glacier Deep Archive - * storage class or S3 Intelligent-Tiering Deep Archive tier.

                    + * Expedited - Expedited retrievals allow you to quickly access your + * data stored in the S3 Glacier storage class or S3 Intelligent-Tiering Archive + * tier when occasional urgent requests for a subset of archives are required. For all + * but the largest archived objects (250 MB+), data accessed using Expedited retrievals + * is typically made available within 1–5 minutes. Provisioned capacity ensures that + * retrieval capacity for Expedited retrievals is available when you need it. Expedited + * retrievals and provisioned capacity are not available for objects stored in the + * S3 Glacier Deep Archive storage class or S3 Intelligent-Tiering Deep Archive tier.

                    *
                  • *
                  • *

                    - * - * Standard - * - Standard retrievals allow - * you to access any of your archived objects within several hours. This is the default - * option for retrieval requests that do not specify the retrieval option. Standard - * retrievals typically finish within 3–5 hours for objects stored in the - * S3 Glacier storage class or S3 Intelligent-Tiering Archive tier. They - * typically finish within 12 hours for objects stored in the - * S3 Glacier Deep Archive storage class or S3 Intelligent-Tiering Deep Archive tier. - * Standard retrievals are free for objects stored in S3 Intelligent-Tiering.

                    + * Standard - Standard retrievals allow you to access any of your + * archived objects within several hours. This is the default option for retrieval + * requests that do not specify the retrieval option. Standard retrievals typically + * finish within 3–5 hours for objects stored in the S3 Glacier storage + * class or S3 Intelligent-Tiering Archive tier. They typically finish within 12 hours for + * objects stored in the S3 Glacier Deep Archive storage class or + * S3 Intelligent-Tiering Deep Archive tier. Standard retrievals are free for objects stored in + * S3 Intelligent-Tiering.

                    *
                  • *
                  • *

                    - * - * Bulk - * - Bulk retrievals are the - * lowest-cost retrieval option in S3 Glacier, enabling you to retrieve large amounts, - * even petabytes, of data inexpensively. Bulk retrievals typically finish within 5–12 - * hours for objects stored in the S3 Glacier storage class or - * S3 Intelligent-Tiering Archive tier. They typically finish within 48 hours for objects stored - * in the S3 Glacier Deep Archive storage class or S3 Intelligent-Tiering Deep Archive tier. - * Bulk retrievals are free for objects stored in S3 Intelligent-Tiering.

                    + * Bulk - Bulk retrievals are the lowest-cost retrieval option in + * S3 Glacier, enabling you to retrieve large amounts, even petabytes, of data + * inexpensively. Bulk retrievals typically finish within 5–12 hours for objects stored + * in the S3 Glacier storage class or S3 Intelligent-Tiering Archive tier. They + * typically finish within 48 hours for objects stored in the + * S3 Glacier Deep Archive storage class or S3 Intelligent-Tiering Deep Archive tier. Bulk + * retrievals are free for objects stored in S3 Intelligent-Tiering.

                    *
                  • *
                  *

                  For more information about archive retrieval options and provisioned capacity for @@ -8053,13 +8325,13 @@ export class S3 extends S3Client { * Permissions in the Amazon S3 User Guide.

                  * *
                • - *

                  For information about copying objects using a single atomic action vs. the - * multipart upload, see Operations on - * Objects in the Amazon S3 User Guide.

                  + *

                  For information about copying objects using a single atomic action vs. a multipart + * upload, see Operations on Objects in + * the Amazon S3 User Guide.

                  *
                • *
                • *

                  For information about using server-side encryption with customer-provided - * encryption keys with the UploadPartCopy operation, see CopyObject and UploadPart.

                  + * encryption keys with the UploadPartCopy operation, see CopyObject and UploadPart.

                  *
                • *
                *

                Note the following additional considerations about the request headers diff --git a/clients/client-s3/src/S3Client.ts b/clients/client-s3/src/S3Client.ts index c75eafbd0bb2..d1e73f0c5fd6 100644 --- a/clients/client-s3/src/S3Client.ts +++ b/clients/client-s3/src/S3Client.ts @@ -51,6 +51,7 @@ import { Decoder as __Decoder, Encoder as __Encoder, EventStreamSerdeProvider as __EventStreamSerdeProvider, + GetAwsChunkedEncodingStream, Hash as __Hash, HashConstructor as __HashConstructor, HttpHandlerOptions as __HttpHandlerOptions, @@ -192,6 +193,10 @@ import { } from "./commands/GetBucketVersioningCommand"; import { GetBucketWebsiteCommandInput, GetBucketWebsiteCommandOutput } from "./commands/GetBucketWebsiteCommand"; import { GetObjectAclCommandInput, GetObjectAclCommandOutput } from "./commands/GetObjectAclCommand"; +import { + GetObjectAttributesCommandInput, + GetObjectAttributesCommandOutput, +} from "./commands/GetObjectAttributesCommand"; import { GetObjectCommandInput, GetObjectCommandOutput } from "./commands/GetObjectCommand"; import { GetObjectLegalHoldCommandInput, GetObjectLegalHoldCommandOutput } from "./commands/GetObjectLegalHoldCommand"; import { @@ -356,6 +361,7 @@ export type ServiceInputTypes = | GetBucketVersioningCommandInput | GetBucketWebsiteCommandInput | GetObjectAclCommandInput + | GetObjectAttributesCommandInput | GetObjectCommandInput | GetObjectLegalHoldCommandInput | GetObjectLockConfigurationCommandInput @@ -450,6 +456,7 @@ export type ServiceOutputTypes = | GetBucketVersioningCommandOutput | GetBucketWebsiteCommandOutput | GetObjectAclCommandOutput + | GetObjectAttributesCommandOutput | GetObjectCommandOutput | GetObjectLegalHoldCommandOutput | GetObjectLockConfigurationCommandOutput @@ -630,11 +637,6 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ defaultUserAgentProvider?: Provider<__UserAgent>; - /** - * The function that provides necessary utilities for generating and parsing event stream - */ - eventStreamSerdeProvider?: __EventStreamSerdeProvider; - /** * A function that, given a hash constructor and a stream, calculates the * hash of the streamed value. @@ -649,6 +651,24 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__ */ md5?: __HashConstructor; + /** + * A constructor for a class implementing the {@link __Hash} interface + * that computes SHA1 hashes. + * @internal + */ + sha1?: __HashConstructor; + + /** + * A function that returns Readable Stream which follows aws-chunked encoding stream. + * @internal + */ + getAwsChunkedEncodingStream?: GetAwsChunkedEncodingStream; + + /** + * The function that provides necessary utilities for generating and parsing event stream + */ + eventStreamSerdeProvider?: __EventStreamSerdeProvider; + /** * The {@link DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ diff --git a/clients/client-s3/src/commands/CompleteMultipartUploadCommand.ts b/clients/client-s3/src/commands/CompleteMultipartUploadCommand.ts index a839ae3817c7..72def1ae925b 100644 --- a/clients/client-s3/src/commands/CompleteMultipartUploadCommand.ts +++ b/clients/client-s3/src/commands/CompleteMultipartUploadCommand.ts @@ -1,6 +1,7 @@ import { getBucketEndpointPlugin } from "@aws-sdk/middleware-bucket-endpoint"; import { getThrow200ExceptionsPlugin } from "@aws-sdk/middleware-sdk-s3"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { getSsecPlugin } from "@aws-sdk/middleware-ssec"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; import { @@ -177,6 +178,7 @@ export class CompleteMultipartUploadCommand extends $Command< ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use(getThrow200ExceptionsPlugin(configuration)); + this.middlewareStack.use(getSsecPlugin(configuration)); this.middlewareStack.use(getBucketEndpointPlugin(configuration)); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-s3/src/commands/CopyObjectCommand.ts b/clients/client-s3/src/commands/CopyObjectCommand.ts index 659aa4752228..cd95dd6a5392 100644 --- a/clients/client-s3/src/commands/CopyObjectCommand.ts +++ b/clients/client-s3/src/commands/CopyObjectCommand.ts @@ -28,9 +28,10 @@ export interface CopyObjectCommandOutput extends CopyObjectOutput, __MetadataBea *

                Creates a copy of an object that is already stored in Amazon S3.

                * *

                You can store individual objects of up to 5 TB in Amazon S3. You create a copy of your - * object up to 5 GB in size in a single atomic action using this API. However, to copy - * an object greater than 5 GB, you must use the multipart upload Upload Part - Copy API. - * For more information, see Copy Object Using the REST Multipart Upload API.

                + * object up to 5 GB in size in a single atomic action using this API. However, to copy an + * object greater than 5 GB, you must use the multipart upload Upload Part - Copy + * (UploadPartCopy) API. For more information, see Copy Object Using the + * REST Multipart Upload API.

                *
                *

                All copy requests must be authenticated. Additionally, you must have * read access to the source object and write @@ -73,8 +74,7 @@ export interface CopyObjectCommandOutput extends CopyObjectOutput, __MetadataBea * Amazon S3-specific condition keys, see Actions, Resources, and Condition Keys for * Amazon S3.

                *

                - * - * x-amz-copy-source-if Headers + * x-amz-copy-source-if Headers *

                *

                To only copy an object under certain conditions, such as whether the Etag * matches or whether the object was modified before or after a specified date, use the @@ -169,6 +169,12 @@ export interface CopyObjectCommandOutput extends CopyObjectOutput, __MetadataBea * all objects written to the bucket by any account will be owned by the bucket owner.

                * *

                + * Checksums + *

                + *

                When copying an object, if it has a checksum, that checksum will be copied to the new object + * by default. When you copy the object over, you may optionally specify a different checksum + * algorithm to use with the x-amz-checksum-algorithm header.

                + *

                * Storage Class Options *

                *

                You can use the CopyObject action to change the storage class of an diff --git a/clients/client-s3/src/commands/CreateMultipartUploadCommand.ts b/clients/client-s3/src/commands/CreateMultipartUploadCommand.ts index 63f56044e8fb..935b09bcaec4 100644 --- a/clients/client-s3/src/commands/CreateMultipartUploadCommand.ts +++ b/clients/client-s3/src/commands/CreateMultipartUploadCommand.ts @@ -114,13 +114,19 @@ export interface CreateMultipartUploadCommandOutput extends CreateMultipartUploa * used to encrypt data, specify the following headers in the request.

                *
                  *
                • - *

                  x-amz-server-side-encryption

                  + *

                  + * x-amz-server-side-encryption + *

                  *
                • *
                • - *

                  x-amz-server-side-encryption-aws-kms-key-id

                  + *

                  + * x-amz-server-side-encryption-aws-kms-key-id + *

                  *
                • *
                • - *

                  x-amz-server-side-encryption-context

                  + *

                  + * x-amz-server-side-encryption-context + *

                  *
                • *
                * @@ -140,13 +146,19 @@ export interface CreateMultipartUploadCommandOutput extends CreateMultipartUploa * encryption keys, provide all the following headers in the request.

                *
                  *
                • - *

                  x-amz-server-side-encryption-customer-algorithm

                  + *

                  + * x-amz-server-side-encryption-customer-algorithm + *

                  *
                • *
                • - *

                  x-amz-server-side-encryption-customer-key

                  + *

                  + * x-amz-server-side-encryption-customer-key + *

                  *
                • *
                • - *

                  x-amz-server-side-encryption-customer-key-MD5

                  + *

                  + * x-amz-server-side-encryption-customer-key-MD5 + *

                  *
                • *
                *

                For more information about server-side encryption with KMS keys (SSE-KMS), @@ -180,19 +192,29 @@ export interface CreateMultipartUploadCommandOutput extends CreateMultipartUploa * use:

                *
                  *
                • - *

                  x-amz-grant-read

                  + *

                  + * x-amz-grant-read + *

                  *
                • *
                • - *

                  x-amz-grant-write

                  + *

                  + * x-amz-grant-write + *

                  *
                • *
                • - *

                  x-amz-grant-read-acp

                  + *

                  + * x-amz-grant-read-acp + *

                  *
                • *
                • - *

                  x-amz-grant-write-acp

                  + *

                  + * x-amz-grant-write-acp + *

                  *
                • *
                • - *

                  x-amz-grant-full-control

                  + *

                  + * x-amz-grant-full-control + *

                  *
                • *
                *

                You specify each grantee as a type=value pair, where the type is one of diff --git a/clients/client-s3/src/commands/DeleteObjectsCommand.ts b/clients/client-s3/src/commands/DeleteObjectsCommand.ts index 496377c81e52..e4eb6ced445c 100644 --- a/clients/client-s3/src/commands/DeleteObjectsCommand.ts +++ b/clients/client-s3/src/commands/DeleteObjectsCommand.ts @@ -1,5 +1,5 @@ -import { getApplyMd5BodyChecksumPlugin } from "@aws-sdk/middleware-apply-body-checksum"; import { getBucketEndpointPlugin } from "@aws-sdk/middleware-bucket-endpoint"; +import { getFlexibleChecksumsPlugin } from "@aws-sdk/middleware-flexible-checksums"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -120,7 +120,13 @@ export class DeleteObjectsCommand extends $Command< ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use(getBucketEndpointPlugin(configuration)); - this.middlewareStack.use(getApplyMd5BodyChecksumPlugin(configuration)); + this.middlewareStack.use( + getFlexibleChecksumsPlugin(configuration, { + input: this.input, + requestAlgorithmMember: "ChecksumAlgorithm", + requestChecksumRequired: true, + }) + ); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-s3/src/commands/GetBucketCorsCommand.ts b/clients/client-s3/src/commands/GetBucketCorsCommand.ts index b0dff6db57cb..42e50ae1d2ad 100644 --- a/clients/client-s3/src/commands/GetBucketCorsCommand.ts +++ b/clients/client-s3/src/commands/GetBucketCorsCommand.ts @@ -23,13 +23,15 @@ export interface GetBucketCorsCommandInput extends GetBucketCorsRequest {} export interface GetBucketCorsCommandOutput extends GetBucketCorsOutput, __MetadataBearer {} /** - *

                Returns the cors configuration information set for the bucket.

                + *

                Returns the Cross-Origin Resource Sharing (CORS) configuration information set for the + * bucket.

                * - *

                To use this operation, you must have permission to perform the s3:GetBucketCORS action. - * By default, the bucket owner has this permission and can grant it to others.

                + *

                To use this operation, you must have permission to perform the + * s3:GetBucketCORS action. By default, the bucket owner has this permission + * and can grant it to others.

                * - *

                For more information about cors, see Enabling - * Cross-Origin Resource Sharing.

                + *

                For more information about CORS, see Enabling Cross-Origin Resource + * Sharing.

                * *

                The following operations are related to GetBucketCors:

                *
                  diff --git a/clients/client-s3/src/commands/GetBucketTaggingCommand.ts b/clients/client-s3/src/commands/GetBucketTaggingCommand.ts index 515aa9cb324e..c6b755ecf56c 100644 --- a/clients/client-s3/src/commands/GetBucketTaggingCommand.ts +++ b/clients/client-s3/src/commands/GetBucketTaggingCommand.ts @@ -32,7 +32,7 @@ export interface GetBucketTaggingCommandOutput extends GetBucketTaggingOutput, _ * GetBucketTagging has the following special error:

                  *
                    *
                  • - *

                    Error code: NoSuchTagSetError + *

                    Error code: NoSuchTagSet *

                    *
                      *
                    • diff --git a/clients/client-s3/src/commands/GetObjectAclCommand.ts b/clients/client-s3/src/commands/GetObjectAclCommand.ts index de79f8526a13..065232ae804c 100644 --- a/clients/client-s3/src/commands/GetObjectAclCommand.ts +++ b/clients/client-s3/src/commands/GetObjectAclCommand.ts @@ -24,7 +24,10 @@ export interface GetObjectAclCommandOutput extends GetObjectAclOutput, __Metadat /** *

                      Returns the access control list (ACL) of an object. To use this operation, you must have - * READ_ACP access to the object.

                      + * s3:GetObjectAcl permissions or READ_ACP access to the object. + * For more information, see Mapping of ACL permissions and access policy permissions in the Amazon S3 + * User Guide + *

                      *

                      This action is not supported by Amazon S3 on Outposts.

                      *

                      * Versioning @@ -47,6 +50,11 @@ export interface GetObjectAclCommandOutput extends GetObjectAclOutput, __Metadat *

                    • *
                    • *

                      + * GetObjectAttributes + *

                      + *
                    • + *
                    • + *

                      * DeleteObject *

                      *
                    • diff --git a/clients/client-s3/src/commands/GetObjectAttributesCommand.ts b/clients/client-s3/src/commands/GetObjectAttributesCommand.ts new file mode 100644 index 000000000000..b627099b85ea --- /dev/null +++ b/clients/client-s3/src/commands/GetObjectAttributesCommand.ts @@ -0,0 +1,254 @@ +import { getBucketEndpointPlugin } from "@aws-sdk/middleware-bucket-endpoint"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { getSsecPlugin } from "@aws-sdk/middleware-ssec"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { GetObjectAttributesOutput, GetObjectAttributesRequest } from "../models/models_0"; +import { + deserializeAws_restXmlGetObjectAttributesCommand, + serializeAws_restXmlGetObjectAttributesCommand, +} from "../protocols/Aws_restXml"; +import { S3ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../S3Client"; + +export interface GetObjectAttributesCommandInput extends GetObjectAttributesRequest {} +export interface GetObjectAttributesCommandOutput extends GetObjectAttributesOutput, __MetadataBearer {} + +/** + *

                      Retrieves all the metadata from an object without returning the object itself. This + * action is useful if you're interested only in an object's metadata. To use + * GetObjectAttributes, you must have READ access to the object.

                      + * + *

                      + * GetObjectAttributes combines the functionality of + * GetObjectAcl, GetObjectLegalHold, + * GetObjectLockConfiguration, GetObjectRetention, + * GetObjectTagging, HeadObject, and ListParts. All + * of the data returned with each of those individual calls can be returned with a single call + * to GetObjectAttributes.

                      + * + *

                      If you encrypt an object by using server-side encryption with customer-provided + * encryption keys (SSE-C) when you store the object in Amazon S3, then when you retrieve the + * metadata from the object, you must use the following headers:

                      + *
                        + *
                      • + *

                        + * x-amz-server-side-encryption-customer-algorithm + *

                        + *
                      • + *
                      • + *

                        + * x-amz-server-side-encryption-customer-key + *

                        + *
                      • + *
                      • + *

                        + * x-amz-server-side-encryption-customer-key-MD5 + *

                        + *
                      • + *
                      + *

                      For more information about SSE-C, see Server-Side Encryption + * (Using Customer-Provided Encryption Keys) in the + * Amazon S3 User Guide.

                      + * + *
                        + *
                      • + *

                        Encryption request headers, such as + * x-amz-server-side-encryption, should not be sent for GET requests + * if your object uses server-side encryption with Amazon Web Services KMS keys stored in Amazon Web Services Key + * Management Service (SSE-KMS) or server-side encryption with Amazon S3 managed + * encryption keys (SSE-S3). If your object does use these types of keys, you'll get + * an HTTP 400 Bad Request error.

                        + *
                      • + *
                      • + *

                        + * The last modified property in this case is the creation date of the object.

                        + *
                      • + *
                      + *
                      + * + *

                      Consider the following when using request headers:

                      + *
                        + *
                      • + *

                        If both of the If-Match and If-Unmodified-Since + * headers are present in the request as follows, then Amazon S3 returns the HTTP + * status code 200 OK and the data requested:

                        + *
                          + *
                        • + *

                          + * If-Match condition evaluates to true.

                          + *
                        • + *
                        • + *

                          + * If-Unmodified-Since condition evaluates to + * false.

                          + *
                        • + *
                        + *
                      • + *
                      • + *

                        If both of the If-None-Match and If-Modified-Since + * headers are present in the request as follows, then Amazon S3 returns the HTTP status code + * 304 Not Modified:

                        + *
                          + *
                        • + *

                          + * If-None-Match condition evaluates to + * false.

                          + *
                        • + *
                        • + *

                          + * If-Modified-Since condition evaluates to + * true.

                          + *
                        • + *
                        + *
                      • + *
                      + * + *

                      For more information about conditional requests, see RFC 7232.

                      + * + *

                      + * Permissions + *

                      + *

                      The permissions that you need to use this operation depend on whether the bucket is + * versioned. If the bucket is versioned, you need both the s3:GetObjectVersion + * and s3:GetObjectVersionAttributes permissions for this operation. If the + * bucket is not versioned, you need the s3:GetObject and + * s3:GetObjectAttributes permissions. For more information, see Specifying + * Permissions in a Policy in the Amazon S3 User Guide. If the + * object that you request does not exist, the error Amazon S3 returns depends on whether you also + * have the s3:ListBucket permission.

                      + *
                        + *
                      • + *

                        If you have the s3:ListBucket permission on the bucket, Amazon S3 + * returns an HTTP status code 404 Not Found ("no such key") error.

                        + *
                      • + *
                      • + *

                        If you don't have the s3:ListBucket permission, Amazon S3 returns an + * HTTP status code 403 Forbidden ("access denied") error.

                        + *
                      • + *
                      + * + *

                      The following actions are related to GetObjectAttributes:

                      + * + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { S3Client, GetObjectAttributesCommand } from "@aws-sdk/client-s3"; // ES Modules import + * // const { S3Client, GetObjectAttributesCommand } = require("@aws-sdk/client-s3"); // CommonJS import + * const client = new S3Client(config); + * const command = new GetObjectAttributesCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link GetObjectAttributesCommandInput} for command's `input` shape. + * @see {@link GetObjectAttributesCommandOutput} for command's `response` shape. + * @see {@link S3ClientResolvedConfig | config} for S3Client's `config` shape. + * + */ +export class GetObjectAttributesCommand extends $Command< + GetObjectAttributesCommandInput, + GetObjectAttributesCommandOutput, + S3ClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetObjectAttributesCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: S3ClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use(getSsecPlugin(configuration)); + this.middlewareStack.use(getBucketEndpointPlugin(configuration)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "S3Client"; + const commandName = "GetObjectAttributesCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetObjectAttributesRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetObjectAttributesOutput.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetObjectAttributesCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restXmlGetObjectAttributesCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restXmlGetObjectAttributesCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-s3/src/commands/GetObjectCommand.ts b/clients/client-s3/src/commands/GetObjectCommand.ts index e26131bba25c..32a181fe6ed3 100644 --- a/clients/client-s3/src/commands/GetObjectCommand.ts +++ b/clients/client-s3/src/commands/GetObjectCommand.ts @@ -1,4 +1,5 @@ import { getBucketEndpointPlugin } from "@aws-sdk/middleware-bucket-endpoint"; +import { getFlexibleChecksumsPlugin } from "@aws-sdk/middleware-flexible-checksums"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { getSsecPlugin } from "@aws-sdk/middleware-ssec"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; @@ -39,9 +40,7 @@ export interface GetObjectCommandOutput extends GetObjectOutput, __MetadataBeare * /examplebucket/photos/2006/February/sample.jpg. For more information about * request types, see HTTP Host Header Bucket Specification.

                      * - *

                      To distribute large files to many people, you can save bandwidth costs by using - * BitTorrent. For more information, see Amazon S3 - * Torrent. For more information about returning the ACL of an object, see GetObjectAcl.

                      + *

                      For more information about returning the ACL of an object, see GetObjectAcl.

                      * *

                      If the object you are retrieving is stored in the S3 Glacier or * S3 Glacier Deep Archive storage class, or S3 Intelligent-Tiering Archive or @@ -126,8 +125,8 @@ export interface GetObjectCommandOutput extends GetObjectOutput, __MetadataBeare * Overriding Response Header Values *

                      *

                      There are times when you want to override certain response header values in a GET - * response. For example, you might override the Content-Disposition response header value in - * your GET request.

                      + * response. For example, you might override the Content-Disposition response + * header value in your GET request.

                      * *

                      You can override values for a set of response headers using the following query * parameters. These response header values are sent only on a successful request, that is, @@ -241,6 +240,14 @@ export class GetObjectCommand extends $CommandGets an object's current Legal Hold status. For more information, see Locking Objects.

                      + *

                      Gets an object's current legal hold status. For more information, see Locking + * Objects.

                      *

                      This action is not supported by Amazon S3 on Outposts.

                      + * + *

                      The following action is related to GetObjectLegalHold:

                      + * * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-s3/src/commands/GetObjectLockConfigurationCommand.ts b/clients/client-s3/src/commands/GetObjectLockConfigurationCommand.ts index a20934022cff..f06dd40aa9e4 100644 --- a/clients/client-s3/src/commands/GetObjectLockConfigurationCommand.ts +++ b/clients/client-s3/src/commands/GetObjectLockConfigurationCommand.ts @@ -27,6 +27,15 @@ export interface GetObjectLockConfigurationCommandOutput extends GetObjectLockCo * configuration will be applied by default to every new object placed in the specified * bucket. For more information, see Locking * Objects.

                      + * + *

                      The following action is related to GetObjectLockConfiguration:

                      + * * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-s3/src/commands/GetObjectRetentionCommand.ts b/clients/client-s3/src/commands/GetObjectRetentionCommand.ts index 254cf5e54fd3..6487a825313e 100644 --- a/clients/client-s3/src/commands/GetObjectRetentionCommand.ts +++ b/clients/client-s3/src/commands/GetObjectRetentionCommand.ts @@ -25,6 +25,15 @@ export interface GetObjectRetentionCommandOutput extends GetObjectRetentionOutpu /** *

                      Retrieves an object's retention settings. For more information, see Locking Objects.

                      *

                      This action is not supported by Amazon S3 on Outposts.

                      + * + *

                      The following action is related to GetObjectRetention:

                      + * * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-s3/src/commands/GetObjectTaggingCommand.ts b/clients/client-s3/src/commands/GetObjectTaggingCommand.ts index 68bef8e1e33e..bae1d1b6b528 100644 --- a/clients/client-s3/src/commands/GetObjectTaggingCommand.ts +++ b/clients/client-s3/src/commands/GetObjectTaggingCommand.ts @@ -38,16 +38,21 @@ export interface GetObjectTaggingCommandOutput extends GetObjectTaggingOutput, _ * *

                      For information about the Amazon S3 object tagging feature, see Object Tagging.

                      * - *

                      The following action is related to GetObjectTagging:

                      + *

                      The following actions are related to GetObjectTagging:

                      * diff --git a/clients/client-s3/src/commands/HeadObjectCommand.ts b/clients/client-s3/src/commands/HeadObjectCommand.ts index a8d366ce24a5..2c5c22c5c37b 100644 --- a/clients/client-s3/src/commands/HeadObjectCommand.ts +++ b/clients/client-s3/src/commands/HeadObjectCommand.ts @@ -128,13 +128,18 @@ export interface HeadObjectCommandOutput extends HeadObjectOutput, __MetadataBea * *
                    * - *

                    The following action is related to HeadObject:

                    + *

                    The following actions are related to HeadObject:

                    * * @example * Use a bare-bones client and the command you need to make an API call. diff --git a/clients/client-s3/src/commands/ListBucketsCommand.ts b/clients/client-s3/src/commands/ListBucketsCommand.ts index c843234f4903..7d0dc2b9b586 100644 --- a/clients/client-s3/src/commands/ListBucketsCommand.ts +++ b/clients/client-s3/src/commands/ListBucketsCommand.ts @@ -22,7 +22,8 @@ export interface ListBucketsCommandInput {} export interface ListBucketsCommandOutput extends ListBucketsOutput, __MetadataBearer {} /** - *

                    Returns a list of all buckets owned by the authenticated sender of the request.

                    + *

                    Returns a list of all buckets owned by the authenticated sender of the request. To use + * this operation, you must have the s3:ListAllMyBuckets permission.

                    * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-s3/src/commands/ListPartsCommand.ts b/clients/client-s3/src/commands/ListPartsCommand.ts index 12e9f6df9d50..c5b9f5a3a360 100644 --- a/clients/client-s3/src/commands/ListPartsCommand.ts +++ b/clients/client-s3/src/commands/ListPartsCommand.ts @@ -1,5 +1,6 @@ import { getBucketEndpointPlugin } from "@aws-sdk/middleware-bucket-endpoint"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { getSsecPlugin } from "@aws-sdk/middleware-ssec"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; import { @@ -30,6 +31,9 @@ export interface ListPartsCommandOutput extends ListPartsOutput, __MetadataBeare * and a NextPartNumberMarker element. In subsequent ListParts * requests you can include the part-number-marker query string parameter and set its value to * the NextPartNumberMarker field value from the previous response.

                    + *

                    If the upload was created using a checksum algorithm, you will need to have permission + * to the kms:Decrypt action for the request to succeed. + *

                    * *

                    For more information on multipart uploads, see Uploading Objects Using Multipart * Upload.

                    @@ -61,6 +65,11 @@ export interface ListPartsCommandOutput extends ListPartsOutput, __MetadataBeare *
                  • *
                  • *

                    + * GetObjectAttributes + *

                    + *
                  • + *
                  • + *

                    * ListMultipartUploads *

                    *
                  • @@ -99,6 +108,7 @@ export class ListPartsCommand extends $Command { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use(getSsecPlugin(configuration)); this.middlewareStack.use(getBucketEndpointPlugin(configuration)); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-s3/src/commands/PutBucketAccelerateConfigurationCommand.ts b/clients/client-s3/src/commands/PutBucketAccelerateConfigurationCommand.ts index 0454410c8b7a..fed4c9fd6023 100644 --- a/clients/client-s3/src/commands/PutBucketAccelerateConfigurationCommand.ts +++ b/clients/client-s3/src/commands/PutBucketAccelerateConfigurationCommand.ts @@ -1,4 +1,5 @@ import { getBucketEndpointPlugin } from "@aws-sdk/middleware-bucket-endpoint"; +import { getFlexibleChecksumsPlugin } from "@aws-sdk/middleware-flexible-checksums"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -27,10 +28,10 @@ export interface PutBucketAccelerateConfigurationCommandOutput extends __Metadat * bucket-level feature that enables you to perform faster data transfers to Amazon S3.

                    * *

                    To use this operation, you must have permission to perform the - * s3:PutAccelerateConfiguration action. The bucket owner has this permission by default. The - * bucket owner can grant this permission to others. For more information about permissions, - * see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 - * Resources.

                    + * s3:PutAccelerateConfiguration action. The bucket owner has this permission + * by default. The bucket owner can grant this permission to others. For more information + * about permissions, see Permissions Related to Bucket Subresource Operations and Managing + * Access Permissions to Your Amazon S3 Resources.

                    * *

                    The Transfer Acceleration state of a bucket can be set to one of the following two * values:

                    @@ -108,6 +109,13 @@ export class PutBucketAccelerateConfigurationCommand extends $Command< ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use(getBucketEndpointPlugin(configuration)); + this.middlewareStack.use( + getFlexibleChecksumsPlugin(configuration, { + input: this.input, + requestAlgorithmMember: "ChecksumAlgorithm", + requestChecksumRequired: false, + }) + ); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-s3/src/commands/PutBucketAclCommand.ts b/clients/client-s3/src/commands/PutBucketAclCommand.ts index 63a75152e116..87829fbec171 100644 --- a/clients/client-s3/src/commands/PutBucketAclCommand.ts +++ b/clients/client-s3/src/commands/PutBucketAclCommand.ts @@ -1,5 +1,5 @@ -import { getApplyMd5BodyChecksumPlugin } from "@aws-sdk/middleware-apply-body-checksum"; import { getBucketEndpointPlugin } from "@aws-sdk/middleware-bucket-endpoint"; +import { getFlexibleChecksumsPlugin } from "@aws-sdk/middleware-flexible-checksums"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -259,7 +259,13 @@ export class PutBucketAclCommand extends $Command< ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use(getBucketEndpointPlugin(configuration)); - this.middlewareStack.use(getApplyMd5BodyChecksumPlugin(configuration)); + this.middlewareStack.use( + getFlexibleChecksumsPlugin(configuration, { + input: this.input, + requestAlgorithmMember: "ChecksumAlgorithm", + requestChecksumRequired: true, + }) + ); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-s3/src/commands/PutBucketCorsCommand.ts b/clients/client-s3/src/commands/PutBucketCorsCommand.ts index f9dcd52977b3..5331133bd286 100644 --- a/clients/client-s3/src/commands/PutBucketCorsCommand.ts +++ b/clients/client-s3/src/commands/PutBucketCorsCommand.ts @@ -1,5 +1,5 @@ -import { getApplyMd5BodyChecksumPlugin } from "@aws-sdk/middleware-apply-body-checksum"; import { getBucketEndpointPlugin } from "@aws-sdk/middleware-bucket-endpoint"; +import { getFlexibleChecksumsPlugin } from "@aws-sdk/middleware-flexible-checksums"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -120,7 +120,13 @@ export class PutBucketCorsCommand extends $Command< ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use(getBucketEndpointPlugin(configuration)); - this.middlewareStack.use(getApplyMd5BodyChecksumPlugin(configuration)); + this.middlewareStack.use( + getFlexibleChecksumsPlugin(configuration, { + input: this.input, + requestAlgorithmMember: "ChecksumAlgorithm", + requestChecksumRequired: true, + }) + ); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-s3/src/commands/PutBucketEncryptionCommand.ts b/clients/client-s3/src/commands/PutBucketEncryptionCommand.ts index db0b3df4380b..0ed2acd5a5bd 100644 --- a/clients/client-s3/src/commands/PutBucketEncryptionCommand.ts +++ b/clients/client-s3/src/commands/PutBucketEncryptionCommand.ts @@ -1,5 +1,5 @@ -import { getApplyMd5BodyChecksumPlugin } from "@aws-sdk/middleware-apply-body-checksum"; import { getBucketEndpointPlugin } from "@aws-sdk/middleware-bucket-endpoint"; +import { getFlexibleChecksumsPlugin } from "@aws-sdk/middleware-flexible-checksums"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -28,7 +28,9 @@ export interface PutBucketEncryptionCommandOutput extends __MetadataBearer {} * encryption and Amazon S3 Bucket Key for an existing bucket.

                    *

                    Default encryption for a bucket can use server-side encryption with Amazon S3-managed keys * (SSE-S3) or customer managed keys (SSE-KMS). If you specify default encryption - * using SSE-KMS, you can also configure Amazon S3 Bucket Key. For information about default + * using SSE-KMS, you can also configure Amazon S3 Bucket Key. When the default encryption is SSE-KMS, if + * you upload an object to the bucket and do not specify the KMS key to use for encryption, Amazon S3 + * uses the default Amazon Web Services managed KMS key for your account. For information about default * encryption, see Amazon S3 default bucket encryption * in the Amazon S3 User Guide. For more information about S3 Bucket Keys, * see Amazon S3 Bucket Keys in the Amazon S3 User Guide.

                    @@ -96,7 +98,13 @@ export class PutBucketEncryptionCommand extends $Command< ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use(getBucketEndpointPlugin(configuration)); - this.middlewareStack.use(getApplyMd5BodyChecksumPlugin(configuration)); + this.middlewareStack.use( + getFlexibleChecksumsPlugin(configuration, { + input: this.input, + requestAlgorithmMember: "ChecksumAlgorithm", + requestChecksumRequired: true, + }) + ); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-s3/src/commands/PutBucketLifecycleConfigurationCommand.ts b/clients/client-s3/src/commands/PutBucketLifecycleConfigurationCommand.ts index bf8fa6d745ba..1a1b1b97d218 100644 --- a/clients/client-s3/src/commands/PutBucketLifecycleConfigurationCommand.ts +++ b/clients/client-s3/src/commands/PutBucketLifecycleConfigurationCommand.ts @@ -1,5 +1,5 @@ -import { getApplyMd5BodyChecksumPlugin } from "@aws-sdk/middleware-apply-body-checksum"; import { getBucketEndpointPlugin } from "@aws-sdk/middleware-bucket-endpoint"; +import { getFlexibleChecksumsPlugin } from "@aws-sdk/middleware-flexible-checksums"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -25,6 +25,8 @@ export interface PutBucketLifecycleConfigurationCommandOutput extends __Metadata /** *

                    Creates a new lifecycle configuration for the bucket or replaces an existing lifecycle + * configuration. Keep in mind that this will overwrite an existing lifecycle configuration, so if + * you want to retain any configuration details, they must be included in the new lifecycle * configuration. For information about lifecycle configuration, see Managing your storage * lifecycle.

                    * @@ -76,7 +78,7 @@ export interface PutBucketLifecycleConfigurationCommandOutput extends __Metadata * subresources (for example, lifecycle configuration and website configuration). Only the * resource owner (that is, the Amazon Web Services account that created it) can access the resource. The * resource owner can optionally grant access permissions to others by writing an access - * policy. For this operation, a user must get the s3:PutLifecycleConfiguration + * policy. For this operation, a user must get the s3:PutLifecycleConfiguration * permission.

                    * *

                    You can also explicitly deny permissions. Explicit deny also supersedes any other @@ -85,13 +87,19 @@ export interface PutBucketLifecycleConfigurationCommandOutput extends __Metadata * *

                      *
                    • - *

                      s3:DeleteObject

                      + *

                      + * s3:DeleteObject + *

                      *
                    • *
                    • - *

                      s3:DeleteObjectVersion

                      + *

                      + * s3:DeleteObjectVersion + *

                      *
                    • *
                    • - *

                      s3:PutLifecycleConfiguration

                      + *

                      + * s3:PutLifecycleConfiguration + *

                      *
                    • *
                    * @@ -157,7 +165,13 @@ export class PutBucketLifecycleConfigurationCommand extends $Command< ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use(getBucketEndpointPlugin(configuration)); - this.middlewareStack.use(getApplyMd5BodyChecksumPlugin(configuration)); + this.middlewareStack.use( + getFlexibleChecksumsPlugin(configuration, { + input: this.input, + requestAlgorithmMember: "ChecksumAlgorithm", + requestChecksumRequired: true, + }) + ); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-s3/src/commands/PutBucketLoggingCommand.ts b/clients/client-s3/src/commands/PutBucketLoggingCommand.ts index 7d05733c9b25..a139b53bec05 100644 --- a/clients/client-s3/src/commands/PutBucketLoggingCommand.ts +++ b/clients/client-s3/src/commands/PutBucketLoggingCommand.ts @@ -1,5 +1,5 @@ -import { getApplyMd5BodyChecksumPlugin } from "@aws-sdk/middleware-apply-body-checksum"; import { getBucketEndpointPlugin } from "@aws-sdk/middleware-bucket-endpoint"; +import { getFlexibleChecksumsPlugin } from "@aws-sdk/middleware-flexible-checksums"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -148,7 +148,13 @@ export class PutBucketLoggingCommand extends $Command< ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use(getBucketEndpointPlugin(configuration)); - this.middlewareStack.use(getApplyMd5BodyChecksumPlugin(configuration)); + this.middlewareStack.use( + getFlexibleChecksumsPlugin(configuration, { + input: this.input, + requestAlgorithmMember: "ChecksumAlgorithm", + requestChecksumRequired: true, + }) + ); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-s3/src/commands/PutBucketNotificationConfigurationCommand.ts b/clients/client-s3/src/commands/PutBucketNotificationConfigurationCommand.ts index 9f3dd6c4d67c..0ba34b619a40 100644 --- a/clients/client-s3/src/commands/PutBucketNotificationConfigurationCommand.ts +++ b/clients/client-s3/src/commands/PutBucketNotificationConfigurationCommand.ts @@ -54,7 +54,8 @@ export interface PutBucketNotificationConfigurationCommandOutput extends __Metad * *

                    You can disable notifications by adding the empty NotificationConfiguration * element.

                    - * + *

                    For more information about the number of event notification configurations that you can create per bucket, see + * Amazon S3 service quotas in Amazon Web Services General Reference.

                    *

                    By default, only the bucket owner can configure notifications on a bucket. However, * bucket owners can use a bucket policy to grant permission to other users to set this * configuration with s3:PutBucketNotification permission.

                    diff --git a/clients/client-s3/src/commands/PutBucketOwnershipControlsCommand.ts b/clients/client-s3/src/commands/PutBucketOwnershipControlsCommand.ts index 039c7d841661..5bbed09efa03 100644 --- a/clients/client-s3/src/commands/PutBucketOwnershipControlsCommand.ts +++ b/clients/client-s3/src/commands/PutBucketOwnershipControlsCommand.ts @@ -1,5 +1,5 @@ -import { getApplyMd5BodyChecksumPlugin } from "@aws-sdk/middleware-apply-body-checksum"; import { getBucketEndpointPlugin } from "@aws-sdk/middleware-bucket-endpoint"; +import { getFlexibleChecksumsPlugin } from "@aws-sdk/middleware-flexible-checksums"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -80,7 +80,9 @@ export class PutBucketOwnershipControlsCommand extends $Command< ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use(getBucketEndpointPlugin(configuration)); - this.middlewareStack.use(getApplyMd5BodyChecksumPlugin(configuration)); + this.middlewareStack.use( + getFlexibleChecksumsPlugin(configuration, { input: this.input, requestChecksumRequired: true }) + ); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-s3/src/commands/PutBucketPolicyCommand.ts b/clients/client-s3/src/commands/PutBucketPolicyCommand.ts index 4b99b38f255c..9bf8ece21dbb 100644 --- a/clients/client-s3/src/commands/PutBucketPolicyCommand.ts +++ b/clients/client-s3/src/commands/PutBucketPolicyCommand.ts @@ -1,5 +1,5 @@ -import { getApplyMd5BodyChecksumPlugin } from "@aws-sdk/middleware-apply-body-checksum"; import { getBucketEndpointPlugin } from "@aws-sdk/middleware-bucket-endpoint"; +import { getFlexibleChecksumsPlugin } from "@aws-sdk/middleware-flexible-checksums"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -93,7 +93,13 @@ export class PutBucketPolicyCommand extends $Command< ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use(getBucketEndpointPlugin(configuration)); - this.middlewareStack.use(getApplyMd5BodyChecksumPlugin(configuration)); + this.middlewareStack.use( + getFlexibleChecksumsPlugin(configuration, { + input: this.input, + requestAlgorithmMember: "ChecksumAlgorithm", + requestChecksumRequired: true, + }) + ); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-s3/src/commands/PutBucketReplicationCommand.ts b/clients/client-s3/src/commands/PutBucketReplicationCommand.ts index 78b6f5bb6064..4f10a1a2a374 100644 --- a/clients/client-s3/src/commands/PutBucketReplicationCommand.ts +++ b/clients/client-s3/src/commands/PutBucketReplicationCommand.ts @@ -1,5 +1,5 @@ -import { getApplyMd5BodyChecksumPlugin } from "@aws-sdk/middleware-apply-body-checksum"; import { getBucketEndpointPlugin } from "@aws-sdk/middleware-bucket-endpoint"; +import { getFlexibleChecksumsPlugin } from "@aws-sdk/middleware-flexible-checksums"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -133,7 +133,13 @@ export class PutBucketReplicationCommand extends $Command< ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use(getBucketEndpointPlugin(configuration)); - this.middlewareStack.use(getApplyMd5BodyChecksumPlugin(configuration)); + this.middlewareStack.use( + getFlexibleChecksumsPlugin(configuration, { + input: this.input, + requestAlgorithmMember: "ChecksumAlgorithm", + requestChecksumRequired: true, + }) + ); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-s3/src/commands/PutBucketRequestPaymentCommand.ts b/clients/client-s3/src/commands/PutBucketRequestPaymentCommand.ts index 168bd2abe2da..14cbeeedf3a4 100644 --- a/clients/client-s3/src/commands/PutBucketRequestPaymentCommand.ts +++ b/clients/client-s3/src/commands/PutBucketRequestPaymentCommand.ts @@ -1,5 +1,5 @@ -import { getApplyMd5BodyChecksumPlugin } from "@aws-sdk/middleware-apply-body-checksum"; import { getBucketEndpointPlugin } from "@aws-sdk/middleware-bucket-endpoint"; +import { getFlexibleChecksumsPlugin } from "@aws-sdk/middleware-flexible-checksums"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -82,7 +82,13 @@ export class PutBucketRequestPaymentCommand extends $Command< ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use(getBucketEndpointPlugin(configuration)); - this.middlewareStack.use(getApplyMd5BodyChecksumPlugin(configuration)); + this.middlewareStack.use( + getFlexibleChecksumsPlugin(configuration, { + input: this.input, + requestAlgorithmMember: "ChecksumAlgorithm", + requestChecksumRequired: true, + }) + ); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-s3/src/commands/PutBucketTaggingCommand.ts b/clients/client-s3/src/commands/PutBucketTaggingCommand.ts index 798602ea8a5a..c5279e021ec3 100644 --- a/clients/client-s3/src/commands/PutBucketTaggingCommand.ts +++ b/clients/client-s3/src/commands/PutBucketTaggingCommand.ts @@ -1,5 +1,5 @@ -import { getApplyMd5BodyChecksumPlugin } from "@aws-sdk/middleware-apply-body-checksum"; import { getBucketEndpointPlugin } from "@aws-sdk/middleware-bucket-endpoint"; +import { getFlexibleChecksumsPlugin } from "@aws-sdk/middleware-flexible-checksums"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -142,7 +142,13 @@ export class PutBucketTaggingCommand extends $Command< ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use(getBucketEndpointPlugin(configuration)); - this.middlewareStack.use(getApplyMd5BodyChecksumPlugin(configuration)); + this.middlewareStack.use( + getFlexibleChecksumsPlugin(configuration, { + input: this.input, + requestAlgorithmMember: "ChecksumAlgorithm", + requestChecksumRequired: true, + }) + ); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-s3/src/commands/PutBucketVersioningCommand.ts b/clients/client-s3/src/commands/PutBucketVersioningCommand.ts index 29d38a7d5f2f..4266160ef8f8 100644 --- a/clients/client-s3/src/commands/PutBucketVersioningCommand.ts +++ b/clients/client-s3/src/commands/PutBucketVersioningCommand.ts @@ -1,5 +1,5 @@ -import { getApplyMd5BodyChecksumPlugin } from "@aws-sdk/middleware-apply-body-checksum"; import { getBucketEndpointPlugin } from "@aws-sdk/middleware-bucket-endpoint"; +import { getFlexibleChecksumsPlugin } from "@aws-sdk/middleware-flexible-checksums"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -24,8 +24,7 @@ export interface PutBucketVersioningCommandInput extends PutBucketVersioningRequ export interface PutBucketVersioningCommandOutput extends __MetadataBearer {} /** - *

                    Sets the versioning state of an existing bucket. To set the versioning state, you must - * be the bucket owner.

                    + *

                    Sets the versioning state of an existing bucket.

                    *

                    You can set the versioning state with one of the following values:

                    * *

                    @@ -39,8 +38,9 @@ export interface PutBucketVersioningCommandOutput extends __MetadataBearer {} *

                    If the versioning state has never been set on a bucket, it has no versioning state; a * GetBucketVersioning request does not return a versioning state value.

                    * - *

                    If the bucket owner enables MFA Delete in the bucket versioning configuration, the - * bucket owner must include the x-amz-mfa request header and the + *

                    In order to enable MFA Delete, you must be the bucket owner. If you are the bucket owner + * and want to enable MFA Delete in the bucket versioning configuration, you must + * include the x-amz-mfa request header and the * Status and the MfaDelete request elements in a request to set * the versioning state of the bucket.

                    * @@ -112,7 +112,13 @@ export class PutBucketVersioningCommand extends $Command< ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use(getBucketEndpointPlugin(configuration)); - this.middlewareStack.use(getApplyMd5BodyChecksumPlugin(configuration)); + this.middlewareStack.use( + getFlexibleChecksumsPlugin(configuration, { + input: this.input, + requestAlgorithmMember: "ChecksumAlgorithm", + requestChecksumRequired: true, + }) + ); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-s3/src/commands/PutBucketWebsiteCommand.ts b/clients/client-s3/src/commands/PutBucketWebsiteCommand.ts index be273b350222..21471ffa6119 100644 --- a/clients/client-s3/src/commands/PutBucketWebsiteCommand.ts +++ b/clients/client-s3/src/commands/PutBucketWebsiteCommand.ts @@ -1,5 +1,5 @@ -import { getApplyMd5BodyChecksumPlugin } from "@aws-sdk/middleware-apply-body-checksum"; import { getBucketEndpointPlugin } from "@aws-sdk/middleware-bucket-endpoint"; +import { getFlexibleChecksumsPlugin } from "@aws-sdk/middleware-flexible-checksums"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -189,7 +189,13 @@ export class PutBucketWebsiteCommand extends $Command< ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use(getBucketEndpointPlugin(configuration)); - this.middlewareStack.use(getApplyMd5BodyChecksumPlugin(configuration)); + this.middlewareStack.use( + getFlexibleChecksumsPlugin(configuration, { + input: this.input, + requestAlgorithmMember: "ChecksumAlgorithm", + requestChecksumRequired: true, + }) + ); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-s3/src/commands/PutObjectAclCommand.ts b/clients/client-s3/src/commands/PutObjectAclCommand.ts index b0be6ff3ed4f..634b59845c2c 100644 --- a/clients/client-s3/src/commands/PutObjectAclCommand.ts +++ b/clients/client-s3/src/commands/PutObjectAclCommand.ts @@ -1,5 +1,5 @@ -import { getApplyMd5BodyChecksumPlugin } from "@aws-sdk/middleware-apply-body-checksum"; import { getBucketEndpointPlugin } from "@aws-sdk/middleware-bucket-endpoint"; +import { getFlexibleChecksumsPlugin } from "@aws-sdk/middleware-flexible-checksums"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -245,7 +245,13 @@ export class PutObjectAclCommand extends $Command< ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use(getBucketEndpointPlugin(configuration)); - this.middlewareStack.use(getApplyMd5BodyChecksumPlugin(configuration)); + this.middlewareStack.use( + getFlexibleChecksumsPlugin(configuration, { + input: this.input, + requestAlgorithmMember: "ChecksumAlgorithm", + requestChecksumRequired: true, + }) + ); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-s3/src/commands/PutObjectCommand.ts b/clients/client-s3/src/commands/PutObjectCommand.ts index 1545e63eb794..97c2a085f833 100644 --- a/clients/client-s3/src/commands/PutObjectCommand.ts +++ b/clients/client-s3/src/commands/PutObjectCommand.ts @@ -1,4 +1,5 @@ import { getBucketEndpointPlugin } from "@aws-sdk/middleware-bucket-endpoint"; +import { getFlexibleChecksumsPlugin } from "@aws-sdk/middleware-flexible-checksums"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { getSsecPlugin } from "@aws-sdk/middleware-ssec"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; @@ -173,6 +174,13 @@ export class PutObjectCommand extends $CommandApplies a Legal Hold configuration to the specified object. For more information, see + *

                    Applies a legal hold configuration to the specified object. For more information, see * Locking * Objects.

                    *

                    This action is not supported by Amazon S3 on Outposts.

                    @@ -67,7 +67,13 @@ export class PutObjectLegalHoldCommand extends $Command< ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use(getBucketEndpointPlugin(configuration)); - this.middlewareStack.use(getApplyMd5BodyChecksumPlugin(configuration)); + this.middlewareStack.use( + getFlexibleChecksumsPlugin(configuration, { + input: this.input, + requestAlgorithmMember: "ChecksumAlgorithm", + requestChecksumRequired: true, + }) + ); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-s3/src/commands/PutObjectLockConfigurationCommand.ts b/clients/client-s3/src/commands/PutObjectLockConfigurationCommand.ts index ee32110f7ad0..6f505230af50 100644 --- a/clients/client-s3/src/commands/PutObjectLockConfigurationCommand.ts +++ b/clients/client-s3/src/commands/PutObjectLockConfigurationCommand.ts @@ -1,5 +1,5 @@ -import { getApplyMd5BodyChecksumPlugin } from "@aws-sdk/middleware-apply-body-checksum"; import { getBucketEndpointPlugin } from "@aws-sdk/middleware-bucket-endpoint"; +import { getFlexibleChecksumsPlugin } from "@aws-sdk/middleware-flexible-checksums"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -84,7 +84,13 @@ export class PutObjectLockConfigurationCommand extends $Command< ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use(getBucketEndpointPlugin(configuration)); - this.middlewareStack.use(getApplyMd5BodyChecksumPlugin(configuration)); + this.middlewareStack.use( + getFlexibleChecksumsPlugin(configuration, { + input: this.input, + requestAlgorithmMember: "ChecksumAlgorithm", + requestChecksumRequired: true, + }) + ); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-s3/src/commands/PutObjectRetentionCommand.ts b/clients/client-s3/src/commands/PutObjectRetentionCommand.ts index 28f64b6e580b..a9591faa6bd9 100644 --- a/clients/client-s3/src/commands/PutObjectRetentionCommand.ts +++ b/clients/client-s3/src/commands/PutObjectRetentionCommand.ts @@ -1,5 +1,5 @@ -import { getApplyMd5BodyChecksumPlugin } from "@aws-sdk/middleware-apply-body-checksum"; import { getBucketEndpointPlugin } from "@aws-sdk/middleware-bucket-endpoint"; +import { getFlexibleChecksumsPlugin } from "@aws-sdk/middleware-flexible-checksums"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -13,7 +13,7 @@ import { SerdeContext as __SerdeContext, } from "@aws-sdk/types"; -import { PutObjectRetentionOutput, PutObjectRetentionRequest } from "../models/models_0"; +import { PutObjectRetentionOutput, PutObjectRetentionRequest } from "../models/models_1"; import { deserializeAws_restXmlPutObjectRetentionCommand, serializeAws_restXmlPutObjectRetentionCommand, @@ -30,13 +30,6 @@ export interface PutObjectRetentionCommandOutput extends PutObjectRetentionOutpu * requires the s3:BypassGovernanceRetention permission. *

                    *

                    This action is not supported by Amazon S3 on Outposts.

                    - * - *

                    - * Permissions - *

                    - *

                    When the Object Lock retention mode is set to compliance, you need s3:PutObjectRetention and - * s3:BypassGovernanceRetention permissions. For other requests to PutObjectRetention, - * only s3:PutObjectRetention permissions are required.

                    * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript @@ -76,7 +69,13 @@ export class PutObjectRetentionCommand extends $Command< ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use(getBucketEndpointPlugin(configuration)); - this.middlewareStack.use(getApplyMd5BodyChecksumPlugin(configuration)); + this.middlewareStack.use( + getFlexibleChecksumsPlugin(configuration, { + input: this.input, + requestAlgorithmMember: "ChecksumAlgorithm", + requestChecksumRequired: true, + }) + ); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-s3/src/commands/PutObjectTaggingCommand.ts b/clients/client-s3/src/commands/PutObjectTaggingCommand.ts index ff30226f23fe..6085a4c10111 100644 --- a/clients/client-s3/src/commands/PutObjectTaggingCommand.ts +++ b/clients/client-s3/src/commands/PutObjectTaggingCommand.ts @@ -1,5 +1,5 @@ -import { getApplyMd5BodyChecksumPlugin } from "@aws-sdk/middleware-apply-body-checksum"; import { getBucketEndpointPlugin } from "@aws-sdk/middleware-bucket-endpoint"; +import { getFlexibleChecksumsPlugin } from "@aws-sdk/middleware-flexible-checksums"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -13,7 +13,7 @@ import { SerdeContext as __SerdeContext, } from "@aws-sdk/types"; -import { PutObjectTaggingOutput, PutObjectTaggingRequest } from "../models/models_0"; +import { PutObjectTaggingOutput, PutObjectTaggingRequest } from "../models/models_1"; import { deserializeAws_restXmlPutObjectTaggingCommand, serializeAws_restXmlPutObjectTaggingCommand, @@ -167,7 +167,13 @@ export class PutObjectTaggingCommand extends $Command< ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use(getBucketEndpointPlugin(configuration)); - this.middlewareStack.use(getApplyMd5BodyChecksumPlugin(configuration)); + this.middlewareStack.use( + getFlexibleChecksumsPlugin(configuration, { + input: this.input, + requestAlgorithmMember: "ChecksumAlgorithm", + requestChecksumRequired: true, + }) + ); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-s3/src/commands/PutPublicAccessBlockCommand.ts b/clients/client-s3/src/commands/PutPublicAccessBlockCommand.ts index 3382795aca73..773041c995c2 100644 --- a/clients/client-s3/src/commands/PutPublicAccessBlockCommand.ts +++ b/clients/client-s3/src/commands/PutPublicAccessBlockCommand.ts @@ -1,5 +1,5 @@ -import { getApplyMd5BodyChecksumPlugin } from "@aws-sdk/middleware-apply-body-checksum"; import { getBucketEndpointPlugin } from "@aws-sdk/middleware-bucket-endpoint"; +import { getFlexibleChecksumsPlugin } from "@aws-sdk/middleware-flexible-checksums"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -13,7 +13,7 @@ import { SerdeContext as __SerdeContext, } from "@aws-sdk/types"; -import { PutPublicAccessBlockRequest } from "../models/models_0"; +import { PutPublicAccessBlockRequest } from "../models/models_1"; import { deserializeAws_restXmlPutPublicAccessBlockCommand, serializeAws_restXmlPutPublicAccessBlockCommand, @@ -108,7 +108,13 @@ export class PutPublicAccessBlockCommand extends $Command< ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use(getBucketEndpointPlugin(configuration)); - this.middlewareStack.use(getApplyMd5BodyChecksumPlugin(configuration)); + this.middlewareStack.use( + getFlexibleChecksumsPlugin(configuration, { + input: this.input, + requestAlgorithmMember: "ChecksumAlgorithm", + requestChecksumRequired: true, + }) + ); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-s3/src/commands/RestoreObjectCommand.ts b/clients/client-s3/src/commands/RestoreObjectCommand.ts index 628478dbbc15..70844f4453fa 100644 --- a/clients/client-s3/src/commands/RestoreObjectCommand.ts +++ b/clients/client-s3/src/commands/RestoreObjectCommand.ts @@ -1,4 +1,5 @@ import { getBucketEndpointPlugin } from "@aws-sdk/middleware-bucket-endpoint"; +import { getFlexibleChecksumsPlugin } from "@aws-sdk/middleware-flexible-checksums"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; @@ -12,8 +13,7 @@ import { SerdeContext as __SerdeContext, } from "@aws-sdk/types"; -import { RestoreObjectOutput } from "../models/models_0"; -import { RestoreObjectRequest } from "../models/models_1"; +import { RestoreObjectOutput, RestoreObjectRequest } from "../models/models_1"; import { deserializeAws_restXmlRestoreObjectCommand, serializeAws_restXmlRestoreObjectCommand, @@ -161,42 +161,35 @@ export interface RestoreObjectCommandOutput extends RestoreObjectOutput, __Metad *
                      *
                    • *

                      - * - * Expedited - * - Expedited retrievals - * allow you to quickly access your data stored in the S3 Glacier - * storage class or S3 Intelligent-Tiering Archive tier when occasional urgent requests for a - * subset of archives are required. For all but the largest archived objects (250 MB+), - * data accessed using Expedited retrievals is typically made available within 1–5 - * minutes. Provisioned capacity ensures that retrieval capacity for Expedited - * retrievals is available when you need it. Expedited retrievals and provisioned - * capacity are not available for objects stored in the S3 Glacier Deep Archive - * storage class or S3 Intelligent-Tiering Deep Archive tier.

                      + * Expedited - Expedited retrievals allow you to quickly access your + * data stored in the S3 Glacier storage class or S3 Intelligent-Tiering Archive + * tier when occasional urgent requests for a subset of archives are required. For all + * but the largest archived objects (250 MB+), data accessed using Expedited retrievals + * is typically made available within 1–5 minutes. Provisioned capacity ensures that + * retrieval capacity for Expedited retrievals is available when you need it. Expedited + * retrievals and provisioned capacity are not available for objects stored in the + * S3 Glacier Deep Archive storage class or S3 Intelligent-Tiering Deep Archive tier.

                      *
                    • *
                    • *

                      - * - * Standard - * - Standard retrievals allow - * you to access any of your archived objects within several hours. This is the default - * option for retrieval requests that do not specify the retrieval option. Standard - * retrievals typically finish within 3–5 hours for objects stored in the - * S3 Glacier storage class or S3 Intelligent-Tiering Archive tier. They - * typically finish within 12 hours for objects stored in the - * S3 Glacier Deep Archive storage class or S3 Intelligent-Tiering Deep Archive tier. - * Standard retrievals are free for objects stored in S3 Intelligent-Tiering.

                      + * Standard - Standard retrievals allow you to access any of your + * archived objects within several hours. This is the default option for retrieval + * requests that do not specify the retrieval option. Standard retrievals typically + * finish within 3–5 hours for objects stored in the S3 Glacier storage + * class or S3 Intelligent-Tiering Archive tier. They typically finish within 12 hours for + * objects stored in the S3 Glacier Deep Archive storage class or + * S3 Intelligent-Tiering Deep Archive tier. Standard retrievals are free for objects stored in + * S3 Intelligent-Tiering.

                      *
                    • *
                    • *

                      - * - * Bulk - * - Bulk retrievals are the - * lowest-cost retrieval option in S3 Glacier, enabling you to retrieve large amounts, - * even petabytes, of data inexpensively. Bulk retrievals typically finish within 5–12 - * hours for objects stored in the S3 Glacier storage class or - * S3 Intelligent-Tiering Archive tier. They typically finish within 48 hours for objects stored - * in the S3 Glacier Deep Archive storage class or S3 Intelligent-Tiering Deep Archive tier. - * Bulk retrievals are free for objects stored in S3 Intelligent-Tiering.

                      + * Bulk - Bulk retrievals are the lowest-cost retrieval option in + * S3 Glacier, enabling you to retrieve large amounts, even petabytes, of data + * inexpensively. Bulk retrievals typically finish within 5–12 hours for objects stored + * in the S3 Glacier storage class or S3 Intelligent-Tiering Archive tier. They + * typically finish within 48 hours for objects stored in the + * S3 Glacier Deep Archive storage class or S3 Intelligent-Tiering Deep Archive tier. Bulk + * retrievals are free for objects stored in S3 Intelligent-Tiering.

                      *
                    • *
                    *

                    For more information about archive retrieval options and provisioned capacity for @@ -355,6 +348,13 @@ export class RestoreObjectCommand extends $Command< ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use(getBucketEndpointPlugin(configuration)); + this.middlewareStack.use( + getFlexibleChecksumsPlugin(configuration, { + input: this.input, + requestAlgorithmMember: "ChecksumAlgorithm", + requestChecksumRequired: false, + }) + ); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-s3/src/commands/UploadPartCommand.ts b/clients/client-s3/src/commands/UploadPartCommand.ts index b3031d206a1c..75b8fcce9fe7 100644 --- a/clients/client-s3/src/commands/UploadPartCommand.ts +++ b/clients/client-s3/src/commands/UploadPartCommand.ts @@ -1,4 +1,5 @@ import { getBucketEndpointPlugin } from "@aws-sdk/middleware-bucket-endpoint"; +import { getFlexibleChecksumsPlugin } from "@aws-sdk/middleware-flexible-checksums"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { getSsecPlugin } from "@aws-sdk/middleware-ssec"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; @@ -211,6 +212,13 @@ export class UploadPartCommand extends $Command< this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use(getSsecPlugin(configuration)); this.middlewareStack.use(getBucketEndpointPlugin(configuration)); + this.middlewareStack.use( + getFlexibleChecksumsPlugin(configuration, { + input: this.input, + requestAlgorithmMember: "ChecksumAlgorithm", + requestChecksumRequired: false, + }) + ); const stack = clientStack.concat(this.middlewareStack); diff --git a/clients/client-s3/src/commands/UploadPartCopyCommand.ts b/clients/client-s3/src/commands/UploadPartCopyCommand.ts index 4a6e6af2eb8a..83ef6276ca77 100644 --- a/clients/client-s3/src/commands/UploadPartCopyCommand.ts +++ b/clients/client-s3/src/commands/UploadPartCopyCommand.ts @@ -54,13 +54,13 @@ export interface UploadPartCopyCommandOutput extends UploadPartCopyOutput, __Met * Permissions in the Amazon S3 User Guide.

                    * *
                  • - *

                    For information about copying objects using a single atomic action vs. the - * multipart upload, see Operations on - * Objects in the Amazon S3 User Guide.

                    + *

                    For information about copying objects using a single atomic action vs. a multipart + * upload, see Operations on Objects in + * the Amazon S3 User Guide.

                    *
                  • *
                  • *

                    For information about using server-side encryption with customer-provided - * encryption keys with the UploadPartCopy operation, see CopyObject and UploadPart.

                    + * encryption keys with the UploadPartCopy operation, see CopyObject and UploadPart.

                    *
                  • *
                  *

                  Note the following additional considerations about the request headers diff --git a/clients/client-s3/src/commands/index.ts b/clients/client-s3/src/commands/index.ts index a43acbedf0ed..22c9173dd3a7 100644 --- a/clients/client-s3/src/commands/index.ts +++ b/clients/client-s3/src/commands/index.ts @@ -41,6 +41,7 @@ export * from "./GetBucketTaggingCommand"; export * from "./GetBucketVersioningCommand"; export * from "./GetBucketWebsiteCommand"; export * from "./GetObjectAclCommand"; +export * from "./GetObjectAttributesCommand"; export * from "./GetObjectCommand"; export * from "./GetObjectLegalHoldCommand"; export * from "./GetObjectLockConfigurationCommand"; diff --git a/clients/client-s3/src/models/models_0.ts b/clients/client-s3/src/models/models_0.ts index c4ebfd573769..43c259bffdc2 100644 --- a/clients/client-s3/src/models/models_0.ts +++ b/clients/client-s3/src/models/models_0.ts @@ -52,7 +52,8 @@ export interface AbortMultipartUploadRequest { /** *

                  The bucket name to which the upload was taking place.

                  *

                  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                  - *

                  When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

                  + *

                  When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + * AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                  *

                  Note: To supply the Multi-region Access Point (MRAP) to Bucket, you need to install the "@aws-sdk/signature-v4-crt" package to your project dependencies. * For more information, please go to https://github.com/aws/aws-sdk-js-v3#known-issues

                  */ @@ -71,13 +72,13 @@ export interface AbortMultipartUploadRequest { /** *

                  Confirms that the requester knows that they will be charged for the request. Bucket * owners need not specify this parameter in their requests. For information about downloading - * objects from requester pays buckets, see Downloading Objects in - * Requestor Pays Buckets in the Amazon S3 User Guide.

                  + * objects from Requester Pays buckets, see Downloading Objects in + * Requester Pays Buckets in the Amazon S3 User Guide.

                  */ RequestPayer?: RequestPayer | string; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -311,7 +312,8 @@ export interface CompleteMultipartUploadOutput { /** *

                  The name of the bucket that contains the newly created object. Does not return the access point ARN or access point alias if used.

                  *

                  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                  - *

                  When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

                  + *

                  When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + * AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                  */ Bucket?: string; @@ -322,7 +324,8 @@ export interface CompleteMultipartUploadOutput { /** *

                  If the object expiration is configured, this will contain the expiration date - * (expiry-date) and rule ID (rule-id). The value of rule-id is URL encoded.

                  + * (expiry-date) and rule ID (rule-id). The value of + * rule-id is URL-encoded.

                  */ Expiration?: string; @@ -331,10 +334,45 @@ export interface CompleteMultipartUploadOutput { * object data will have different entity tags. The entity tag is an opaque string. The entity * tag may or may not be an MD5 digest of the object data. If the entity tag is not an MD5 * digest of the object data, it will contain one or more nonhexadecimal characters and/or - * will consist of less than 32 or more than 32 hexadecimal digits.

                  + * will consist of less than 32 or more than 32 hexadecimal digits. For more information about + * how the entity tag is calculated, see + * Checking + * object integrity in the Amazon S3 User Guide.

                  */ ETag?: string; + /** + *

                  The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                  + */ + ChecksumCRC32?: string; + + /** + *

                  The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                  + */ + ChecksumCRC32C?: string; + + /** + *

                  The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                  + */ + ChecksumSHA1?: string; + + /** + *

                  The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                  + */ + ChecksumSHA256?: string; + /** *

                  If you specified server-side encryption either with an Amazon S3-managed encryption key or an * Amazon Web Services KMS key in your initiate multipart upload request, the response @@ -386,6 +424,38 @@ export interface CompletedPart { */ ETag?: string; + /** + *

                  The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                  + */ + ChecksumCRC32?: string; + + /** + *

                  The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                  + */ + ChecksumCRC32C?: string; + + /** + *

                  The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                  + */ + ChecksumSHA1?: string; + + /** + *

                  The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                  + */ + ChecksumSHA256?: string; + /** *

                  Part number that identifies the part. This is a positive integer between 1 and * 10,000.

                  @@ -427,7 +497,8 @@ export interface CompleteMultipartUploadRequest { /** *

                  Name of the bucket to which the multipart upload was initiated.

                  *

                  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                  - *

                  When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

                  + *

                  When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + * AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                  *

                  Note: To supply the Multi-region Access Point (MRAP) to Bucket, you need to install the "@aws-sdk/signature-v4-crt" package to your project dependencies. * For more information, please go to https://github.com/aws/aws-sdk-js-v3#known-issues

                  */ @@ -448,18 +519,74 @@ export interface CompleteMultipartUploadRequest { */ UploadId: string | undefined; + /** + *

                  This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. + * This header specifies the base64-encoded, 32-bit CRC32 checksum of the object. For more information, see + * Checking object integrity in the + * Amazon S3 User Guide.

                  + */ + ChecksumCRC32?: string; + + /** + *

                  This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. + * This header specifies the base64-encoded, 32-bit CRC32C checksum of the object. For more information, see + * Checking object integrity in the + * Amazon S3 User Guide.

                  + */ + ChecksumCRC32C?: string; + + /** + *

                  This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. + * This header specifies the base64-encoded, 160-bit SHA-1 digest of the object. For more information, see + * Checking object integrity in the + * Amazon S3 User Guide.

                  + */ + ChecksumSHA1?: string; + + /** + *

                  This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. + * This header specifies the base64-encoded, 256-bit SHA-256 digest of the object. For more information, see + * Checking object integrity in the + * Amazon S3 User Guide.

                  + */ + ChecksumSHA256?: string; + /** *

                  Confirms that the requester knows that they will be charged for the request. Bucket * owners need not specify this parameter in their requests. For information about downloading - * objects from requester pays buckets, see Downloading Objects in - * Requestor Pays Buckets in the Amazon S3 User Guide.

                  + * objects from Requester Pays buckets, see Downloading Objects in + * Requester Pays Buckets in the Amazon S3 User Guide.

                  */ RequestPayer?: RequestPayer | string; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; + + /** + *

                  The server-side encryption (SSE) algorithm used to encrypt the object. This parameter is needed only when the object was created + * using a checksum algorithm. For more information, + * see Protecting data using SSE-C keys in the + * Amazon S3 User Guide.

                  + */ + SSECustomerAlgorithm?: string; + + /** + *

                  The server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. + * For more information, see + * Protecting data using SSE-C keys in the + * Amazon S3 User Guide.

                  + */ + SSECustomerKey?: string; + + /** + *

                  The MD5 server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum + * algorithm. For more information, + * see Protecting data using SSE-C keys in the + * Amazon S3 User Guide.

                  + */ + SSECustomerKeyMD5?: string; } export namespace CompleteMultipartUploadRequest { @@ -468,6 +595,7 @@ export namespace CompleteMultipartUploadRequest { */ export const filterSensitiveLog = (obj: CompleteMultipartUploadRequest): any => ({ ...obj, + ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }), }); } @@ -484,6 +612,38 @@ export interface CopyObjectResult { *

                  Creation date of the object.

                  */ LastModified?: Date; + + /** + *

                  The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                  + */ + ChecksumCRC32?: string; + + /** + *

                  The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                  + */ + ChecksumCRC32C?: string; + + /** + *

                  The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                  + */ + ChecksumSHA1?: string; + + /** + *

                  The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                  + */ + ChecksumSHA256?: string; } export namespace CopyObjectResult { @@ -580,6 +740,13 @@ export type ObjectCannedACL = | "public-read" | "public-read-write"; +export enum ChecksumAlgorithm { + CRC32 = "CRC32", + CRC32C = "CRC32C", + SHA1 = "SHA1", + SHA256 = "SHA256", +} + export type MetadataDirective = "COPY" | "REPLACE"; export type ObjectLockLegalHoldStatus = "OFF" | "ON"; @@ -609,7 +776,8 @@ export interface CopyObjectRequest { /** *

                  The name of the destination bucket.

                  *

                  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                  - *

                  When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

                  + *

                  When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + * AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                  *

                  Note: To supply the Multi-region Access Point (MRAP) to Bucket, you need to install the "@aws-sdk/signature-v4-crt" package to your project dependencies. * For more information, please go to https://github.com/aws/aws-sdk-js-v3#known-issues

                  */ @@ -620,6 +788,13 @@ export interface CopyObjectRequest { */ CacheControl?: string; + /** + *

                  Indicates the algorithm you want Amazon S3 to use to create the checksum for the object. For more information, see + * Checking object integrity in + * the Amazon S3 User Guide.

                  + */ + ChecksumAlgorithm?: ChecksumAlgorithm | string; + /** *

                  Specifies presentational information for the object.

                  */ @@ -647,19 +822,18 @@ export interface CopyObjectRequest { * formats, depending on whether you want to access the source object through an access point:

                  *
                    *
                  • - *

                    For objects not accessed through an access point, specify the name of the source - * bucket and the key of the source object, separated by a slash (/). For example, to - * copy the object reports/january.pdf from the bucket - * awsexamplebucket, use - * awsexamplebucket/reports/january.pdf. The value must be URL - * encoded.

                    + *

                    For objects not accessed through an access point, specify the name of the source bucket + * and the key of the source object, separated by a slash (/). For example, to copy the + * object reports/january.pdf from the bucket + * awsexamplebucket, use awsexamplebucket/reports/january.pdf. + * The value must be URL-encoded.

                    *
                  • *
                  • *

                    For objects accessed through access points, specify the Amazon Resource Name (ARN) of the object as accessed through the access point, in the format arn:aws:s3:::accesspoint//object/. For example, to copy the object reports/january.pdf through access point my-access-point owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf. The value must be URL encoded.

                    * *

                    Amazon S3 supports copy operations using access points only when the source and destination buckets are in the same Amazon Web Services Region.

                    *
                    - *

                    Alternatively, for objects accessed through Amazon S3 on Outposts, specify the ARN of the object as accessed in the format arn:aws:s3-outposts:::outpost//object/. For example, to copy the object reports/january.pdf through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf. The value must be URL encoded.

                    + *

                    Alternatively, for objects accessed through Amazon S3 on Outposts, specify the ARN of the object as accessed in the format arn:aws:s3-outposts:::outpost//object/. For example, to copy the object reports/january.pdf through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf. The value must be URL-encoded.

                    *
                  • *
                  *

                  To copy a specific version of an object, append ?versionId= @@ -832,8 +1006,8 @@ export interface CopyObjectRequest { /** *

                  Confirms that the requester knows that they will be charged for the request. Bucket * owners need not specify this parameter in their requests. For information about downloading - * objects from requester pays buckets, see Downloading Objects in - * Requestor Pays Buckets in the Amazon S3 User Guide.

                  + * objects from Requester Pays buckets, see Downloading Objects in + * Requester Pays Buckets in the Amazon S3 User Guide.

                  */ RequestPayer?: RequestPayer | string; @@ -855,17 +1029,17 @@ export interface CopyObjectRequest { ObjectLockRetainUntilDate?: Date; /** - *

                  Specifies whether you want to apply a Legal Hold to the copied object.

                  + *

                  Specifies whether you want to apply a legal hold to the copied object.

                  */ ObjectLockLegalHoldStatus?: ObjectLockLegalHoldStatus | string; /** - *

                  The account ID of the expected destination bucket owner. If the destination bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected destination bucket owner. If the destination bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; /** - *

                  The account ID of the expected source bucket owner. If the source bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected source bucket owner. If the source bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedSourceBucketOwner?: string; } @@ -947,9 +1121,7 @@ export class BucketAlreadyOwnedByYou extends __BaseException { export interface CreateBucketOutput { /** - *

                  Specifies the Region where the bucket will be created. If you are creating a bucket on - * the US East (N. Virginia) Region (us-east-1), you do not need to specify the - * location.

                  + *

                  A forward slash followed by the name of the bucket.

                  */ Location?: string; } @@ -1110,7 +1282,8 @@ export interface CreateMultipartUploadOutput { /** *

                  The name of the bucket to which the multipart upload was initiated. Does not return the access point ARN or access point alias if used.

                  *

                  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                  - *

                  When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

                  + *

                  When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + * AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                  */ Bucket?: string; @@ -1166,6 +1339,11 @@ export interface CreateMultipartUploadOutput { * request.

                  */ RequestCharged?: RequestCharged | string; + + /** + *

                  The algorithm that was used to create a checksum of the object.

                  + */ + ChecksumAlgorithm?: ChecksumAlgorithm | string; } export namespace CreateMultipartUploadOutput { @@ -1189,7 +1367,8 @@ export interface CreateMultipartUploadRequest { /** *

                  The name of the bucket to which to initiate the upload

                  *

                  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                  - *

                  When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

                  + *

                  When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + * AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                  *

                  Note: To supply the Multi-region Access Point (MRAP) to Bucket, you need to install the "@aws-sdk/signature-v4-crt" package to your project dependencies. * For more information, please go to https://github.com/aws/aws-sdk-js-v3#known-issues

                  */ @@ -1332,8 +1511,8 @@ export interface CreateMultipartUploadRequest { /** *

                  Confirms that the requester knows that they will be charged for the request. Bucket * owners need not specify this parameter in their requests. For information about downloading - * objects from requester pays buckets, see Downloading Objects in - * Requestor Pays Buckets in the Amazon S3 User Guide.

                  + * objects from Requester Pays buckets, see Downloading Objects in + * Requester Pays Buckets in the Amazon S3 User Guide.

                  */ RequestPayer?: RequestPayer | string; @@ -1353,14 +1532,21 @@ export interface CreateMultipartUploadRequest { ObjectLockRetainUntilDate?: Date; /** - *

                  Specifies whether you want to apply a Legal Hold to the uploaded object.

                  + *

                  Specifies whether you want to apply a legal hold to the uploaded object.

                  */ ObjectLockLegalHoldStatus?: ObjectLockLegalHoldStatus | string; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; + + /** + *

                  Indicates the algorithm you want Amazon S3 to use to create the checksum for the object. For more information, see + * Checking object integrity in + * the Amazon S3 User Guide.

                  + */ + ChecksumAlgorithm?: ChecksumAlgorithm | string; } export namespace CreateMultipartUploadRequest { @@ -1382,7 +1568,7 @@ export interface DeleteBucketRequest { Bucket: string | undefined; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -1410,7 +1596,7 @@ export interface DeleteBucketAnalyticsConfigurationRequest { Id: string | undefined; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -1433,7 +1619,7 @@ export interface DeleteBucketCorsRequest { Bucket: string | undefined; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -1457,7 +1643,7 @@ export interface DeleteBucketEncryptionRequest { Bucket: string | undefined; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -1508,7 +1694,7 @@ export interface DeleteBucketInventoryConfigurationRequest { Id: string | undefined; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -1531,7 +1717,7 @@ export interface DeleteBucketLifecycleRequest { Bucket: string | undefined; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -1559,7 +1745,7 @@ export interface DeleteBucketMetricsConfigurationRequest { Id: string | undefined; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -1582,7 +1768,7 @@ export interface DeleteBucketOwnershipControlsRequest { Bucket: string | undefined; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -1605,7 +1791,7 @@ export interface DeleteBucketPolicyRequest { Bucket: string | undefined; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -1628,7 +1814,7 @@ export interface DeleteBucketReplicationRequest { Bucket: string | undefined; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -1651,7 +1837,7 @@ export interface DeleteBucketTaggingRequest { Bucket: string | undefined; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -1674,7 +1860,7 @@ export interface DeleteBucketWebsiteRequest { Bucket: string | undefined; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -1721,7 +1907,8 @@ export interface DeleteObjectRequest { /** *

                  The bucket name of the bucket containing the object.

                  *

                  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                  - *

                  When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

                  + *

                  When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + * AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                  *

                  Note: To supply the Multi-region Access Point (MRAP) to Bucket, you need to install the "@aws-sdk/signature-v4-crt" package to your project dependencies. * For more information, please go to https://github.com/aws/aws-sdk-js-v3#known-issues

                  */ @@ -1747,20 +1934,20 @@ export interface DeleteObjectRequest { /** *

                  Confirms that the requester knows that they will be charged for the request. Bucket * owners need not specify this parameter in their requests. For information about downloading - * objects from requester pays buckets, see Downloading Objects in - * Requestor Pays Buckets in the Amazon S3 User Guide.

                  + * objects from Requester Pays buckets, see Downloading Objects in + * Requester Pays Buckets in the Amazon S3 User Guide.

                  */ RequestPayer?: RequestPayer | string; /** *

                  Indicates whether S3 Object Lock should bypass Governance-mode restrictions to process - * this operation. To use this header, you must have the s3:PutBucketPublicAccessBlock + * this operation. To use this header, you must have the s3:BypassGovernanceRetention * permission.

                  */ BypassGovernanceRetention?: boolean; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -3800,7 +3987,8 @@ export interface DeleteObjectsRequest { /** *

                  The bucket name containing the objects to delete.

                  *

                  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                  - *

                  When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

                  + *

                  When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + * AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                  *

                  Note: To supply the Multi-region Access Point (MRAP) to Bucket, you need to install the "@aws-sdk/signature-v4-crt" package to your project dependencies. * For more information, please go to https://github.com/aws/aws-sdk-js-v3#known-issues

                  */ @@ -3821,22 +4009,35 @@ export interface DeleteObjectsRequest { /** *

                  Confirms that the requester knows that they will be charged for the request. Bucket * owners need not specify this parameter in their requests. For information about downloading - * objects from requester pays buckets, see Downloading Objects in - * Requestor Pays Buckets in the Amazon S3 User Guide.

                  + * objects from Requester Pays buckets, see Downloading Objects in + * Requester Pays Buckets in the Amazon S3 User Guide.

                  */ RequestPayer?: RequestPayer | string; /** *

                  Specifies whether you want to delete this object even if it has a Governance-type Object - * Lock in place. To use this header, you must have the s3:PutBucketPublicAccessBlock + * Lock in place. To use this header, you must have the s3:BypassGovernanceRetention * permission.

                  */ BypassGovernanceRetention?: boolean; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; + + /** + *

                  Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any + * additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or + * x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more + * information, see Checking object integrity in + * the Amazon S3 User Guide.

                  + *

                  If you provide an individual checksum, Amazon S3 ignores any provided + * ChecksumAlgorithm parameter.

                  + *

                  This checksum algorithm must be the same for all parts and it match the checksum + * value supplied in the CreateMultipartUpload request.

                  + */ + ChecksumAlgorithm?: ChecksumAlgorithm | string; } export namespace DeleteObjectsRequest { @@ -3868,7 +4069,8 @@ export interface DeleteObjectTaggingRequest { /** *

                  The bucket name containing the objects from which to remove the tags.

                  *

                  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                  - *

                  When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

                  + *

                  When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + * AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                  *

                  Note: To supply the Multi-region Access Point (MRAP) to Bucket, you need to install the "@aws-sdk/signature-v4-crt" package to your project dependencies. * For more information, please go to https://github.com/aws/aws-sdk-js-v3#known-issues

                  */ @@ -3885,7 +4087,7 @@ export interface DeleteObjectTaggingRequest { VersionId?: string; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -3909,7 +4111,7 @@ export interface DeletePublicAccessBlockRequest { Bucket: string | undefined; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -3948,7 +4150,7 @@ export interface GetBucketAccelerateConfigurationRequest { Bucket: string | undefined; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -3992,7 +4194,7 @@ export interface GetBucketAclRequest { Bucket: string | undefined; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -4307,7 +4509,7 @@ export interface GetBucketAnalyticsConfigurationRequest { Id: string | undefined; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -4397,7 +4599,7 @@ export interface GetBucketCorsRequest { Bucket: string | undefined; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -4549,7 +4751,7 @@ export interface GetBucketEncryptionRequest { Bucket: string | undefined; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -4897,6 +5099,7 @@ export type InventoryIncludedObjectVersions = "All" | "Current"; export type InventoryOptionalField = | "BucketKeyStatus" + | "ChecksumAlgorithm" | "ETag" | "EncryptionStatus" | "IntelligentTieringAccessTier" @@ -5022,7 +5225,7 @@ export interface GetBucketInventoryConfigurationRequest { Id: string | undefined; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -5374,9 +5577,9 @@ export interface LifecycleRule { /** *

                  The Filter is used to identify objects that a Lifecycle Rule applies to. A - * Filter must have exactly one of Prefix, Tag, or - * And specified. Filter is required if the LifecycleRule - * does not containt a Prefix element.

                  + * Filter must have exactly one of Prefix, Tag, or + * And specified. Filter is required if the + * LifecycleRule does not contain a Prefix element.

                  */ Filter?: LifecycleRuleFilter; @@ -5453,7 +5656,7 @@ export interface GetBucketLifecycleConfigurationRequest { Bucket: string | undefined; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -5495,7 +5698,7 @@ export interface GetBucketLocationRequest { Bucket: string | undefined; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -5605,7 +5808,7 @@ export interface GetBucketLoggingRequest { Bucket: string | undefined; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -5636,7 +5839,7 @@ export interface MetricsAndOperator { Tags?: Tag[]; /** - *

                  The access point ARN used when evaluating an AND predicate.

                  + *

                  The access point ARN used when evaluating an AND predicate.

                  */ AccessPointArn?: string; } @@ -5809,7 +6012,7 @@ export interface GetBucketMetricsConfigurationRequest { Id: string | undefined; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -5832,7 +6035,7 @@ export interface GetBucketNotificationConfigurationRequest { Bucket: string | undefined; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -6193,7 +6396,7 @@ export interface GetBucketOwnershipControlsRequest { Bucket: string | undefined; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -6232,7 +6435,7 @@ export interface GetBucketPolicyRequest { Bucket: string | undefined; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -6291,7 +6494,7 @@ export interface GetBucketPolicyStatusRequest { Bucket: string | undefined; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -6903,7 +7106,7 @@ export interface GetBucketReplicationRequest { Bucket: string | undefined; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -6944,7 +7147,7 @@ export interface GetBucketRequestPaymentRequest { Bucket: string | undefined; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -6983,7 +7186,7 @@ export interface GetBucketTaggingRequest { Bucket: string | undefined; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -7033,7 +7236,7 @@ export interface GetBucketVersioningRequest { Bucket: string | undefined; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -7301,7 +7504,7 @@ export interface GetBucketWebsiteRequest { Bucket: string | undefined; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -7336,8 +7539,9 @@ export interface GetObjectOutput { /** *

                  If the object expiration is configured (see PUT Bucket lifecycle), the response includes - * this header. It includes the expiry-date and rule-id key-value pairs providing object - * expiration information. The value of the rule-id is URL encoded.

                  + * this header. It includes the expiry-date and rule-id key-value + * pairs providing object expiration information. The value of the rule-id is + * URL-encoded.

                  */ Expiration?: string; @@ -7358,11 +7562,43 @@ export interface GetObjectOutput { ContentLength?: number; /** - *

                  An ETag is an opaque identifier assigned by a web server to a specific version of a - * resource found at a URL.

                  + *

                  An entity tag (ETag) is an opaque identifier assigned by a web server to a specific + * version of a resource found at a URL.

                  */ ETag?: string; + /** + *

                  The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                  + */ + ChecksumCRC32?: string; + + /** + *

                  The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                  + */ + ChecksumCRC32C?: string; + + /** + *

                  The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                  + */ + ChecksumSHA1?: string; + + /** + *

                  The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                  + */ + ChecksumSHA256?: string; + /** *

                  This is set to the number of metadata entries not returned in x-amz-meta * headers. This can happen if you create metadata using an API like SOAP that supports more @@ -7474,7 +7710,8 @@ export interface GetObjectOutput { ReplicationStatus?: ReplicationStatus | string; /** - *

                  The count of parts this object has.

                  + *

                  The count of parts this object has. This value is only returned if you specify partNumber + * in your request and the object was uploaded as a multipart upload.

                  */ PartsCount?: number; @@ -7510,38 +7747,43 @@ export namespace GetObjectOutput { }); } +export enum ChecksumMode { + ENABLED = "ENABLED", +} + export interface GetObjectRequest { /** *

                  The bucket name containing the object.

                  *

                  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                  *

                  When using an Object Lambda access point the hostname takes the form AccessPointName-AccountId.s3-object-lambda.Region.amazonaws.com.

                  - *

                  When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

                  + *

                  When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + * AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                  *

                  Note: To supply the Multi-region Access Point (MRAP) to Bucket, you need to install the "@aws-sdk/signature-v4-crt" package to your project dependencies. * For more information, please go to https://github.com/aws/aws-sdk-js-v3#known-issues

                  */ Bucket: string | undefined; /** - *

                  Return the object only if its entity tag (ETag) is the same as the one specified, - * otherwise return a 412 (precondition failed).

                  + *

                  Return the object only if its entity tag (ETag) is the same as the one specified; + * otherwise, return a 412 (precondition failed) error.

                  */ IfMatch?: string; /** - *

                  Return the object only if it has been modified since the specified time, otherwise - * return a 304 (not modified).

                  + *

                  Return the object only if it has been modified since the specified time; otherwise, + * return a 304 (not modified) error.

                  */ IfModifiedSince?: Date; /** - *

                  Return the object only if its entity tag (ETag) is different from the one specified, - * otherwise return a 304 (not modified).

                  + *

                  Return the object only if its entity tag (ETag) is different from the one specified; + * otherwise, return a 304 (not modified) error.

                  */ IfNoneMatch?: string; /** - *

                  Return the object only if it has not been modified since the specified time, otherwise - * return a 412 (precondition failed).

                  + *

                  Return the object only if it has not been modified since the specified time; otherwise, + * return a 412 (precondition failed) error.

                  */ IfUnmodifiedSince?: Date; @@ -7619,8 +7861,8 @@ export interface GetObjectRequest { /** *

                  Confirms that the requester knows that they will be charged for the request. Bucket * owners need not specify this parameter in their requests. For information about downloading - * objects from requester pays buckets, see Downloading Objects in - * Requestor Pays Buckets in the Amazon S3 User Guide.

                  + * objects from Requester Pays buckets, see Downloading Objects in + * Requester Pays Buckets in the Amazon S3 User Guide.

                  */ RequestPayer?: RequestPayer | string; @@ -7632,9 +7874,14 @@ export interface GetObjectRequest { PartNumber?: number; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; + + /** + *

                  To retrieve the checksum, this mode must be enabled.

                  + */ + ChecksumMode?: ChecksumMode | string; } export namespace GetObjectRequest { @@ -7738,13 +7985,13 @@ export interface GetObjectAclRequest { /** *

                  Confirms that the requester knows that they will be charged for the request. Bucket * owners need not specify this parameter in their requests. For information about downloading - * objects from requester pays buckets, see Downloading Objects in - * Requestor Pays Buckets in the Amazon S3 User Guide.

                  + * objects from Requester Pays buckets, see Downloading Objects in + * Requester Pays Buckets in the Amazon S3 User Guide.

                  */ RequestPayer?: RequestPayer | string; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -7759,248 +8006,555 @@ export namespace GetObjectAclRequest { } /** - *

                  A Legal Hold configuration for an object.

                  + *

                  Contains all the possible checksum or digest values for an object.

                  */ -export interface ObjectLockLegalHold { +export interface Checksum { /** - *

                  Indicates whether the specified object has a Legal Hold in place.

                  + *

                  The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                  */ - Status?: ObjectLockLegalHoldStatus | string; -} + ChecksumCRC32?: string; -export namespace ObjectLockLegalHold { /** - * @internal + *

                  The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                  */ - export const filterSensitiveLog = (obj: ObjectLockLegalHold): any => ({ - ...obj, - }); -} + ChecksumCRC32C?: string; -export interface GetObjectLegalHoldOutput { /** - *

                  The current Legal Hold status for the specified object.

                  + *

                  The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                  */ - LegalHold?: ObjectLockLegalHold; + ChecksumSHA1?: string; + + /** + *

                  The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                  + */ + ChecksumSHA256?: string; } -export namespace GetObjectLegalHoldOutput { +export namespace Checksum { /** * @internal */ - export const filterSensitiveLog = (obj: GetObjectLegalHoldOutput): any => ({ + export const filterSensitiveLog = (obj: Checksum): any => ({ ...obj, }); } -export interface GetObjectLegalHoldRequest { +/** + *

                  A container for elements related to an individual part.

                  + */ +export interface ObjectPart { /** - *

                  The bucket name containing the object whose Legal Hold status you want to retrieve.

                  - *

                  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                  - *

                  Note: To supply the Multi-region Access Point (MRAP) to Bucket, you need to install the "@aws-sdk/signature-v4-crt" package to your project dependencies. - * For more information, please go to https://github.com/aws/aws-sdk-js-v3#known-issues

                  + *

                  The part number identifying the part. This value is a positive integer between 1 and + * 10,000.

                  */ - Bucket: string | undefined; + PartNumber?: number; /** - *

                  The key name for the object whose Legal Hold status you want to retrieve.

                  + *

                  The size of the uploaded part in bytes.

                  */ - Key: string | undefined; + Size?: number; /** - *

                  The version ID of the object whose Legal Hold status you want to retrieve.

                  + *

                  This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. + * This header specifies the base64-encoded, 32-bit CRC32 checksum of the object. For more information, see + * Checking object integrity in the + * Amazon S3 User Guide.

                  */ - VersionId?: string; + ChecksumCRC32?: string; /** - *

                  Confirms that the requester knows that they will be charged for the request. Bucket - * owners need not specify this parameter in their requests. For information about downloading - * objects from requester pays buckets, see Downloading Objects in - * Requestor Pays Buckets in the Amazon S3 User Guide.

                  + *

                  The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                  */ - RequestPayer?: RequestPayer | string; + ChecksumCRC32C?: string; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                  */ - ExpectedBucketOwner?: string; + ChecksumSHA1?: string; + + /** + *

                  The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                  + */ + ChecksumSHA256?: string; } -export namespace GetObjectLegalHoldRequest { +export namespace ObjectPart { /** * @internal */ - export const filterSensitiveLog = (obj: GetObjectLegalHoldRequest): any => ({ + export const filterSensitiveLog = (obj: ObjectPart): any => ({ ...obj, }); } -export type ObjectLockEnabled = "Enabled"; - -export type ObjectLockRetentionMode = "COMPLIANCE" | "GOVERNANCE"; - /** - *

                  The container element for specifying the default Object Lock retention settings for new - * objects placed in the specified bucket.

                  - * - *
                    - *
                  • - *

                    The DefaultRetention settings require both a mode and a - * period.

                    - *
                  • - *
                  • - *

                    The DefaultRetention period can be either Days - * or Years but you must select one. You cannot specify Days - * and Years at the same time.

                    - *
                  • - *
                  - *
                  + *

                  A collection of parts associated with a multipart upload.

                  */ -export interface DefaultRetention { +export interface GetObjectAttributesParts { /** - *

                  The default Object Lock retention mode you want to apply to new objects placed in the - * specified bucket. Must be used with either Days or Years.

                  + *

                  The total number of parts.

                  */ - Mode?: ObjectLockRetentionMode | string; + TotalPartsCount?: number; /** - *

                  The number of days that you want to specify for the default retention period. Must be - * used with Mode.

                  + *

                  The marker for the current part.

                  */ - Days?: number; + PartNumberMarker?: string; /** - *

                  The number of years that you want to specify for the default retention period. Must be - * used with Mode.

                  + *

                  When a list is truncated, this element specifies the last part in the list, as well as + * the value to use for the PartNumberMarker request parameter in a subsequent + * request.

                  */ - Years?: number; -} + NextPartNumberMarker?: string; -export namespace DefaultRetention { /** - * @internal + *

                  The maximum number of parts allowed in the response.

                  */ - export const filterSensitiveLog = (obj: DefaultRetention): any => ({ - ...obj, - }); -} + MaxParts?: number; -/** - *

                  The container element for an Object Lock rule.

                  - */ -export interface ObjectLockRule { /** - *

                  The default Object Lock retention mode and period that you want to apply to new objects - * placed in the specified bucket. Bucket settings require both a mode and a period. - * The period can be either Days or Years but you must select one. - * You cannot specify Days and Years at the same time.

                  + *

                  Indicates whether the returned list of parts is truncated. A value of + * true indicates that the list was truncated. A list can be truncated if the + * number of parts exceeds the limit returned in the MaxParts element.

                  */ - DefaultRetention?: DefaultRetention; + IsTruncated?: boolean; + + /** + *

                  A container for elements related to a particular part. A response can contain zero or + * more Parts elements.

                  + */ + Parts?: ObjectPart[]; } -export namespace ObjectLockRule { +export namespace GetObjectAttributesParts { /** * @internal */ - export const filterSensitiveLog = (obj: ObjectLockRule): any => ({ + export const filterSensitiveLog = (obj: GetObjectAttributesParts): any => ({ ...obj, }); } -/** - *

                  The container element for Object Lock configuration parameters.

                  - */ -export interface ObjectLockConfiguration { - /** - *

                  Indicates whether this bucket has an Object Lock configuration enabled. - * Enable ObjectLockEnabled when you apply ObjectLockConfiguration - * to a bucket.

                  - */ - ObjectLockEnabled?: ObjectLockEnabled | string; - +export interface GetObjectAttributesOutput { /** - *

                  Specifies the Object Lock rule for the specified object. Enable the this rule when you apply - * ObjectLockConfiguration to a bucket. Bucket settings require both a mode and a period. - * The period can be either Days or Years but you must select one. - * You cannot specify Days and Years at the same time.

                  + *

                  Specifies whether the object retrieved was (true) or was not + * (false) a delete marker. If false, this response header does + * not appear in the response.

                  */ - Rule?: ObjectLockRule; -} + DeleteMarker?: boolean; -export namespace ObjectLockConfiguration { /** - * @internal + *

                  The creation date of the object.

                  */ - export const filterSensitiveLog = (obj: ObjectLockConfiguration): any => ({ - ...obj, - }); -} + LastModified?: Date; -export interface GetObjectLockConfigurationOutput { /** - *

                  The specified bucket's Object Lock configuration.

                  + *

                  The version ID of the object.

                  */ - ObjectLockConfiguration?: ObjectLockConfiguration; -} + VersionId?: string; -export namespace GetObjectLockConfigurationOutput { /** - * @internal + *

                  If present, indicates that the requester was successfully charged for the + * request.

                  */ - export const filterSensitiveLog = (obj: GetObjectLockConfigurationOutput): any => ({ - ...obj, - }); -} + RequestCharged?: RequestCharged | string; -export interface GetObjectLockConfigurationRequest { /** - *

                  The bucket whose Object Lock configuration you want to retrieve.

                  - *

                  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                  - *

                  Note: To supply the Multi-region Access Point (MRAP) to Bucket, you need to install the "@aws-sdk/signature-v4-crt" package to your project dependencies. - * For more information, please go to https://github.com/aws/aws-sdk-js-v3#known-issues

                  + *

                  An ETag is an opaque identifier assigned by a web server to a specific version of a + * resource found at a URL.

                  */ - Bucket: string | undefined; + ETag?: string; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The checksum or digest of the object.

                  */ - ExpectedBucketOwner?: string; -} + Checksum?: Checksum; -export namespace GetObjectLockConfigurationRequest { /** - * @internal + *

                  A collection of parts associated with a multipart upload.

                  */ - export const filterSensitiveLog = (obj: GetObjectLockConfigurationRequest): any => ({ - ...obj, - }); -} + ObjectParts?: GetObjectAttributesParts; -/** - *

                  A Retention configuration for an object.

                  - */ -export interface ObjectLockRetention { /** - *

                  Indicates the Retention mode for the specified object.

                  + *

                  Provides the storage class information of the object. Amazon S3 returns this header for all + * objects except for S3 Standard storage class objects.

                  + * + *

                  For more information, see Storage + * Classes.

                  */ - Mode?: ObjectLockRetentionMode | string; + StorageClass?: StorageClass | string; /** - *

                  The date on which this Object Lock Retention will expire.

                  + *

                  The size of the object in bytes.

                  */ - RetainUntilDate?: Date; + ObjectSize?: number; } -export namespace ObjectLockRetention { +export namespace GetObjectAttributesOutput { /** * @internal */ - export const filterSensitiveLog = (obj: ObjectLockRetention): any => ({ + export const filterSensitiveLog = (obj: GetObjectAttributesOutput): any => ({ ...obj, }); } -export interface GetObjectRetentionOutput { +export enum ObjectAttributes { + CHECKSUM = "Checksum", + ETAG = "ETag", + OBJECT_PARTS = "ObjectParts", + OBJECT_SIZE = "ObjectSize", + STORAGE_CLASS = "StorageClass", +} + +export interface GetObjectAttributesRequest { + /** + *

                  The name of the bucket that contains the object.

                  + *

                  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                  + *

                  When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + * AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                  + *

                  Note: To supply the Multi-region Access Point (MRAP) to Bucket, you need to install the "@aws-sdk/signature-v4-crt" package to your project dependencies. + * For more information, please go to https://github.com/aws/aws-sdk-js-v3#known-issues

                  + */ + Bucket: string | undefined; + + /** + *

                  The object key.

                  + */ + Key: string | undefined; + + /** + *

                  The version ID used to reference a specific version of the object.

                  + */ + VersionId?: string; + + /** + *

                  Sets the maximum number of parts to return.

                  + */ + MaxParts?: number; + + /** + *

                  Specifies the part after which listing should begin. Only parts with higher part numbers + * will be listed.

                  + */ + PartNumberMarker?: string; + + /** + *

                  Specifies the algorithm to use when encrypting the object (for example, + * AES256).

                  + */ + SSECustomerAlgorithm?: string; + + /** + *

                  Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This + * value is used to store the object and then it is discarded; Amazon S3 does not store the + * encryption key. The key must be appropriate for use with the algorithm specified in the + * x-amz-server-side-encryption-customer-algorithm header.

                  + */ + SSECustomerKey?: string; + + /** + *

                  Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses + * this header for a message integrity check to ensure that the encryption key was transmitted + * without error.

                  + */ + SSECustomerKeyMD5?: string; + + /** + *

                  Confirms that the requester knows that they will be charged for the request. Bucket + * owners need not specify this parameter in their requests. For information about downloading + * objects from Requester Pays buckets, see Downloading Objects in + * Requester Pays Buckets in the Amazon S3 User Guide.

                  + */ + RequestPayer?: RequestPayer | string; + + /** + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  + */ + ExpectedBucketOwner?: string; + + /** + *

                  An XML header that specifies the fields at the root level that you want returned in + * the response. Fields that you do not specify are not returned.

                  + */ + ObjectAttributes: (ObjectAttributes | string)[] | undefined; +} + +export namespace GetObjectAttributesRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: GetObjectAttributesRequest): any => ({ + ...obj, + ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }), + }); +} + +/** + *

                  A legal hold configuration for an object.

                  + */ +export interface ObjectLockLegalHold { + /** + *

                  Indicates whether the specified object has a legal hold in place.

                  + */ + Status?: ObjectLockLegalHoldStatus | string; +} + +export namespace ObjectLockLegalHold { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ObjectLockLegalHold): any => ({ + ...obj, + }); +} + +export interface GetObjectLegalHoldOutput { + /** + *

                  The current legal hold status for the specified object.

                  + */ + LegalHold?: ObjectLockLegalHold; +} + +export namespace GetObjectLegalHoldOutput { + /** + * @internal + */ + export const filterSensitiveLog = (obj: GetObjectLegalHoldOutput): any => ({ + ...obj, + }); +} + +export interface GetObjectLegalHoldRequest { + /** + *

                  The bucket name containing the object whose legal hold status you want to retrieve.

                  + *

                  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                  + *

                  Note: To supply the Multi-region Access Point (MRAP) to Bucket, you need to install the "@aws-sdk/signature-v4-crt" package to your project dependencies. + * For more information, please go to https://github.com/aws/aws-sdk-js-v3#known-issues

                  + */ + Bucket: string | undefined; + + /** + *

                  The key name for the object whose legal hold status you want to retrieve.

                  + */ + Key: string | undefined; + + /** + *

                  The version ID of the object whose legal hold status you want to retrieve.

                  + */ + VersionId?: string; + + /** + *

                  Confirms that the requester knows that they will be charged for the request. Bucket + * owners need not specify this parameter in their requests. For information about downloading + * objects from Requester Pays buckets, see Downloading Objects in + * Requester Pays Buckets in the Amazon S3 User Guide.

                  + */ + RequestPayer?: RequestPayer | string; + + /** + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  + */ + ExpectedBucketOwner?: string; +} + +export namespace GetObjectLegalHoldRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: GetObjectLegalHoldRequest): any => ({ + ...obj, + }); +} + +export type ObjectLockEnabled = "Enabled"; + +export type ObjectLockRetentionMode = "COMPLIANCE" | "GOVERNANCE"; + +/** + *

                  The container element for specifying the default Object Lock retention settings for new + * objects placed in the specified bucket.

                  + * + *
                    + *
                  • + *

                    The DefaultRetention settings require both a mode and a + * period.

                    + *
                  • + *
                  • + *

                    The DefaultRetention period can be either Days + * or Years but you must select one. You cannot specify Days + * and Years at the same time.

                    + *
                  • + *
                  + *
                  + */ +export interface DefaultRetention { + /** + *

                  The default Object Lock retention mode you want to apply to new objects placed in the + * specified bucket. Must be used with either Days or Years.

                  + */ + Mode?: ObjectLockRetentionMode | string; + + /** + *

                  The number of days that you want to specify for the default retention period. Must be + * used with Mode.

                  + */ + Days?: number; + + /** + *

                  The number of years that you want to specify for the default retention period. Must be + * used with Mode.

                  + */ + Years?: number; +} + +export namespace DefaultRetention { + /** + * @internal + */ + export const filterSensitiveLog = (obj: DefaultRetention): any => ({ + ...obj, + }); +} + +/** + *

                  The container element for an Object Lock rule.

                  + */ +export interface ObjectLockRule { + /** + *

                  The default Object Lock retention mode and period that you want to apply to new objects + * placed in the specified bucket. Bucket settings require both a mode and a period. + * The period can be either Days or Years but you must select one. + * You cannot specify Days and Years at the same time.

                  + */ + DefaultRetention?: DefaultRetention; +} + +export namespace ObjectLockRule { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ObjectLockRule): any => ({ + ...obj, + }); +} + +/** + *

                  The container element for Object Lock configuration parameters.

                  + */ +export interface ObjectLockConfiguration { + /** + *

                  Indicates whether this bucket has an Object Lock configuration enabled. + * Enable ObjectLockEnabled when you apply ObjectLockConfiguration + * to a bucket.

                  + */ + ObjectLockEnabled?: ObjectLockEnabled | string; + + /** + *

                  Specifies the Object Lock rule for the specified object. Enable the this rule when you apply + * ObjectLockConfiguration to a bucket. Bucket settings require both a mode and a period. + * The period can be either Days or Years but you must select one. + * You cannot specify Days and Years at the same time.

                  + */ + Rule?: ObjectLockRule; +} + +export namespace ObjectLockConfiguration { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ObjectLockConfiguration): any => ({ + ...obj, + }); +} + +export interface GetObjectLockConfigurationOutput { + /** + *

                  The specified bucket's Object Lock configuration.

                  + */ + ObjectLockConfiguration?: ObjectLockConfiguration; +} + +export namespace GetObjectLockConfigurationOutput { + /** + * @internal + */ + export const filterSensitiveLog = (obj: GetObjectLockConfigurationOutput): any => ({ + ...obj, + }); +} + +export interface GetObjectLockConfigurationRequest { + /** + *

                  The bucket whose Object Lock configuration you want to retrieve.

                  + *

                  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                  + *

                  Note: To supply the Multi-region Access Point (MRAP) to Bucket, you need to install the "@aws-sdk/signature-v4-crt" package to your project dependencies. + * For more information, please go to https://github.com/aws/aws-sdk-js-v3#known-issues

                  + */ + Bucket: string | undefined; + + /** + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  + */ + ExpectedBucketOwner?: string; +} + +export namespace GetObjectLockConfigurationRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: GetObjectLockConfigurationRequest): any => ({ + ...obj, + }); +} + +/** + *

                  A Retention configuration for an object.

                  + */ +export interface ObjectLockRetention { + /** + *

                  Indicates the Retention mode for the specified object.

                  + */ + Mode?: ObjectLockRetentionMode | string; + + /** + *

                  The date on which this Object Lock Retention will expire.

                  + */ + RetainUntilDate?: Date; +} + +export namespace ObjectLockRetention { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ObjectLockRetention): any => ({ + ...obj, + }); +} + +export interface GetObjectRetentionOutput { /** *

                  The container element for an object's retention settings.

                  */ @@ -8038,13 +8592,13 @@ export interface GetObjectRetentionRequest { /** *

                  Confirms that the requester knows that they will be charged for the request. Bucket * owners need not specify this parameter in their requests. For information about downloading - * objects from requester pays buckets, see Downloading Objects in - * Requestor Pays Buckets in the Amazon S3 User Guide.

                  + * objects from Requester Pays buckets, see Downloading Objects in + * Requester Pays Buckets in the Amazon S3 User Guide.

                  */ RequestPayer?: RequestPayer | string; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -8083,7 +8637,8 @@ export interface GetObjectTaggingRequest { /** *

                  The bucket name containing the object for which to get the tagging information.

                  *

                  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                  - *

                  When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

                  + *

                  When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + * AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                  *

                  Note: To supply the Multi-region Access Point (MRAP) to Bucket, you need to install the "@aws-sdk/signature-v4-crt" package to your project dependencies. * For more information, please go to https://github.com/aws/aws-sdk-js-v3#known-issues

                  */ @@ -8100,15 +8655,15 @@ export interface GetObjectTaggingRequest { VersionId?: string; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; /** *

                  Confirms that the requester knows that they will be charged for the request. Bucket * owners need not specify this parameter in their requests. For information about downloading - * objects from requester pays buckets, see Downloading Objects in - * Requestor Pays Buckets in the Amazon S3 User Guide.

                  + * objects from Requester Pays buckets, see Downloading Objects in + * Requester Pays Buckets in the Amazon S3 User Guide.

                  */ RequestPayer?: RequestPayer | string; } @@ -8160,13 +8715,13 @@ export interface GetObjectTorrentRequest { /** *

                  Confirms that the requester knows that they will be charged for the request. Bucket * owners need not specify this parameter in their requests. For information about downloading - * objects from requester pays buckets, see Downloading Objects in - * Requestor Pays Buckets in the Amazon S3 User Guide.

                  + * objects from Requester Pays buckets, see Downloading Objects in + * Requester Pays Buckets in the Amazon S3 User Guide.

                  */ RequestPayer?: RequestPayer | string; /** - *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                  + *

                  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                  */ ExpectedBucketOwner?: string; } @@ -8192,7 +8747,7 @@ export interface PublicAccessBlockConfiguration { * behavior:

                  *
                    *
                  • - *

                    PUT Bucket acl and PUT Object acl calls fail if the specified ACL is + *

                    PUT Bucket ACL and PUT Object ACL calls fail if the specified ACL is * public.

                    *
                  • *
                  • @@ -8271,7 +8826,7 @@ export interface GetPublicAccessBlockRequest { Bucket: string | undefined; /** - *

                    The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                    + *

                    The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                    */ ExpectedBucketOwner?: string; } @@ -8289,14 +8844,15 @@ export interface HeadBucketRequest { /** *

                    The bucket name.

                    *

                    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                    - *

                    When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

                    + *

                    When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + * AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                    *

                    Note: To supply the Multi-region Access Point (MRAP) to Bucket, you need to install the "@aws-sdk/signature-v4-crt" package to your project dependencies. * For more information, please go to https://github.com/aws/aws-sdk-js-v3#known-issues

                    */ Bucket: string | undefined; /** - *

                    The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                    + *

                    The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                    */ ExpectedBucketOwner?: string; } @@ -8345,8 +8901,9 @@ export interface HeadObjectOutput { /** *

                    If the object expiration is configured (see PUT Bucket lifecycle), the response includes - * this header. It includes the expiry-date and rule-id key-value pairs providing object - * expiration information. The value of the rule-id is URL encoded.

                    + * this header. It includes the expiry-date and rule-id key-value + * pairs providing object expiration information. The value of the rule-id is + * URL-encoded.

                    */ Expiration?: string; @@ -8385,8 +8942,40 @@ export interface HeadObjectOutput { ContentLength?: number; /** - *

                    An ETag is an opaque identifier assigned by a web server to a specific version of a - * resource found at a URL.

                    + *

                    The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                    + */ + ChecksumCRC32?: string; + + /** + *

                    The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                    + */ + ChecksumCRC32C?: string; + + /** + *

                    The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                    + */ + ChecksumSHA1?: string; + + /** + *

                    The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                    + */ + ChecksumSHA256?: string; + + /** + *

                    An entity tag (ETag) is an opaque identifier assigned by a web server to a specific + * version of a resource found at a URL.

                    */ ETag?: string; @@ -8505,7 +9094,8 @@ export interface HeadObjectOutput { * as follows:

                    *
                      *
                    • - *

                      If requesting an object from the source bucket — Amazon S3 will return the + *

                      + * If requesting an object from the source bucket, Amazon S3 will return the * x-amz-replication-status header if the object in your request is * eligible for replication.

                      *

                      For example, suppose that in your replication configuration, you specify object @@ -8517,13 +9107,15 @@ export interface HeadObjectOutput { * FAILED indicating object replication status.

                      *
                    • *
                    • - *

                      If requesting an object from a destination bucket — Amazon S3 will return the + *

                      + * If requesting an object from a destination bucket, Amazon S3 will return the * x-amz-replication-status header with value REPLICA if the object in * your request is a replica that Amazon S3 created and there is no replica modification * replication in progress.

                      *
                    • *
                    • - *

                      When replicating objects to multiple destination buckets the + *

                      + * When replicating objects to multiple destination buckets, the * x-amz-replication-status header acts differently. The header of the * source object will only return a value of COMPLETED when replication is successful to * all destinations. The header will remain at value PENDING until replication has @@ -8537,7 +9129,8 @@ export interface HeadObjectOutput { ReplicationStatus?: ReplicationStatus | string; /** - *

                      The count of parts this object has.

                      + *

                      The count of parts this object has. This value is only returned if you specify partNumber + * in your request and the object was uploaded as a multipart upload.

                      */ PartsCount?: number; @@ -8578,33 +9171,34 @@ export interface HeadObjectRequest { /** *

                      The name of the bucket containing the object.

                      *

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      - *

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

                      + *

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + * AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      *

                      Note: To supply the Multi-region Access Point (MRAP) to Bucket, you need to install the "@aws-sdk/signature-v4-crt" package to your project dependencies. * For more information, please go to https://github.com/aws/aws-sdk-js-v3#known-issues

                      */ Bucket: string | undefined; /** - *

                      Return the object only if its entity tag (ETag) is the same as the one specified, - * otherwise return a 412 (precondition failed).

                      + *

                      Return the object only if its entity tag (ETag) is the same as the one specified; + * otherwise, return a 412 (precondition failed) error.

                      */ IfMatch?: string; /** - *

                      Return the object only if it has been modified since the specified time, otherwise - * return a 304 (not modified).

                      + *

                      Return the object only if it has been modified since the specified time; otherwise, + * return a 304 (not modified) error.

                      */ IfModifiedSince?: Date; /** - *

                      Return the object only if its entity tag (ETag) is different from the one specified, - * otherwise return a 304 (not modified).

                      + *

                      Return the object only if its entity tag (ETag) is different from the one specified; + * otherwise, return a 304 (not modified) error.

                      */ IfNoneMatch?: string; /** - *

                      Return the object only if it has not been modified since the specified time, otherwise - * return a 412 (precondition failed).

                      + *

                      Return the object only if it has not been modified since the specified time; otherwise, + * return a 412 (precondition failed) error.

                      */ IfUnmodifiedSince?: Date; @@ -8648,8 +9242,8 @@ export interface HeadObjectRequest { /** *

                      Confirms that the requester knows that they will be charged for the request. Bucket * owners need not specify this parameter in their requests. For information about downloading - * objects from requester pays buckets, see Downloading Objects in - * Requestor Pays Buckets in the Amazon S3 User Guide.

                      + * objects from Requester Pays buckets, see Downloading Objects in + * Requester Pays Buckets in the Amazon S3 User Guide.

                      */ RequestPayer?: RequestPayer | string; @@ -8661,9 +9255,17 @@ export interface HeadObjectRequest { PartNumber?: number; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedBucketOwner?: string; + + /** + *

                      To retrieve the checksum, this parameter must be enabled.

                      + *

                      In addition, if you enable ChecksumMode and the object is encrypted with + * Amazon Web Services Key Management Service (Amazon Web Services KMS), you must have permission to use the + * kms:Decrypt action for the request to succeed.

                      + */ + ChecksumMode?: ChecksumMode | string; } export namespace HeadObjectRequest { @@ -8734,7 +9336,7 @@ export interface ListBucketAnalyticsConfigurationsRequest { ContinuationToken?: string; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedBucketOwner?: string; } @@ -8751,14 +9353,14 @@ export namespace ListBucketAnalyticsConfigurationsRequest { export interface ListBucketIntelligentTieringConfigurationsOutput { /** *

                      Indicates whether the returned list of analytics configurations is complete. A value of - * true indicates that the list is not complete and the NextContinuationToken will be provided - * for a subsequent request.

                      + * true indicates that the list is not complete and the + * NextContinuationToken will be provided for a subsequent request.

                      */ IsTruncated?: boolean; /** - *

                      The ContinuationToken that represents a placeholder from where this request should - * begin.

                      + *

                      The ContinuationToken that represents a placeholder from where this request + * should begin.

                      */ ContinuationToken?: string; @@ -8793,8 +9395,8 @@ export interface ListBucketIntelligentTieringConfigurationsRequest { Bucket: string | undefined; /** - *

                      The ContinuationToken that represents a placeholder from where this request should - * begin.

                      + *

                      The ContinuationToken that represents a placeholder from where this request + * should begin.

                      */ ContinuationToken?: string; } @@ -8865,7 +9467,7 @@ export interface ListBucketInventoryConfigurationsRequest { ContinuationToken?: string; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedBucketOwner?: string; } @@ -8938,7 +9540,7 @@ export interface ListBucketMetricsConfigurationsRequest { ContinuationToken?: string; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedBucketOwner?: string; } @@ -8979,7 +9581,7 @@ export namespace Bucket { export interface ListBucketsOutput { /** - *

                      The list of buckets owned by the requestor.

                      + *

                      The list of buckets owned by the requester.

                      */ Buckets?: Bucket[]; @@ -9080,6 +9682,11 @@ export interface MultipartUpload { *

                      Identifies who initiated the multipart upload.

                      */ Initiator?: Initiator; + + /** + *

                      The algorithm that was used to create a checksum of the object.

                      + */ + ChecksumAlgorithm?: ChecksumAlgorithm | string; } export namespace MultipartUpload { @@ -9183,7 +9790,8 @@ export interface ListMultipartUploadsRequest { /** *

                      The name of the bucket to which the multipart upload was initiated.

                      *

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      - *

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

                      + *

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + * AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      *

                      Note: To supply the Multi-region Access Point (MRAP) to Bucket, you need to install the "@aws-sdk/signature-v4-crt" package to your project dependencies. * For more information, please go to https://github.com/aws/aws-sdk-js-v3#known-issues

                      */ @@ -9245,7 +9853,7 @@ export interface ListMultipartUploadsRequest { UploadIdMarker?: string; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedBucketOwner?: string; } @@ -9309,6 +9917,11 @@ export interface _Object { */ ETag?: string; + /** + *

                      The algorithm that was used to create a checksum of the object.

                      + */ + ChecksumAlgorithm?: (ChecksumAlgorithm | string)[]; + /** *

                      Size in bytes of the object

                      */ @@ -9423,7 +10036,8 @@ export interface ListObjectsRequest { /** *

                      The name of the bucket containing the objects.

                      *

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      - *

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

                      + *

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + * AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      *

                      Note: To supply the Multi-region Access Point (MRAP) to Bucket, you need to install the "@aws-sdk/signature-v4-crt" package to your project dependencies. * For more information, please go to https://github.com/aws/aws-sdk-js-v3#known-issues

                      */ @@ -9468,7 +10082,7 @@ export interface ListObjectsRequest { RequestPayer?: RequestPayer | string; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedBucketOwner?: string; } @@ -9517,7 +10131,8 @@ export interface ListObjectsV2Output { /** *

                      The bucket name.

                      *

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      - *

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

                      + *

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + * AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      */ Name?: string; @@ -9615,7 +10230,8 @@ export interface ListObjectsV2Request { /** *

                      Bucket name to list.

                      *

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      - *

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

                      + *

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + * AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      *

                      Note: To supply the Multi-region Access Point (MRAP) to Bucket, you need to install the "@aws-sdk/signature-v4-crt" package to your project dependencies. * For more information, please go to https://github.com/aws/aws-sdk-js-v3#known-issues

                      */ @@ -9669,7 +10285,7 @@ export interface ListObjectsV2Request { RequestPayer?: RequestPayer | string; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedBucketOwner?: string; } @@ -9734,6 +10350,11 @@ export interface ObjectVersion { */ ETag?: string; + /** + *

                      The algorithm that was used to create a checksum of the object.

                      + */ + ChecksumAlgorithm?: (ChecksumAlgorithm | string)[]; + /** *

                      Size in bytes of the object.

                      */ @@ -9931,7 +10552,7 @@ export interface ListObjectVersionsRequest { VersionIdMarker?: string; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedBucketOwner?: string; } @@ -9969,6 +10590,38 @@ export interface Part { *

                      Size in bytes of the uploaded part data.

                      */ Size?: number; + + /** + *

                      This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. + * This header specifies the base64-encoded, 32-bit CRC32 checksum of the object. For more information, see + * Checking object integrity in the + * Amazon S3 User Guide.

                      + */ + ChecksumCRC32?: string; + + /** + *

                      The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                      + */ + ChecksumCRC32C?: string; + + /** + *

                      The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                      + */ + ChecksumSHA1?: string; + + /** + *

                      This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. + * This header specifies the base64-encoded, 256-bit SHA-256 digest of the object. For more information, see + * Checking object integrity in the + * Amazon S3 User Guide.

                      + */ + ChecksumSHA256?: string; } export namespace Part { @@ -10073,6 +10726,11 @@ export interface ListPartsOutput { * request.

                      */ RequestCharged?: RequestCharged | string; + + /** + *

                      The algorithm that was used to create a checksum of the object.

                      + */ + ChecksumAlgorithm?: ChecksumAlgorithm | string; } export namespace ListPartsOutput { @@ -10088,7 +10746,8 @@ export interface ListPartsRequest { /** *

                      The name of the bucket to which the parts are being uploaded.

                      *

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      - *

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

                      + *

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + * AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      *

                      Note: To supply the Multi-region Access Point (MRAP) to Bucket, you need to install the "@aws-sdk/signature-v4-crt" package to your project dependencies. * For more information, please go to https://github.com/aws/aws-sdk-js-v3#known-issues

                      */ @@ -10111,22 +10770,46 @@ export interface ListPartsRequest { PartNumberMarker?: string; /** - *

                      Upload ID identifying the multipart upload whose parts are being listed.

                      + *

                      Upload ID identifying the multipart upload whose parts are being listed.

                      + */ + UploadId: string | undefined; + + /** + *

                      Confirms that the requester knows that they will be charged for the request. Bucket + * owners need not specify this parameter in their requests. For information about downloading + * objects from Requester Pays buckets, see Downloading Objects in + * Requester Pays Buckets in the Amazon S3 User Guide.

                      + */ + RequestPayer?: RequestPayer | string; + + /** + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      + */ + ExpectedBucketOwner?: string; + + /** + *

                      The server-side encryption (SSE) algorithm used to encrypt the object. This parameter is needed only when the object was created + * using a checksum algorithm. For more information, + * see Protecting data using SSE-C keys in the + * Amazon S3 User Guide.

                      */ - UploadId: string | undefined; + SSECustomerAlgorithm?: string; /** - *

                      Confirms that the requester knows that they will be charged for the request. Bucket - * owners need not specify this parameter in their requests. For information about downloading - * objects from requester pays buckets, see Downloading Objects in - * Requestor Pays Buckets in the Amazon S3 User Guide.

                      + *

                      The server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. + * For more information, see + * Protecting data using SSE-C keys in the + * Amazon S3 User Guide.

                      */ - RequestPayer?: RequestPayer | string; + SSECustomerKey?: string; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      The MD5 server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum + * algorithm. For more information, + * see Protecting data using SSE-C keys in the + * Amazon S3 User Guide.

                      */ - ExpectedBucketOwner?: string; + SSECustomerKeyMD5?: string; } export namespace ListPartsRequest { @@ -10135,6 +10818,7 @@ export namespace ListPartsRequest { */ export const filterSensitiveLog = (obj: ListPartsRequest): any => ({ ...obj, + ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }), }); } @@ -10152,9 +10836,20 @@ export interface PutBucketAccelerateConfigurationRequest { AccelerateConfiguration: AccelerateConfiguration | undefined; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedBucketOwner?: string; + + /** + *

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any + * additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or + * x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more + * information, see Checking object integrity in + * the Amazon S3 User Guide.

                      + *

                      If you provide an individual checksum, Amazon S3 ignores any provided + * ChecksumAlgorithm parameter.

                      + */ + ChecksumAlgorithm?: ChecksumAlgorithm | string; } export namespace PutBucketAccelerateConfigurationRequest { @@ -10194,6 +10889,17 @@ export interface PutBucketAclRequest { */ ContentMD5?: string; + /** + *

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any + * additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or + * x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more + * information, see Checking object integrity in + * the Amazon S3 User Guide.

                      + *

                      If you provide an individual checksum, Amazon S3 ignores any provided + * ChecksumAlgorithm parameter.

                      + */ + ChecksumAlgorithm?: ChecksumAlgorithm | string; + /** *

                      Allows grantee the read, write, read ACP, and write ACP permissions on the * bucket.

                      @@ -10222,7 +10928,7 @@ export interface PutBucketAclRequest { GrantWriteACP?: string; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedBucketOwner?: string; } @@ -10255,7 +10961,7 @@ export interface PutBucketAnalyticsConfigurationRequest { AnalyticsConfiguration: AnalyticsConfiguration | undefined; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedBucketOwner?: string; } @@ -10320,7 +11026,18 @@ export interface PutBucketCorsRequest { ContentMD5?: string; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any + * additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or + * x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more + * information, see Checking object integrity in + * the Amazon S3 User Guide.

                      + *

                      If you provide an individual checksum, Amazon S3 ignores any provided + * ChecksumAlgorithm parameter.

                      + */ + ChecksumAlgorithm?: ChecksumAlgorithm | string; + + /** + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedBucketOwner?: string; } @@ -10351,13 +11068,24 @@ export interface PutBucketEncryptionRequest { */ ContentMD5?: string; + /** + *

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any + * additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or + * x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more + * information, see Checking object integrity in + * the Amazon S3 User Guide.

                      + *

                      If you provide an individual checksum, Amazon S3 ignores any provided + * ChecksumAlgorithm parameter.

                      + */ + ChecksumAlgorithm?: ChecksumAlgorithm | string; + /** *

                      Specifies the default server-side-encryption configuration.

                      */ ServerSideEncryptionConfiguration: ServerSideEncryptionConfiguration | undefined; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedBucketOwner?: string; } @@ -10423,7 +11151,7 @@ export interface PutBucketInventoryConfigurationRequest { InventoryConfiguration: InventoryConfiguration | undefined; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedBucketOwner?: string; } @@ -10470,13 +11198,24 @@ export interface PutBucketLifecycleConfigurationRequest { */ Bucket: string | undefined; + /** + *

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any + * additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or + * x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more + * information, see Checking object integrity in + * the Amazon S3 User Guide.

                      + *

                      If you provide an individual checksum, Amazon S3 ignores any provided + * ChecksumAlgorithm parameter.

                      + */ + ChecksumAlgorithm?: ChecksumAlgorithm | string; + /** *

                      Container for lifecycle rules. You can add as many as 1,000 rules.

                      */ LifecycleConfiguration?: BucketLifecycleConfiguration; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedBucketOwner?: string; } @@ -10534,7 +11273,18 @@ export interface PutBucketLoggingRequest { ContentMD5?: string; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any + * additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or + * x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more + * information, see Checking object integrity in + * the Amazon S3 User Guide.

                      + *

                      If you provide an individual checksum, Amazon S3 ignores any provided + * ChecksumAlgorithm parameter.

                      + */ + ChecksumAlgorithm?: ChecksumAlgorithm | string; + + /** + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedBucketOwner?: string; } @@ -10567,7 +11317,7 @@ export interface PutBucketMetricsConfigurationRequest { MetricsConfiguration: MetricsConfiguration | undefined; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedBucketOwner?: string; } @@ -10599,7 +11349,7 @@ export interface PutBucketNotificationConfigurationRequest { NotificationConfiguration: NotificationConfiguration | undefined; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedBucketOwner?: string; @@ -10633,7 +11383,7 @@ export interface PutBucketOwnershipControlsRequest { ContentMD5?: string; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedBucketOwner?: string; @@ -10667,6 +11417,17 @@ export interface PutBucketPolicyRequest { */ ContentMD5?: string; + /** + *

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any + * additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or + * x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more + * information, see Checking object integrity in + * the Amazon S3 User Guide.

                      + *

                      If you provide an individual checksum, Amazon S3 ignores any provided + * ChecksumAlgorithm parameter.

                      + */ + ChecksumAlgorithm?: ChecksumAlgorithm | string; + /** *

                      Set this parameter to true to confirm that you want to remove your permissions to change * this bucket policy in the future.

                      @@ -10679,7 +11440,7 @@ export interface PutBucketPolicyRequest { Policy: string | undefined; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedBucketOwner?: string; } @@ -10709,6 +11470,17 @@ export interface PutBucketReplicationRequest { */ ContentMD5?: string; + /** + *

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any + * additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or + * x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more + * information, see Checking object integrity in + * the Amazon S3 User Guide.

                      + *

                      If you provide an individual checksum, Amazon S3 ignores any provided + * ChecksumAlgorithm parameter.

                      + */ + ChecksumAlgorithm?: ChecksumAlgorithm | string; + /** *

                      A container for replication rules. You can add up to 1,000 rules. The maximum size of a * replication configuration is 2 MB.

                      @@ -10721,7 +11493,7 @@ export interface PutBucketReplicationRequest { Token?: string; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedBucketOwner?: string; } @@ -10774,13 +11546,24 @@ export interface PutBucketRequestPaymentRequest { */ ContentMD5?: string; + /** + *

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any + * additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or + * x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more + * information, see Checking object integrity in + * the Amazon S3 User Guide.

                      + *

                      If you provide an individual checksum, Amazon S3 ignores any provided + * ChecksumAlgorithm parameter.

                      + */ + ChecksumAlgorithm?: ChecksumAlgorithm | string; + /** *

                      Container for Payer.

                      */ RequestPaymentConfiguration: RequestPaymentConfiguration | undefined; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedBucketOwner?: string; } @@ -10829,13 +11612,24 @@ export interface PutBucketTaggingRequest { */ ContentMD5?: string; + /** + *

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any + * additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or + * x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more + * information, see Checking object integrity in + * the Amazon S3 User Guide.

                      + *

                      If you provide an individual checksum, Amazon S3 ignores any provided + * ChecksumAlgorithm parameter.

                      + */ + ChecksumAlgorithm?: ChecksumAlgorithm | string; + /** *

                      Container for the TagSet and Tag elements.

                      */ Tagging: Tagging | undefined; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedBucketOwner?: string; } @@ -10895,6 +11689,17 @@ export interface PutBucketVersioningRequest { */ ContentMD5?: string; + /** + *

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any + * additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or + * x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more + * information, see Checking object integrity in + * the Amazon S3 User Guide.

                      + *

                      If you provide an individual checksum, Amazon S3 ignores any provided + * ChecksumAlgorithm parameter.

                      + */ + ChecksumAlgorithm?: ChecksumAlgorithm | string; + /** *

                      The concatenation of the authentication device's serial number, a space, and the value * that is displayed on your authentication device.

                      @@ -10907,7 +11712,7 @@ export interface PutBucketVersioningRequest { VersioningConfiguration: VersioningConfiguration | undefined; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedBucketOwner?: string; } @@ -10974,13 +11779,24 @@ export interface PutBucketWebsiteRequest { */ ContentMD5?: string; + /** + *

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any + * additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or + * x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more + * information, see Checking object integrity in + * the Amazon S3 User Guide.

                      + *

                      If you provide an individual checksum, Amazon S3 ignores any provided + * ChecksumAlgorithm parameter.

                      + */ + ChecksumAlgorithm?: ChecksumAlgorithm | string; + /** *

                      Container for the request.

                      */ WebsiteConfiguration: WebsiteConfiguration | undefined; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedBucketOwner?: string; } @@ -10996,9 +11812,10 @@ export namespace PutBucketWebsiteRequest { export interface PutObjectOutput { /** - *

                      If the expiration is configured for the object (see PutBucketLifecycleConfiguration), the response includes this header. It - * includes the expiry-date and rule-id key-value pairs that provide information about object - * expiration. The value of the rule-id is URL encoded.

                      + *

                      If the expiration is configured for the object (see PutBucketLifecycleConfiguration), the response includes this header. It + * includes the expiry-date and rule-id key-value pairs that provide + * information about object expiration. The value of the rule-id is + * URL-encoded.

                      */ Expiration?: string; @@ -11007,6 +11824,38 @@ export interface PutObjectOutput { */ ETag?: string; + /** + *

                      The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                      + */ + ChecksumCRC32?: string; + + /** + *

                      The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                      + */ + ChecksumCRC32C?: string; + + /** + *

                      The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                      + */ + ChecksumSHA1?: string; + + /** + *

                      The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                      + */ + ChecksumSHA256?: string; + /** *

                      If you specified server-side encryption either with an Amazon Web Services KMS key * or Amazon S3-managed encryption key in your PUT request, the response includes this header. It @@ -11086,7 +11935,8 @@ export interface PutObjectRequest { /** *

                      The bucket name to which the PUT action was initiated.

                      *

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      - *

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

                      + *

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + * AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      *

                      Note: To supply the Multi-region Access Point (MRAP) to Bucket, you need to install the "@aws-sdk/signature-v4-crt" package to your project dependencies. * For more information, please go to https://github.com/aws/aws-sdk-js-v3#known-issues

                      */ @@ -11137,6 +11987,49 @@ export interface PutObjectRequest { */ ContentType?: string; + /** + *

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any + * additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or + * x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more + * information, see Checking object integrity in + * the Amazon S3 User Guide.

                      + *

                      If you provide an individual checksum, Amazon S3 ignores any provided + * ChecksumAlgorithm parameter.

                      + */ + ChecksumAlgorithm?: ChecksumAlgorithm | string; + + /** + *

                      This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. + * This header specifies the base64-encoded, 32-bit CRC32 checksum of the object. For more information, see + * Checking object integrity in the + * Amazon S3 User Guide.

                      + */ + ChecksumCRC32?: string; + + /** + *

                      This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. + * This header specifies the base64-encoded, 32-bit CRC32C checksum of the object. For more information, see + * Checking object integrity in the + * Amazon S3 User Guide.

                      + */ + ChecksumCRC32C?: string; + + /** + *

                      This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. + * This header specifies the base64-encoded, 160-bit SHA-1 digest of the object. For more information, see + * Checking object integrity in the + * Amazon S3 User Guide.

                      + */ + ChecksumSHA1?: string; + + /** + *

                      This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. + * This header specifies the base64-encoded, 256-bit SHA-256 digest of the object. For more information, see + * Checking object integrity in the + * Amazon S3 User Guide.

                      + */ + ChecksumSHA256?: string; + /** *

                      The date and time at which the object is no longer cacheable. For more information, see * http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21.

                      @@ -11268,8 +12161,8 @@ export interface PutObjectRequest { /** *

                      Confirms that the requester knows that they will be charged for the request. Bucket * owners need not specify this parameter in their requests. For information about downloading - * objects from requester pays buckets, see Downloading Objects in - * Requestor Pays Buckets in the Amazon S3 User Guide.

                      + * objects from Requester Pays buckets, see Downloading Objects in + * Requester Pays Buckets in the Amazon S3 User Guide.

                      */ RequestPayer?: RequestPayer | string; @@ -11298,7 +12191,7 @@ export interface PutObjectRequest { ObjectLockLegalHoldStatus?: ObjectLockLegalHoldStatus | string; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedBucketOwner?: string; } @@ -11361,6 +12254,17 @@ export interface PutObjectAclRequest { */ ContentMD5?: string; + /** + *

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any + * additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or + * x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more + * information, see Checking object integrity in + * the Amazon S3 User Guide.

                      + *

                      If you provide an individual checksum, Amazon S3 ignores any provided + * ChecksumAlgorithm parameter.

                      + */ + ChecksumAlgorithm?: ChecksumAlgorithm | string; + /** *

                      Allows grantee the read, write, read ACP, and write ACP permissions on the * bucket.

                      @@ -11397,15 +12301,16 @@ export interface PutObjectAclRequest { /** *

                      Key for which the PUT action was initiated.

                      *

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      - *

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

                      + *

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + * AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      */ Key: string | undefined; /** *

                      Confirms that the requester knows that they will be charged for the request. Bucket * owners need not specify this parameter in their requests. For information about downloading - * objects from requester pays buckets, see Downloading Objects in - * Requestor Pays Buckets in the Amazon S3 User Guide.

                      + * objects from Requester Pays buckets, see Downloading Objects in + * Requester Pays Buckets in the Amazon S3 User Guide.

                      */ RequestPayer?: RequestPayer | string; @@ -11415,7 +12320,7 @@ export interface PutObjectAclRequest { VersionId?: string; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedBucketOwner?: string; } @@ -11448,7 +12353,7 @@ export namespace PutObjectLegalHoldOutput { export interface PutObjectLegalHoldRequest { /** - *

                      The bucket name containing the object that you want to place a Legal Hold on.

                      + *

                      The bucket name containing the object that you want to place a legal hold on.

                      *

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      *

                      Note: To supply the Multi-region Access Point (MRAP) to Bucket, you need to install the "@aws-sdk/signature-v4-crt" package to your project dependencies. * For more information, please go to https://github.com/aws/aws-sdk-js-v3#known-issues

                      @@ -11456,12 +12361,12 @@ export interface PutObjectLegalHoldRequest { Bucket: string | undefined; /** - *

                      The key name for the object that you want to place a Legal Hold on.

                      + *

                      The key name for the object that you want to place a legal hold on.

                      */ Key: string | undefined; /** - *

                      Container element for the Legal Hold configuration you want to apply to the specified + *

                      Container element for the legal hold configuration you want to apply to the specified * object.

                      */ LegalHold?: ObjectLockLegalHold; @@ -11469,13 +12374,13 @@ export interface PutObjectLegalHoldRequest { /** *

                      Confirms that the requester knows that they will be charged for the request. Bucket * owners need not specify this parameter in their requests. For information about downloading - * objects from requester pays buckets, see Downloading Objects in - * Requestor Pays Buckets in the Amazon S3 User Guide.

                      + * objects from Requester Pays buckets, see Downloading Objects in + * Requester Pays Buckets in the Amazon S3 User Guide.

                      */ RequestPayer?: RequestPayer | string; /** - *

                      The version ID of the object that you want to place a Legal Hold on.

                      + *

                      The version ID of the object that you want to place a legal hold on.

                      */ VersionId?: string; @@ -11486,7 +12391,18 @@ export interface PutObjectLegalHoldRequest { ContentMD5?: string; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any + * additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or + * x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more + * information, see Checking object integrity in + * the Amazon S3 User Guide.

                      + *

                      If you provide an individual checksum, Amazon S3 ignores any provided + * ChecksumAlgorithm parameter.

                      + */ + ChecksumAlgorithm?: ChecksumAlgorithm | string; + + /** + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedBucketOwner?: string; } @@ -11533,8 +12449,8 @@ export interface PutObjectLockConfigurationRequest { /** *

                      Confirms that the requester knows that they will be charged for the request. Bucket * owners need not specify this parameter in their requests. For information about downloading - * objects from requester pays buckets, see Downloading Objects in - * Requestor Pays Buckets in the Amazon S3 User Guide.

                      + * objects from Requester Pays buckets, see Downloading Objects in + * Requester Pays Buckets in the Amazon S3 User Guide.

                      */ RequestPayer?: RequestPayer | string; @@ -11550,245 +12466,27 @@ export interface PutObjectLockConfigurationRequest { ContentMD5?: string; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      - */ - ExpectedBucketOwner?: string; -} - -export namespace PutObjectLockConfigurationRequest { - /** - * @internal - */ - export const filterSensitiveLog = (obj: PutObjectLockConfigurationRequest): any => ({ - ...obj, - }); -} - -export interface PutObjectRetentionOutput { - /** - *

                      If present, indicates that the requester was successfully charged for the - * request.

                      - */ - RequestCharged?: RequestCharged | string; -} - -export namespace PutObjectRetentionOutput { - /** - * @internal - */ - export const filterSensitiveLog = (obj: PutObjectRetentionOutput): any => ({ - ...obj, - }); -} - -export interface PutObjectRetentionRequest { - /** - *

                      The bucket name that contains the object you want to apply this Object Retention - * configuration to.

                      - *

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      - *

                      Note: To supply the Multi-region Access Point (MRAP) to Bucket, you need to install the "@aws-sdk/signature-v4-crt" package to your project dependencies. - * For more information, please go to https://github.com/aws/aws-sdk-js-v3#known-issues

                      - */ - Bucket: string | undefined; - - /** - *

                      The key name for the object that you want to apply this Object Retention configuration - * to.

                      - */ - Key: string | undefined; - - /** - *

                      The container element for the Object Retention configuration.

                      - */ - Retention?: ObjectLockRetention; - - /** - *

                      Confirms that the requester knows that they will be charged for the request. Bucket - * owners need not specify this parameter in their requests. For information about downloading - * objects from requester pays buckets, see Downloading Objects in - * Requestor Pays Buckets in the Amazon S3 User Guide.

                      - */ - RequestPayer?: RequestPayer | string; - - /** - *

                      The version ID for the object that you want to apply this Object Retention configuration - * to.

                      - */ - VersionId?: string; - - /** - *

                      Indicates whether this action should bypass Governance-mode restrictions.

                      - */ - BypassGovernanceRetention?: boolean; - - /** - *

                      The MD5 hash for the request body.

                      - *

                      For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

                      - */ - ContentMD5?: string; - - /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      - */ - ExpectedBucketOwner?: string; -} - -export namespace PutObjectRetentionRequest { - /** - * @internal - */ - export const filterSensitiveLog = (obj: PutObjectRetentionRequest): any => ({ - ...obj, - }); -} - -export interface PutObjectTaggingOutput { - /** - *

                      The versionId of the object the tag-set was added to.

                      - */ - VersionId?: string; -} - -export namespace PutObjectTaggingOutput { - /** - * @internal - */ - export const filterSensitiveLog = (obj: PutObjectTaggingOutput): any => ({ - ...obj, - }); -} - -export interface PutObjectTaggingRequest { - /** - *

                      The bucket name containing the object.

                      - *

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      - *

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

                      - *

                      Note: To supply the Multi-region Access Point (MRAP) to Bucket, you need to install the "@aws-sdk/signature-v4-crt" package to your project dependencies. - * For more information, please go to https://github.com/aws/aws-sdk-js-v3#known-issues

                      - */ - Bucket: string | undefined; - - /** - *

                      Name of the object key.

                      - */ - Key: string | undefined; - - /** - *

                      The versionId of the object that the tag-set will be added to.

                      - */ - VersionId?: string; - - /** - *

                      The MD5 hash for the request body.

                      - *

                      For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

                      - */ - ContentMD5?: string; - - /** - *

                      Container for the TagSet and Tag elements

                      - */ - Tagging: Tagging | undefined; - - /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      - */ - ExpectedBucketOwner?: string; - - /** - *

                      Confirms that the requester knows that they will be charged for the request. Bucket - * owners need not specify this parameter in their requests. For information about downloading - * objects from requester pays buckets, see Downloading Objects in - * Requestor Pays Buckets in the Amazon S3 User Guide.

                      - */ - RequestPayer?: RequestPayer | string; -} - -export namespace PutObjectTaggingRequest { - /** - * @internal - */ - export const filterSensitiveLog = (obj: PutObjectTaggingRequest): any => ({ - ...obj, - }); -} - -export interface PutPublicAccessBlockRequest { - /** - *

                      The name of the Amazon S3 bucket whose PublicAccessBlock configuration you want - * to set.

                      - *

                      Note: To supply the Multi-region Access Point (MRAP) to Bucket, you need to install the "@aws-sdk/signature-v4-crt" package to your project dependencies. - * For more information, please go to https://github.com/aws/aws-sdk-js-v3#known-issues

                      - */ - Bucket: string | undefined; - - /** - *

                      The MD5 hash of the PutPublicAccessBlock request body.

                      - *

                      For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

                      - */ - ContentMD5?: string; - - /** - *

                      The PublicAccessBlock configuration that you want to apply to this Amazon S3 - * bucket. 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" in the Amazon S3 User Guide.

                      + *

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any + * additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or + * x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more + * information, see Checking object integrity in + * the Amazon S3 User Guide.

                      + *

                      If you provide an individual checksum, Amazon S3 ignores any provided + * ChecksumAlgorithm parameter.

                      */ - PublicAccessBlockConfiguration: PublicAccessBlockConfiguration | undefined; + ChecksumAlgorithm?: ChecksumAlgorithm | string; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedBucketOwner?: string; } -export namespace PutPublicAccessBlockRequest { - /** - * @internal - */ - export const filterSensitiveLog = (obj: PutPublicAccessBlockRequest): any => ({ - ...obj, - }); -} - -/** - *

                      This action is not allowed against this storage tier.

                      - */ -export class ObjectAlreadyInActiveTierError extends __BaseException { - readonly name: "ObjectAlreadyInActiveTierError" = "ObjectAlreadyInActiveTierError"; - readonly $fault: "client" = "client"; - /** - * @internal - */ - constructor(opts: __ExceptionOptionType) { - super({ - name: "ObjectAlreadyInActiveTierError", - $fault: "client", - ...opts, - }); - Object.setPrototypeOf(this, ObjectAlreadyInActiveTierError.prototype); - } -} - -export interface RestoreObjectOutput { - /** - *

                      If present, indicates that the requester was successfully charged for the - * request.

                      - */ - RequestCharged?: RequestCharged | string; - - /** - *

                      Indicates the path in the provided S3 output location where Select results will be - * restored to.

                      - */ - RestoreOutputPath?: string; -} - -export namespace RestoreObjectOutput { +export namespace PutObjectLockConfigurationRequest { /** * @internal */ - export const filterSensitiveLog = (obj: RestoreObjectOutput): any => ({ + export const filterSensitiveLog = (obj: PutObjectLockConfigurationRequest): any => ({ ...obj, }); } - -export type Tier = "Bulk" | "Expedited" | "Standard"; diff --git a/clients/client-s3/src/models/models_1.ts b/clients/client-s3/src/models/models_1.ts index 2f4c5da55386..64370af26605 100644 --- a/clients/client-s3/src/models/models_1.ts +++ b/clients/client-s3/src/models/models_1.ts @@ -1,19 +1,286 @@ -import { SENSITIVE_STRING } from "@aws-sdk/smithy-client"; +import { ExceptionOptionType as __ExceptionOptionType, SENSITIVE_STRING } from "@aws-sdk/smithy-client"; +import { MetadataBearer as $MetadataBearer } from "@aws-sdk/types"; import { Readable } from "stream"; import { + ChecksumAlgorithm, Grant, ObjectCannedACL, ObjectLockLegalHoldStatus, ObjectLockMode, + ObjectLockRetention, + PublicAccessBlockConfiguration, ReplicationStatus, RequestCharged, RequestPayer, ServerSideEncryption, StorageClass, Tagging, - Tier, } from "./models_0"; +import { S3ServiceException as __BaseException } from "./S3ServiceException"; + +export interface PutObjectRetentionOutput { + /** + *

                      If present, indicates that the requester was successfully charged for the + * request.

                      + */ + RequestCharged?: RequestCharged | string; +} + +export namespace PutObjectRetentionOutput { + /** + * @internal + */ + export const filterSensitiveLog = (obj: PutObjectRetentionOutput): any => ({ + ...obj, + }); +} + +export interface PutObjectRetentionRequest { + /** + *

                      The bucket name that contains the object you want to apply this Object Retention + * configuration to.

                      + *

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      + *

                      Note: To supply the Multi-region Access Point (MRAP) to Bucket, you need to install the "@aws-sdk/signature-v4-crt" package to your project dependencies. + * For more information, please go to https://github.com/aws/aws-sdk-js-v3#known-issues

                      + */ + Bucket: string | undefined; + + /** + *

                      The key name for the object that you want to apply this Object Retention configuration + * to.

                      + */ + Key: string | undefined; + + /** + *

                      The container element for the Object Retention configuration.

                      + */ + Retention?: ObjectLockRetention; + + /** + *

                      Confirms that the requester knows that they will be charged for the request. Bucket + * owners need not specify this parameter in their requests. For information about downloading + * objects from Requester Pays buckets, see Downloading Objects in + * Requester Pays Buckets in the Amazon S3 User Guide.

                      + */ + RequestPayer?: RequestPayer | string; + + /** + *

                      The version ID for the object that you want to apply this Object Retention configuration + * to.

                      + */ + VersionId?: string; + + /** + *

                      Indicates whether this action should bypass Governance-mode restrictions.

                      + */ + BypassGovernanceRetention?: boolean; + + /** + *

                      The MD5 hash for the request body.

                      + *

                      For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

                      + */ + ContentMD5?: string; + + /** + *

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any + * additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or + * x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more + * information, see Checking object integrity in + * the Amazon S3 User Guide.

                      + *

                      If you provide an individual checksum, Amazon S3 ignores any provided + * ChecksumAlgorithm parameter.

                      + */ + ChecksumAlgorithm?: ChecksumAlgorithm | string; + + /** + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      + */ + ExpectedBucketOwner?: string; +} + +export namespace PutObjectRetentionRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: PutObjectRetentionRequest): any => ({ + ...obj, + }); +} + +export interface PutObjectTaggingOutput { + /** + *

                      The versionId of the object the tag-set was added to.

                      + */ + VersionId?: string; +} + +export namespace PutObjectTaggingOutput { + /** + * @internal + */ + export const filterSensitiveLog = (obj: PutObjectTaggingOutput): any => ({ + ...obj, + }); +} + +export interface PutObjectTaggingRequest { + /** + *

                      The bucket name containing the object.

                      + *

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      + *

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + * AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      + *

                      Note: To supply the Multi-region Access Point (MRAP) to Bucket, you need to install the "@aws-sdk/signature-v4-crt" package to your project dependencies. + * For more information, please go to https://github.com/aws/aws-sdk-js-v3#known-issues

                      + */ + Bucket: string | undefined; + + /** + *

                      Name of the object key.

                      + */ + Key: string | undefined; + + /** + *

                      The versionId of the object that the tag-set will be added to.

                      + */ + VersionId?: string; + + /** + *

                      The MD5 hash for the request body.

                      + *

                      For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

                      + */ + ContentMD5?: string; + + /** + *

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any + * additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or + * x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more + * information, see Checking object integrity in + * the Amazon S3 User Guide.

                      + *

                      If you provide an individual checksum, Amazon S3 ignores any provided + * ChecksumAlgorithm parameter.

                      + */ + ChecksumAlgorithm?: ChecksumAlgorithm | string; + + /** + *

                      Container for the TagSet and Tag elements

                      + */ + Tagging: Tagging | undefined; + + /** + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      + */ + ExpectedBucketOwner?: string; + + /** + *

                      Confirms that the requester knows that they will be charged for the request. Bucket + * owners need not specify this parameter in their requests. For information about downloading + * objects from Requester Pays buckets, see Downloading Objects in + * Requester Pays Buckets in the Amazon S3 User Guide.

                      + */ + RequestPayer?: RequestPayer | string; +} + +export namespace PutObjectTaggingRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: PutObjectTaggingRequest): any => ({ + ...obj, + }); +} + +export interface PutPublicAccessBlockRequest { + /** + *

                      The name of the Amazon S3 bucket whose PublicAccessBlock configuration you want + * to set.

                      + *

                      Note: To supply the Multi-region Access Point (MRAP) to Bucket, you need to install the "@aws-sdk/signature-v4-crt" package to your project dependencies. + * For more information, please go to https://github.com/aws/aws-sdk-js-v3#known-issues

                      + */ + Bucket: string | undefined; + + /** + *

                      The MD5 hash of the PutPublicAccessBlock request body.

                      + *

                      For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

                      + */ + ContentMD5?: string; + + /** + *

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any + * additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or + * x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more + * information, see Checking object integrity in + * the Amazon S3 User Guide.

                      + *

                      If you provide an individual checksum, Amazon S3 ignores any provided + * ChecksumAlgorithm parameter.

                      + */ + ChecksumAlgorithm?: ChecksumAlgorithm | string; + + /** + *

                      The PublicAccessBlock configuration that you want to apply to this Amazon S3 + * bucket. 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" in the Amazon S3 User Guide.

                      + */ + PublicAccessBlockConfiguration: PublicAccessBlockConfiguration | undefined; + + /** + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      + */ + ExpectedBucketOwner?: string; +} + +export namespace PutPublicAccessBlockRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: PutPublicAccessBlockRequest): any => ({ + ...obj, + }); +} + +/** + *

                      This action is not allowed against this storage tier.

                      + */ +export class ObjectAlreadyInActiveTierError extends __BaseException { + readonly name: "ObjectAlreadyInActiveTierError" = "ObjectAlreadyInActiveTierError"; + readonly $fault: "client" = "client"; + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "ObjectAlreadyInActiveTierError", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, ObjectAlreadyInActiveTierError.prototype); + } +} + +export interface RestoreObjectOutput { + /** + *

                      If present, indicates that the requester was successfully charged for the + * request.

                      + */ + RequestCharged?: RequestCharged | string; + + /** + *

                      Indicates the path in the provided S3 output location where Select results will be + * restored to.

                      + */ + RestoreOutputPath?: string; +} + +export namespace RestoreObjectOutput { + /** + * @internal + */ + export const filterSensitiveLog = (obj: RestoreObjectOutput): any => ({ + ...obj, + }); +} + +export type Tier = "Bulk" | "Expedited" | "Standard"; /** *

                      Container for S3 Glacier job parameters.

                      @@ -48,7 +315,8 @@ export interface Encryption { *

                      If the encryption type is aws:kms, this optional value specifies the ID of * the symmetric customer managed key to use for encryption of job results. Amazon S3 only * supports symmetric keys. For more information, see Using symmetric and - * asymmetric keys in the Amazon Web Services Key Management Service Developer Guide.

                      + * asymmetric keys in the Amazon Web Services Key Management Service Developer + * Guide.

                      */ KMSKeyId?: string; @@ -214,7 +482,8 @@ export interface CSVInput { /** *

                      A single character used for escaping the quotation mark character inside an already - * escaped value. For example, the value """ a , b """ is parsed as " a , b ".

                      + * escaped value. For example, the value """ a , b """ is parsed as " a , b + * ".

                      */ QuoteEscapeCharacter?: string; @@ -532,7 +801,8 @@ export interface RestoreObjectRequest { /** *

                      The bucket name containing the object to restore.

                      *

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      - *

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

                      + *

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + * AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      *

                      Note: To supply the Multi-region Access Point (MRAP) to Bucket, you need to install the "@aws-sdk/signature-v4-crt" package to your project dependencies. * For more information, please go to https://github.com/aws/aws-sdk-js-v3#known-issues

                      */ @@ -556,13 +826,24 @@ export interface RestoreObjectRequest { /** *

                      Confirms that the requester knows that they will be charged for the request. Bucket * owners need not specify this parameter in their requests. For information about downloading - * objects from requester pays buckets, see Downloading Objects in - * Requestor Pays Buckets in the Amazon S3 User Guide.

                      + * objects from Requester Pays buckets, see Downloading Objects in + * Requester Pays Buckets in the Amazon S3 User Guide.

                      */ RequestPayer?: RequestPayer | string; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any + * additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or + * x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more + * information, see Checking object integrity in + * the Amazon S3 User Guide.

                      + *

                      If you provide an individual checksum, Amazon S3 ignores any provided + * ChecksumAlgorithm parameter.

                      + */ + ChecksumAlgorithm?: ChecksumAlgorithm | string; + + /** + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedBucketOwner?: string; } @@ -881,8 +1162,8 @@ export namespace RequestProgress { export interface ScanRange { /** *

                      Specifies the start of the byte range. This parameter is optional. Valid values: - * non-negative integers. The default value is 0. If only start is supplied, it means scan - * from that point to the end of the file.For example; + * non-negative integers. The default value is 0. If only start is supplied, it + * means scan from that point to the end of the file. For example, * 50 means scan * from byte 50 until the end of the file.

                      */ @@ -930,19 +1211,26 @@ export interface SelectObjectContentRequest { Key: string | undefined; /** - *

                      The SSE Algorithm used to encrypt the object. For more information, see Server-Side Encryption (Using Customer-Provided Encryption Keys.

                      + *

                      The server-side encryption (SSE) algorithm used to encrypt the object. This parameter is needed only when the object was created + * using a checksum algorithm. For more information, + * see Protecting data using SSE-C keys in the + * Amazon S3 User Guide.

                      */ SSECustomerAlgorithm?: string; /** - *

                      The SSE Customer Key. For more information, see Server-Side Encryption - * (Using Customer-Provided Encryption Keys.

                      + *

                      The server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. + * For more information, see + * Protecting data using SSE-C keys in the + * Amazon S3 User Guide.

                      */ SSECustomerKey?: string; /** - *

                      The SSE Customer Key MD5. For more information, see Server-Side Encryption - * (Using Customer-Provided Encryption Keys.

                      + *

                      The MD5 server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum + * algorithm. For more information, + * see Protecting data using SSE-C keys in the + * Amazon S3 User Guide.

                      */ SSECustomerKeyMD5?: string; @@ -1000,7 +1288,7 @@ export interface SelectObjectContentRequest { ScanRange?: ScanRange; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedBucketOwner?: string; } @@ -1027,6 +1315,38 @@ export interface UploadPartOutput { */ ETag?: string; + /** + *

                      The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                      + */ + ChecksumCRC32?: string; + + /** + *

                      The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                      + */ + ChecksumCRC32C?: string; + + /** + *

                      The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                      + */ + ChecksumSHA1?: string; + + /** + *

                      The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                      + */ + ChecksumSHA256?: string; + /** *

                      If server-side encryption with a customer-provided encryption key was requested, the * response will include this header confirming the encryption algorithm used.

                      @@ -1077,7 +1397,8 @@ export interface UploadPartRequest { /** *

                      The name of the bucket to which the multipart upload was initiated.

                      *

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      - *

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

                      + *

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + * AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      *

                      Note: To supply the Multi-region Access Point (MRAP) to Bucket, you need to install the "@aws-sdk/signature-v4-crt" package to your project dependencies. * For more information, please go to https://github.com/aws/aws-sdk-js-v3#known-issues

                      */ @@ -1096,6 +1417,51 @@ export interface UploadPartRequest { */ ContentMD5?: string; + /** + *

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any + * additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or + * x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more + * information, see Checking object integrity in + * the Amazon S3 User Guide.

                      + *

                      If you provide an individual checksum, Amazon S3 ignores any provided + * ChecksumAlgorithm parameter.

                      + *

                      This checksum algorithm must be the same for all parts and it match the checksum + * value supplied in the CreateMultipartUpload request.

                      + */ + ChecksumAlgorithm?: ChecksumAlgorithm | string; + + /** + *

                      This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. + * This header specifies the base64-encoded, 32-bit CRC32 checksum of the object. For more information, see + * Checking object integrity in the + * Amazon S3 User Guide.

                      + */ + ChecksumCRC32?: string; + + /** + *

                      This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. + * This header specifies the base64-encoded, 32-bit CRC32C checksum of the object. For more information, see + * Checking object integrity in the + * Amazon S3 User Guide.

                      + */ + ChecksumCRC32C?: string; + + /** + *

                      This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. + * This header specifies the base64-encoded, 160-bit SHA-1 digest of the object. For more information, see + * Checking object integrity in the + * Amazon S3 User Guide.

                      + */ + ChecksumSHA1?: string; + + /** + *

                      This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. + * This header specifies the base64-encoded, 256-bit SHA-256 digest of the object. For more information, see + * Checking object integrity in the + * Amazon S3 User Guide.

                      + */ + ChecksumSHA256?: string; + /** *

                      Object key for which the multipart upload was initiated.

                      */ @@ -1137,13 +1503,13 @@ export interface UploadPartRequest { /** *

                      Confirms that the requester knows that they will be charged for the request. Bucket * owners need not specify this parameter in their requests. For information about downloading - * objects from requester pays buckets, see Downloading Objects in - * Requestor Pays Buckets in the Amazon S3 User Guide.

                      + * objects from Requester Pays buckets, see Downloading Objects in + * Requester Pays Buckets in the Amazon S3 User Guide.

                      */ RequestPayer?: RequestPayer | string; /** - *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedBucketOwner?: string; } @@ -1171,6 +1537,38 @@ export interface CopyPartResult { *

                      Date and time at which the object was uploaded.

                      */ LastModified?: Date; + + /** + *

                      The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                      + */ + ChecksumCRC32?: string; + + /** + *

                      The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                      + */ + ChecksumCRC32C?: string; + + /** + *

                      The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                      + */ + ChecksumSHA1?: string; + + /** + *

                      The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded + * with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated + * with multipart uploads, see + * Checking object integrity in the Amazon S3 User Guide.

                      + */ + ChecksumSHA256?: string; } export namespace CopyPartResult { @@ -1245,7 +1643,8 @@ export interface UploadPartCopyRequest { /** *

                      The bucket name.

                      *

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      - *

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

                      + *

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + * AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      *

                      Note: To supply the Multi-region Access Point (MRAP) to Bucket, you need to install the "@aws-sdk/signature-v4-crt" package to your project dependencies. * For more information, please go to https://github.com/aws/aws-sdk-js-v3#known-issues

                      */ @@ -1256,19 +1655,18 @@ export interface UploadPartCopyRequest { * formats, depending on whether you want to access the source object through an access point:

                      *
                        *
                      • - *

                        For objects not accessed through an access point, specify the name of the source - * bucket and key of the source object, separated by a slash (/). For example, to copy - * the object reports/january.pdf from the bucket - * awsexamplebucket, use - * awsexamplebucket/reports/january.pdf. The value must be URL - * encoded.

                        + *

                        For objects not accessed through an access point, specify the name of the source bucket + * and key of the source object, separated by a slash (/). For example, to copy the + * object reports/january.pdf from the bucket + * awsexamplebucket, use awsexamplebucket/reports/january.pdf. + * The value must be URL-encoded.

                        *
                      • *
                      • *

                        For objects accessed through access points, specify the Amazon Resource Name (ARN) of the object as accessed through the access point, in the format arn:aws:s3:::accesspoint//object/. For example, to copy the object reports/january.pdf through access point my-access-point owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf. The value must be URL encoded.

                        * *

                        Amazon S3 supports copy operations using access points only when the source and destination buckets are in the same Amazon Web Services Region.

                        *
                        - *

                        Alternatively, for objects accessed through Amazon S3 on Outposts, specify the ARN of the object as accessed in the format arn:aws:s3-outposts:::outpost//object/. For example, to copy the object reports/january.pdf through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf. The value must be URL encoded.

                        + *

                        Alternatively, for objects accessed through Amazon S3 on Outposts, specify the ARN of the object as accessed in the format arn:aws:s3-outposts:::outpost//object/. For example, to copy the object reports/january.pdf through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf. The value must be URL-encoded.

                        *
                      • *
                      *

                      To copy a specific version of an object, append ?versionId= @@ -1368,18 +1766,18 @@ export interface UploadPartCopyRequest { /** *

                      Confirms that the requester knows that they will be charged for the request. Bucket * owners need not specify this parameter in their requests. For information about downloading - * objects from requester pays buckets, see Downloading Objects in - * Requestor Pays Buckets in the Amazon S3 User Guide.

                      + * objects from Requester Pays buckets, see Downloading Objects in + * Requester Pays Buckets in the Amazon S3 User Guide.

                      */ RequestPayer?: RequestPayer | string; /** - *

                      The account ID of the expected destination bucket owner. If the destination bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      The account ID of the expected destination bucket owner. If the destination bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedBucketOwner?: string; /** - *

                      The account ID of the expected source bucket owner. If the source bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

                      + *

                      The account ID of the expected source bucket owner. If the source bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      */ ExpectedSourceBucketOwner?: string; } @@ -1421,72 +1819,72 @@ export interface WriteGetObjectResponseRequest { *
                        *
                      • *

                        - * 200 - OK + * 200 - OK *

                        *
                      • *
                      • *

                        - * 206 - Partial Content + * 206 - Partial Content *

                        *
                      • *
                      • *

                        - * 304 - Not Modified + * 304 - Not Modified *

                        *
                      • *
                      • *

                        - * 400 - Bad Request + * 400 - Bad Request *

                        *
                      • *
                      • *

                        - * 401 - Unauthorized + * 401 - Unauthorized *

                        *
                      • *
                      • *

                        - * 403 - Forbidden + * 403 - Forbidden *

                        *
                      • *
                      • *

                        - * 404 - Not Found + * 404 - Not Found *

                        *
                      • *
                      • *

                        - * 405 - Method Not Allowed + * 405 - Method Not Allowed *

                        *
                      • *
                      • *

                        - * 409 - Conflict + * 409 - Conflict *

                        *
                      • *
                      • *

                        - * 411 - Length Required + * 411 - Length Required *

                        *
                      • *
                      • *

                        - * 412 - Precondition Failed + * 412 - Precondition Failed *

                        *
                      • *
                      • *

                        - * 416 - Range Not Satisfiable + * 416 - Range Not Satisfiable *

                        *
                      • *
                      • *

                        - * 500 - Internal Server Error + * 500 - Internal Server Error *

                        *
                      • *
                      • *

                        - * 503 - Service Unavailable + * 503 - Service Unavailable *

                        *
                      • *
                      @@ -1497,7 +1895,8 @@ export interface WriteGetObjectResponseRequest { *

                      A string that uniquely identifies an error condition. Returned in the tag * of the error XML response for a corresponding GetObject call. Cannot be used * with a successful StatusCode header or when the transformed object is provided - * in the body. All error codes from S3 are sentence-cased. Regex value is "^[A-Z][a-zA-Z]+$".

                      + * in the body. All error codes from S3 are sentence-cased. The regular expression (regex) + * value is "^[A-Z][a-zA-Z]+$".

                      */ ErrorCode?: string; @@ -1551,6 +1950,59 @@ export interface WriteGetObjectResponseRequest { */ ContentType?: string; + /** + *

                      This header can be used as a data integrity check to verify that the data received is the + * same data that was originally sent. This specifies the base64-encoded, 32-bit CRC32 checksum + * of the object returned by the Object Lambda function. This may not match the checksum for the + * object stored in Amazon S3. Amazon S3 will perform validation of the checksum values only when the original + * GetObject request required checksum validation. For more information about checksums, see + * Checking + * object integrity in the Amazon S3 User Guide.

                      + *

                      Only one checksum header can be specified at a time. If you supply multiple + * checksum headers, this request will fail.

                      + *

                      + */ + ChecksumCRC32?: string; + + /** + *

                      This header can be used as a data integrity check to verify that the data received is the + * same data that was originally sent. This specifies the base64-encoded, 32-bit CRC32C checksum + * of the object returned by the Object Lambda function. This may not match the checksum for the + * object stored in Amazon S3. Amazon S3 will perform validation of the checksum values only when the original + * GetObject request required checksum validation. For more information about checksums, see + * Checking + * object integrity in the Amazon S3 User Guide.

                      + *

                      Only one checksum header can be specified at a time. If you supply multiple + * checksum headers, this request will fail.

                      + */ + ChecksumCRC32C?: string; + + /** + *

                      This header can be used as a data integrity check to verify that the data received is the + * same data that was originally sent. This specifies the base64-encoded, 160-bit SHA-1 digest + * of the object returned by the Object Lambda function. This may not match the checksum for the + * object stored in Amazon S3. Amazon S3 will perform validation of the checksum values only when the original + * GetObject request required checksum validation. For more information about checksums, see + * Checking + * object integrity in the Amazon S3 User Guide.

                      + *

                      Only one checksum header can be specified at a time. If you supply multiple + * checksum headers, this request will fail.

                      + */ + ChecksumSHA1?: string; + + /** + *

                      This header can be used as a data integrity check to verify that the data received is the + * same data that was originally sent. This specifies the base64-encoded, 256-bit SHA-256 digest + * of the object returned by the Object Lambda function. This may not match the checksum for the + * object stored in Amazon S3. Amazon S3 will perform validation of the checksum values only when the original + * GetObject request required checksum validation. For more information about checksums, see + * Checking + * object integrity in the Amazon S3 User Guide.

                      + *

                      Only one checksum header can be specified at a time. If you supply multiple + * checksum headers, this request will fail.

                      + */ + ChecksumSHA256?: string; + /** *

                      Specifies whether an object stored in Amazon S3 is (true) or is not * (false) a delete marker.

                      @@ -1569,7 +2021,10 @@ export interface WriteGetObjectResponseRequest { Expires?: Date; /** - *

                      If object stored in Amazon S3 expiration is configured (see PUT Bucket lifecycle) it includes expiry-date and rule-id key-value pairs providing object expiration information. The value of the rule-id is URL encoded.

                      + *

                      If the object expiration is configured (see PUT Bucket lifecycle), the response + * includes this header. It includes the expiry-date and rule-id + * key-value pairs that provide the object expiration information. The value of the + * rule-id is URL-encoded.

                      */ Expiration?: string; @@ -1654,7 +2109,11 @@ export interface WriteGetObjectResponseRequest { SSECustomerKeyMD5?: string; /** - *

                      The class of storage used to store object in Amazon S3.

                      + *

                      Provides storage class information of the object. Amazon S3 returns this header for all + * objects except for S3 Standard storage class objects.

                      + * + *

                      For more information, see Storage + * Classes.

                      */ StorageClass?: StorageClass | string; diff --git a/clients/client-s3/src/protocols/Aws_restXml.ts b/clients/client-s3/src/protocols/Aws_restXml.ts index 7b63399010d4..e42231fb9e2a 100644 --- a/clients/client-s3/src/protocols/Aws_restXml.ts +++ b/clients/client-s3/src/protocols/Aws_restXml.ts @@ -156,6 +156,10 @@ import { } from "../commands/GetBucketVersioningCommand"; import { GetBucketWebsiteCommandInput, GetBucketWebsiteCommandOutput } from "../commands/GetBucketWebsiteCommand"; import { GetObjectAclCommandInput, GetObjectAclCommandOutput } from "../commands/GetObjectAclCommand"; +import { + GetObjectAttributesCommandInput, + GetObjectAttributesCommandOutput, +} from "../commands/GetObjectAttributesCommand"; import { GetObjectCommandInput, GetObjectCommandOutput } from "../commands/GetObjectCommand"; import { GetObjectLegalHoldCommandInput, GetObjectLegalHoldCommandOutput } from "../commands/GetObjectLegalHoldCommand"; import { @@ -291,6 +295,8 @@ import { BucketAlreadyOwnedByYou, BucketLifecycleConfiguration, BucketLoggingStatus, + Checksum, + ChecksumAlgorithm, CommonPrefix, CompletedMultipartUpload, CompletedPart, @@ -311,6 +317,7 @@ import { EventBridgeConfiguration, ExistingObjectReplication, FilterRule, + GetObjectAttributesParts, Grant, Grantee, IndexDocument, @@ -345,13 +352,13 @@ import { NotFound, NotificationConfiguration, NotificationConfigurationFilter, - ObjectAlreadyInActiveTierError, ObjectIdentifier, ObjectLockConfiguration, ObjectLockLegalHold, ObjectLockRetention, ObjectLockRule, ObjectNotInActiveTierError, + ObjectPart, ObjectVersion, Owner, OwnershipControls, @@ -402,6 +409,7 @@ import { JSONInput, JSONOutput, MetadataEntry, + ObjectAlreadyInActiveTierError, OutputLocation, OutputSerialization, ParquetInput, @@ -479,10 +487,23 @@ export const serializeAws_restXmlCompleteMultipartUploadCommand = async ( const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers: any = { "content-type": "application/xml", + ...(isSerializableHeaderValue(input.ChecksumCRC32) && { "x-amz-checksum-crc32": input.ChecksumCRC32! }), + ...(isSerializableHeaderValue(input.ChecksumCRC32C) && { "x-amz-checksum-crc32c": input.ChecksumCRC32C! }), + ...(isSerializableHeaderValue(input.ChecksumSHA1) && { "x-amz-checksum-sha1": input.ChecksumSHA1! }), + ...(isSerializableHeaderValue(input.ChecksumSHA256) && { "x-amz-checksum-sha256": input.ChecksumSHA256! }), ...(isSerializableHeaderValue(input.RequestPayer) && { "x-amz-request-payer": input.RequestPayer! }), ...(isSerializableHeaderValue(input.ExpectedBucketOwner) && { "x-amz-expected-bucket-owner": input.ExpectedBucketOwner!, }), + ...(isSerializableHeaderValue(input.SSECustomerAlgorithm) && { + "x-amz-server-side-encryption-customer-algorithm": input.SSECustomerAlgorithm!, + }), + ...(isSerializableHeaderValue(input.SSECustomerKey) && { + "x-amz-server-side-encryption-customer-key": input.SSECustomerKey!, + }), + ...(isSerializableHeaderValue(input.SSECustomerKeyMD5) && { + "x-amz-server-side-encryption-customer-key-md5": input.SSECustomerKeyMD5!, + }), }; let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/{Bucket}/{Key+}"; if (input.Bucket !== undefined) { @@ -545,6 +566,7 @@ export const serializeAws_restXmlCopyObjectCommand = async ( const headers: any = { ...(isSerializableHeaderValue(input.ACL) && { "x-amz-acl": input.ACL! }), ...(isSerializableHeaderValue(input.CacheControl) && { "cache-control": input.CacheControl! }), + ...(isSerializableHeaderValue(input.ChecksumAlgorithm) && { "x-amz-checksum-algorithm": input.ChecksumAlgorithm! }), ...(isSerializableHeaderValue(input.ContentDisposition) && { "content-disposition": input.ContentDisposition! }), ...(isSerializableHeaderValue(input.ContentEncoding) && { "content-encoding": input.ContentEncoding! }), ...(isSerializableHeaderValue(input.ContentLanguage) && { "content-language": input.ContentLanguage! }), @@ -776,6 +798,7 @@ export const serializeAws_restXmlCreateMultipartUploadCommand = async ( ...(isSerializableHeaderValue(input.ExpectedBucketOwner) && { "x-amz-expected-bucket-owner": input.ExpectedBucketOwner!, }), + ...(isSerializableHeaderValue(input.ChecksumAlgorithm) && { "x-amz-checksum-algorithm": input.ChecksumAlgorithm! }), ...(input.Metadata !== undefined && Object.keys(input.Metadata).reduce( (acc: any, suffix: string) => ({ @@ -1363,6 +1386,9 @@ export const serializeAws_restXmlDeleteObjectsCommand = async ( ...(isSerializableHeaderValue(input.ExpectedBucketOwner) && { "x-amz-expected-bucket-owner": input.ExpectedBucketOwner!, }), + ...(isSerializableHeaderValue(input.ChecksumAlgorithm) && { + "x-amz-sdk-checksum-algorithm": input.ChecksumAlgorithm!, + }), }; let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/{Bucket}"; if (input.Bucket !== undefined) { @@ -2241,6 +2267,7 @@ export const serializeAws_restXmlGetObjectCommand = async ( ...(isSerializableHeaderValue(input.ExpectedBucketOwner) && { "x-amz-expected-bucket-owner": input.ExpectedBucketOwner!, }), + ...(isSerializableHeaderValue(input.ChecksumMode) && { "x-amz-checksum-mode": input.ChecksumMode! }), }; let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/{Bucket}/{Key+}"; if (input.Bucket !== undefined) { @@ -2348,6 +2375,73 @@ export const serializeAws_restXmlGetObjectAclCommand = async ( }); }; +export const serializeAws_restXmlGetObjectAttributesCommand = async ( + input: GetObjectAttributesCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + ...(isSerializableHeaderValue(input.MaxParts) && { "x-amz-max-parts": input.MaxParts!.toString() }), + ...(isSerializableHeaderValue(input.PartNumberMarker) && { "x-amz-part-number-marker": input.PartNumberMarker! }), + ...(isSerializableHeaderValue(input.SSECustomerAlgorithm) && { + "x-amz-server-side-encryption-customer-algorithm": input.SSECustomerAlgorithm!, + }), + ...(isSerializableHeaderValue(input.SSECustomerKey) && { + "x-amz-server-side-encryption-customer-key": input.SSECustomerKey!, + }), + ...(isSerializableHeaderValue(input.SSECustomerKeyMD5) && { + "x-amz-server-side-encryption-customer-key-md5": input.SSECustomerKeyMD5!, + }), + ...(isSerializableHeaderValue(input.RequestPayer) && { "x-amz-request-payer": input.RequestPayer! }), + ...(isSerializableHeaderValue(input.ExpectedBucketOwner) && { + "x-amz-expected-bucket-owner": input.ExpectedBucketOwner!, + }), + ...(isSerializableHeaderValue(input.ObjectAttributes) && { + "x-amz-object-attributes": (input.ObjectAttributes! || []).map((_entry) => _entry as any).join(", "), + }), + }; + let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/{Bucket}/{Key+}"; + if (input.Bucket !== undefined) { + const labelValue: string = input.Bucket; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: Bucket."); + } + resolvedPath = resolvedPath.replace("{Bucket}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: Bucket."); + } + if (input.Key !== undefined) { + const labelValue: string = input.Key; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: Key."); + } + resolvedPath = resolvedPath.replace( + "{Key+}", + labelValue + .split("/") + .map((segment) => __extendedEncodeURIComponent(segment)) + .join("/") + ); + } else { + throw new Error("No value provided for input HTTP label: Key."); + } + const query: any = { + attributes: "", + ...(input.VersionId !== undefined && { versionId: input.VersionId }), + }; + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + query, + body, + }); +}; + export const serializeAws_restXmlGetObjectLegalHoldCommand = async ( input: GetObjectLegalHoldCommandInput, context: __SerdeContext @@ -2691,6 +2785,7 @@ export const serializeAws_restXmlHeadObjectCommand = async ( ...(isSerializableHeaderValue(input.ExpectedBucketOwner) && { "x-amz-expected-bucket-owner": input.ExpectedBucketOwner!, }), + ...(isSerializableHeaderValue(input.ChecksumMode) && { "x-amz-checksum-mode": input.ChecksumMode! }), }; let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/{Bucket}/{Key+}"; if (input.Bucket !== undefined) { @@ -3083,6 +3178,15 @@ export const serializeAws_restXmlListPartsCommand = async ( ...(isSerializableHeaderValue(input.ExpectedBucketOwner) && { "x-amz-expected-bucket-owner": input.ExpectedBucketOwner!, }), + ...(isSerializableHeaderValue(input.SSECustomerAlgorithm) && { + "x-amz-server-side-encryption-customer-algorithm": input.SSECustomerAlgorithm!, + }), + ...(isSerializableHeaderValue(input.SSECustomerKey) && { + "x-amz-server-side-encryption-customer-key": input.SSECustomerKey!, + }), + ...(isSerializableHeaderValue(input.SSECustomerKeyMD5) && { + "x-amz-server-side-encryption-customer-key-md5": input.SSECustomerKeyMD5!, + }), }; let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/{Bucket}/{Key+}"; if (input.Bucket !== undefined) { @@ -3138,6 +3242,9 @@ export const serializeAws_restXmlPutBucketAccelerateConfigurationCommand = async ...(isSerializableHeaderValue(input.ExpectedBucketOwner) && { "x-amz-expected-bucket-owner": input.ExpectedBucketOwner!, }), + ...(isSerializableHeaderValue(input.ChecksumAlgorithm) && { + "x-amz-sdk-checksum-algorithm": input.ChecksumAlgorithm!, + }), }; let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/{Bucket}"; if (input.Bucket !== undefined) { @@ -3184,6 +3291,9 @@ export const serializeAws_restXmlPutBucketAclCommand = async ( "content-type": "application/xml", ...(isSerializableHeaderValue(input.ACL) && { "x-amz-acl": input.ACL! }), ...(isSerializableHeaderValue(input.ContentMD5) && { "content-md5": input.ContentMD5! }), + ...(isSerializableHeaderValue(input.ChecksumAlgorithm) && { + "x-amz-sdk-checksum-algorithm": input.ChecksumAlgorithm!, + }), ...(isSerializableHeaderValue(input.GrantFullControl) && { "x-amz-grant-full-control": input.GrantFullControl! }), ...(isSerializableHeaderValue(input.GrantRead) && { "x-amz-grant-read": input.GrantRead! }), ...(isSerializableHeaderValue(input.GrantReadACP) && { "x-amz-grant-read-acp": input.GrantReadACP! }), @@ -3285,6 +3395,9 @@ export const serializeAws_restXmlPutBucketCorsCommand = async ( const headers: any = { "content-type": "application/xml", ...(isSerializableHeaderValue(input.ContentMD5) && { "content-md5": input.ContentMD5! }), + ...(isSerializableHeaderValue(input.ChecksumAlgorithm) && { + "x-amz-sdk-checksum-algorithm": input.ChecksumAlgorithm!, + }), ...(isSerializableHeaderValue(input.ExpectedBucketOwner) && { "x-amz-expected-bucket-owner": input.ExpectedBucketOwner!, }), @@ -3333,6 +3446,9 @@ export const serializeAws_restXmlPutBucketEncryptionCommand = async ( const headers: any = { "content-type": "application/xml", ...(isSerializableHeaderValue(input.ContentMD5) && { "content-md5": input.ContentMD5! }), + ...(isSerializableHeaderValue(input.ChecksumAlgorithm) && { + "x-amz-sdk-checksum-algorithm": input.ChecksumAlgorithm!, + }), ...(isSerializableHeaderValue(input.ExpectedBucketOwner) && { "x-amz-expected-bucket-owner": input.ExpectedBucketOwner!, }), @@ -3473,6 +3589,9 @@ export const serializeAws_restXmlPutBucketLifecycleConfigurationCommand = async const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers: any = { "content-type": "application/xml", + ...(isSerializableHeaderValue(input.ChecksumAlgorithm) && { + "x-amz-sdk-checksum-algorithm": input.ChecksumAlgorithm!, + }), ...(isSerializableHeaderValue(input.ExpectedBucketOwner) && { "x-amz-expected-bucket-owner": input.ExpectedBucketOwner!, }), @@ -3522,6 +3641,9 @@ export const serializeAws_restXmlPutBucketLoggingCommand = async ( const headers: any = { "content-type": "application/xml", ...(isSerializableHeaderValue(input.ContentMD5) && { "content-md5": input.ContentMD5! }), + ...(isSerializableHeaderValue(input.ChecksumAlgorithm) && { + "x-amz-sdk-checksum-algorithm": input.ChecksumAlgorithm!, + }), ...(isSerializableHeaderValue(input.ExpectedBucketOwner) && { "x-amz-expected-bucket-owner": input.ExpectedBucketOwner!, }), @@ -3716,6 +3838,9 @@ export const serializeAws_restXmlPutBucketPolicyCommand = async ( const headers: any = { "content-type": "text/plain", ...(isSerializableHeaderValue(input.ContentMD5) && { "content-md5": input.ContentMD5! }), + ...(isSerializableHeaderValue(input.ChecksumAlgorithm) && { + "x-amz-sdk-checksum-algorithm": input.ChecksumAlgorithm!, + }), ...(isSerializableHeaderValue(input.ConfirmRemoveSelfBucketAccess) && { "x-amz-confirm-remove-self-bucket-access": input.ConfirmRemoveSelfBucketAccess!.toString(), }), @@ -3765,6 +3890,9 @@ export const serializeAws_restXmlPutBucketReplicationCommand = async ( const headers: any = { "content-type": "application/xml", ...(isSerializableHeaderValue(input.ContentMD5) && { "content-md5": input.ContentMD5! }), + ...(isSerializableHeaderValue(input.ChecksumAlgorithm) && { + "x-amz-sdk-checksum-algorithm": input.ChecksumAlgorithm!, + }), ...(isSerializableHeaderValue(input.Token) && { "x-amz-bucket-object-lock-token": input.Token! }), ...(isSerializableHeaderValue(input.ExpectedBucketOwner) && { "x-amz-expected-bucket-owner": input.ExpectedBucketOwner!, @@ -3814,6 +3942,9 @@ export const serializeAws_restXmlPutBucketRequestPaymentCommand = async ( const headers: any = { "content-type": "application/xml", ...(isSerializableHeaderValue(input.ContentMD5) && { "content-md5": input.ContentMD5! }), + ...(isSerializableHeaderValue(input.ChecksumAlgorithm) && { + "x-amz-sdk-checksum-algorithm": input.ChecksumAlgorithm!, + }), ...(isSerializableHeaderValue(input.ExpectedBucketOwner) && { "x-amz-expected-bucket-owner": input.ExpectedBucketOwner!, }), @@ -3862,6 +3993,9 @@ export const serializeAws_restXmlPutBucketTaggingCommand = async ( const headers: any = { "content-type": "application/xml", ...(isSerializableHeaderValue(input.ContentMD5) && { "content-md5": input.ContentMD5! }), + ...(isSerializableHeaderValue(input.ChecksumAlgorithm) && { + "x-amz-sdk-checksum-algorithm": input.ChecksumAlgorithm!, + }), ...(isSerializableHeaderValue(input.ExpectedBucketOwner) && { "x-amz-expected-bucket-owner": input.ExpectedBucketOwner!, }), @@ -3910,6 +4044,9 @@ export const serializeAws_restXmlPutBucketVersioningCommand = async ( const headers: any = { "content-type": "application/xml", ...(isSerializableHeaderValue(input.ContentMD5) && { "content-md5": input.ContentMD5! }), + ...(isSerializableHeaderValue(input.ChecksumAlgorithm) && { + "x-amz-sdk-checksum-algorithm": input.ChecksumAlgorithm!, + }), ...(isSerializableHeaderValue(input.MFA) && { "x-amz-mfa": input.MFA! }), ...(isSerializableHeaderValue(input.ExpectedBucketOwner) && { "x-amz-expected-bucket-owner": input.ExpectedBucketOwner!, @@ -3959,6 +4096,9 @@ export const serializeAws_restXmlPutBucketWebsiteCommand = async ( const headers: any = { "content-type": "application/xml", ...(isSerializableHeaderValue(input.ContentMD5) && { "content-md5": input.ContentMD5! }), + ...(isSerializableHeaderValue(input.ChecksumAlgorithm) && { + "x-amz-sdk-checksum-algorithm": input.ChecksumAlgorithm!, + }), ...(isSerializableHeaderValue(input.ExpectedBucketOwner) && { "x-amz-expected-bucket-owner": input.ExpectedBucketOwner!, }), @@ -4014,6 +4154,13 @@ export const serializeAws_restXmlPutObjectCommand = async ( ...(isSerializableHeaderValue(input.ContentLength) && { "content-length": input.ContentLength!.toString() }), ...(isSerializableHeaderValue(input.ContentMD5) && { "content-md5": input.ContentMD5! }), ...(isSerializableHeaderValue(input.ContentType) && { "content-type": input.ContentType! }), + ...(isSerializableHeaderValue(input.ChecksumAlgorithm) && { + "x-amz-sdk-checksum-algorithm": input.ChecksumAlgorithm!, + }), + ...(isSerializableHeaderValue(input.ChecksumCRC32) && { "x-amz-checksum-crc32": input.ChecksumCRC32! }), + ...(isSerializableHeaderValue(input.ChecksumCRC32C) && { "x-amz-checksum-crc32c": input.ChecksumCRC32C! }), + ...(isSerializableHeaderValue(input.ChecksumSHA1) && { "x-amz-checksum-sha1": input.ChecksumSHA1! }), + ...(isSerializableHeaderValue(input.ChecksumSHA256) && { "x-amz-checksum-sha256": input.ChecksumSHA256! }), ...(isSerializableHeaderValue(input.Expires) && { expires: __dateToUtcString(input.Expires!).toString() }), ...(isSerializableHeaderValue(input.GrantFullControl) && { "x-amz-grant-full-control": input.GrantFullControl! }), ...(isSerializableHeaderValue(input.GrantRead) && { "x-amz-grant-read": input.GrantRead! }), @@ -4125,6 +4272,9 @@ export const serializeAws_restXmlPutObjectAclCommand = async ( "content-type": "application/xml", ...(isSerializableHeaderValue(input.ACL) && { "x-amz-acl": input.ACL! }), ...(isSerializableHeaderValue(input.ContentMD5) && { "content-md5": input.ContentMD5! }), + ...(isSerializableHeaderValue(input.ChecksumAlgorithm) && { + "x-amz-sdk-checksum-algorithm": input.ChecksumAlgorithm!, + }), ...(isSerializableHeaderValue(input.GrantFullControl) && { "x-amz-grant-full-control": input.GrantFullControl! }), ...(isSerializableHeaderValue(input.GrantRead) && { "x-amz-grant-read": input.GrantRead! }), ...(isSerializableHeaderValue(input.GrantReadACP) && { "x-amz-grant-read-acp": input.GrantReadACP! }), @@ -4196,6 +4346,9 @@ export const serializeAws_restXmlPutObjectLegalHoldCommand = async ( "content-type": "application/xml", ...(isSerializableHeaderValue(input.RequestPayer) && { "x-amz-request-payer": input.RequestPayer! }), ...(isSerializableHeaderValue(input.ContentMD5) && { "content-md5": input.ContentMD5! }), + ...(isSerializableHeaderValue(input.ChecksumAlgorithm) && { + "x-amz-sdk-checksum-algorithm": input.ChecksumAlgorithm!, + }), ...(isSerializableHeaderValue(input.ExpectedBucketOwner) && { "x-amz-expected-bucket-owner": input.ExpectedBucketOwner!, }), @@ -4263,6 +4416,9 @@ export const serializeAws_restXmlPutObjectLockConfigurationCommand = async ( ...(isSerializableHeaderValue(input.RequestPayer) && { "x-amz-request-payer": input.RequestPayer! }), ...(isSerializableHeaderValue(input.Token) && { "x-amz-bucket-object-lock-token": input.Token! }), ...(isSerializableHeaderValue(input.ContentMD5) && { "content-md5": input.ContentMD5! }), + ...(isSerializableHeaderValue(input.ChecksumAlgorithm) && { + "x-amz-sdk-checksum-algorithm": input.ChecksumAlgorithm!, + }), ...(isSerializableHeaderValue(input.ExpectedBucketOwner) && { "x-amz-expected-bucket-owner": input.ExpectedBucketOwner!, }), @@ -4315,6 +4471,9 @@ export const serializeAws_restXmlPutObjectRetentionCommand = async ( "x-amz-bypass-governance-retention": input.BypassGovernanceRetention!.toString(), }), ...(isSerializableHeaderValue(input.ContentMD5) && { "content-md5": input.ContentMD5! }), + ...(isSerializableHeaderValue(input.ChecksumAlgorithm) && { + "x-amz-sdk-checksum-algorithm": input.ChecksumAlgorithm!, + }), ...(isSerializableHeaderValue(input.ExpectedBucketOwner) && { "x-amz-expected-bucket-owner": input.ExpectedBucketOwner!, }), @@ -4380,6 +4539,9 @@ export const serializeAws_restXmlPutObjectTaggingCommand = async ( const headers: any = { "content-type": "application/xml", ...(isSerializableHeaderValue(input.ContentMD5) && { "content-md5": input.ContentMD5! }), + ...(isSerializableHeaderValue(input.ChecksumAlgorithm) && { + "x-amz-sdk-checksum-algorithm": input.ChecksumAlgorithm!, + }), ...(isSerializableHeaderValue(input.ExpectedBucketOwner) && { "x-amz-expected-bucket-owner": input.ExpectedBucketOwner!, }), @@ -4445,6 +4607,9 @@ export const serializeAws_restXmlPutPublicAccessBlockCommand = async ( const headers: any = { "content-type": "application/xml", ...(isSerializableHeaderValue(input.ContentMD5) && { "content-md5": input.ContentMD5! }), + ...(isSerializableHeaderValue(input.ChecksumAlgorithm) && { + "x-amz-sdk-checksum-algorithm": input.ChecksumAlgorithm!, + }), ...(isSerializableHeaderValue(input.ExpectedBucketOwner) && { "x-amz-expected-bucket-owner": input.ExpectedBucketOwner!, }), @@ -4493,6 +4658,9 @@ export const serializeAws_restXmlRestoreObjectCommand = async ( const headers: any = { "content-type": "application/xml", ...(isSerializableHeaderValue(input.RequestPayer) && { "x-amz-request-payer": input.RequestPayer! }), + ...(isSerializableHeaderValue(input.ChecksumAlgorithm) && { + "x-amz-sdk-checksum-algorithm": input.ChecksumAlgorithm!, + }), ...(isSerializableHeaderValue(input.ExpectedBucketOwner) && { "x-amz-expected-bucket-owner": input.ExpectedBucketOwner!, }), @@ -4656,6 +4824,13 @@ export const serializeAws_restXmlUploadPartCommand = async ( "content-type": "application/octet-stream", ...(isSerializableHeaderValue(input.ContentLength) && { "content-length": input.ContentLength!.toString() }), ...(isSerializableHeaderValue(input.ContentMD5) && { "content-md5": input.ContentMD5! }), + ...(isSerializableHeaderValue(input.ChecksumAlgorithm) && { + "x-amz-sdk-checksum-algorithm": input.ChecksumAlgorithm!, + }), + ...(isSerializableHeaderValue(input.ChecksumCRC32) && { "x-amz-checksum-crc32": input.ChecksumCRC32! }), + ...(isSerializableHeaderValue(input.ChecksumCRC32C) && { "x-amz-checksum-crc32c": input.ChecksumCRC32C! }), + ...(isSerializableHeaderValue(input.ChecksumSHA1) && { "x-amz-checksum-sha1": input.ChecksumSHA1! }), + ...(isSerializableHeaderValue(input.ChecksumSHA256) && { "x-amz-checksum-sha256": input.ChecksumSHA256! }), ...(isSerializableHeaderValue(input.SSECustomerAlgorithm) && { "x-amz-server-side-encryption-customer-algorithm": input.SSECustomerAlgorithm!, }), @@ -4837,6 +5012,18 @@ export const serializeAws_restXmlWriteGetObjectResponseCommand = async ( ...(isSerializableHeaderValue(input.ContentLength) && { "content-length": input.ContentLength!.toString() }), ...(isSerializableHeaderValue(input.ContentRange) && { "x-amz-fwd-header-content-range": input.ContentRange! }), ...(isSerializableHeaderValue(input.ContentType) && { "x-amz-fwd-header-content-type": input.ContentType! }), + ...(isSerializableHeaderValue(input.ChecksumCRC32) && { + "x-amz-fwd-header-x-amz-checksum-crc32": input.ChecksumCRC32!, + }), + ...(isSerializableHeaderValue(input.ChecksumCRC32C) && { + "x-amz-fwd-header-x-amz-checksum-crc32c": input.ChecksumCRC32C!, + }), + ...(isSerializableHeaderValue(input.ChecksumSHA1) && { + "x-amz-fwd-header-x-amz-checksum-sha1": input.ChecksumSHA1!, + }), + ...(isSerializableHeaderValue(input.ChecksumSHA256) && { + "x-amz-fwd-header-x-amz-checksum-sha256": input.ChecksumSHA256!, + }), ...(isSerializableHeaderValue(input.DeleteMarker) && { "x-amz-fwd-header-x-amz-delete-marker": input.DeleteMarker!.toString(), }), @@ -4995,6 +5182,10 @@ export const deserializeAws_restXmlCompleteMultipartUploadCommand = async ( $metadata: deserializeMetadata(output), Bucket: undefined, BucketKeyEnabled: undefined, + ChecksumCRC32: undefined, + ChecksumCRC32C: undefined, + ChecksumSHA1: undefined, + ChecksumSHA256: undefined, ETag: undefined, Expiration: undefined, Key: undefined, @@ -5026,6 +5217,18 @@ export const deserializeAws_restXmlCompleteMultipartUploadCommand = async ( if (data["Bucket"] !== undefined) { contents.Bucket = __expectString(data["Bucket"]); } + if (data["ChecksumCRC32"] !== undefined) { + contents.ChecksumCRC32 = __expectString(data["ChecksumCRC32"]); + } + if (data["ChecksumCRC32C"] !== undefined) { + contents.ChecksumCRC32C = __expectString(data["ChecksumCRC32C"]); + } + if (data["ChecksumSHA1"] !== undefined) { + contents.ChecksumSHA1 = __expectString(data["ChecksumSHA1"]); + } + if (data["ChecksumSHA256"] !== undefined) { + contents.ChecksumSHA256 = __expectString(data["ChecksumSHA256"]); + } if (data["ETag"] !== undefined) { contents.ETag = __expectString(data["ETag"]); } @@ -5203,6 +5406,7 @@ export const deserializeAws_restXmlCreateMultipartUploadCommand = async ( AbortRuleId: undefined, Bucket: undefined, BucketKeyEnabled: undefined, + ChecksumAlgorithm: undefined, Key: undefined, RequestCharged: undefined, SSECustomerAlgorithm: undefined, @@ -5239,6 +5443,9 @@ export const deserializeAws_restXmlCreateMultipartUploadCommand = async ( if (output.headers["x-amz-request-charged"] !== undefined) { contents.RequestCharged = output.headers["x-amz-request-charged"]; } + if (output.headers["x-amz-checksum-algorithm"] !== undefined) { + contents.ChecksumAlgorithm = output.headers["x-amz-checksum-algorithm"]; + } const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); if (data["Bucket"] !== undefined) { contents.Bucket = __expectString(data["Bucket"]); @@ -6827,6 +7034,10 @@ export const deserializeAws_restXmlGetObjectCommand = async ( Body: undefined, BucketKeyEnabled: undefined, CacheControl: undefined, + ChecksumCRC32: undefined, + ChecksumCRC32C: undefined, + ChecksumSHA1: undefined, + ChecksumSHA256: undefined, ContentDisposition: undefined, ContentEncoding: undefined, ContentLanguage: undefined, @@ -6877,6 +7088,18 @@ export const deserializeAws_restXmlGetObjectCommand = async ( if (output.headers["etag"] !== undefined) { contents.ETag = output.headers["etag"]; } + if (output.headers["x-amz-checksum-crc32"] !== undefined) { + contents.ChecksumCRC32 = output.headers["x-amz-checksum-crc32"]; + } + if (output.headers["x-amz-checksum-crc32c"] !== undefined) { + contents.ChecksumCRC32C = output.headers["x-amz-checksum-crc32c"]; + } + if (output.headers["x-amz-checksum-sha1"] !== undefined) { + contents.ChecksumSHA1 = output.headers["x-amz-checksum-sha1"]; + } + if (output.headers["x-amz-checksum-sha256"] !== undefined) { + contents.ChecksumSHA256 = output.headers["x-amz-checksum-sha256"]; + } if (output.headers["x-amz-missing-meta"] !== undefined) { contents.MissingMeta = __strictParseInt32(output.headers["x-amz-missing-meta"]); } @@ -7045,6 +7268,82 @@ const deserializeAws_restXmlGetObjectAclCommandError = async ( } }; +export const deserializeAws_restXmlGetObjectAttributesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restXmlGetObjectAttributesCommandError(output, context); + } + const contents: GetObjectAttributesCommandOutput = { + $metadata: deserializeMetadata(output), + Checksum: undefined, + DeleteMarker: undefined, + ETag: undefined, + LastModified: undefined, + ObjectParts: undefined, + ObjectSize: undefined, + RequestCharged: undefined, + StorageClass: undefined, + VersionId: undefined, + }; + if (output.headers["x-amz-delete-marker"] !== undefined) { + contents.DeleteMarker = __parseBoolean(output.headers["x-amz-delete-marker"]); + } + if (output.headers["last-modified"] !== undefined) { + contents.LastModified = __expectNonNull(__parseRfc7231DateTime(output.headers["last-modified"])); + } + if (output.headers["x-amz-version-id"] !== undefined) { + contents.VersionId = output.headers["x-amz-version-id"]; + } + if (output.headers["x-amz-request-charged"] !== undefined) { + contents.RequestCharged = output.headers["x-amz-request-charged"]; + } + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data["Checksum"] !== undefined) { + contents.Checksum = deserializeAws_restXmlChecksum(data["Checksum"], context); + } + if (data["ETag"] !== undefined) { + contents.ETag = __expectString(data["ETag"]); + } + if (data["ObjectParts"] !== undefined) { + contents.ObjectParts = deserializeAws_restXmlGetObjectAttributesParts(data["ObjectParts"], context); + } + if (data["ObjectSize"] !== undefined) { + contents.ObjectSize = __strictParseLong(data["ObjectSize"]) as number; + } + if (data["StorageClass"] !== undefined) { + contents.StorageClass = __expectString(data["StorageClass"]); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restXmlGetObjectAttributesCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __BaseException; + let errorCode = "UnknownError"; + errorCode = loadRestXmlErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "NoSuchKey": + case "com.amazonaws.s3#NoSuchKey": + throw await deserializeAws_restXmlNoSuchKeyResponse(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + response = new __BaseException({ + name: parsedBody.code || parsedBody.Code || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + }); + throw __decorateServiceException(response, parsedBody); + } +}; + export const deserializeAws_restXmlGetObjectLegalHoldCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -7345,6 +7644,10 @@ export const deserializeAws_restXmlHeadObjectCommand = async ( ArchiveStatus: undefined, BucketKeyEnabled: undefined, CacheControl: undefined, + ChecksumCRC32: undefined, + ChecksumCRC32C: undefined, + ChecksumSHA1: undefined, + ChecksumSHA256: undefined, ContentDisposition: undefined, ContentEncoding: undefined, ContentLanguage: undefined, @@ -7393,6 +7696,18 @@ export const deserializeAws_restXmlHeadObjectCommand = async ( if (output.headers["content-length"] !== undefined) { contents.ContentLength = __strictParseLong(output.headers["content-length"]); } + if (output.headers["x-amz-checksum-crc32"] !== undefined) { + contents.ChecksumCRC32 = output.headers["x-amz-checksum-crc32"]; + } + if (output.headers["x-amz-checksum-crc32c"] !== undefined) { + contents.ChecksumCRC32C = output.headers["x-amz-checksum-crc32c"]; + } + if (output.headers["x-amz-checksum-sha1"] !== undefined) { + contents.ChecksumSHA1 = output.headers["x-amz-checksum-sha1"]; + } + if (output.headers["x-amz-checksum-sha256"] !== undefined) { + contents.ChecksumSHA256 = output.headers["x-amz-checksum-sha256"]; + } if (output.headers["etag"] !== undefined) { contents.ETag = output.headers["etag"]; } @@ -8176,6 +8491,7 @@ export const deserializeAws_restXmlListPartsCommand = async ( AbortDate: undefined, AbortRuleId: undefined, Bucket: undefined, + ChecksumAlgorithm: undefined, Initiator: undefined, IsTruncated: undefined, Key: undefined, @@ -8201,6 +8517,9 @@ export const deserializeAws_restXmlListPartsCommand = async ( if (data["Bucket"] !== undefined) { contents.Bucket = __expectString(data["Bucket"]); } + if (data["ChecksumAlgorithm"] !== undefined) { + contents.ChecksumAlgorithm = __expectString(data["ChecksumAlgorithm"]); + } if (data["Initiator"] !== undefined) { contents.Initiator = deserializeAws_restXmlInitiator(data["Initiator"], context); } @@ -8936,6 +9255,10 @@ export const deserializeAws_restXmlPutObjectCommand = async ( const contents: PutObjectCommandOutput = { $metadata: deserializeMetadata(output), BucketKeyEnabled: undefined, + ChecksumCRC32: undefined, + ChecksumCRC32C: undefined, + ChecksumSHA1: undefined, + ChecksumSHA256: undefined, ETag: undefined, Expiration: undefined, RequestCharged: undefined, @@ -8952,6 +9275,18 @@ export const deserializeAws_restXmlPutObjectCommand = async ( if (output.headers["etag"] !== undefined) { contents.ETag = output.headers["etag"]; } + if (output.headers["x-amz-checksum-crc32"] !== undefined) { + contents.ChecksumCRC32 = output.headers["x-amz-checksum-crc32"]; + } + if (output.headers["x-amz-checksum-crc32c"] !== undefined) { + contents.ChecksumCRC32C = output.headers["x-amz-checksum-crc32c"]; + } + if (output.headers["x-amz-checksum-sha1"] !== undefined) { + contents.ChecksumSHA1 = output.headers["x-amz-checksum-sha1"]; + } + if (output.headers["x-amz-checksum-sha256"] !== undefined) { + contents.ChecksumSHA256 = output.headers["x-amz-checksum-sha256"]; + } if (output.headers["x-amz-server-side-encryption"] !== undefined) { contents.ServerSideEncryption = output.headers["x-amz-server-side-encryption"]; } @@ -9359,6 +9694,10 @@ export const deserializeAws_restXmlUploadPartCommand = async ( const contents: UploadPartCommandOutput = { $metadata: deserializeMetadata(output), BucketKeyEnabled: undefined, + ChecksumCRC32: undefined, + ChecksumCRC32C: undefined, + ChecksumSHA1: undefined, + ChecksumSHA256: undefined, ETag: undefined, RequestCharged: undefined, SSECustomerAlgorithm: undefined, @@ -9372,6 +9711,18 @@ export const deserializeAws_restXmlUploadPartCommand = async ( if (output.headers["etag"] !== undefined) { contents.ETag = output.headers["etag"]; } + if (output.headers["x-amz-checksum-crc32"] !== undefined) { + contents.ChecksumCRC32 = output.headers["x-amz-checksum-crc32"]; + } + if (output.headers["x-amz-checksum-crc32c"] !== undefined) { + contents.ChecksumCRC32C = output.headers["x-amz-checksum-crc32c"]; + } + if (output.headers["x-amz-checksum-sha1"] !== undefined) { + contents.ChecksumSHA1 = output.headers["x-amz-checksum-sha1"]; + } + if (output.headers["x-amz-checksum-sha256"] !== undefined) { + contents.ChecksumSHA256 = output.headers["x-amz-checksum-sha256"]; + } if (output.headers["x-amz-server-side-encryption-customer-algorithm"] !== undefined) { contents.SSECustomerAlgorithm = output.headers["x-amz-server-side-encryption-customer-algorithm"]; } @@ -9939,6 +10290,28 @@ const serializeAws_restXmlCompletedPart = (input: CompletedPart, context: __Serd const node = new __XmlNode("ETag").addChildNode(new __XmlText(input.ETag)).withName("ETag"); bodyNode.addChildNode(node); } + if (input.ChecksumCRC32 !== undefined && input.ChecksumCRC32 !== null) { + const node = new __XmlNode("ChecksumCRC32") + .addChildNode(new __XmlText(input.ChecksumCRC32)) + .withName("ChecksumCRC32"); + bodyNode.addChildNode(node); + } + if (input.ChecksumCRC32C !== undefined && input.ChecksumCRC32C !== null) { + const node = new __XmlNode("ChecksumCRC32C") + .addChildNode(new __XmlText(input.ChecksumCRC32C)) + .withName("ChecksumCRC32C"); + bodyNode.addChildNode(node); + } + if (input.ChecksumSHA1 !== undefined && input.ChecksumSHA1 !== null) { + const node = new __XmlNode("ChecksumSHA1").addChildNode(new __XmlText(input.ChecksumSHA1)).withName("ChecksumSHA1"); + bodyNode.addChildNode(node); + } + if (input.ChecksumSHA256 !== undefined && input.ChecksumSHA256 !== null) { + const node = new __XmlNode("ChecksumSHA256") + .addChildNode(new __XmlText(input.ChecksumSHA256)) + .withName("ChecksumSHA256"); + bodyNode.addChildNode(node); + } if (input.PartNumber !== undefined && input.PartNumber !== null) { const node = new __XmlNode("PartNumber") .addChildNode(new __XmlText(String(input.PartNumber))) @@ -12190,6 +12563,42 @@ const deserializeAws_restXmlBuckets = (output: any, context: __SerdeContext): Bu }); }; +const deserializeAws_restXmlChecksum = (output: any, context: __SerdeContext): Checksum => { + const contents: any = { + ChecksumCRC32: undefined, + ChecksumCRC32C: undefined, + ChecksumSHA1: undefined, + ChecksumSHA256: undefined, + }; + if (output["ChecksumCRC32"] !== undefined) { + contents.ChecksumCRC32 = __expectString(output["ChecksumCRC32"]); + } + if (output["ChecksumCRC32C"] !== undefined) { + contents.ChecksumCRC32C = __expectString(output["ChecksumCRC32C"]); + } + if (output["ChecksumSHA1"] !== undefined) { + contents.ChecksumSHA1 = __expectString(output["ChecksumSHA1"]); + } + if (output["ChecksumSHA256"] !== undefined) { + contents.ChecksumSHA256 = __expectString(output["ChecksumSHA256"]); + } + return contents; +}; + +const deserializeAws_restXmlChecksumAlgorithmList = ( + output: any, + context: __SerdeContext +): (ChecksumAlgorithm | string)[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return __expectString(entry) as any; + }); +}; + const deserializeAws_restXmlCommonPrefix = (output: any, context: __SerdeContext): CommonPrefix => { const contents: any = { Prefix: undefined, @@ -12234,6 +12643,10 @@ const deserializeAws_restXmlCopyObjectResult = (output: any, context: __SerdeCon const contents: any = { ETag: undefined, LastModified: undefined, + ChecksumCRC32: undefined, + ChecksumCRC32C: undefined, + ChecksumSHA1: undefined, + ChecksumSHA256: undefined, }; if (output["ETag"] !== undefined) { contents.ETag = __expectString(output["ETag"]); @@ -12241,6 +12654,18 @@ const deserializeAws_restXmlCopyObjectResult = (output: any, context: __SerdeCon if (output["LastModified"] !== undefined) { contents.LastModified = __expectNonNull(__parseRfc3339DateTime(output["LastModified"])); } + if (output["ChecksumCRC32"] !== undefined) { + contents.ChecksumCRC32 = __expectString(output["ChecksumCRC32"]); + } + if (output["ChecksumCRC32C"] !== undefined) { + contents.ChecksumCRC32C = __expectString(output["ChecksumCRC32C"]); + } + if (output["ChecksumSHA1"] !== undefined) { + contents.ChecksumSHA1 = __expectString(output["ChecksumSHA1"]); + } + if (output["ChecksumSHA256"] !== undefined) { + contents.ChecksumSHA256 = __expectString(output["ChecksumSHA256"]); + } return contents; }; @@ -12248,6 +12673,10 @@ const deserializeAws_restXmlCopyPartResult = (output: any, context: __SerdeConte const contents: any = { ETag: undefined, LastModified: undefined, + ChecksumCRC32: undefined, + ChecksumCRC32C: undefined, + ChecksumSHA1: undefined, + ChecksumSHA256: undefined, }; if (output["ETag"] !== undefined) { contents.ETag = __expectString(output["ETag"]); @@ -12255,6 +12684,18 @@ const deserializeAws_restXmlCopyPartResult = (output: any, context: __SerdeConte if (output["LastModified"] !== undefined) { contents.LastModified = __expectNonNull(__parseRfc3339DateTime(output["LastModified"])); } + if (output["ChecksumCRC32"] !== undefined) { + contents.ChecksumCRC32 = __expectString(output["ChecksumCRC32"]); + } + if (output["ChecksumCRC32C"] !== undefined) { + contents.ChecksumCRC32C = __expectString(output["ChecksumCRC32C"]); + } + if (output["ChecksumSHA1"] !== undefined) { + contents.ChecksumSHA1 = __expectString(output["ChecksumSHA1"]); + } + if (output["ChecksumSHA256"] !== undefined) { + contents.ChecksumSHA256 = __expectString(output["ChecksumSHA256"]); + } return contents; }; @@ -12593,6 +13034,42 @@ const deserializeAws_restXmlFilterRuleList = (output: any, context: __SerdeConte }); }; +const deserializeAws_restXmlGetObjectAttributesParts = ( + output: any, + context: __SerdeContext +): GetObjectAttributesParts => { + const contents: any = { + TotalPartsCount: undefined, + PartNumberMarker: undefined, + NextPartNumberMarker: undefined, + MaxParts: undefined, + IsTruncated: undefined, + Parts: undefined, + }; + if (output["PartsCount"] !== undefined) { + contents.TotalPartsCount = __strictParseInt32(output["PartsCount"]) as number; + } + if (output["PartNumberMarker"] !== undefined) { + contents.PartNumberMarker = __expectString(output["PartNumberMarker"]); + } + if (output["NextPartNumberMarker"] !== undefined) { + contents.NextPartNumberMarker = __expectString(output["NextPartNumberMarker"]); + } + if (output["MaxParts"] !== undefined) { + contents.MaxParts = __strictParseInt32(output["MaxParts"]) as number; + } + if (output["IsTruncated"] !== undefined) { + contents.IsTruncated = __parseBoolean(output["IsTruncated"]); + } + if (output.Part === "") { + contents.Parts = []; + } + if (output["Part"] !== undefined) { + contents.Parts = deserializeAws_restXmlPartsList(__getArrayIfSingleItem(output["Part"]), context); + } + return contents; +}; + const deserializeAws_restXmlGrant = (output: any, context: __SerdeContext): Grant => { const contents: any = { Grantee: undefined, @@ -13199,6 +13676,7 @@ const deserializeAws_restXmlMultipartUpload = (output: any, context: __SerdeCont StorageClass: undefined, Owner: undefined, Initiator: undefined, + ChecksumAlgorithm: undefined, }; if (output["UploadId"] !== undefined) { contents.UploadId = __expectString(output["UploadId"]); @@ -13218,6 +13696,9 @@ const deserializeAws_restXmlMultipartUpload = (output: any, context: __SerdeCont if (output["Initiator"] !== undefined) { contents.Initiator = deserializeAws_restXmlInitiator(output["Initiator"], context); } + if (output["ChecksumAlgorithm"] !== undefined) { + contents.ChecksumAlgorithm = __expectString(output["ChecksumAlgorithm"]); + } return contents; }; @@ -13302,6 +13783,7 @@ const deserializeAws_restXml_Object = (output: any, context: __SerdeContext): _O Key: undefined, LastModified: undefined, ETag: undefined, + ChecksumAlgorithm: undefined, Size: undefined, StorageClass: undefined, Owner: undefined, @@ -13315,6 +13797,15 @@ const deserializeAws_restXml_Object = (output: any, context: __SerdeContext): _O if (output["ETag"] !== undefined) { contents.ETag = __expectString(output["ETag"]); } + if (output.ChecksumAlgorithm === "") { + contents.ChecksumAlgorithm = []; + } + if (output["ChecksumAlgorithm"] !== undefined) { + contents.ChecksumAlgorithm = deserializeAws_restXmlChecksumAlgorithmList( + __getArrayIfSingleItem(output["ChecksumAlgorithm"]), + context + ); + } if (output["Size"] !== undefined) { contents.Size = __strictParseLong(output["Size"]) as number; } @@ -13389,9 +13880,40 @@ const deserializeAws_restXmlObjectLockRule = (output: any, context: __SerdeConte return contents; }; +const deserializeAws_restXmlObjectPart = (output: any, context: __SerdeContext): ObjectPart => { + const contents: any = { + PartNumber: undefined, + Size: undefined, + ChecksumCRC32: undefined, + ChecksumCRC32C: undefined, + ChecksumSHA1: undefined, + ChecksumSHA256: undefined, + }; + if (output["PartNumber"] !== undefined) { + contents.PartNumber = __strictParseInt32(output["PartNumber"]) as number; + } + if (output["Size"] !== undefined) { + contents.Size = __strictParseLong(output["Size"]) as number; + } + if (output["ChecksumCRC32"] !== undefined) { + contents.ChecksumCRC32 = __expectString(output["ChecksumCRC32"]); + } + if (output["ChecksumCRC32C"] !== undefined) { + contents.ChecksumCRC32C = __expectString(output["ChecksumCRC32C"]); + } + if (output["ChecksumSHA1"] !== undefined) { + contents.ChecksumSHA1 = __expectString(output["ChecksumSHA1"]); + } + if (output["ChecksumSHA256"] !== undefined) { + contents.ChecksumSHA256 = __expectString(output["ChecksumSHA256"]); + } + return contents; +}; + const deserializeAws_restXmlObjectVersion = (output: any, context: __SerdeContext): ObjectVersion => { const contents: any = { ETag: undefined, + ChecksumAlgorithm: undefined, Size: undefined, StorageClass: undefined, Key: undefined, @@ -13403,6 +13925,15 @@ const deserializeAws_restXmlObjectVersion = (output: any, context: __SerdeContex if (output["ETag"] !== undefined) { contents.ETag = __expectString(output["ETag"]); } + if (output.ChecksumAlgorithm === "") { + contents.ChecksumAlgorithm = []; + } + if (output["ChecksumAlgorithm"] !== undefined) { + contents.ChecksumAlgorithm = deserializeAws_restXmlChecksumAlgorithmList( + __getArrayIfSingleItem(output["ChecksumAlgorithm"]), + context + ); + } if (output["Size"] !== undefined) { contents.Size = __strictParseLong(output["Size"]) as number; } @@ -13495,6 +14026,10 @@ const deserializeAws_restXmlPart = (output: any, context: __SerdeContext): Part LastModified: undefined, ETag: undefined, Size: undefined, + ChecksumCRC32: undefined, + ChecksumCRC32C: undefined, + ChecksumSHA1: undefined, + ChecksumSHA256: undefined, }; if (output["PartNumber"] !== undefined) { contents.PartNumber = __strictParseInt32(output["PartNumber"]) as number; @@ -13508,6 +14043,18 @@ const deserializeAws_restXmlPart = (output: any, context: __SerdeContext): Part if (output["Size"] !== undefined) { contents.Size = __strictParseLong(output["Size"]) as number; } + if (output["ChecksumCRC32"] !== undefined) { + contents.ChecksumCRC32 = __expectString(output["ChecksumCRC32"]); + } + if (output["ChecksumCRC32C"] !== undefined) { + contents.ChecksumCRC32C = __expectString(output["ChecksumCRC32C"]); + } + if (output["ChecksumSHA1"] !== undefined) { + contents.ChecksumSHA1 = __expectString(output["ChecksumSHA1"]); + } + if (output["ChecksumSHA256"] !== undefined) { + contents.ChecksumSHA256 = __expectString(output["ChecksumSHA256"]); + } return contents; }; @@ -13522,6 +14069,17 @@ const deserializeAws_restXmlParts = (output: any, context: __SerdeContext): Part }); }; +const deserializeAws_restXmlPartsList = (output: any, context: __SerdeContext): ObjectPart[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restXmlObjectPart(entry, context); + }); +}; + const deserializeAws_restXmlPolicyStatus = (output: any, context: __SerdeContext): PolicyStatus => { const contents: any = { IsPublic: undefined, diff --git a/clients/client-s3/src/runtimeConfig.browser.ts b/clients/client-s3/src/runtimeConfig.browser.ts index ed758c08333c..b2c9cd34a083 100644 --- a/clients/client-s3/src/runtimeConfig.browser.ts +++ b/clients/client-s3/src/runtimeConfig.browser.ts @@ -1,6 +1,7 @@ // @ts-ignore: package.json will be imported from dist folders import packageInfo from "../package.json"; // eslint-disable-line +import { Sha1 } from "@aws-crypto/sha1-browser"; import { Sha256 } from "@aws-crypto/sha256-browser"; import { DEFAULT_USE_DUALSTACK_ENDPOINT, DEFAULT_USE_FIPS_ENDPOINT } from "@aws-sdk/config-resolver"; import { eventStreamSerdeProvider } from "@aws-sdk/eventstream-serde-browser"; @@ -11,6 +12,7 @@ import { Md5 } from "@aws-sdk/md5-js"; import { DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE } from "@aws-sdk/middleware-retry"; import { fromBase64, toBase64 } from "@aws-sdk/util-base64-browser"; import { calculateBodyLength } from "@aws-sdk/util-body-length-browser"; +import { getAwsChunkedEncodingStream } from "@aws-sdk/util-stream-browser"; import { defaultUserAgent } from "@aws-sdk/util-user-agent-browser"; import { fromUtf8, toUtf8 } from "@aws-sdk/util-utf8-browser"; import { S3ClientConfig } from "./S3Client"; @@ -39,11 +41,13 @@ export const getRuntimeConfig = (config: S3ClientConfig) => { config?.defaultUserAgentProvider ?? defaultUserAgent({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }), eventStreamSerdeProvider: config?.eventStreamSerdeProvider ?? eventStreamSerdeProvider, + getAwsChunkedEncodingStream: config?.getAwsChunkedEncodingStream ?? getAwsChunkedEncodingStream, maxAttempts: config?.maxAttempts ?? DEFAULT_MAX_ATTEMPTS, md5: config?.md5 ?? Md5, region: config?.region ?? invalidProvider("Region is missing"), requestHandler: config?.requestHandler ?? new RequestHandler(defaultConfigProvider), retryMode: config?.retryMode ?? (async () => (await defaultConfigProvider()).retryMode || DEFAULT_RETRY_MODE), + sha1: config?.sha1 ?? Sha1, sha256: config?.sha256 ?? Sha256, streamCollector: config?.streamCollector ?? streamCollector, streamHasher: config?.streamHasher ?? streamHasher, diff --git a/clients/client-s3/src/runtimeConfig.ts b/clients/client-s3/src/runtimeConfig.ts index a771dd58dac4..6ea207d03eb6 100644 --- a/clients/client-s3/src/runtimeConfig.ts +++ b/clients/client-s3/src/runtimeConfig.ts @@ -11,7 +11,7 @@ import { import { defaultProvider as credentialDefaultProvider } from "@aws-sdk/credential-provider-node"; import { eventStreamSerdeProvider } from "@aws-sdk/eventstream-serde-node"; import { Hash } from "@aws-sdk/hash-node"; -import { fileStreamHasher as streamHasher } from "@aws-sdk/hash-stream-node"; +import { readableStreamHasher as streamHasher } from "@aws-sdk/hash-stream-node"; import { NODE_USE_ARN_REGION_CONFIG_OPTIONS } from "@aws-sdk/middleware-bucket-endpoint"; import { DEFAULT_RETRY_MODE, @@ -23,6 +23,7 @@ import { NodeHttpHandler as RequestHandler, streamCollector } from "@aws-sdk/nod import { HashConstructor as __HashConstructor } from "@aws-sdk/types"; import { fromBase64, toBase64 } from "@aws-sdk/util-base64-node"; import { calculateBodyLength } from "@aws-sdk/util-body-length-node"; +import { getAwsChunkedEncodingStream } from "@aws-sdk/util-stream-node"; import { defaultUserAgent } from "@aws-sdk/util-user-agent-node"; import { fromUtf8, toUtf8 } from "@aws-sdk/util-utf8-node"; import { S3ClientConfig } from "./S3Client"; @@ -51,6 +52,7 @@ export const getRuntimeConfig = (config: S3ClientConfig) => { config?.defaultUserAgentProvider ?? defaultUserAgent({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }), eventStreamSerdeProvider: config?.eventStreamSerdeProvider ?? eventStreamSerdeProvider, + getAwsChunkedEncodingStream: config?.getAwsChunkedEncodingStream ?? getAwsChunkedEncodingStream, maxAttempts: config?.maxAttempts ?? loadNodeConfig(NODE_MAX_ATTEMPT_CONFIG_OPTIONS), md5: config?.md5 ?? Hash.bind(null, "md5"), region: config?.region ?? loadNodeConfig(NODE_REGION_CONFIG_OPTIONS, NODE_REGION_CONFIG_FILE_OPTIONS), @@ -61,6 +63,7 @@ export const getRuntimeConfig = (config: S3ClientConfig) => { ...NODE_RETRY_MODE_CONFIG_OPTIONS, default: async () => (await defaultConfigProvider()).retryMode || DEFAULT_RETRY_MODE, }), + sha1: config?.sha1 ?? Hash.bind(null, "sha1"), sha256: config?.sha256 ?? Hash.bind(null, "sha256"), streamCollector: config?.streamCollector ?? streamCollector, streamHasher: config?.streamHasher ?? streamHasher, diff --git a/codegen/sdk-codegen/aws-models/auto-scaling.json b/codegen/sdk-codegen/aws-models/auto-scaling.json index d7f608fb1972..00dc54347226 100644 --- a/codegen/sdk-codegen/aws-models/auto-scaling.json +++ b/codegen/sdk-codegen/aws-models/auto-scaling.json @@ -1484,7 +1484,7 @@ } ], "traits": { - "smithy.api#documentation": "

                      Completes the lifecycle action for the specified token or instance with the specified\n result.

                      \n

                      This step is a part of the procedure for adding a lifecycle hook to an Auto Scaling\n group:

                      \n
                        \n
                      1. \n

                        (Optional) Create a Lambda function and a rule that allows Amazon EventBridge to\n invoke your Lambda function when Amazon EC2 Auto Scaling launches or terminates\n instances.

                        \n
                      2. \n
                      3. \n

                        (Optional) Create a notification target and an IAM role. The target can be\n either an Amazon SQS queue or an Amazon SNS topic. The role allows Amazon EC2 Auto Scaling to publish\n lifecycle notifications to the target.

                        \n
                      4. \n
                      5. \n

                        Create the lifecycle hook. Specify whether the hook is used when the instances\n launch or terminate.

                        \n
                      6. \n
                      7. \n

                        If you need more time, record the lifecycle action heartbeat to keep the\n instance in a pending state.

                        \n
                      8. \n
                      9. \n

                        \n If you finish before the timeout period ends, send a\n callback by using the CompleteLifecycleAction API\n call.\n

                        \n
                      10. \n
                      \n

                      For more information, see Amazon EC2 Auto Scaling lifecycle\n hooks in the Amazon EC2 Auto Scaling User Guide.

                      " + "smithy.api#documentation": "

                      Completes the lifecycle action for the specified token or instance with the specified\n result.

                      \n

                      This step is a part of the procedure for adding a lifecycle hook to an Auto Scaling\n group:

                      \n
                        \n
                      1. \n

                        (Optional) Create a launch template or launch configuration with a user data\n script that runs while an instance is in a wait state due to a lifecycle\n hook.

                        \n
                      2. \n
                      3. \n

                        (Optional) Create a Lambda function and a rule that allows Amazon EventBridge to invoke\n your Lambda function when an instance is put into a wait state due to a\n lifecycle hook.

                        \n
                      4. \n
                      5. \n

                        (Optional) Create a notification target and an IAM role. The target can be\n either an Amazon SQS queue or an Amazon SNS topic. The role allows Amazon EC2 Auto Scaling to publish\n lifecycle notifications to the target.

                        \n
                      6. \n
                      7. \n

                        Create the lifecycle hook. Specify whether the hook is used when the instances\n launch or terminate.

                        \n
                      8. \n
                      9. \n

                        If you need more time, record the lifecycle action heartbeat to keep the\n instance in a wait state.

                        \n
                      10. \n
                      11. \n

                        \n If you finish before the timeout period ends, send a\n callback by using the CompleteLifecycleAction API\n call.\n

                        \n
                      12. \n
                      \n

                      For more information, see Amazon EC2 Auto Scaling lifecycle\n hooks in the Amazon EC2 Auto Scaling User Guide.

                      " } }, "com.amazonaws.autoscaling#CompleteLifecycleActionAnswer": { @@ -1583,7 +1583,7 @@ } ], "traits": { - "smithy.api#documentation": "

                      \n We strongly recommend using a launch template when calling this operation to ensure full functionality for Amazon EC2 Auto Scaling and Amazon EC2.\n

                      \n

                      Creates an Auto Scaling group with\n the specified name and attributes.

                      \n

                      If you exceed your maximum limit of Auto Scaling groups, the call fails. To query this limit,\n call the DescribeAccountLimits API. For information about updating\n this limit, see Amazon EC2 Auto Scaling service\n quotas in the Amazon EC2 Auto Scaling User Guide.

                      \n

                      For introductory exercises for creating an Auto Scaling group, see Getting started with\n Amazon EC2 Auto Scaling and Tutorial: Set up a\n scaled and load-balanced application in the\n Amazon EC2 Auto Scaling User Guide. For more information, see Auto Scaling\n groups in the Amazon EC2 Auto Scaling User Guide.

                      \n

                      Every Auto Scaling group has three size parameters (DesiredCapacity,\n MaxSize, and MinSize). Usually, you set these sizes based\n on a specific number of instances. However, if you configure a mixed instances policy\n that defines weights for the instance types, you must specify these sizes with the same\n units that you use for weighting instances.

                      " + "smithy.api#documentation": "

                      \n We strongly recommend using a launch template when calling this operation to ensure full functionality for Amazon EC2 Auto Scaling and Amazon EC2.\n

                      \n

                      Creates an Auto Scaling group with the specified name and attributes.

                      \n

                      If you exceed your maximum limit of Auto Scaling groups, the call fails. To query this limit,\n call the DescribeAccountLimits API. For information about updating\n this limit, see Amazon EC2 Auto Scaling service\n quotas in the Amazon EC2 Auto Scaling User Guide.

                      \n

                      For introductory exercises for creating an Auto Scaling group, see Getting started with\n Amazon EC2 Auto Scaling and Tutorial: Set up a\n scaled and load-balanced application in the\n Amazon EC2 Auto Scaling User Guide. For more information, see Auto Scaling\n groups in the Amazon EC2 Auto Scaling User Guide.

                      \n

                      Every Auto Scaling group has three size parameters (DesiredCapacity,\n MaxSize, and MinSize). Usually, you set these sizes based\n on a specific number of instances. However, if you configure a mixed instances policy\n that defines weights for the instance types, you must specify these sizes with the same\n units that you use for weighting instances.

                      " } }, "com.amazonaws.autoscaling#CreateAutoScalingGroupType": { @@ -1611,7 +1611,7 @@ "MixedInstancesPolicy": { "target": "com.amazonaws.autoscaling#MixedInstancesPolicy", "traits": { - "smithy.api#documentation": "

                      An embedded object that specifies a mixed instances policy.

                      \n \n \n \n

                      For more information, see Auto Scaling groups with multiple\n instance types and purchase options in the Amazon EC2 Auto Scaling User\n Guide.

                      " + "smithy.api#documentation": "

                      An embedded object that specifies a mixed instances policy.

                      \n \n \n \n

                      For more information, see Auto Scaling\n groups with multiple instance types and purchase options in the\n Amazon EC2 Auto Scaling User Guide.

                      " } }, "InstanceId": { @@ -1673,7 +1673,7 @@ "HealthCheckGracePeriod": { "target": "com.amazonaws.autoscaling#HealthCheckGracePeriod", "traits": { - "smithy.api#documentation": "

                      The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before checking the health status\n of an EC2 instance that has come into service and marking it unhealthy due to a failed\n health check. The default value is 0. For more information, see Health\n check grace period in the Amazon EC2 Auto Scaling User Guide.

                      \n

                      Conditional: Required if you are adding an ELB health check.

                      " + "smithy.api#documentation": "

                      The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before checking the health status\n of an EC2 instance that has come into service and marking it unhealthy due to a failed\n health check. The default value is 0. For more information, see Health\n check grace period in the Amazon EC2 Auto Scaling User Guide.

                      \n

                      Required if you are adding an ELB health check.

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

                      Gets information about a warm pool and its instances.

                      \n

                      For more information, see Warm pools for\n Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide.

                      " + "smithy.api#documentation": "

                      Gets information about a warm pool and its instances.

                      \n

                      For more information, see Warm pools for\n Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide.

                      " } }, "com.amazonaws.autoscaling#DescribeWarmPoolAnswer": { @@ -4284,13 +4284,13 @@ "SpotMaxPricePercentageOverLowestPrice": { "target": "com.amazonaws.autoscaling#NullablePositiveInteger", "traits": { - "smithy.api#documentation": "

                      The price protection threshold for Spot Instances. This is the maximum you’ll pay for\n a Spot Instance, expressed as a percentage higher than the cheapest M, C, or R instance\n type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your\n attributes, we will exclude instance types whose price is higher than your threshold.\n The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off\n price protection, specify a high value, such as 999999.

                      \n

                      Default: 100\n

                      " + "smithy.api#documentation": "

                      The price protection threshold for Spot Instances. This is the maximum you’ll pay for\n a Spot Instance, expressed as a percentage higher than the cheapest M, C, or R instance\n type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your\n attributes, we will exclude instance types whose price is higher than your threshold.\n The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off\n price protection, specify a high value, such as 999999.

                      \n

                      If you set DesiredCapacityType to vcpu or\n memory-mib, the price protection threshold is applied based on the per\n vCPU or per memory price instead of the per instance price.

                      \n

                      Default: 100\n

                      " } }, "OnDemandMaxPricePercentageOverLowestPrice": { "target": "com.amazonaws.autoscaling#NullablePositiveInteger", "traits": { - "smithy.api#documentation": "

                      The price protection threshold for On-Demand Instances. This is the maximum you’ll pay\n for an On-Demand Instance, expressed as a percentage higher than the cheapest M, C, or R\n instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with\n your attributes, we will exclude instance types whose price is higher than your\n threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage.\n To turn off price protection, specify a high value, such as 999999.

                      \n

                      Default: 20\n

                      " + "smithy.api#documentation": "

                      The price protection threshold for On-Demand Instances. This is the maximum you’ll pay\n for an On-Demand Instance, expressed as a percentage higher than the cheapest M, C, or R\n instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with\n your attributes, we will exclude instance types whose price is higher than your\n threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage.\n To turn off price protection, specify a high value, such as 999999.

                      \n

                      If you set DesiredCapacityType to vcpu or\n memory-mib, the price protection threshold is applied based on the per\n vCPU or per memory price instead of the per instance price.

                      \n

                      Default: 20\n

                      " } }, "BareMetal": { @@ -4376,6 +4376,20 @@ "smithy.api#documentation": "

                      When you specify multiple parameters, you get instance types that satisfy all of the\n specified parameters. If you specify multiple values for a parameter, you get instance\n types that satisfy any of the specified values.

                      \n \n \n

                      Represents requirements for the types of instances that can be launched. You\n must specify VCpuCount and MemoryMiB, but all other parameters\n are optional. For more information, see Creating\n an Auto Scaling group using attribute-based instance type selection in the\n Amazon EC2 Auto Scaling User Guide.

                      " } }, + "com.amazonaws.autoscaling#InstanceReusePolicy": { + "type": "structure", + "members": { + "ReuseOnScaleIn": { + "target": "com.amazonaws.autoscaling#ReuseOnScaleIn", + "traits": { + "smithy.api#documentation": "

                      Specifies whether instances in the Auto Scaling group can be returned to the warm pool on\n scale in.

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

                      Describes an instance reuse policy for a warm pool.

                      \n

                      For more information, see Warm pools for\n Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide.

                      " + } + }, "com.amazonaws.autoscaling#Instances": { "type": "list", "member": { @@ -4704,13 +4718,13 @@ "WeightedCapacity": { "target": "com.amazonaws.autoscaling#XmlStringMaxLen32", "traits": { - "smithy.api#documentation": "

                      The number of capacity units provided by the instance type specified in\n InstanceType in terms of virtual CPUs, memory, storage, throughput, or\n other relative performance characteristic. When a Spot or On-Demand Instance is\n launched, the capacity units count toward the desired capacity. Amazon EC2 Auto Scaling launches\n instances until the desired capacity is totally fulfilled, even if this results in an\n overage. For example, if there are two units remaining to fulfill capacity, and Amazon EC2 Auto Scaling\n can only launch an instance with a WeightedCapacity of five units, the\n instance is launched, and the desired capacity is exceeded by three units. For more\n information, see Instance weighting for\n Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. Value must be in the\n range of 1–999.

                      " + "smithy.api#documentation": "

                      The number of capacity units provided by the instance type specified in\n InstanceType in terms of virtual CPUs, memory, storage, throughput, or\n other relative performance characteristic. When a Spot or On-Demand Instance is\n launched, the capacity units count toward the desired capacity. Amazon EC2 Auto Scaling launches\n instances until the desired capacity is totally fulfilled, even if this results in an\n overage. For example, if there are two units remaining to fulfill capacity, and Amazon EC2 Auto Scaling\n can only launch an instance with a WeightedCapacity of five units, the\n instance is launched, and the desired capacity is exceeded by three units. For more\n information, see Configuring instance weighting for Amazon EC2 Auto Scaling in the\n Amazon EC2 Auto Scaling User Guide. Value must be in the range of 1–999.

                      " } }, "LaunchTemplateSpecification": { "target": "com.amazonaws.autoscaling#LaunchTemplateSpecification", "traits": { - "smithy.api#documentation": "

                      Provides the launch template to be used when launching the instance type specified in\n InstanceType. For example, some instance types might require a launch\n template with a different AMI. If not provided, Amazon EC2 Auto Scaling uses the launch template that's\n defined for your mixed instances policy. For more information, see Specifying a\n different launch template for an instance type in the\n Amazon EC2 Auto Scaling User Guide.

                      " + "smithy.api#documentation": "

                      Provides a launch template for the specified instance type or instance requirements.\n For example, some instance types might require a launch template with a different AMI.\n If not provided, Amazon EC2 Auto Scaling uses the launch template that's defined for your mixed\n instances policy. For more information, see Specifying a different launch template for an instance type in the\n Amazon EC2 Auto Scaling User Guide.

                      " } }, "InstanceRequirements": { @@ -4792,7 +4806,7 @@ "RoleARN": { "target": "com.amazonaws.autoscaling#XmlStringMaxLen255", "traits": { - "smithy.api#documentation": "

                      The ARN of the IAM role that allows the Auto Scaling group to publish to the specified\n notification target.

                      " + "smithy.api#documentation": "

                      The ARN of the IAM role that allows the Auto Scaling group to publish to the specified\n notification target (an Amazon SNS topic or an Amazon SQS queue).

                      " } }, "NotificationMetadata": { @@ -4821,7 +4835,7 @@ } }, "traits": { - "smithy.api#documentation": "

                      Describes a lifecycle hook, which enables an Auto Scaling group to be aware of events in the\n Auto Scaling instance lifecycle, and then perform a custom action when the corresponding\n lifecycle event occurs.

                      " + "smithy.api#documentation": "

                      Describes a lifecycle hook. A lifecycle hook lets you create solutions that are aware\n of events in the Auto Scaling instance lifecycle, and then perform a custom action on instances\n when the corresponding lifecycle event\n occurs.

                      " } }, "com.amazonaws.autoscaling#LifecycleHookNames": { @@ -4880,7 +4894,7 @@ "RoleARN": { "target": "com.amazonaws.autoscaling#XmlStringMaxLen255", "traits": { - "smithy.api#documentation": "

                      The ARN of the IAM role that allows the Auto Scaling group to publish to the specified\n notification target, for example, an Amazon SNS topic or an Amazon SQS queue.

                      " + "smithy.api#documentation": "

                      The ARN of the IAM role that allows the Auto Scaling group to publish to the specified\n notification target.

                      \n

                      Valid only if the notification target is an Amazon SNS topic or an Amazon SQS queue. Required\n for new lifecycle hooks, but optional when updating existing hooks.

                      " } } }, @@ -4991,6 +5005,10 @@ { "value": "Warmed:Running", "name": "WARMED_RUNNING" + }, + { + "value": "Warmed:Hibernated", + "name": "WARMED_HIBERNATED" } ] } @@ -5758,7 +5776,7 @@ "PredefinedMetricType": { "target": "com.amazonaws.autoscaling#MetricType", "traits": { - "smithy.api#documentation": "

                      The metric type. The following predefined metrics are available:

                      \n
                        \n
                      • \n

                        \n ASGAverageCPUUtilization - Average CPU utilization of the Auto Scaling\n group.

                        \n
                      • \n
                      • \n

                        \n ASGAverageNetworkIn - Average number of bytes received on all\n network interfaces by the Auto Scaling group.

                        \n
                      • \n
                      • \n

                        \n ASGAverageNetworkOut - Average number of bytes sent out on all\n network interfaces by the Auto Scaling group.

                        \n
                      • \n
                      • \n

                        \n ALBRequestCountPerTarget - Number of requests completed per\n target in an Application Load Balancer target group.

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

                      The metric type. The following predefined metrics are available:

                      \n
                        \n
                      • \n

                        \n ASGAverageCPUUtilization - Average CPU utilization of the Auto Scaling\n group.

                        \n
                      • \n
                      • \n

                        \n ASGAverageNetworkIn - Average number of bytes received (per\n instance per minute) for the Auto Scaling group.

                        \n
                      • \n
                      • \n

                        \n ASGAverageNetworkOut - Average number of bytes sent out (per\n instance per minute) for the Auto Scaling group.

                        \n
                      • \n
                      • \n

                        \n ALBRequestCountPerTarget - Average Application Load Balancer request count (per\n target per minute) for your Auto Scaling group.

                        \n
                      • \n
                      ", "smithy.api#required": {} } }, @@ -6131,7 +6149,7 @@ } ], "traits": { - "smithy.api#documentation": "

                      Creates or updates a lifecycle hook for the specified Auto Scaling group.

                      \n

                      A lifecycle hook enables an Auto Scaling group to be aware of events in the Auto Scaling instance\n lifecycle, and then perform a custom action when the corresponding lifecycle event\n occurs.

                      \n

                      This step is a part of the procedure for adding a lifecycle hook to an Auto Scaling\n group:

                      \n
                        \n
                      1. \n

                        (Optional) Create a Lambda function and a rule that allows Amazon EventBridge to\n invoke your Lambda function when Amazon EC2 Auto Scaling launches or terminates\n instances.

                        \n
                      2. \n
                      3. \n

                        (Optional) Create a notification target and an IAM role. The target can be\n either an Amazon SQS queue or an Amazon SNS topic. The role allows Amazon EC2 Auto Scaling to publish\n lifecycle notifications to the target.

                        \n
                      4. \n
                      5. \n

                        \n Create the lifecycle hook. Specify whether the hook is\n used when the instances launch or terminate.\n

                        \n
                      6. \n
                      7. \n

                        If you need more time, record the lifecycle action heartbeat to keep the\n instance in a pending state using the RecordLifecycleActionHeartbeat API call.

                        \n
                      8. \n
                      9. \n

                        If you finish before the timeout period ends, send a callback by using the\n CompleteLifecycleAction API call.

                        \n
                      10. \n
                      \n

                      For more information, see Amazon EC2 Auto Scaling lifecycle\n hooks in the Amazon EC2 Auto Scaling User Guide.

                      \n

                      If you exceed your maximum limit of lifecycle hooks, which by default is 50 per Auto Scaling\n group, the call fails.

                      \n

                      You can view the lifecycle hooks for an Auto Scaling group using the DescribeLifecycleHooks API call. If you are no longer using a lifecycle\n hook, you can delete it by calling the DeleteLifecycleHook API.

                      " + "smithy.api#documentation": "

                      Creates or updates a lifecycle hook for the specified Auto Scaling group.

                      \n

                      Lifecycle hooks let you create solutions that are aware of events in the Auto Scaling instance\n lifecycle, and then perform a custom action on instances when the corresponding\n lifecycle event occurs.

                      \n

                      This step is a part of the procedure for adding a lifecycle hook to an Auto Scaling\n group:

                      \n
                        \n
                      1. \n

                        (Optional) Create a launch template or launch configuration with a user data\n script that runs while an instance is in a wait state due to a lifecycle\n hook.

                        \n
                      2. \n
                      3. \n

                        (Optional) Create a Lambda function and a rule that allows Amazon EventBridge to invoke\n your Lambda function when an instance is put into a wait state due to a\n lifecycle hook.

                        \n
                      4. \n
                      5. \n

                        (Optional) Create a notification target and an IAM role. The target can be\n either an Amazon SQS queue or an Amazon SNS topic. The role allows Amazon EC2 Auto Scaling to publish\n lifecycle notifications to the target.

                        \n
                      6. \n
                      7. \n

                        \n Create the lifecycle hook. Specify whether the hook is\n used when the instances launch or terminate.\n

                        \n
                      8. \n
                      9. \n

                        If you need more time, record the lifecycle action heartbeat to keep the\n instance in a wait state using the RecordLifecycleActionHeartbeat API call.

                        \n
                      10. \n
                      11. \n

                        If you finish before the timeout period ends, send a callback by using the\n CompleteLifecycleAction API call.

                        \n
                      12. \n
                      \n

                      For more information, see Amazon EC2 Auto Scaling lifecycle\n hooks in the Amazon EC2 Auto Scaling User Guide.

                      \n

                      If you exceed your maximum limit of lifecycle hooks, which by default is 50 per Auto Scaling\n group, the call fails.

                      \n

                      You can view the lifecycle hooks for an Auto Scaling group using the DescribeLifecycleHooks API call. If you are no longer using a lifecycle\n hook, you can delete it by calling the DeleteLifecycleHook API.

                      " } }, "com.amazonaws.autoscaling#PutLifecycleHookAnswer": { @@ -6164,7 +6182,7 @@ "RoleARN": { "target": "com.amazonaws.autoscaling#XmlStringMaxLen255", "traits": { - "smithy.api#documentation": "

                      The ARN of the IAM role that allows the Auto Scaling group to publish to the specified\n notification target, for example, an Amazon SNS topic or an Amazon SQS queue.

                      \n

                      Required for new lifecycle hooks, but optional when updating existing hooks.

                      " + "smithy.api#documentation": "

                      The ARN of the IAM role that allows the Auto Scaling group to publish to the specified\n notification target.

                      \n

                      Valid only if the notification target is an Amazon SNS topic or an Amazon SQS queue. Required\n for new lifecycle hooks, but optional when updating existing hooks.

                      " } }, "NotificationTargetARN": { @@ -6491,6 +6509,12 @@ "traits": { "smithy.api#documentation": "

                      Sets the instance state to transition to after the lifecycle actions are complete.\n Default is Stopped.

                      " } + }, + "InstanceReusePolicy": { + "target": "com.amazonaws.autoscaling#InstanceReusePolicy", + "traits": { + "smithy.api#documentation": "

                      Indicates whether instances in the Auto Scaling group can be returned to the warm pool on\n scale in. The default is to terminate instances in the Auto Scaling group when the group scales\n in.

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

                      Records a heartbeat for the lifecycle action associated with the specified token or\n instance. This extends the timeout by the length of time defined using the PutLifecycleHook API call.

                      \n

                      This step is a part of the procedure for adding a lifecycle hook to an Auto Scaling\n group:

                      \n
                        \n
                      1. \n

                        (Optional) Create a Lambda function and a rule that allows Amazon EventBridge to\n invoke your Lambda function when Amazon EC2 Auto Scaling launches or terminates\n instances.

                        \n
                      2. \n
                      3. \n

                        (Optional) Create a notification target and an IAM role. The target can be\n either an Amazon SQS queue or an Amazon SNS topic. The role allows Amazon EC2 Auto Scaling to publish\n lifecycle notifications to the target.

                        \n
                      4. \n
                      5. \n

                        Create the lifecycle hook. Specify whether the hook is used when the instances\n launch or terminate.

                        \n
                      6. \n
                      7. \n

                        \n If you need more time, record the lifecycle action\n heartbeat to keep the instance in a pending state.\n

                        \n
                      8. \n
                      9. \n

                        If you finish before the timeout period ends, send a callback by using the\n CompleteLifecycleAction API call.

                        \n
                      10. \n
                      \n

                      For more information, see Amazon EC2 Auto Scaling lifecycle\n hooks in the Amazon EC2 Auto Scaling User Guide.

                      " + "smithy.api#documentation": "

                      Records a heartbeat for the lifecycle action associated with the specified token or\n instance. This extends the timeout by the length of time defined using the PutLifecycleHook API call.

                      \n

                      This step is a part of the procedure for adding a lifecycle hook to an Auto Scaling\n group:

                      \n
                        \n
                      1. \n

                        (Optional) Create a launch template or launch configuration with a user data\n script that runs while an instance is in a wait state due to a lifecycle\n hook.

                        \n
                      2. \n
                      3. \n

                        (Optional) Create a Lambda function and a rule that allows Amazon EventBridge to invoke\n your Lambda function when an instance is put into a wait state due to a\n lifecycle hook.

                        \n
                      4. \n
                      5. \n

                        (Optional) Create a notification target and an IAM role. The target can be\n either an Amazon SQS queue or an Amazon SNS topic. The role allows Amazon EC2 Auto Scaling to publish\n lifecycle notifications to the target.

                        \n
                      6. \n
                      7. \n

                        Create the lifecycle hook. Specify whether the hook is used when the instances\n launch or terminate.

                        \n
                      8. \n
                      9. \n

                        \n If you need more time, record the lifecycle action\n heartbeat to keep the instance in a wait state.\n

                        \n
                      10. \n
                      11. \n

                        If you finish before the timeout period ends, send a callback by using the\n CompleteLifecycleAction API call.

                        \n
                      12. \n
                      \n

                      For more information, see Amazon EC2 Auto Scaling lifecycle\n hooks in the Amazon EC2 Auto Scaling User Guide.

                      " } }, "com.amazonaws.autoscaling#RecordLifecycleActionHeartbeatAnswer": { @@ -6677,6 +6701,12 @@ "smithy.api#box": {} } }, + "com.amazonaws.autoscaling#ReuseOnScaleIn": { + "type": "boolean", + "traits": { + "smithy.api#box": {} + } + }, "com.amazonaws.autoscaling#ScalingActivityInProgressFault": { "type": "structure", "members": { @@ -6939,13 +6969,13 @@ "StartTime": { "target": "com.amazonaws.autoscaling#TimestampType", "traits": { - "smithy.api#documentation": "

                      The date and time in UTC for this action to start. For example,\n \"2019-06-01T00:00:00Z\".\n

                      " + "smithy.api#documentation": "

                      The date and time in UTC for this action to start. For example,\n \"2019-06-01T00:00:00Z\".

                      " } }, "EndTime": { "target": "com.amazonaws.autoscaling#TimestampType", "traits": { - "smithy.api#documentation": "

                      The date and time in UTC for the recurring schedule to end. For example,\n \"2019-06-01T00:00:00Z\".\n

                      " + "smithy.api#documentation": "

                      The date and time in UTC for the recurring schedule to end. For example,\n \"2019-06-01T00:00:00Z\".

                      " } }, "Recurrence": { @@ -7529,7 +7559,7 @@ "TargetValue": { "target": "com.amazonaws.autoscaling#MetricScale", "traits": { - "smithy.api#documentation": "

                      The target value for the metric.

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

                      The target value for the metric.

                      \n \n

                      Some metrics are based on a count instead of a percentage, such as the request\n count for an Application Load Balancer or the number of messages in an SQS queue. If the scaling policy\n specifies one of these metrics, specify the target utilization as the optimal\n average request or message count per instance during any one-minute interval.\n

                      \n
                      ", "smithy.api#required": {} } }, @@ -7629,7 +7659,7 @@ } ], "traits": { - "smithy.api#documentation": "

                      \n We strongly recommend that all Auto Scaling groups use launch templates to ensure full functionality for Amazon EC2 Auto Scaling and Amazon EC2.\n

                      \n

                      Updates the configuration for\n the specified Auto Scaling group.

                      \n

                      To update an Auto Scaling group, specify the name of the group and the parameter that you want\n to change. Any parameters that you don't specify are not changed by this update request.\n The new settings take effect on any scaling activities after this call returns.\n

                      \n

                      If you associate a new launch configuration or template with an Auto Scaling group, all new\n instances will get the updated configuration. Existing instances continue to run with\n the configuration that they were originally launched with. When you update a group to\n specify a mixed instances policy instead of a launch configuration or template, existing\n instances may be replaced to match the new purchasing options that you specified in the\n policy. For example, if the group currently has 100% On-Demand capacity and the policy\n specifies 50% Spot capacity, this means that half of your instances will be gradually\n terminated and relaunched as Spot Instances. When replacing instances, Amazon EC2 Auto Scaling launches\n new instances before terminating the old ones, so that updating your group does not\n compromise the performance or availability of your application.

                      \n

                      Note the following about changing DesiredCapacity, MaxSize,\n or MinSize:

                      \n
                        \n
                      • \n

                        If a scale-in activity occurs as a result of a new\n DesiredCapacity value that is lower than the current size of\n the group, the Auto Scaling group uses its termination policy to determine which\n instances to terminate.

                        \n
                      • \n
                      • \n

                        If you specify a new value for MinSize without specifying a value\n for DesiredCapacity, and the new MinSize is larger\n than the current size of the group, this sets the group's\n DesiredCapacity to the new MinSize value.

                        \n
                      • \n
                      • \n

                        If you specify a new value for MaxSize without specifying a value\n for DesiredCapacity, and the new MaxSize is smaller\n than the current size of the group, this sets the group's\n DesiredCapacity to the new MaxSize value.

                        \n
                      • \n
                      \n

                      To see which parameters have been set, call the DescribeAutoScalingGroups API. To view the scaling policies for an Auto Scaling\n group, call the DescribePolicies API. If the group has scaling\n policies, you can update them by calling the PutScalingPolicy\n API.

                      " + "smithy.api#documentation": "

                      \n We strongly recommend that all Auto Scaling groups use launch templates to ensure full functionality for Amazon EC2 Auto Scaling and Amazon EC2.\n

                      \n

                      Updates the configuration for the specified Auto Scaling group.

                      \n

                      To update an Auto Scaling group, specify the name of the group and the parameter that you want\n to change. Any parameters that you don't specify are not changed by this update request.\n The new settings take effect on any scaling activities after this call returns.\n

                      \n

                      If you associate a new launch configuration or template with an Auto Scaling group, all new\n instances will get the updated configuration. Existing instances continue to run with\n the configuration that they were originally launched with. When you update a group to\n specify a mixed instances policy instead of a launch configuration or template, existing\n instances may be replaced to match the new purchasing options that you specified in the\n policy. For example, if the group currently has 100% On-Demand capacity and the policy\n specifies 50% Spot capacity, this means that half of your instances will be gradually\n terminated and relaunched as Spot Instances. When replacing instances, Amazon EC2 Auto Scaling launches\n new instances before terminating the old ones, so that updating your group does not\n compromise the performance or availability of your application.

                      \n

                      Note the following about changing DesiredCapacity, MaxSize,\n or MinSize:

                      \n
                        \n
                      • \n

                        If a scale-in activity occurs as a result of a new\n DesiredCapacity value that is lower than the current size of\n the group, the Auto Scaling group uses its termination policy to determine which\n instances to terminate.

                        \n
                      • \n
                      • \n

                        If you specify a new value for MinSize without specifying a value\n for DesiredCapacity, and the new MinSize is larger\n than the current size of the group, this sets the group's\n DesiredCapacity to the new MinSize value.

                        \n
                      • \n
                      • \n

                        If you specify a new value for MaxSize without specifying a value\n for DesiredCapacity, and the new MaxSize is smaller\n than the current size of the group, this sets the group's\n DesiredCapacity to the new MaxSize value.

                        \n
                      • \n
                      \n

                      To see which parameters have been set, call the DescribeAutoScalingGroups API. To view the scaling policies for an Auto Scaling\n group, call the DescribePolicies API. If the group has scaling\n policies, you can update them by calling the PutScalingPolicy\n API.

                      " } }, "com.amazonaws.autoscaling#UpdateAutoScalingGroupType": { @@ -7657,7 +7687,7 @@ "MixedInstancesPolicy": { "target": "com.amazonaws.autoscaling#MixedInstancesPolicy", "traits": { - "smithy.api#documentation": "

                      An embedded object that specifies a mixed instances policy. For more information, see\n Auto Scaling groups with multiple\n instance types and purchase options in the Amazon EC2 Auto Scaling User\n Guide.

                      " + "smithy.api#documentation": "

                      An embedded object that specifies a mixed instances policy. For more information, see\n Auto Scaling\n groups with multiple instance types and purchase options in the\n Amazon EC2 Auto Scaling User Guide.

                      " } }, "MinSize": { @@ -7699,7 +7729,7 @@ "HealthCheckGracePeriod": { "target": "com.amazonaws.autoscaling#HealthCheckGracePeriod", "traits": { - "smithy.api#documentation": "

                      The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before checking the health status\n of an EC2 instance that has come into service and marking it unhealthy due to a failed\n health check. The default value is 0. For more information, see Health\n check grace period in the Amazon EC2 Auto Scaling User Guide.

                      \n

                      Conditional: Required if you are adding an ELB health check.

                      " + "smithy.api#documentation": "

                      The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before checking the health status\n of an EC2 instance that has come into service and marking it unhealthy due to a failed\n health check. The default value is 0. For more information, see Health\n check grace period in the Amazon EC2 Auto Scaling User Guide.

                      \n

                      Required if you are adding an ELB health check.

                      " } }, "PlacementGroup": { @@ -7811,6 +7841,12 @@ "traits": { "smithy.api#documentation": "

                      The status of a warm pool that is marked for deletion.

                      " } + }, + "InstanceReusePolicy": { + "target": "com.amazonaws.autoscaling#InstanceReusePolicy", + "traits": { + "smithy.api#documentation": "

                      The instance reuse policy.

                      " + } } }, "traits": { @@ -7843,6 +7879,10 @@ { "value": "Running", "name": "Running" + }, + { + "value": "Hibernated", + "name": "Hibernated" } ] } diff --git a/codegen/sdk-codegen/aws-models/databrew.json b/codegen/sdk-codegen/aws-models/databrew.json index fd66f515462d..eab8e798dfe1 100644 --- a/codegen/sdk-codegen/aws-models/databrew.json +++ b/codegen/sdk-codegen/aws-models/databrew.json @@ -4304,6 +4304,16 @@ } } }, + "com.amazonaws.databrew#MaxOutputFiles": { + "type": "integer", + "traits": { + "smithy.api#box": {}, + "smithy.api#range": { + "min": 1, + "max": 999 + } + } + }, "com.amazonaws.databrew#MaxResults100": { "type": "integer", "traits": { @@ -4429,6 +4439,12 @@ "traits": { "smithy.api#documentation": "

                      Represents options that define how DataBrew formats job output files.

                      " } + }, + "MaxOutputFiles": { + "target": "com.amazonaws.databrew#MaxOutputFiles", + "traits": { + "smithy.api#documentation": "

                      Maximum number of files to be generated by the job and written to the output folder. For output partitioned \n by column(s), the MaxOutputFiles value is the maximum number of files per partition.

                      " + } } }, "traits": { diff --git a/codegen/sdk-codegen/aws-models/fms.json b/codegen/sdk-codegen/aws-models/fms.json index ab5e34f47fde..0c955d66a774 100644 --- a/codegen/sdk-codegen/aws-models/fms.json +++ b/codegen/sdk-codegen/aws-models/fms.json @@ -53,7 +53,7 @@ "name": "fms" }, "aws.protocols#awsJson1_1": {}, - "smithy.api#documentation": "

                      This is the Firewall Manager API Reference. This guide is for\n developers who need detailed information about the Firewall Manager API actions, data\n types, and errors. For detailed information about Firewall Manager features, see the\n Firewall Manager Developer Guide.

                      \n

                      Some API actions require explicit resource permissions. For information, see the developer guide topic \n Firewall Manager required permissions for API actions.\n

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

                      This is the Firewall Manager API Reference. This guide is for\n developers who need detailed information about the Firewall Manager API actions, data types, and\n errors. For detailed information about Firewall Manager features, see the Firewall Manager\n Developer Guide.

                      \n

                      Some API actions require explicit resource permissions. For information, see the\n developer guide topic Firewall Manager required permissions\n for API actions.

                      ", "smithy.api#title": "Firewall Management Service" }, "version": "2018-01-01", @@ -198,7 +198,7 @@ "Protocol": { "target": "com.amazonaws.fms#Protocol", "traits": { - "smithy.api#documentation": "

                      The IP protocol name or number. The name can be one of tcp, udp, or icmp. For information on possible numbers, see Protocol Numbers.

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

                      The IP protocol name or number. The name can be one of tcp,\n udp, or icmp. For information on possible numbers, see Protocol\n Numbers.

                      ", "smithy.api#required": {} } }, @@ -239,7 +239,7 @@ "ListUpdateToken": { "target": "com.amazonaws.fms#UpdateToken", "traits": { - "smithy.api#documentation": "

                      A unique identifier for each update to the list. When you update \n the list, the update token must match the token of the current version of the application list. \n You can retrieve the update token by getting the list.

                      " + "smithy.api#documentation": "

                      A unique identifier for each update to the list. When you update the list, the update\n token must match the token of the current version of the application list. You can retrieve\n the update token by getting the list.

                      " } }, "CreateTime": { @@ -264,7 +264,7 @@ "PreviousAppsList": { "target": "com.amazonaws.fms#PreviousAppsList", "traits": { - "smithy.api#documentation": "

                      A map of previous version numbers to their corresponding App object arrays.

                      " + "smithy.api#documentation": "

                      A map of previous version numbers to their corresponding App object\n arrays.

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

                      Sets the Firewall Manager administrator account. The account must be\n a member of the organization in Organizations whose resources you want to protect. \n Firewall Manager sets the permissions that allow the account to administer your Firewall Manager policies.

                      \n

                      The account that you associate with Firewall Manager is called the Firewall Manager administrator account.

                      " + "smithy.api#documentation": "

                      Sets the Firewall Manager administrator account. The account must be a member of the\n organization in Organizations whose resources you want to protect. Firewall Manager sets the\n permissions that allow the account to administer your Firewall Manager policies.

                      \n

                      The account that you associate with Firewall Manager is called the Firewall Manager administrator\n account.

                      " } }, "com.amazonaws.fms#AssociateAdminAccountRequest": { @@ -342,7 +342,7 @@ "AdminAccount": { "target": "com.amazonaws.fms#AWSAccountId", "traits": { - "smithy.api#documentation": "

                      The Amazon Web Services account ID to associate with Firewall Manager as the Firewall Manager\n administrator account. This must be an Organizations member account.\n For more information about Organizations, see \n Managing the Amazon Web Services Accounts in Your Organization.

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

                      The Amazon Web Services account ID to associate with Firewall Manager as the Firewall Manager administrator account.\n This must be an Organizations member account. For more information about Organizations, see Managing the Amazon Web Services Accounts in Your Organization.

                      ", "smithy.api#required": {} } } @@ -380,7 +380,7 @@ "ViolatingSecurityGroups": { "target": "com.amazonaws.fms#ResourceIdList", "traits": { - "smithy.api#documentation": "

                      List of security groups that violate the rules specified in the primary security group of the Firewall Manager policy.

                      " + "smithy.api#documentation": "

                      List of security groups that violate the rules specified in the primary security group\n of the Firewall Manager policy.

                      " } } }, @@ -412,7 +412,7 @@ "PartialMatches": { "target": "com.amazonaws.fms#PartialMatches", "traits": { - "smithy.api#documentation": "

                      List of rules specified in the security group of the Firewall Manager policy that partially match the ViolationTarget rule.

                      " + "smithy.api#documentation": "

                      List of rules specified in the security group of the Firewall Manager policy that partially\n match the ViolationTarget rule.

                      " } }, "PossibleSecurityGroupRemediationActions": { @@ -423,7 +423,7 @@ } }, "traits": { - "smithy.api#documentation": "

                      Violation detail for the rule violation in a security group when compared to the primary security group of the Firewall Manager policy.

                      " + "smithy.api#documentation": "

                      Violation detail for the rule violation in a security group when compared to the primary\n security group of the Firewall Manager policy.

                      " } }, "com.amazonaws.fms#BasicInteger": { @@ -466,7 +466,13 @@ "ResourceType": { "target": "com.amazonaws.fms#ResourceType", "traits": { - "smithy.api#documentation": "

                      The resource type. This is in the format shown in the Amazon Web Services Resource Types Reference. For example:\n AWS::ElasticLoadBalancingV2::LoadBalancer, \n AWS::CloudFront::Distribution, or\n AWS::NetworkFirewall::FirewallPolicy.

                      " + "smithy.api#documentation": "

                      The resource type. This is in the format shown in the Amazon Web Services\n Resource Types Reference. For example:\n AWS::ElasticLoadBalancingV2::LoadBalancer,\n AWS::CloudFront::Distribution, or\n AWS::NetworkFirewall::FirewallPolicy.

                      " + } + }, + "Metadata": { + "target": "com.amazonaws.fms#ComplianceViolatorMetadata", + "traits": { + "smithy.api#documentation": "

                      Metadata about the resource that doesn't comply with the policy scope.

                      " } } }, @@ -474,6 +480,15 @@ "smithy.api#documentation": "

                      Details of the resource that is not protected by the policy.

                      " } }, + "com.amazonaws.fms#ComplianceViolatorMetadata": { + "type": "map", + "key": { + "target": "com.amazonaws.fms#LengthBoundedString" + }, + "value": { + "target": "com.amazonaws.fms#LengthBoundedString" + } + }, "com.amazonaws.fms#ComplianceViolators": { "type": "list", "member": { @@ -546,7 +561,7 @@ "ListId": { "target": "com.amazonaws.fms#ListId", "traits": { - "smithy.api#documentation": "

                      The ID of the applications list that you want to delete. You can retrieve this ID from \n PutAppsList, ListAppsLists, and GetAppsList.

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

                      The ID of the applications list that you want to delete. You can retrieve this ID from\n PutAppsList, ListAppsLists, and\n GetAppsList.

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

                      Deletes an Firewall Manager association with the IAM role and the Amazon Simple\n Notification Service (SNS) topic that is used to record Firewall Manager SNS logs.

                      " + "smithy.api#documentation": "

                      Deletes an Firewall Manager association with the IAM role and the Amazon Simple Notification\n Service (SNS) topic that is used to record Firewall Manager SNS logs.

                      " } }, "com.amazonaws.fms#DeleteNotificationChannelRequest": { @@ -608,14 +623,14 @@ "PolicyId": { "target": "com.amazonaws.fms#PolicyId", "traits": { - "smithy.api#documentation": "

                      The ID of the policy that you want to delete. You can retrieve this ID from \n PutPolicy and ListPolicies.

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

                      The ID of the policy that you want to delete. You can retrieve this ID from\n PutPolicy and ListPolicies.

                      ", "smithy.api#required": {} } }, "DeleteAllPolicyResources": { "target": "com.amazonaws.fms#Boolean", "traits": { - "smithy.api#documentation": "

                      If True, the request performs cleanup according to the policy type.

                      \n

                      For WAF and Shield Advanced policies, the cleanup does the following:

                      \n
                        \n
                      • \n

                        Deletes rule groups created by Firewall Manager

                        \n
                      • \n
                      • \n

                        Removes web ACLs from in-scope resources

                        \n
                      • \n
                      • \n

                        Deletes web ACLs that contain no rules or rule groups

                        \n
                      • \n
                      \n

                      For security group policies, the cleanup does the following for each security group in\n the policy:

                      \n
                        \n
                      • \n

                        Disassociates the security group from in-scope resources

                        \n
                      • \n
                      • \n

                        Deletes the security group if it was created through Firewall Manager and if it's\n no longer associated with any resources through another policy

                        \n
                      • \n
                      \n

                      After the cleanup, in-scope resources are no longer protected by web ACLs in this policy.\n Protection of out-of-scope resources remains unchanged. Scope is determined by tags that you\n create and accounts that you associate with the policy. When creating the policy, if you\n specify that only resources in specific accounts or with specific tags are in scope of the\n policy, those accounts and resources are handled by the policy. All others are out of scope.\n If you don't specify tags or accounts, all resources are in scope.

                      " + "smithy.api#documentation": "

                      If True, the request performs cleanup according to the policy type.

                      \n

                      For WAF and Shield Advanced policies, the cleanup does the following:

                      \n
                        \n
                      • \n

                        Deletes rule groups created by Firewall Manager

                        \n
                      • \n
                      • \n

                        Removes web ACLs from in-scope resources

                        \n
                      • \n
                      • \n

                        Deletes web ACLs that contain no rules or rule groups

                        \n
                      • \n
                      \n

                      For security group policies, the cleanup does the following for each security group\n in the policy:

                      \n
                        \n
                      • \n

                        Disassociates the security group from in-scope resources

                        \n
                      • \n
                      • \n

                        Deletes the security group if it was created through Firewall Manager and if it's no\n longer associated with any resources through another policy

                        \n
                      • \n
                      \n

                      After the cleanup, in-scope resources are no longer protected by web ACLs in this\n policy. Protection of out-of-scope resources remains unchanged. Scope is determined by tags\n that you create and accounts that you associate with the policy. When creating the policy,\n if you specify that only resources in specific accounts or with specific tags are in scope\n of the policy, those accounts and resources are handled by the policy. All others are out\n of scope. If you don't specify tags or accounts, all resources are in scope.

                      " } } } @@ -646,7 +661,7 @@ "ListId": { "target": "com.amazonaws.fms#ListId", "traits": { - "smithy.api#documentation": "

                      The ID of the protocols list that you want to delete. You can retrieve this ID from \n PutProtocolsList, ListProtocolsLists, and GetProtocolsLost.

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

                      The ID of the protocols list that you want to delete. You can retrieve this ID from\n PutProtocolsList, ListProtocolsLists, and\n GetProtocolsLost.

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

                      Disassociates the account that has been set as the Firewall Manager administrator\n account. To set a different account as the administrator account, you must submit an\n AssociateAdminAccount request.

                      " + "smithy.api#documentation": "

                      Disassociates the account that has been set as the Firewall Manager administrator account. To\n set a different account as the administrator account, you must submit an\n AssociateAdminAccount request.

                      " } }, "com.amazonaws.fms#DisassociateAdminAccountRequest": { @@ -745,7 +760,7 @@ } }, "traits": { - "smithy.api#documentation": "

                      A DNS Firewall rule group that Firewall Manager \n tried to associate with a VPC is already associated with the VPC and can't be associated again.

                      " + "smithy.api#documentation": "

                      A DNS Firewall rule group that Firewall Manager tried to associate with a VPC is already associated\n with the VPC and can't be associated again.

                      " } }, "com.amazonaws.fms#DnsRuleGroupLimitExceededViolation": { @@ -766,12 +781,12 @@ "NumberOfRuleGroupsAlreadyAssociated": { "target": "com.amazonaws.fms#BasicInteger", "traits": { - "smithy.api#documentation": "

                      The number of rule groups currently associated with the VPC.

                      " + "smithy.api#documentation": "

                      The number of rule groups currently associated with the VPC.

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

                      The VPC that Firewall Manager was applying a DNS Fireall policy to reached the limit for associated DNS Firewall rule groups. Firewall Manager tried to associate another rule group with the VPC and failed due to the limit.

                      " + "smithy.api#documentation": "

                      The VPC that Firewall Manager was applying a DNS Fireall policy to reached the limit for associated\n DNS Firewall rule groups. Firewall Manager tried to associate another rule group with the VPC and\n failed due to the limit.

                      " } }, "com.amazonaws.fms#DnsRuleGroupPriorities": { @@ -801,7 +816,7 @@ "ViolationTargetDescription": { "target": "com.amazonaws.fms#LengthBoundedString", "traits": { - "smithy.api#documentation": "

                      A description of the violation that specifies the VPC and the rule group that's already associated with it.

                      " + "smithy.api#documentation": "

                      A description of the violation that specifies the VPC and the rule group that's already\n associated with it.

                      " } }, "ConflictingPriority": { @@ -813,18 +828,18 @@ "ConflictingPolicyId": { "target": "com.amazonaws.fms#PolicyId", "traits": { - "smithy.api#documentation": "

                      The ID of the Firewall Manager DNS Firewall policy that was already applied to the VPC. \n This policy contains the rule group that's already associated with the VPC.

                      " + "smithy.api#documentation": "

                      The ID of the Firewall Manager DNS Firewall policy that was already applied to the VPC. This policy\n contains the rule group that's already associated with the VPC.

                      " } }, "UnavailablePriorities": { "target": "com.amazonaws.fms#DnsRuleGroupPriorities", "traits": { - "smithy.api#documentation": "

                      The priorities of rule groups that are already associated with the VPC. To retry your operation, \n choose priority settings that aren't in this list for the rule groups in your new DNS Firewall policy.

                      " + "smithy.api#documentation": "

                      The priorities of rule groups that are already associated with the VPC. To retry your\n operation, choose priority settings that aren't in this list for the rule groups in your\n new DNS Firewall policy.

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

                      A rule group that Firewall Manager \n tried to associate with a VPC has the same priority as a rule group that's already associated.

                      " + "smithy.api#documentation": "

                      A rule group that Firewall Manager tried to associate with a VPC has the same priority as a rule\n group that's already associated.

                      " } }, "com.amazonaws.fms#EC2AssociateRouteTableAction": { @@ -833,7 +848,7 @@ "Description": { "target": "com.amazonaws.fms#LengthBoundedString", "traits": { - "smithy.api#documentation": "

                      A description of the EC2 route table that is associated with the remediation action.

                      " + "smithy.api#documentation": "

                      A description of the EC2 route table that is associated with the remediation\n action.

                      " } }, "RouteTableId": { @@ -846,18 +861,18 @@ "SubnetId": { "target": "com.amazonaws.fms#ActionTarget", "traits": { - "smithy.api#documentation": "

                      The ID of the subnet for the EC2 route table that is associated with the remediation action.

                      " + "smithy.api#documentation": "

                      The ID of the subnet for the EC2 route table that is associated with the remediation\n action.

                      " } }, "GatewayId": { "target": "com.amazonaws.fms#ActionTarget", "traits": { - "smithy.api#documentation": "

                      The ID of the gateway to be used with the EC2 route table that is associated with the remediation action.

                      " + "smithy.api#documentation": "

                      The ID of the gateway to be used with the EC2 route table that is associated with the\n remediation action.

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

                      The action of associating an EC2 resource, such as a subnet or internet gateway, with a route table.

                      " + "smithy.api#documentation": "

                      The action of associating an EC2 resource, such as a subnet or internet gateway, with a\n route table.

                      " } }, "com.amazonaws.fms#EC2CopyRouteTableAction": { @@ -866,20 +881,20 @@ "Description": { "target": "com.amazonaws.fms#LengthBoundedString", "traits": { - "smithy.api#documentation": "

                      A description of the copied EC2 route table that is associated with the remediation action.

                      " + "smithy.api#documentation": "

                      A description of the copied EC2 route table that is associated with the remediation\n action.

                      " } }, "VpcId": { "target": "com.amazonaws.fms#ActionTarget", "traits": { - "smithy.api#documentation": "

                      The VPC ID of the copied EC2 route table that is associated with the remediation action.

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

                      The VPC ID of the copied EC2 route table that is associated with the remediation\n action.

                      ", "smithy.api#required": {} } }, "RouteTableId": { "target": "com.amazonaws.fms#ActionTarget", "traits": { - "smithy.api#documentation": "

                      The ID of the copied EC2 route table that is associated with the remediation action.

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

                      The ID of the copied EC2 route table that is associated with the remediation\n action.

                      ", "smithy.api#required": {} } } @@ -918,13 +933,13 @@ "VpcEndpointId": { "target": "com.amazonaws.fms#ActionTarget", "traits": { - "smithy.api#documentation": "

                      Information about the ID of a VPC endpoint. Supported for Gateway Load Balancer endpoints only.

                      " + "smithy.api#documentation": "

                      Information about the ID of a VPC endpoint. Supported for Gateway Load Balancer\n endpoints only.

                      " } }, "GatewayId": { "target": "com.amazonaws.fms#ActionTarget", "traits": { - "smithy.api#documentation": "

                      Information about the ID of an internet gateway or virtual private gateway attached to your VPC.

                      " + "smithy.api#documentation": "

                      Information about the ID of an internet gateway or virtual private gateway attached to\n your VPC.

                      " } }, "RouteTableId": { @@ -972,7 +987,7 @@ "DestinationCidrBlock": { "target": "com.amazonaws.fms#CIDR", "traits": { - "smithy.api#documentation": "

                      Information about the IPv4 CIDR range for the route. The value you specify must match the CIDR for the route exactly.

                      " + "smithy.api#documentation": "

                      Information about the IPv4 CIDR range for the route. The value you specify must match\n the CIDR for the route exactly.

                      " } }, "DestinationPrefixListId": { @@ -984,7 +999,7 @@ "DestinationIpv6CidrBlock": { "target": "com.amazonaws.fms#CIDR", "traits": { - "smithy.api#documentation": "

                      Information about the IPv6 CIDR range for the route. The value you specify must match the CIDR for the route exactly.

                      " + "smithy.api#documentation": "

                      Information about the IPv6 CIDR range for the route. The value you specify must match\n the CIDR for the route exactly.

                      " } }, "RouteTableId": { @@ -1011,7 +1026,7 @@ "DestinationCidrBlock": { "target": "com.amazonaws.fms#CIDR", "traits": { - "smithy.api#documentation": "

                      Information about the IPv4 CIDR address block used for the destination match. The value that you provide must match the CIDR of an existing route in the table.

                      " + "smithy.api#documentation": "

                      Information about the IPv4 CIDR address block used for the destination match. The value\n that you provide must match the CIDR of an existing route in the table.

                      " } }, "DestinationPrefixListId": { @@ -1023,7 +1038,7 @@ "DestinationIpv6CidrBlock": { "target": "com.amazonaws.fms#CIDR", "traits": { - "smithy.api#documentation": "

                      Information about the IPv6 CIDR address block used for the destination match. The value that you provide must match the CIDR of an existing route in the table.

                      " + "smithy.api#documentation": "

                      Information about the IPv6 CIDR address block used for the destination match. The value\n that you provide must match the CIDR of an existing route in the table.

                      " } }, "GatewayId": { @@ -1087,18 +1102,18 @@ "ViolatorCount": { "target": "com.amazonaws.fms#ResourceCount", "traits": { - "smithy.api#documentation": "

                      The number of resources that are noncompliant with the specified policy. For WAF and\n Shield Advanced policies, a resource is considered noncompliant if it is not associated with\n the policy. For security group policies, a resource is considered noncompliant if it doesn't\n comply with the rules of the policy and remediation is disabled or not possible.

                      " + "smithy.api#documentation": "

                      The number of resources that are noncompliant with the specified policy. For WAF\n and Shield Advanced policies, a resource is considered noncompliant if it is not associated\n with the policy. For security group policies, a resource is considered noncompliant if it\n doesn't comply with the rules of the policy and remediation is disabled or not\n possible.

                      " } }, "EvaluationLimitExceeded": { "target": "com.amazonaws.fms#Boolean", "traits": { - "smithy.api#documentation": "

                      Indicates that over 100 resources are noncompliant with the Firewall Manager\n policy.

                      " + "smithy.api#documentation": "

                      Indicates that over 100 resources are noncompliant with the Firewall Manager policy.

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

                      Describes the compliance status for the account. An account is considered noncompliant if\n it includes resources that are not protected by the specified policy or that don't comply with\n the policy.

                      " + "smithy.api#documentation": "

                      Describes the compliance status for the account. An account is considered noncompliant\n if it includes resources that are not protected by the specified policy or that don't\n comply with the policy.

                      " } }, "com.amazonaws.fms#EvaluationResults": { @@ -1157,6 +1172,75 @@ "target": "com.amazonaws.fms#ExpectedRoute" } }, + "com.amazonaws.fms#FMSPolicyUpdateFirewallCreationConfigAction": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.fms#LengthBoundedString", + "traits": { + "smithy.api#documentation": "

                      Describes the remedial action.

                      " + } + }, + "FirewallCreationConfig": { + "target": "com.amazonaws.fms#ManagedServiceData", + "traits": { + "smithy.api#documentation": "

                      A FirewallCreationConfig that you can copy into your current policy's\n SecurityServiceData in order to remedy scope violations.

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

                      Contains information about the actions that you can take to remediate scope violations\n caused by your policy's FirewallCreationConfig.\n FirewallCreationConfig is an optional configuration that you can use to\n choose which Availability Zones Firewall Manager creates Network Firewall endpoints in.

                      " + } + }, + "com.amazonaws.fms#FirewallDeploymentModel": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "CENTRALIZED", + "name": "CENTRALIZED" + } + ] + } + }, + "com.amazonaws.fms#FirewallSubnetIsOutOfScopeViolation": { + "type": "structure", + "members": { + "FirewallSubnetId": { + "target": "com.amazonaws.fms#ResourceId", + "traits": { + "smithy.api#documentation": "

                      The ID of the firewall subnet that violates the policy scope.

                      " + } + }, + "VpcId": { + "target": "com.amazonaws.fms#ResourceId", + "traits": { + "smithy.api#documentation": "

                      The VPC ID of the firewall subnet that violates the policy scope.

                      " + } + }, + "SubnetAvailabilityZone": { + "target": "com.amazonaws.fms#LengthBoundedString", + "traits": { + "smithy.api#documentation": "

                      The Availability Zone of the firewall subnet that violates the policy scope.

                      " + } + }, + "SubnetAvailabilityZoneId": { + "target": "com.amazonaws.fms#LengthBoundedString", + "traits": { + "smithy.api#documentation": "

                      The Availability Zone ID of the firewall subnet that violates the policy scope.

                      " + } + }, + "VpcEndpointId": { + "target": "com.amazonaws.fms#ResourceId", + "traits": { + "smithy.api#documentation": "

                      The VPC endpoint ID of the firewall subnet that violates the policy scope.

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

                      Contains details about the firewall subnet that violates the policy scope.

                      " + } + }, "com.amazonaws.fms#GetAdminAccount": { "type": "operation", "input": { @@ -1177,7 +1261,7 @@ } ], "traits": { - "smithy.api#documentation": "

                      Returns the Organizations account that is associated with Firewall Manager\n as the Firewall Manager administrator.

                      " + "smithy.api#documentation": "

                      Returns the Organizations account that is associated with Firewall Manager as the Firewall Manager\n administrator.

                      " } }, "com.amazonaws.fms#GetAdminAccountRequest": { @@ -1196,7 +1280,7 @@ "RoleStatus": { "target": "com.amazonaws.fms#AccountRoleStatus", "traits": { - "smithy.api#documentation": "

                      The status of the Amazon Web Services account that you set as the Firewall Manager\n administrator.

                      " + "smithy.api#documentation": "

                      The status of the Amazon Web Services account that you set as the Firewall Manager administrator.

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

                      Returns detailed compliance information about the specified member account. Details\n include resources that are in and out of compliance with the specified policy.

                      \n
                        \n
                      • \n

                        Resources are\n considered noncompliant for WAF and Shield Advanced policies if the specified policy has\n not been applied to them.

                        \n
                      • \n
                      • \n

                        Resources are considered noncompliant for security group policies if\n they are in scope of the policy, they violate one or more of the policy rules, and remediation\n is disabled or not possible.

                        \n
                      • \n
                      • \n

                        Resources are considered noncompliant for Network Firewall policies\n if a firewall is missing in the VPC, if the firewall endpoint isn't set up in an expected Availability Zone and subnet, \n if a subnet created by the Firewall Manager doesn't have the expected route table, \n and for modifications to a firewall policy that violate the Firewall Manager policy's rules.

                        \n
                      • \n
                      • \n

                        Resources are considered noncompliant for DNS Firewall policies\n if a DNS Firewall rule group is missing from the rule group associations for the VPC.

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

                      Returns detailed compliance information about the specified member account. Details\n include resources that are in and out of compliance with the specified policy.

                      \n
                        \n
                      • \n

                        Resources are considered noncompliant for WAF and Shield Advanced policies\n if the specified policy has not been applied to them.

                        \n
                      • \n
                      • \n

                        Resources are considered noncompliant for security group policies if they are in\n scope of the policy, they violate one or more of the policy rules, and remediation is\n disabled or not possible.

                        \n
                      • \n
                      • \n

                        Resources are considered noncompliant for Network Firewall policies if a firewall is\n missing in the VPC, if the firewall endpoint isn't set up in an expected Availability\n Zone and subnet, if a subnet created by the Firewall Manager doesn't have the expected route\n table, and for modifications to a firewall policy that violate the Firewall Manager policy's\n rules.

                        \n
                      • \n
                      • \n

                        Resources are considered noncompliant for DNS Firewall policies if a DNS Firewall\n rule group is missing from the rule group associations for the VPC.

                        \n
                      • \n
                      " } }, "com.amazonaws.fms#GetComplianceDetailRequest": { @@ -1291,7 +1375,7 @@ "PolicyId": { "target": "com.amazonaws.fms#PolicyId", "traits": { - "smithy.api#documentation": "

                      The ID of the policy that you want to get the details for. PolicyId is\n returned by PutPolicy and by ListPolicies.

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

                      The ID of the policy that you want to get the details for. PolicyId is\n returned by PutPolicy and by ListPolicies.

                      ", "smithy.api#required": {} } }, @@ -1310,7 +1394,7 @@ "PolicyComplianceDetail": { "target": "com.amazonaws.fms#PolicyComplianceDetail", "traits": { - "smithy.api#documentation": "

                      Information about the resources and the policy that you specified in the\n GetComplianceDetail request.

                      " + "smithy.api#documentation": "

                      Information about the resources and the policy that you specified in the\n GetComplianceDetail request.

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

                      Information\n about the Amazon Simple Notification Service (SNS) topic that is used to\n record Firewall Manager SNS logs.

                      " + "smithy.api#documentation": "

                      Information\n about the Amazon Simple Notification Service (SNS) topic that is used to\n record Firewall Manager SNS logs.

                      " } }, "com.amazonaws.fms#GetNotificationChannelRequest": { @@ -1434,7 +1518,7 @@ } ], "traits": { - "smithy.api#documentation": "

                      If you created a Shield Advanced policy, returns policy-level attack summary information\n in the event of a potential DDoS attack. Other policy types are currently unsupported.

                      " + "smithy.api#documentation": "

                      If you created a Shield Advanced policy, returns policy-level attack summary information\n in the event of a potential DDoS attack. Other policy types are currently\n unsupported.

                      " } }, "com.amazonaws.fms#GetProtectionStatusRequest": { @@ -1456,25 +1540,25 @@ "StartTime": { "target": "com.amazonaws.fms#TimeStamp", "traits": { - "smithy.api#documentation": "

                      The start of the time period to query for the attacks. This is a timestamp type. The\n request syntax listing indicates a number type because the default used by Firewall Manager is Unix time in seconds. However, any valid timestamp format is\n allowed.

                      " + "smithy.api#documentation": "

                      The start of the time period to query for the attacks. This is a timestamp\n type. The request syntax listing indicates a number type because the default\n used by Firewall Manager is Unix time in seconds. However, any valid timestamp format\n is allowed.

                      " } }, "EndTime": { "target": "com.amazonaws.fms#TimeStamp", "traits": { - "smithy.api#documentation": "

                      The end of the time period to query for the attacks. This is a timestamp type. The\n request syntax listing indicates a number type because the default used by Firewall Manager is Unix time in seconds. However, any valid timestamp format is\n allowed.

                      " + "smithy.api#documentation": "

                      The end of the time period to query for the attacks. This is a timestamp\n type. The request syntax listing indicates a number type because the default\n used by Firewall Manager is Unix time in seconds. However, any valid timestamp format\n is allowed.

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

                      If you specify a value for MaxResults and you have more objects than the number that you specify \n for MaxResults, Firewall Manager returns a NextToken value in the response, which you can use to retrieve another group of \n objects. For the second and subsequent GetProtectionStatus requests, specify the value of NextToken \n from the previous response to get information about another batch of objects.

                      " + "smithy.api#documentation": "

                      If you specify a value for MaxResults and you have more objects than the\n number that you specify for MaxResults, Firewall Manager returns a\n NextToken value in the response, which you can use to retrieve another\n group of objects. For the second and subsequent GetProtectionStatus requests,\n specify the value of NextToken from the previous response to get information\n about another batch of objects.

                      " } }, "MaxResults": { "target": "com.amazonaws.fms#PaginationMaxResults", "traits": { - "smithy.api#documentation": "

                      Specifies the number of objects that you want Firewall Manager to return for this request. If you have more \n objects than the number that you specify for MaxResults, the response includes a \n NextToken value that you can use to get another batch of objects.

                      " + "smithy.api#documentation": "

                      Specifies the number of objects that you want Firewall Manager to return for this request. If\n you have more objects than the number that you specify for MaxResults, the\n response includes a NextToken value that you can use to get another batch of\n objects.

                      " } } } @@ -1503,7 +1587,7 @@ "NextToken": { "target": "com.amazonaws.fms#PaginationToken", "traits": { - "smithy.api#documentation": "

                      If you have more objects than the number that you specified for MaxResults in the request, \n the response includes a NextToken value. To list more objects, submit another \n GetProtectionStatus request, and specify the NextToken value from the response in the \n NextToken value in the next request.

                      \n

                      Amazon Web Services SDKs provide auto-pagination that identify NextToken in a response and\n make subsequent request calls automatically on your behalf. However, this feature is not\n supported by GetProtectionStatus. You must submit subsequent requests with\n NextToken using your own processes.

                      " + "smithy.api#documentation": "

                      If you have more objects than the number that you specified for MaxResults\n in the request, the response includes a NextToken value. To list more objects,\n submit another GetProtectionStatus request, and specify the\n NextToken value from the response in the NextToken value in\n the next request.

                      \n

                      Amazon Web Services SDKs provide auto-pagination that identify NextToken in a response\n and make subsequent request calls automatically on your behalf. However, this feature is\n not supported by GetProtectionStatus. You must submit subsequent requests with\n NextToken using your own processes.

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

                      Retrieves violations for a resource based on the specified Firewall Manager policy and Amazon Web Services account.

                      " + "smithy.api#documentation": "

                      Retrieves violations for a resource based on the specified Firewall Manager policy and Amazon Web Services\n account.

                      " } }, "com.amazonaws.fms#GetViolationDetailsRequest": { @@ -1595,7 +1679,7 @@ "PolicyId": { "target": "com.amazonaws.fms#PolicyId", "traits": { - "smithy.api#documentation": "

                      The ID of the Firewall Manager policy that you want the details for. This currently only supports security group content audit policies.

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

                      The ID of the Firewall Manager policy that you want the details for. This currently only\n supports security group content audit policies.

                      ", "smithy.api#required": {} } }, @@ -1616,7 +1700,7 @@ "ResourceType": { "target": "com.amazonaws.fms#ResourceType", "traits": { - "smithy.api#documentation": "

                      The resource type. This is in the format shown in the Amazon Web Services Resource Types Reference.\n Supported resource types are:\n AWS::EC2::Instance,\n AWS::EC2::NetworkInterface, \n AWS::EC2::SecurityGroup,\n AWS::NetworkFirewall::FirewallPolicy, and\n AWS::EC2::Subnet.\n

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

                      The resource type. This is in the format shown in the Amazon Web Services\n Resource Types Reference. Supported resource types are:\n AWS::EC2::Instance, AWS::EC2::NetworkInterface,\n AWS::EC2::SecurityGroup, AWS::NetworkFirewall::FirewallPolicy,\n and AWS::EC2::Subnet.

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

                      The operation failed because of a system problem, even though the request was valid. Retry\n your request.

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

                      The operation failed because of a system problem, even though the request was valid.\n Retry your request.

                      ", "smithy.api#error": "client" } }, @@ -1675,7 +1759,7 @@ } }, "traits": { - "smithy.api#documentation": "

                      The operation failed because there was nothing to do or the operation wasn't possible. For example, you might have\n submitted an AssociateAdminAccount request for an account ID that \n was already set as the Firewall Manager administrator. Or you might have tried to access a Region\n that's disabled by default, and that you need to enable for the Firewall Manager \n administrator account and for Organizations before you can access it.

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

                      The operation failed because there was nothing to do or the operation wasn't possible.\n For example, you might have submitted an AssociateAdminAccount request for an\n account ID that was already set as the Firewall Manager administrator. Or you might have tried to\n access a Region that's disabled by default, and that you need to enable for the Firewall Manager\n administrator account and for Organizations before you can access it.

                      ", "smithy.api#error": "client" } }, @@ -1723,7 +1807,7 @@ } }, "traits": { - "smithy.api#documentation": "

                      The operation exceeds a resource limit, for example, the maximum number of\n policy objects that you can create for an Amazon Web Services account. For more information,\n see Firewall\n Manager Limits in the WAF Developer Guide.

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

                      The operation exceeds a resource limit, for example, the maximum number of\n policy objects that you can create for an Amazon Web Services account. For more\n information, see Firewall Manager Limits in the\n WAF Developer Guide.

                      ", "smithy.api#error": "client" } }, @@ -1771,13 +1855,13 @@ "NextToken": { "target": "com.amazonaws.fms#PaginationToken", "traits": { - "smithy.api#documentation": "

                      If you specify a value for MaxResults in your list request, and you have more objects than the maximum, \n Firewall Manager returns this token in the response. For all but the first request, you provide the token returned by the prior request \n in the request parameters, to retrieve the next batch of objects.

                      " + "smithy.api#documentation": "

                      If you specify a value for MaxResults in your list request, and you have\n more objects than the maximum, Firewall Manager returns this token in the response. For all but\n the first request, you provide the token returned by the prior request in the request\n parameters, to retrieve the next batch of objects.

                      " } }, "MaxResults": { "target": "com.amazonaws.fms#PaginationMaxResults", "traits": { - "smithy.api#documentation": "

                      The maximum number of objects that you want Firewall Manager to return for this request. If more\n objects are available, in the response, Firewall Manager provides a\n NextToken value that you can use in a subsequent call to get the next batch of objects.

                      \n

                      If you don't specify this, Firewall Manager returns all available objects.

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

                      The maximum number of objects that you want Firewall Manager to return for this request. If\n more objects are available, in the response, Firewall Manager provides a NextToken\n value that you can use in a subsequent call to get the next batch of objects.

                      \n

                      If you don't specify this, Firewall Manager returns all available objects.

                      ", "smithy.api#required": {} } } @@ -1795,7 +1879,7 @@ "NextToken": { "target": "com.amazonaws.fms#PaginationToken", "traits": { - "smithy.api#documentation": "

                      If you specify a value for MaxResults in your list request, and you have more objects than the maximum, \n Firewall Manager returns this token in the response. You can use this token in subsequent requests to retrieve the next batch of objects.

                      " + "smithy.api#documentation": "

                      If you specify a value for MaxResults in your list request, and you have\n more objects than the maximum, Firewall Manager returns this token in the response. You can use\n this token in subsequent requests to retrieve the next batch of objects.

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

                      Returns an array of PolicyComplianceStatus objects. Use\n PolicyComplianceStatus to get a summary of which member accounts are protected\n by the specified policy.

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

                      Returns an array of PolicyComplianceStatus objects. Use\n PolicyComplianceStatus to get a summary of which member accounts are\n protected by the specified policy.

                      ", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -1839,13 +1923,13 @@ "NextToken": { "target": "com.amazonaws.fms#PaginationToken", "traits": { - "smithy.api#documentation": "

                      If you specify a value for MaxResults and you have more\n PolicyComplianceStatus objects than the number that you specify for\n MaxResults, Firewall Manager returns a NextToken value in the\n response that allows you to list another group of PolicyComplianceStatus objects.\n For the second and subsequent ListComplianceStatus requests, specify the value of\n NextToken from the previous response to get information about another batch of\n PolicyComplianceStatus objects.

                      " + "smithy.api#documentation": "

                      If you specify a value for MaxResults and you have more\n PolicyComplianceStatus objects than the number that you specify for\n MaxResults, Firewall Manager returns a NextToken value in the\n response that allows you to list another group of PolicyComplianceStatus\n objects. For the second and subsequent ListComplianceStatus requests, specify\n the value of NextToken from the previous response to get information about\n another batch of PolicyComplianceStatus objects.

                      " } }, "MaxResults": { "target": "com.amazonaws.fms#PaginationMaxResults", "traits": { - "smithy.api#documentation": "

                      Specifies the number of PolicyComplianceStatus objects that you want \n Firewall Manager to return for this request. If you have more\n PolicyComplianceStatus objects than the number that you specify for\n MaxResults, the response includes a NextToken value that you can\n use to get another batch of PolicyComplianceStatus objects.

                      " + "smithy.api#documentation": "

                      Specifies the number of PolicyComplianceStatus objects that you want Firewall Manager\n to return for this request. If you have more PolicyComplianceStatus objects\n than the number that you specify for MaxResults, the response includes a\n NextToken value that you can use to get another batch of\n PolicyComplianceStatus objects.

                      " } } } @@ -1862,7 +1946,7 @@ "NextToken": { "target": "com.amazonaws.fms#PaginationToken", "traits": { - "smithy.api#documentation": "

                      If you have more PolicyComplianceStatus objects than the number that you\n specified for MaxResults in the request, the response includes a\n NextToken value. To list more PolicyComplianceStatus objects,\n submit another ListComplianceStatus request, and specify the\n NextToken value from the response in the NextToken value in the\n next request.

                      " + "smithy.api#documentation": "

                      If you have more PolicyComplianceStatus objects than the number that you\n specified for MaxResults in the request, the response includes a\n NextToken value. To list more PolicyComplianceStatus objects,\n submit another ListComplianceStatus request, and specify the\n NextToken value from the response in the NextToken value in\n the next request.

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

                      Returns a MemberAccounts object that lists the member accounts in the\n administrator's Amazon Web Services organization.

                      \n

                      The ListMemberAccounts must be submitted by the account that is set as the\n Firewall Manager administrator.

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

                      Returns a MemberAccounts object that lists the member accounts in the\n administrator's Amazon Web Services organization.

                      \n

                      The ListMemberAccounts must be submitted by the account that is set as the\n Firewall Manager administrator.

                      ", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -1909,13 +1993,13 @@ "NextToken": { "target": "com.amazonaws.fms#PaginationToken", "traits": { - "smithy.api#documentation": "

                      If you specify a value for MaxResults and you have more account IDs than the\n number that you specify for MaxResults, Firewall Manager returns a\n NextToken value in the response that allows you to list another group of IDs.\n For the second and subsequent ListMemberAccountsRequest requests, specify the\n value of NextToken from the previous response to get information about another\n batch of member account IDs.

                      " + "smithy.api#documentation": "

                      If you specify a value for MaxResults and you have more account IDs than\n the number that you specify for MaxResults, Firewall Manager returns a\n NextToken value in the response that allows you to list another group of\n IDs. For the second and subsequent ListMemberAccountsRequest requests, specify\n the value of NextToken from the previous response to get information about\n another batch of member account IDs.

                      " } }, "MaxResults": { "target": "com.amazonaws.fms#PaginationMaxResults", "traits": { - "smithy.api#documentation": "

                      Specifies the number of member account IDs that you want Firewall Manager to return\n for this request. If you have more IDs than the number that you specify for\n MaxResults, the response includes a NextToken value that you can\n use to get another batch of member account IDs.

                      " + "smithy.api#documentation": "

                      Specifies the number of member account IDs that you want Firewall Manager to return for this\n request. If you have more IDs than the number that you specify for MaxResults,\n the response includes a NextToken value that you can use to get another batch\n of member account IDs.

                      " } } } @@ -1932,7 +2016,7 @@ "NextToken": { "target": "com.amazonaws.fms#PaginationToken", "traits": { - "smithy.api#documentation": "

                      If you have more member account IDs than the number that you specified for\n MaxResults in the request, the response includes a NextToken\n value. To list more IDs, submit another ListMemberAccounts request, and specify\n the NextToken value from the response in the NextToken value in the\n next request.

                      " + "smithy.api#documentation": "

                      If you have more member account IDs than the number that you specified for\n MaxResults in the request, the response includes a NextToken\n value. To list more IDs, submit another ListMemberAccounts request, and\n specify the NextToken value from the response in the NextToken\n value in the next request.

                      " } } } @@ -1975,13 +2059,13 @@ "NextToken": { "target": "com.amazonaws.fms#PaginationToken", "traits": { - "smithy.api#documentation": "

                      If you specify a value for MaxResults and you have more\n PolicySummary objects than the number that you specify for\n MaxResults, Firewall Manager returns a NextToken value in the\n response that allows you to list another group of PolicySummary objects. For the\n second and subsequent ListPolicies requests, specify the value of\n NextToken from the previous response to get information about another batch of\n PolicySummary objects.

                      " + "smithy.api#documentation": "

                      If you specify a value for MaxResults and you have more\n PolicySummary objects than the number that you specify for\n MaxResults, Firewall Manager returns a NextToken value in the\n response that allows you to list another group of PolicySummary objects. For\n the second and subsequent ListPolicies requests, specify the value of\n NextToken from the previous response to get information about another batch\n of PolicySummary objects.

                      " } }, "MaxResults": { "target": "com.amazonaws.fms#PaginationMaxResults", "traits": { - "smithy.api#documentation": "

                      Specifies the number of PolicySummary objects that you want Firewall Manager to return for this request. If you have more PolicySummary objects than\n the number that you specify for MaxResults, the response includes a\n NextToken value that you can use to get another batch of\n PolicySummary objects.

                      " + "smithy.api#documentation": "

                      Specifies the number of PolicySummary objects that you want Firewall Manager to\n return for this request. If you have more PolicySummary objects than the\n number that you specify for MaxResults, the response includes a\n NextToken value that you can use to get another batch of\n PolicySummary objects.

                      " } } } @@ -1998,7 +2082,7 @@ "NextToken": { "target": "com.amazonaws.fms#PaginationToken", "traits": { - "smithy.api#documentation": "

                      If you have more PolicySummary objects than the number that you specified for\n MaxResults in the request, the response includes a NextToken\n value. To list more PolicySummary objects, submit another\n ListPolicies request, and specify the NextToken value from the\n response in the NextToken value in the next request.

                      " + "smithy.api#documentation": "

                      If you have more PolicySummary objects than the number that you specified\n for MaxResults in the request, the response includes a NextToken\n value. To list more PolicySummary objects, submit another\n ListPolicies request, and specify the NextToken value from the\n response in the NextToken value in the next request.

                      " } } } @@ -2044,13 +2128,13 @@ "NextToken": { "target": "com.amazonaws.fms#PaginationToken", "traits": { - "smithy.api#documentation": "

                      If you specify a value for MaxResults in your list request, and you have more objects than the maximum, \n Firewall Manager returns this token in the response. For all but the first request, you provide the token returned by the prior request \n in the request parameters, to retrieve the next batch of objects.

                      " + "smithy.api#documentation": "

                      If you specify a value for MaxResults in your list request, and you have\n more objects than the maximum, Firewall Manager returns this token in the response. For all but\n the first request, you provide the token returned by the prior request in the request\n parameters, to retrieve the next batch of objects.

                      " } }, "MaxResults": { "target": "com.amazonaws.fms#PaginationMaxResults", "traits": { - "smithy.api#documentation": "

                      The maximum number of objects that you want Firewall Manager to return for this request. If more\n objects are available, in the response, Firewall Manager provides a\n NextToken value that you can use in a subsequent call to get the next batch of objects.

                      \n

                      If you don't specify this, Firewall Manager returns all available objects.

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

                      The maximum number of objects that you want Firewall Manager to return for this request. If\n more objects are available, in the response, Firewall Manager provides a NextToken\n value that you can use in a subsequent call to get the next batch of objects.

                      \n

                      If you don't specify this, Firewall Manager returns all available objects.

                      ", "smithy.api#required": {} } } @@ -2068,7 +2152,7 @@ "NextToken": { "target": "com.amazonaws.fms#PaginationToken", "traits": { - "smithy.api#documentation": "

                      If you specify a value for MaxResults in your list request, and you have more objects than the maximum, \n Firewall Manager returns this token in the response. You can use this token in subsequent requests to retrieve the next batch of objects.

                      " + "smithy.api#documentation": "

                      If you specify a value for MaxResults in your list request, and you have\n more objects than the maximum, Firewall Manager returns this token in the response. You can use\n this token in subsequent requests to retrieve the next batch of objects.

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

                      Retrieves the list of tags for the specified Amazon Web Services resource.

                      " + "smithy.api#documentation": "

                      Retrieves the list of tags for the specified Amazon Web Services resource.

                      " } }, "com.amazonaws.fms#ListTagsForResourceRequest": { @@ -2105,7 +2189,7 @@ "ResourceArn": { "target": "com.amazonaws.fms#ResourceArn", "traits": { - "smithy.api#documentation": "

                      The Amazon Resource Name (ARN) of the resource to return tags for. The Firewall Manager resources that support tagging are policies, applications lists, and protocols lists.

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

                      The Amazon Resource Name (ARN) of the resource to return tags for. The Firewall Manager\n resources that support tagging are policies, applications lists, and protocols lists.\n

                      ", "smithy.api#required": {} } } @@ -2129,7 +2213,7 @@ "min": 1, "max": 8192 }, - "smithy.api#pattern": ".*" + "smithy.api#pattern": "^((?!\\\\[nr]).)+$" } }, "com.amazonaws.fms#MemberAccounts": { @@ -2183,7 +2267,7 @@ } }, "traits": { - "smithy.api#documentation": "

                      Violation detail for an internet gateway route with an inactive state in the customer subnet route table or Network Firewall subnet route table.

                      " + "smithy.api#documentation": "

                      Violation detail for an internet gateway route with an inactive state in the customer\n subnet route table or Network Firewall subnet route table.

                      " } }, "com.amazonaws.fms#NetworkFirewallInternetTrafficNotInspectedViolation": { @@ -2281,7 +2365,7 @@ } }, "traits": { - "smithy.api#documentation": "

                      Violation detail for the subnet for which internet traffic that hasn't been inspected.

                      " + "smithy.api#documentation": "

                      Violation detail for the subnet for which internet traffic that hasn't been\n inspected.

                      " } }, "com.amazonaws.fms#NetworkFirewallInvalidRouteConfigurationViolation": { @@ -2385,7 +2469,7 @@ } }, "traits": { - "smithy.api#documentation": "

                      Violation detail for the improperly configured subnet route. It's possible there is a missing route table route,\n or a configuration that causes traffic to cross an Availability Zone boundary.

                      " + "smithy.api#documentation": "

                      Violation detail for the improperly configured subnet route. It's possible there is a\n missing route table route, or a configuration that causes traffic to cross an Availability\n Zone boundary.

                      " } }, "com.amazonaws.fms#NetworkFirewallMissingExpectedRTViolation": { @@ -2412,7 +2496,7 @@ "CurrentRouteTable": { "target": "com.amazonaws.fms#ResourceId", "traits": { - "smithy.api#documentation": "

                      The resource ID of the current route table that's associated with the subnet, if one is available.

                      " + "smithy.api#documentation": "

                      The resource ID of the current route table that's associated with the subnet, if one is\n available.

                      " } }, "ExpectedRouteTable": { @@ -2423,7 +2507,7 @@ } }, "traits": { - "smithy.api#documentation": "

                      Violation detail for Network Firewall for a subnet that's not associated to the expected\n Firewall Manager managed route table.

                      " + "smithy.api#documentation": "

                      Violation detail for Network Firewall for a subnet that's not associated to the expected Firewall Manager\n managed route table.

                      " } }, "com.amazonaws.fms#NetworkFirewallMissingExpectedRoutesViolation": { @@ -2481,7 +2565,7 @@ } }, "traits": { - "smithy.api#documentation": "

                      Violation detail for Network Firewall for a subnet that doesn't have a \n Firewall Manager managed firewall in its VPC.

                      " + "smithy.api#documentation": "

                      Violation detail for Network Firewall for a subnet that doesn't have a Firewall Manager managed firewall\n in its VPC.

                      " } }, "com.amazonaws.fms#NetworkFirewallMissingSubnetViolation": { @@ -2513,7 +2597,21 @@ } }, "traits": { - "smithy.api#documentation": "

                      Violation detail for Network Firewall for an Availability Zone that's \n missing the expected Firewall Manager managed subnet.

                      " + "smithy.api#documentation": "

                      Violation detail for Network Firewall for an Availability Zone that's missing the expected\n Firewall Manager managed subnet.

                      " + } + }, + "com.amazonaws.fms#NetworkFirewallPolicy": { + "type": "structure", + "members": { + "FirewallDeploymentModel": { + "target": "com.amazonaws.fms#FirewallDeploymentModel", + "traits": { + "smithy.api#documentation": "

                      Defines the deployment model to use for the firewall policy. To use a distributed model,\n set PolicyOption to NULL.

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

                      Configures the firewall policy deployment model of Network Firewall. For information about\n Network Firewall deployment models, see Network Firewall example\n architectures with routing in the Network Firewall Developer\n Guide.

                      " } }, "com.amazonaws.fms#NetworkFirewallPolicyDescription": { @@ -2528,19 +2626,19 @@ "StatelessDefaultActions": { "target": "com.amazonaws.fms#NetworkFirewallActionList", "traits": { - "smithy.api#documentation": "

                      The actions to take on packets that don't match any of the stateless rule groups.

                      " + "smithy.api#documentation": "

                      The actions to take on packets that don't match any of the stateless rule groups.\n

                      " } }, "StatelessFragmentDefaultActions": { "target": "com.amazonaws.fms#NetworkFirewallActionList", "traits": { - "smithy.api#documentation": "

                      The actions to take on packet fragments that don't match any of the stateless rule groups.

                      " + "smithy.api#documentation": "

                      The actions to take on packet fragments that don't match any of the stateless rule\n groups.

                      " } }, "StatelessCustomActions": { "target": "com.amazonaws.fms#NetworkFirewallActionList", "traits": { - "smithy.api#documentation": "

                      Names of custom actions that are available for use in the stateless default actions settings.

                      " + "smithy.api#documentation": "

                      Names of custom actions that are available for use in the stateless default actions\n settings.

                      " } }, "StatefulRuleGroups": { @@ -2572,12 +2670,12 @@ "ExpectedPolicyDescription": { "target": "com.amazonaws.fms#NetworkFirewallPolicyDescription", "traits": { - "smithy.api#documentation": "

                      The policy that should be in use in the individual account in order to be compliant.

                      " + "smithy.api#documentation": "

                      The policy that should be in use in the individual account in order to be compliant.\n

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

                      Violation detail for Network Firewall for a firewall policy that has a different\n NetworkFirewallPolicyDescription than is required by the Firewall Manager policy.

                      " + "smithy.api#documentation": "

                      Violation detail for Network Firewall for a firewall policy that has a different NetworkFirewallPolicyDescription than is required by the Firewall Manager policy.\n

                      " } }, "com.amazonaws.fms#NetworkFirewallResourceName": { @@ -2646,7 +2744,7 @@ "RouteTableId": { "target": "com.amazonaws.fms#ResourceId", "traits": { - "smithy.api#documentation": "

                      Information about the route table.

                      " + "smithy.api#documentation": "

                      Information about the route table.

                      " } }, "VpcId": { @@ -2703,7 +2801,7 @@ } }, "traits": { - "smithy.api#documentation": "

                      The reference rule that partially matches the ViolationTarget rule and violation reason.

                      " + "smithy.api#documentation": "

                      The reference rule that partially matches the ViolationTarget rule and\n violation reason.

                      " } }, "com.amazonaws.fms#PartialMatches": { @@ -2731,7 +2829,7 @@ "PolicyUpdateToken": { "target": "com.amazonaws.fms#PolicyUpdateToken", "traits": { - "smithy.api#documentation": "

                      A unique identifier for each update to the policy. When issuing a PutPolicy\n request, the PolicyUpdateToken in the request must match the\n PolicyUpdateToken of the current policy version. To get the\n PolicyUpdateToken of the current policy version, use a GetPolicy\n request.

                      " + "smithy.api#documentation": "

                      A unique identifier for each update to the policy. When issuing a PutPolicy\n request, the PolicyUpdateToken in the request must match the\n PolicyUpdateToken of the current policy version. To get the\n PolicyUpdateToken of the current policy version, use a\n GetPolicy request.

                      " } }, "SecurityServicePolicyData": { @@ -2744,14 +2842,14 @@ "ResourceType": { "target": "com.amazonaws.fms#ResourceType", "traits": { - "smithy.api#documentation": "

                      The type of resource protected by or in scope of the policy. This is in the format shown\n in the Amazon Web Services Resource Types Reference.\n To apply this policy to multiple resource types, specify a resource type of ResourceTypeList and then specify the resource types in a ResourceTypeList.

                      \n

                      For WAF and Shield Advanced, resource types include\n AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::ElasticLoadBalancing::LoadBalancer, AWS::EC2::EIP, and\n AWS::CloudFront::Distribution. For a security group common policy, valid values\n are AWS::EC2::NetworkInterface and AWS::EC2::Instance. For a\n security group content audit policy, valid values are AWS::EC2::SecurityGroup,\n AWS::EC2::NetworkInterface, and AWS::EC2::Instance. For a security\n group usage audit policy, the value is AWS::EC2::SecurityGroup. For an Network Firewall policy or DNS Firewall policy,\n the value is AWS::EC2::VPC.

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

                      The type of resource protected by or in scope of the policy. This is in the format shown\n in the Amazon Web Services\n Resource Types Reference. To apply this policy to multiple resource types,\n specify a resource type of ResourceTypeList and then specify the resource\n types in a ResourceTypeList.

                      \n

                      For WAF and Shield Advanced, resource types include\n AWS::ElasticLoadBalancingV2::LoadBalancer,\n AWS::ElasticLoadBalancing::LoadBalancer, AWS::EC2::EIP, and\n AWS::CloudFront::Distribution. For a security group common policy, valid\n values are AWS::EC2::NetworkInterface and AWS::EC2::Instance. For\n a security group content audit policy, valid values are\n AWS::EC2::SecurityGroup, AWS::EC2::NetworkInterface, and\n AWS::EC2::Instance. For a security group usage audit policy, the value is\n AWS::EC2::SecurityGroup. For an Network Firewall policy or DNS Firewall policy,\n the value is AWS::EC2::VPC.

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

                      An array of ResourceType objects. Use this only to specify multiple resource types. To specify a single resource type, use ResourceType.

                      " + "smithy.api#documentation": "

                      An array of ResourceType objects. Use this only to specify multiple\n resource types. To specify a single resource type, use ResourceType.

                      " } }, "ResourceTags": { @@ -2763,7 +2861,7 @@ "ExcludeResourceTags": { "target": "com.amazonaws.fms#Boolean", "traits": { - "smithy.api#documentation": "

                      If set to True, resources with the tags that are specified in the\n ResourceTag array are not in scope of the policy. If set to False,\n and the ResourceTag array is not null, only resources with the specified tags are\n in scope of the policy.

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

                      If set to True, resources with the tags that are specified in the\n ResourceTag array are not in scope of the policy. If set to\n False, and the ResourceTag array is not null, only resources\n with the specified tags are in scope of the policy.

                      \n

                      This option isn't available for the centralized deployment model when creating policies\n to configure Network Firewall.

                      ", "smithy.api#required": {} } }, @@ -2777,19 +2875,19 @@ "DeleteUnusedFMManagedResources": { "target": "com.amazonaws.fms#Boolean", "traits": { - "smithy.api#documentation": "

                      Indicates whether Firewall Manager should automatically remove protections from resources that leave the policy scope and clean up resources \n that Firewall Manager is managing for accounts when those accounts leave policy scope. For example, Firewall Manager will disassociate a Firewall Manager managed web ACL \n from a protected customer resource when the customer resource leaves policy scope.

                      \n

                      By default, Firewall Manager doesn't remove protections or delete Firewall Manager managed resources.

                      \n

                      This option is not available for Shield Advanced or WAF Classic policies.

                      " + "smithy.api#documentation": "

                      Indicates whether Firewall Manager should automatically remove protections from resources that leave the policy scope and clean up resources\n that Firewall Manager is managing for accounts when those accounts leave policy scope. For example, Firewall Manager will disassociate a Firewall Manager managed web ACL\n from a protected customer resource when the customer resource leaves policy scope.

                      \n

                      By default, Firewall Manager doesn't remove protections or delete Firewall Manager managed resources.

                      \n

                      This option is not available for Shield Advanced or WAF Classic policies.

                      " } }, "IncludeMap": { "target": "com.amazonaws.fms#CustomerPolicyScopeMap", "traits": { - "smithy.api#documentation": "

                      Specifies the Amazon Web Services account IDs and Organizations organizational units (OUs) to include in the policy. \n Specifying an OU is the equivalent of specifying all accounts in the OU and in any of its child OUs, including any child OUs and accounts that are added at a later time.

                      \n

                      You can specify inclusions or exclusions, but not both. If you specify an IncludeMap, Firewall Manager \n applies the policy to all accounts specified by the IncludeMap, and \n does not evaluate any ExcludeMap specifications. If you do not specify an IncludeMap, then Firewall Manager \n applies the policy to all accounts except for those specified by the ExcludeMap.

                      \n

                      You can specify account IDs, OUs, or a combination:

                      \n
                        \n
                      • \n

                        Specify account IDs by setting the key to ACCOUNT. For example, the following is a valid map: \n {“ACCOUNT” : [“accountID1”, “accountID2”]}.

                        \n
                      • \n
                      • \n

                        Specify OUs by setting the key to ORG_UNIT. For example, the following is a valid map: \n {“ORG_UNIT” : [“ouid111”, “ouid112”]}.

                        \n
                      • \n
                      • \n

                        Specify accounts and OUs together in a single map, separated with a comma. For example, the following is a valid map:\n {“ACCOUNT” : [“accountID1”, “accountID2”], “ORG_UNIT” : [“ouid111”, “ouid112”]}.

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

                      Specifies the Amazon Web Services account IDs and Organizations organizational units (OUs) to include in\n the policy. Specifying an OU is the equivalent of specifying all accounts in the OU and in\n any of its child OUs, including any child OUs and accounts that are added at a later\n time.

                      \n

                      You can specify inclusions or exclusions, but not both. If you specify an\n IncludeMap, Firewall Manager applies the policy to all accounts specified by the\n IncludeMap, and does not evaluate any ExcludeMap\n specifications. If you do not specify an IncludeMap, then Firewall Manager applies the\n policy to all accounts except for those specified by the ExcludeMap.

                      \n

                      You can specify account IDs, OUs, or a combination:

                      \n
                        \n
                      • \n

                        Specify account IDs by setting the key to ACCOUNT. For example, the\n following is a valid map: {“ACCOUNT” : [“accountID1”,\n “accountID2”]}.

                        \n
                      • \n
                      • \n

                        Specify OUs by setting the key to ORG_UNIT. For example, the\n following is a valid map: {“ORG_UNIT” : [“ouid111”, “ouid112”]}.

                        \n
                      • \n
                      • \n

                        Specify accounts and OUs together in a single map, separated with a comma. For\n example, the following is a valid map: {“ACCOUNT” : [“accountID1”,\n “accountID2”], “ORG_UNIT” : [“ouid111”, “ouid112”]}.

                        \n
                      • \n
                      \n

                      This option isn't available for the centralized deployment model when creating policies\n to configure Network Firewall.

                      " } }, "ExcludeMap": { "target": "com.amazonaws.fms#CustomerPolicyScopeMap", "traits": { - "smithy.api#documentation": "

                      Specifies the Amazon Web Services account IDs and Organizations organizational units (OUs) to exclude from the policy. \n Specifying an OU is the equivalent of specifying all accounts in the OU and in any of its child OUs, including any child OUs and accounts that are added at a later time.

                      \n

                      You can specify inclusions or exclusions, but not both. If you specify an IncludeMap, Firewall Manager \n applies the policy to all accounts specified by the IncludeMap, and \n does not evaluate any ExcludeMap specifications. If you do not specify an IncludeMap, then Firewall Manager \n applies the policy to all accounts except for those specified by the ExcludeMap.

                      \n

                      You can specify account IDs, OUs, or a combination:

                      \n
                        \n
                      • \n

                        Specify account IDs by setting the key to ACCOUNT. For example, the following is a valid map: \n {“ACCOUNT” : [“accountID1”, “accountID2”]}.

                        \n
                      • \n
                      • \n

                        Specify OUs by setting the key to ORG_UNIT. For example, the following is a valid map: \n {“ORG_UNIT” : [“ouid111”, “ouid112”]}.

                        \n
                      • \n
                      • \n

                        Specify accounts and OUs together in a single map, separated with a comma. For example, the following is a valid map:\n {“ACCOUNT” : [“accountID1”, “accountID2”], “ORG_UNIT” : [“ouid111”, “ouid112”]}.

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

                      Specifies the Amazon Web Services account IDs and Organizations organizational units (OUs) to exclude from\n the policy. Specifying an OU is the equivalent of specifying all accounts in the OU and in\n any of its child OUs, including any child OUs and accounts that are added at a later\n time.

                      \n

                      You can specify inclusions or exclusions, but not both. If you specify an\n IncludeMap, Firewall Manager applies the policy to all accounts specified by the\n IncludeMap, and does not evaluate any ExcludeMap\n specifications. If you do not specify an IncludeMap, then Firewall Manager applies the\n policy to all accounts except for those specified by the ExcludeMap.

                      \n

                      You can specify account IDs, OUs, or a combination:

                      \n
                        \n
                      • \n

                        Specify account IDs by setting the key to ACCOUNT. For example, the\n following is a valid map: {“ACCOUNT” : [“accountID1”,\n “accountID2”]}.

                        \n
                      • \n
                      • \n

                        Specify OUs by setting the key to ORG_UNIT. For example, the\n following is a valid map: {“ORG_UNIT” : [“ouid111”, “ouid112”]}.

                        \n
                      • \n
                      • \n

                        Specify accounts and OUs together in a single map, separated with a comma. For\n example, the following is a valid map: {“ACCOUNT” : [“accountID1”,\n “accountID2”], “ORG_UNIT” : [“ouid111”, “ouid112”]}.

                        \n
                      • \n
                      \n

                      This option isn't available for the centralized deployment model when creating policies\n to configure Network Firewall.

                      " } } }, @@ -2821,30 +2919,30 @@ "Violators": { "target": "com.amazonaws.fms#ComplianceViolators", "traits": { - "smithy.api#documentation": "

                      An array of resources that aren't protected by the WAF or Shield Advanced policy or\n that aren't in compliance with the security group policy.

                      " + "smithy.api#documentation": "

                      An array of resources that aren't protected by the WAF or Shield Advanced policy\n or that aren't in compliance with the security group policy.

                      " } }, "EvaluationLimitExceeded": { "target": "com.amazonaws.fms#Boolean", "traits": { - "smithy.api#documentation": "

                      Indicates if over 100 resources are noncompliant with the Firewall Manager\n policy.

                      " + "smithy.api#documentation": "

                      Indicates if over 100 resources are noncompliant with the Firewall Manager policy.

                      " } }, "ExpiredAt": { "target": "com.amazonaws.fms#TimeStamp", "traits": { - "smithy.api#documentation": "

                      A timestamp that indicates when the returned information should be considered out of\n date.

                      " + "smithy.api#documentation": "

                      A timestamp that indicates when the returned information should be considered out of\n date.

                      " } }, "IssueInfoMap": { "target": "com.amazonaws.fms#IssueInfoMap", "traits": { - "smithy.api#documentation": "

                      Details about problems with dependent services, such as WAF or Config,\n and the error message received that indicates the problem with the service.

                      " + "smithy.api#documentation": "

                      Details about problems with dependent services, such as WAF or Config, and the\n error message received that indicates the problem with the service.

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

                      Describes\n the noncompliant resources in a member account for a specific Firewall Manager policy. A maximum of 100 entries are displayed. If more than 100 resources are\n noncompliant, EvaluationLimitExceeded is set to True.

                      " + "smithy.api#documentation": "

                      Describes\n the noncompliant resources in a member account for a specific Firewall Manager\n policy. A maximum of 100 entries are displayed. If more than 100 resources are\n noncompliant, EvaluationLimitExceeded is set to True.

                      " } }, "com.amazonaws.fms#PolicyComplianceStatus": { @@ -2889,12 +2987,12 @@ "IssueInfoMap": { "target": "com.amazonaws.fms#IssueInfoMap", "traits": { - "smithy.api#documentation": "

                      Details about problems with dependent services, such as WAF or Config,\n and the error message received that indicates the problem with the service.

                      " + "smithy.api#documentation": "

                      Details about problems with dependent services, such as WAF or Config, and the\n error message received that indicates the problem with the service.

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

                      Indicates whether the account is compliant with the specified policy. An account is\n considered noncompliant if it includes resources that are not protected by the policy, for \n WAF and Shield Advanced policies, or that are noncompliant with the policy, for security group\n policies.

                      " + "smithy.api#documentation": "

                      Indicates whether the account is compliant with the specified policy. An account is\n considered noncompliant if it includes resources that are not protected by the policy, for\n WAF and Shield Advanced policies, or that are noncompliant with the policy, for\n security group policies.

                      " } }, "com.amazonaws.fms#PolicyComplianceStatusList": { @@ -2928,6 +3026,20 @@ "smithy.api#pattern": "^[a-z0-9A-Z-]{36}$" } }, + "com.amazonaws.fms#PolicyOption": { + "type": "structure", + "members": { + "NetworkFirewallPolicy": { + "target": "com.amazonaws.fms#NetworkFirewallPolicy", + "traits": { + "smithy.api#documentation": "

                      Defines the deployment model to use for the firewall policy.

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

                      Contains the Network Firewall firewall policy options to configure a centralized deployment\n model.

                      " + } + }, "com.amazonaws.fms#PolicySummary": { "type": "structure", "members": { @@ -2952,13 +3064,13 @@ "ResourceType": { "target": "com.amazonaws.fms#ResourceType", "traits": { - "smithy.api#documentation": "

                      The type of resource protected by or in scope of the policy. This is in the format shown\n in the Amazon Web Services Resource Types Reference. \n For WAF and Shield Advanced, examples include\n AWS::ElasticLoadBalancingV2::LoadBalancer and\n AWS::CloudFront::Distribution. For a security group common policy, valid values\n are AWS::EC2::NetworkInterface and AWS::EC2::Instance. For a\n security group content audit policy, valid values are AWS::EC2::SecurityGroup,\n AWS::EC2::NetworkInterface, and AWS::EC2::Instance. For a security\n group usage audit policy, the value is AWS::EC2::SecurityGroup. For an Network Firewall policy or DNS Firewall policy,\n the value is AWS::EC2::VPC.

                      " + "smithy.api#documentation": "

                      The type of resource protected by or in scope of the policy. This is in the format shown\n in the Amazon Web Services\n Resource Types Reference. For WAF and Shield Advanced, examples include\n AWS::ElasticLoadBalancingV2::LoadBalancer and\n AWS::CloudFront::Distribution. For a security group common policy, valid\n values are AWS::EC2::NetworkInterface and AWS::EC2::Instance. For\n a security group content audit policy, valid values are\n AWS::EC2::SecurityGroup, AWS::EC2::NetworkInterface, and\n AWS::EC2::Instance. For a security group usage audit policy, the value is\n AWS::EC2::SecurityGroup. For an Network Firewall policy or DNS Firewall policy,\n the value is AWS::EC2::VPC.

                      " } }, "SecurityServiceType": { "target": "com.amazonaws.fms#SecurityServiceType", "traits": { - "smithy.api#documentation": "

                      The service that the policy is using to protect the resources. This specifies the type of\n policy that is created, either an WAF policy, a Shield Advanced policy, or a security\n group policy.

                      " + "smithy.api#documentation": "

                      The service that the policy is using to protect the resources. This specifies the type\n of policy that is created, either an WAF policy, a Shield Advanced policy, or a\n security group policy.

                      " } }, "RemediationEnabled": { @@ -2970,7 +3082,7 @@ "DeleteUnusedFMManagedResources": { "target": "com.amazonaws.fms#Boolean", "traits": { - "smithy.api#documentation": "

                      Indicates whether Firewall Manager should automatically remove protections from resources that leave the policy scope and clean up resources \n that Firewall Manager is managing for accounts when those accounts leave policy scope. For example, Firewall Manager will disassociate a Firewall Manager managed web ACL \n from a protected customer resource when the customer resource leaves policy scope.

                      \n

                      By default, Firewall Manager doesn't remove protections or delete Firewall Manager managed resources.

                      \n

                      This option is not available for Shield Advanced or WAF Classic policies.

                      " + "smithy.api#documentation": "

                      Indicates whether Firewall Manager should automatically remove protections from resources that leave the policy scope and clean up resources\n that Firewall Manager is managing for accounts when those accounts leave policy scope. For example, Firewall Manager will disassociate a Firewall Manager managed web ACL\n from a protected customer resource when the customer resource leaves policy scope.

                      \n

                      By default, Firewall Manager doesn't remove protections or delete Firewall Manager managed resources.

                      \n

                      This option is not available for Shield Advanced or WAF Classic policies.

                      " } } }, @@ -3044,7 +3156,7 @@ } }, "traits": { - "smithy.api#documentation": "

                      A list of possible remediation action lists. Each individual possible remediation action is a list of individual remediation actions.

                      " + "smithy.api#documentation": "

                      A list of possible remediation action lists. Each individual possible remediation action\n is a list of individual remediation actions.

                      " } }, "com.amazonaws.fms#PreviousAppsList": { @@ -3113,7 +3225,7 @@ "ListUpdateToken": { "target": "com.amazonaws.fms#UpdateToken", "traits": { - "smithy.api#documentation": "

                      A unique identifier for each update to the list. When you update \n the list, the update token must match the token of the current version of the application list. \n You can retrieve the update token by getting the list.

                      " + "smithy.api#documentation": "

                      A unique identifier for each update to the list. When you update the list, the update\n token must match the token of the current version of the application list. You can retrieve\n the update token by getting the list.

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

                      Designates the IAM role and Amazon Simple Notification Service (SNS) topic that \n Firewall Manager uses to record SNS logs.

                      \n

                      To perform this action outside of the console, you must configure the SNS topic to allow the Firewall Manager \n role AWSServiceRoleForFMS to publish SNS logs. For more information, see \n Firewall Manager required permissions for API actions in the Firewall Manager Developer Guide.

                      " + "smithy.api#documentation": "

                      Designates the IAM role and Amazon Simple Notification Service (SNS) topic that Firewall Manager\n uses to record SNS logs.

                      \n

                      To perform this action outside of the console, you must configure the SNS topic to allow\n the Firewall Manager role AWSServiceRoleForFMS to publish SNS logs. For more information,\n see Firewall Manager required permissions\n for API actions in the Firewall Manager Developer Guide.

                      " } }, "com.amazonaws.fms#PutNotificationChannelRequest": { @@ -3274,14 +3386,14 @@ "SnsTopicArn": { "target": "com.amazonaws.fms#ResourceArn", "traits": { - "smithy.api#documentation": "

                      The Amazon Resource Name (ARN) of the SNS topic that collects notifications from \n Firewall Manager.

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

                      The Amazon Resource Name (ARN) of the SNS topic that collects notifications from\n Firewall Manager.

                      ", "smithy.api#required": {} } }, "SnsRoleName": { "target": "com.amazonaws.fms#ResourceArn", "traits": { - "smithy.api#documentation": "

                      The Amazon Resource Name (ARN) of the IAM role that allows Amazon SNS to record \n Firewall Manager activity.

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

                      The Amazon Resource Name (ARN) of the IAM role that allows Amazon SNS to record\n Firewall Manager activity.

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

                      Creates an Firewall Manager policy.

                      \n

                      Firewall Manager provides the following types of policies:

                      \n
                        \n
                      • \n

                        An WAF policy (type WAFV2), which defines rule groups to run first in the \n corresponding WAF web ACL and rule groups to run last in the web ACL.

                        \n
                      • \n
                      • \n

                        An WAF Classic policy (type WAF), which defines a rule group.

                        \n
                      • \n
                      • \n

                        A Shield Advanced policy, which applies Shield Advanced protection to specified\n accounts and resources.

                        \n
                      • \n
                      • \n

                        A security group policy, which manages VPC security groups across your Amazon Web Services\n organization.

                        \n
                      • \n
                      • \n

                        An Network Firewall policy, which provides firewall rules to filter network traffic in specified \n Amazon VPCs.

                        \n
                      • \n
                      • \n

                        A DNS Firewall policy, which provides Route 53 Resolver DNS Firewall rules to filter DNS queries for \n specified VPCs.

                        \n
                      • \n
                      \n

                      Each policy is specific to one of the types. If you want to enforce more than one\n policy type across accounts, create multiple policies. You can create multiple\n policies for each type.

                      \n

                      You must be subscribed to Shield Advanced to create a Shield Advanced policy. For more\n information about subscribing to Shield Advanced, see \n CreateSubscription.

                      " + "smithy.api#documentation": "

                      Creates an Firewall Manager policy.

                      \n

                      Firewall Manager provides the following types of policies:

                      \n
                        \n
                      • \n

                        An WAF policy (type WAFV2), which defines rule groups to run first in the\n corresponding WAF web ACL and rule groups to run last in the web ACL.

                        \n
                      • \n
                      • \n

                        An WAF Classic policy (type WAF), which defines a rule group.

                        \n
                      • \n
                      • \n

                        A Shield Advanced policy, which applies Shield Advanced protection to specified\n accounts and resources.

                        \n
                      • \n
                      • \n

                        A security group policy, which manages VPC security groups across your Amazon Web Services\n organization.

                        \n
                      • \n
                      • \n

                        An Network Firewall policy, which provides firewall rules to filter network traffic in\n specified Amazon VPCs.

                        \n
                      • \n
                      • \n

                        A DNS Firewall policy, which provides Route 53 Resolver DNS Firewall rules to filter DNS\n queries for specified VPCs.

                        \n
                      • \n
                      \n

                      Each policy is specific to one of the types. If you want to enforce more than one policy\n type across accounts, create multiple policies. You can create multiple policies for each\n type.

                      \n

                      You must be subscribed to Shield Advanced to create a Shield Advanced policy. For more\n information about subscribing to Shield Advanced, see CreateSubscription.

                      " } }, "com.amazonaws.fms#PutPolicyRequest": { @@ -3457,7 +3569,7 @@ "EC2ReplaceRouteTableAssociationAction": { "target": "com.amazonaws.fms#EC2ReplaceRouteTableAssociationAction", "traits": { - "smithy.api#documentation": "

                      Information about the ReplaceRouteTableAssociation action in the Amazon EC2 API.

                      " + "smithy.api#documentation": "

                      Information about the ReplaceRouteTableAssociation action in the Amazon EC2\n API.

                      " } }, "EC2AssociateRouteTableAction": { @@ -3471,6 +3583,12 @@ "traits": { "smithy.api#documentation": "

                      Information about the CreateRouteTable action in the Amazon EC2 API.

                      " } + }, + "FMSPolicyUpdateFirewallCreationConfigAction": { + "target": "com.amazonaws.fms#FMSPolicyUpdateFirewallCreationConfigAction", + "traits": { + "smithy.api#documentation": "

                      The remedial action to take when updating a firewall configuration.

                      " + } } }, "traits": { @@ -3596,7 +3714,7 @@ } }, "traits": { - "smithy.api#documentation": "

                      The resource tags that Firewall Manager uses to determine if a particular resource\n should be included or excluded from the Firewall Manager policy. Tags enable you to\n categorize your Amazon Web Services resources in different ways, for example, by purpose, owner, or\n environment. Each tag consists of a key and an optional value. Firewall Manager combines the\n tags with \"AND\" so that, if you add more than one tag to a policy scope, a resource must have\n all the specified tags to be included or excluded. For more information, see \n Working with Tag Editor.

                      " + "smithy.api#documentation": "

                      The resource tags that Firewall Manager uses to determine if a particular resource should be\n included or excluded from the Firewall Manager policy. Tags enable you to categorize your Amazon Web Services\n resources in different ways, for example, by purpose, owner, or environment. Each tag\n consists of a key and an optional value. Firewall Manager combines the tags with \"AND\" so that, if you\n add more than one tag to a policy scope, a resource must have all the specified tags to be\n included or excluded. For more information, see Working with Tag\n Editor.

                      " } }, "com.amazonaws.fms#ResourceTagKey": { @@ -3671,25 +3789,25 @@ "NetworkFirewallMissingFirewallViolation": { "target": "com.amazonaws.fms#NetworkFirewallMissingFirewallViolation", "traits": { - "smithy.api#documentation": "

                      Violation detail for an Network Firewall policy that indicates that a subnet has no Firewall Manager \n managed firewall in its VPC.

                      " + "smithy.api#documentation": "

                      Violation detail for an Network Firewall policy that indicates that a subnet has no Firewall Manager managed\n firewall in its VPC.

                      " } }, "NetworkFirewallMissingSubnetViolation": { "target": "com.amazonaws.fms#NetworkFirewallMissingSubnetViolation", "traits": { - "smithy.api#documentation": "

                      Violation detail for an Network Firewall policy that indicates that an Availability Zone is \n missing the expected Firewall Manager managed subnet.

                      " + "smithy.api#documentation": "

                      Violation detail for an Network Firewall policy that indicates that an Availability Zone is\n missing the expected Firewall Manager managed subnet.

                      " } }, "NetworkFirewallMissingExpectedRTViolation": { "target": "com.amazonaws.fms#NetworkFirewallMissingExpectedRTViolation", "traits": { - "smithy.api#documentation": "

                      Violation detail for an Network Firewall policy that indicates that a subnet \n is not associated with the expected Firewall Manager managed route table.

                      " + "smithy.api#documentation": "

                      Violation detail for an Network Firewall policy that indicates that a subnet is not associated\n with the expected Firewall Manager managed route table.

                      " } }, "NetworkFirewallPolicyModifiedViolation": { "target": "com.amazonaws.fms#NetworkFirewallPolicyModifiedViolation", "traits": { - "smithy.api#documentation": "

                      Violation detail for an Network Firewall policy that indicates that a firewall policy \n in an individual account has been modified in a way that makes it noncompliant. \n For example, the individual account owner might have deleted a rule group, \n changed the priority of a stateless rule group, or changed a policy default action.

                      " + "smithy.api#documentation": "

                      Violation detail for an Network Firewall policy that indicates that a firewall policy in an\n individual account has been modified in a way that makes it noncompliant. For example, the\n individual account owner might have deleted a rule group, changed the priority of a\n stateless rule group, or changed a policy default action.

                      " } }, "NetworkFirewallInternetTrafficNotInspectedViolation": { @@ -3728,25 +3846,37 @@ "DnsRuleGroupPriorityConflictViolation": { "target": "com.amazonaws.fms#DnsRuleGroupPriorityConflictViolation", "traits": { - "smithy.api#documentation": "

                      Violation detail for a DNS Firewall policy that indicates that a rule group that Firewall Manager \n tried to associate with a VPC has the same priority as a rule group that's already associated.

                      " + "smithy.api#documentation": "

                      Violation detail for a DNS Firewall policy that indicates that a rule group that Firewall Manager\n tried to associate with a VPC has the same priority as a rule group that's already\n associated.

                      " } }, "DnsDuplicateRuleGroupViolation": { "target": "com.amazonaws.fms#DnsDuplicateRuleGroupViolation", "traits": { - "smithy.api#documentation": "

                      Violation detail for a DNS Firewall policy that indicates that a rule group that Firewall Manager \n tried to associate with a VPC is already associated with the VPC and can't be associated again.

                      " + "smithy.api#documentation": "

                      Violation detail for a DNS Firewall policy that indicates that a rule group that Firewall Manager\n tried to associate with a VPC is already associated with the VPC and can't be associated\n again.

                      " } }, "DnsRuleGroupLimitExceededViolation": { "target": "com.amazonaws.fms#DnsRuleGroupLimitExceededViolation", "traits": { - "smithy.api#documentation": "

                      Violation detail for a DNS Firewall policy that indicates that the VPC reached the limit for associated DNS Firewall rule groups. Firewall Manager tried to associate another rule group with the VPC and failed.

                      " + "smithy.api#documentation": "

                      Violation detail for a DNS Firewall policy that indicates that the VPC reached the limit\n for associated DNS Firewall rule groups. Firewall Manager tried to associate another rule group with\n the VPC and failed.

                      " } }, "PossibleRemediationActions": { "target": "com.amazonaws.fms#PossibleRemediationActions", "traits": { - "smithy.api#documentation": "

                      A list of possible remediation action lists. Each individual possible remediation action is a list of individual remediation actions.

                      " + "smithy.api#documentation": "

                      A list of possible remediation action lists. Each individual possible remediation action\n is a list of individual remediation actions.

                      " + } + }, + "FirewallSubnetIsOutOfScopeViolation": { + "target": "com.amazonaws.fms#FirewallSubnetIsOutOfScopeViolation", + "traits": { + "smithy.api#documentation": "

                      Contains details about the firewall subnet that violates the policy scope.

                      " + } + }, + "RouteHasOutOfScopeEndpointViolation": { + "target": "com.amazonaws.fms#RouteHasOutOfScopeEndpointViolation", + "traits": { + "smithy.api#documentation": "

                      Contains details about the route endpoint that violates the policy scope.

                      " } } }, @@ -3792,6 +3922,86 @@ "smithy.api#documentation": "

                      Describes a route in a route table.

                      " } }, + "com.amazonaws.fms#RouteHasOutOfScopeEndpointViolation": { + "type": "structure", + "members": { + "SubnetId": { + "target": "com.amazonaws.fms#ResourceId", + "traits": { + "smithy.api#documentation": "

                      The ID of the subnet associated with the route that violates the policy scope.

                      " + } + }, + "VpcId": { + "target": "com.amazonaws.fms#ResourceId", + "traits": { + "smithy.api#documentation": "

                      The VPC ID of the route that violates the policy scope.

                      " + } + }, + "RouteTableId": { + "target": "com.amazonaws.fms#ResourceId", + "traits": { + "smithy.api#documentation": "

                      The ID of the route table.

                      " + } + }, + "ViolatingRoutes": { + "target": "com.amazonaws.fms#Routes", + "traits": { + "smithy.api#documentation": "

                      The list of routes that violate the route table.

                      " + } + }, + "SubnetAvailabilityZone": { + "target": "com.amazonaws.fms#LengthBoundedString", + "traits": { + "smithy.api#documentation": "

                      The subnet's Availability Zone.

                      " + } + }, + "SubnetAvailabilityZoneId": { + "target": "com.amazonaws.fms#LengthBoundedString", + "traits": { + "smithy.api#documentation": "

                      The ID of the subnet's Availability Zone.

                      " + } + }, + "CurrentFirewallSubnetRouteTable": { + "target": "com.amazonaws.fms#ResourceId", + "traits": { + "smithy.api#documentation": "

                      The route table associated with the current firewall subnet.

                      " + } + }, + "FirewallSubnetId": { + "target": "com.amazonaws.fms#ResourceId", + "traits": { + "smithy.api#documentation": "

                      The ID of the firewall subnet.

                      " + } + }, + "FirewallSubnetRoutes": { + "target": "com.amazonaws.fms#Routes", + "traits": { + "smithy.api#documentation": "

                      The list of firewall subnet routes.

                      " + } + }, + "InternetGatewayId": { + "target": "com.amazonaws.fms#ResourceId", + "traits": { + "smithy.api#documentation": "

                      The ID of the Internet Gateway.

                      " + } + }, + "CurrentInternetGatewayRouteTable": { + "target": "com.amazonaws.fms#ResourceId", + "traits": { + "smithy.api#documentation": "

                      The current route table associated with the Internet Gateway.

                      " + } + }, + "InternetGatewayRoutes": { + "target": "com.amazonaws.fms#Routes", + "traits": { + "smithy.api#documentation": "

                      The routes in the route table associated with the Internet Gateway.

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

                      Contains details about the route endpoint that violates the policy scope.

                      " + } + }, "com.amazonaws.fms#Routes": { "type": "list", "member": { @@ -3816,7 +4026,7 @@ "RemediationResult": { "target": "com.amazonaws.fms#SecurityGroupRuleDescription", "traits": { - "smithy.api#documentation": "

                      The final state of the rule specified in the ViolationTarget after it is remediated.

                      " + "smithy.api#documentation": "

                      The final state of the rule specified in the ViolationTarget after it is\n remediated.

                      " } }, "IsDefaultAction": { @@ -3860,19 +4070,19 @@ "Protocol": { "target": "com.amazonaws.fms#LengthBoundedString", "traits": { - "smithy.api#documentation": "

                      The IP protocol name (tcp, udp, icmp, icmpv6) or number.

                      " + "smithy.api#documentation": "

                      The IP protocol name (tcp, udp, icmp,\n icmpv6) or number.

                      " } }, "FromPort": { "target": "com.amazonaws.fms#IPPortNumber", "traits": { - "smithy.api#documentation": "

                      The start of the port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type number. A value of -1 indicates all ICMP/ICMPv6 types.

                      " + "smithy.api#documentation": "

                      The start of the port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type\n number. A value of -1 indicates all ICMP/ICMPv6 types.

                      " } }, "ToPort": { "target": "com.amazonaws.fms#IPPortNumber", "traits": { - "smithy.api#documentation": "

                      The end of the port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code. A value of -1 indicates all ICMP/ICMPv6 codes.

                      " + "smithy.api#documentation": "

                      The end of the port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code. A value\n of -1 indicates all ICMP/ICMPv6 codes.

                      " } } }, @@ -3886,14 +4096,20 @@ "Type": { "target": "com.amazonaws.fms#SecurityServiceType", "traits": { - "smithy.api#documentation": "

                      The service that the policy is using to protect the resources. This specifies the type of\n policy that is created, either an WAF policy, a Shield Advanced policy, or a security\n group policy. For security group policies, Firewall Manager supports one security group for\n each common policy and for each content audit policy. This is an adjustable limit that you can\n increase by contacting Amazon Web Services Support.

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

                      The service that the policy is using to protect the resources. This specifies the type\n of policy that is created, either an WAF policy, a Shield Advanced policy, or a\n security group policy. For security group policies, Firewall Manager supports one security group for\n each common policy and for each content audit policy. This is an adjustable limit that you\n can increase by contacting Amazon Web Services Support.

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

                      Details about the service that are specific to the service type, in JSON format.

                      \n
                        \n
                      • \n

                        Example: DNS_FIREWALL\n

                        \n

                        \n \"{\\\"type\\\":\\\"DNS_FIREWALL\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupId\\\":\\\"rslvr-frg-1\\\",\\\"priority\\\":10}],\\\"postProcessRuleGroups\\\":[{\\\"ruleGroupId\\\":\\\"rslvr-frg-2\\\",\\\"priority\\\":9911}]}\"\n

                        \n \n

                        Valid values for preProcessRuleGroups are between 1 and 99. Valid values for postProcessRuleGroups are between 9901 and 10000.

                        \n
                        \n
                      • \n
                      • \n

                        Example: NETWORK_FIREWALL\n

                        \n

                        \n \"{\\\"type\\\":\\\"NETWORK_FIREWALL\\\",\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-west-1:1234567891011:stateless-rulegroup/rulegroup2\\\",\\\"priority\\\":10}],\\\"networkFirewallStatelessDefaultActions\\\":[\\\"aws:pass\\\",\\\"custom1\\\"],\\\"networkFirewallStatelessFragmentDefaultActions\\\":[\\\"custom2\\\",\\\"aws:pass\\\"],\\\"networkFirewallStatelessCustomActions\\\":[{\\\"actionName\\\":\\\"custom1\\\",\\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"dimension1\\\"}]}}},{\\\"actionName\\\":\\\"custom2\\\",\\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"dimension2\\\"}]}}}],\\\"networkFirewallStatefulRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-west-1:1234567891011:stateful-rulegroup/rulegroup1\\\"}],\\\"networkFirewallOrchestrationConfig\\\":{\\\"singleFirewallEndpointPerVPC\\\":true,\\\"allowedIPV4CidrList\\\":[\\\"10.24.34.0/28\\\"]} }\"\n

                        \n
                      • \n
                      • \n

                        Specification for SHIELD_ADVANCED for Amazon CloudFront distributions

                        \n

                        \n \"{\\\"type\\\":\\\"SHIELD_ADVANCED\\\",\\\"automaticResponseConfiguration\\\": {\\\"automaticResponseStatus\\\":\\\"ENABLED|IGNORED|DISABLED\\\", \\\"automaticResponseAction\\\":\\\"BLOCK|COUNT\\\"}, \\\"overrideCustomerWebaclClassic\\\":true|false}\"\n

                        \n

                        For example: \"{\\\"type\\\":\\\"SHIELD_ADVANCED\\\",\\\"automaticResponseConfiguration\\\": {\\\"automaticResponseStatus\\\":\\\"ENABLED\\\", \\\"automaticResponseAction\\\":\\\"COUNT\\\"}}\"\n

                        \n

                        The default value for automaticResponseStatus is IGNORED. The value for automaticResponseAction is only required when automaticResponseStatus is set to ENABLED. The default value for overrideCustomerWebaclClassic is false.

                        \n

                        For other resource types that you can protect with a Shield Advanced policy, this ManagedServiceData configuration is an empty string.

                        \n
                      • \n
                      • \n

                        Example: WAFV2\n

                        \n

                        \n \"{\\\"type\\\":\\\"WAFV2\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupArn\\\":null,\\\"overrideAction\\\":{\\\"type\\\":\\\"NONE\\\"},\\\"managedRuleGroupIdentifier\\\":{\\\"version\\\":null,\\\"vendorName\\\":\\\"AWS\\\",\\\"managedRuleGroupName\\\":\\\"AWSManagedRulesAmazonIpReputationList\\\"},\\\"ruleGroupType\\\":\\\"ManagedRuleGroup\\\",\\\"excludeRules\\\":[{\\\"name\\\":\\\"NoUserAgent_HEADER\\\"}]}],\\\"postProcessRuleGroups\\\":[],\\\"defaultAction\\\":{\\\"type\\\":\\\"ALLOW\\\"},\\\"overrideCustomerWebACLAssociation\\\":false,\\\"loggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[\\\"arn:aws:firehose:us-west-2:12345678912:deliverystream/aws-waf-logs-fms-admin-destination\\\"],\\\"redactedFields\\\":[{\\\"redactedFieldType\\\":\\\"SingleHeader\\\",\\\"redactedFieldValue\\\":\\\"Cookies\\\"},{\\\"redactedFieldType\\\":\\\"Method\\\"}]}}\"\n

                        \n

                        In the loggingConfiguration, you can specify one logDestinationConfigs, you can optionally provide up to 20 redactedFields, and the RedactedFieldType must be one of URI, QUERY_STRING, HEADER, or METHOD.

                        \n
                      • \n
                      • \n

                        Example: WAF Classic\n

                        \n

                        \n \"{\\\"type\\\": \\\"WAF\\\", \\\"ruleGroups\\\": [{\\\"id\\\":\\\"12345678-1bcd-9012-efga-0987654321ab\\\", \\\"overrideAction\\\" : {\\\"type\\\": \\\"COUNT\\\"}}], \\\"defaultAction\\\": {\\\"type\\\": \\\"BLOCK\\\"}}\"\n

                        \n
                      • \n
                      • \n

                        Example: SECURITY_GROUPS_COMMON\n

                        \n

                        \n \"{\\\"type\\\":\\\"SECURITY_GROUPS_COMMON\\\",\\\"revertManualSecurityGroupChanges\\\":false,\\\"exclusiveResourceSecurityGroupManagement\\\":false, \\\"applyToAllEC2InstanceENIs\\\":false,\\\"securityGroups\\\":[{\\\"id\\\":\\\" sg-000e55995d61a06bd\\\"}]}\"\n

                        \n
                      • \n
                      • \n

                        Example: Shared VPCs. Apply the preceding policy to resources in shared VPCs as well as to those in VPCs that the account owns\n

                        \n

                        \n \"{\\\"type\\\":\\\"SECURITY_GROUPS_COMMON\\\",\\\"revertManualSecurityGroupChanges\\\":false,\\\"exclusiveResourceSecurityGroupManagement\\\":false, \\\"applyToAllEC2InstanceENIs\\\":false,\\\"includeSharedVPC\\\":true,\\\"securityGroups\\\":[{\\\"id\\\":\\\" sg-000e55995d61a06bd\\\"}]}\"\n

                        \n
                      • \n
                      • \n

                        Example: SECURITY_GROUPS_CONTENT_AUDIT\n

                        \n

                        \n \"{\\\"type\\\":\\\"SECURITY_GROUPS_CONTENT_AUDIT\\\",\\\"securityGroups\\\":[{\\\"id\\\":\\\"sg-000e55995d61a06bd\\\"}],\\\"securityGroupAction\\\":{\\\"type\\\":\\\"ALLOW\\\"}}\"\n

                        \n

                        The security group action for content audit can be ALLOW or\n DENY. For ALLOW, all in-scope security group rules must be\n within the allowed range of the policy's security group rules. For DENY, all\n in-scope security group rules must not contain a value or a range that matches a rule\n value or range in the policy security group.

                        \n
                      • \n
                      • \n

                        Example: SECURITY_GROUPS_USAGE_AUDIT\n

                        \n

                        \n \"{\\\"type\\\":\\\"SECURITY_GROUPS_USAGE_AUDIT\\\",\\\"deleteUnusedSecurityGroups\\\":true,\\\"coalesceRedundantSecurityGroups\\\":true}\"\n

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

                      Details about the service that are specific to the service type, in JSON format.

                      \n
                        \n
                      • \n

                        Example: DNS_FIREWALL\n

                        \n

                        \n \"{\\\"type\\\":\\\"DNS_FIREWALL\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupId\\\":\\\"rslvr-frg-1\\\",\\\"priority\\\":10}],\\\"postProcessRuleGroups\\\":[{\\\"ruleGroupId\\\":\\\"rslvr-frg-2\\\",\\\"priority\\\":9911}]}\"\n

                        \n \n

                        Valid values for preProcessRuleGroups are between 1 and 99. Valid\n values for postProcessRuleGroups are between 9901 and 10000.

                        \n
                        \n
                      • \n
                      • \n

                        Example: NETWORK_FIREWALL - Centralized deployment\n model.

                        \n

                        \n \"{\\\"type\\\":\\\"NETWORK_FIREWALL\\\",\\\"awsNetworkFirewallConfig\\\":{\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\",\\\"priority\\\":1}],\\\"networkFirewallStatelessDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessFragmentDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessCustomActions\\\":[{\\\"actionName\\\":\\\"customActionName\\\",\\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"metricdimensionvalue\\\"}]}}}],\\\"networkFirewallStatefulRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\"}],\\\"networkFirewallLoggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"ALERT\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}},{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"FLOW\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}}],\\\"overrideExistingConfig\\\":true}},\\\"firewallDeploymentModel\\\":{\\\"centralizedFirewallDeploymentModel\\\":{\\\"centralizedFirewallOrchestrationConfig\\\":{\\\"inspectionVpcIds\\\":[{\\\"resourceId\\\":\\\"vpc-1234\\\",\\\"accountId\\\":\\\"123456789011\\\"}],\\\"firewallCreationConfig\\\":{\\\"endpointLocation\\\":{\\\"availabilityZoneConfigList\\\":[{\\\"availabilityZoneId\\\":null,\\\"availabilityZoneName\\\":\\\"us-east-1a\\\",\\\"allowedIPV4CidrList\\\":[\\\"10.0.0.0/28\\\"]}]}},\\\"allowedIPV4CidrList\\\":[]}}}}\"\n

                        \n

                        To use the centralized deployment model, you must set PolicyOption to\n CENTRALIZED.

                        \n
                      • \n
                      • \n

                        Example: NETWORK_FIREWALL - Distributed deployment model with\n automatic Availability Zone configuration. With automatic Availbility Zone\n configuration, Firewall Manager chooses which Availability Zones to create the endpoints in.

                        \n

                        \n \"{ \\\"type\\\": \\\"NETWORK_FIREWALL\\\",\n \\\"networkFirewallStatelessRuleGroupReferences\\\": [ { \\\"resourceARN\\\":\n \\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\",\n \\\"priority\\\": 1 } ], \\\"networkFirewallStatelessDefaultActions\\\": [\n \\\"aws:forward_to_sfe\\\", \\\"customActionName\\\" ],\n \\\"networkFirewallStatelessFragmentDefaultActions\\\": [ \\\"aws:forward_to_sfe\\\",\n \\\"customActionName\\\" ], \\\"networkFirewallStatelessCustomActions\\\": [ {\n \\\"actionName\\\": \\\"customActionName\\\", \\\"actionDefinition\\\": {\n \\\"publishMetricAction\\\": { \\\"dimensions\\\": [ { \\\"value\\\": \\\"metricdimensionvalue\\\"\n } ] } } } ], \\\"networkFirewallStatefulRuleGroupReferences\\\": [ { \\\"resourceARN\\\":\n \\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\" } ],\n \\\"networkFirewallOrchestrationConfig\\\": { \\\"singleFirewallEndpointPerVPC\\\": false,\n \\\"allowedIPV4CidrList\\\": [ \\\"10.0.0.0/28\\\", \\\"192.168.0.0/28\\\" ],\n \\\"routeManagementAction\\\": \\\"OFF\\\" }, \\\"networkFirewallLoggingConfiguration\\\": {\n \\\"logDestinationConfigs\\\": [ { \\\"logDestinationType\\\": \\\"S3\\\", \\\"logType\\\":\n \\\"ALERT\\\", \\\"logDestination\\\": { \\\"bucketName\\\": \\\"s3-bucket-name\\\" } }, {\n \\\"logDestinationType\\\": \\\"S3\\\", \\\"logType\\\": \\\"FLOW\\\", \\\"logDestination\\\": {\n \\\"bucketName\\\": \\\"s3-bucket-name\\\" } } ], \\\"overrideExistingConfig\\\": true }\n }\"\n

                        \n

                        To use the distributed deployment model, you must set PolicyOption to\n NULL.

                        \n
                      • \n
                      • \n

                        Example: NETWORK_FIREWALL - Distributed deployment model with\n automatic Availability Zone configuration, and route management.

                        \n

                        \n \"{ \\\"type\\\": \\\"NETWORK_FIREWALL\\\",\n \\\"networkFirewallStatelessRuleGroupReferences\\\": [ { \\\"resourceARN\\\":\n \\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\",\n \\\"priority\\\": 1 } ], \\\"networkFirewallStatelessDefaultActions\\\": [\n \\\"aws:forward_to_sfe\\\", \\\"customActionName\\\" ],\n \\\"networkFirewallStatelessFragmentDefaultActions\\\": [ \\\"aws:forward_to_sfe\\\",\n \\\"customActionName\\\" ], \\\"networkFirewallStatelessCustomActions\\\": [ {\n \\\"actionName\\\": \\\"customActionName\\\", \\\"actionDefinition\\\": {\n \\\"publishMetricAction\\\": { \\\"dimensions\\\": [ { \\\"value\\\": \\\"metricdimensionvalue\\\"\n } ] } } } ], \\\"networkFirewallStatefulRuleGroupReferences\\\": [ { \\\"resourceARN\\\":\n \\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\" } ],\n \\\"networkFirewallOrchestrationConfig\\\": { \\\"singleFirewallEndpointPerVPC\\\": false,\n \\\"allowedIPV4CidrList\\\": [ \\\"10.0.0.0/28\\\", \\\"192.168.0.0/28\\\" ],\n \\\"routeManagementAction\\\": \\\"MONITOR\\\", \\\"routeManagementTargetTypes\\\": [\n \\\"InternetGateway\\\" ] }, \\\"networkFirewallLoggingConfiguration\\\": {\n \\\"logDestinationConfigs\\\": [ { \\\"logDestinationType\\\": \\\"S3\\\", \\\"logType\\\":\n \\\"ALERT\\\", \\\"logDestination\\\": { \\\"bucketName\\\": \\\"s3-bucket-name\\\" } }, {\n \\\"logDestinationType\\\": \\\"S3\\\", \\\"logType\\\": \\\"FLOW\\\", \\\"logDestination\\\": {\n \\\"bucketName\\\": \\\"s3-bucket-name\\\" } } ], \\\"overrideExistingConfig\\\": true }\n }\"\n

                        \n
                      • \n
                      • \n

                        Example: NETWORK_FIREWALL - Distributed deployment model with\n custom Availability Zone configuration. With custom Availability Zone configuration,\n you define which specific Availability Zones to create endpoints in by configuring\n firewallCreationConfig.

                        \n

                        \n \"{\n \\\"type\\\":\\\"NETWORK_FIREWALL\\\",\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\",\\\"priority\\\":1}],\n \\\"networkFirewallStatelessDefaultActions\\\":[ \\\"aws:forward_to_sfe\\\",\n \\\"customActionName\\\" ], \\\"networkFirewallStatelessFragmentDefaultActions\\\":[\n \\\"aws:forward_to_sfe\\\", \\\"fragmentcustomactionname\\\" ],\n \\\"networkFirewallStatelessCustomActions\\\":[ { \\\"actionName\\\":\\\"customActionName\\\",\n \\\"actionDefinition\\\":{ \\\"publishMetricAction\\\":{ \\\"dimensions\\\":[ {\n \\\"value\\\":\\\"metricdimensionvalue\\\" } ] } } }, {\n \\\"actionName\\\":\\\"fragmentcustomactionname\\\", \\\"actionDefinition\\\":{\n \\\"publishMetricAction\\\":{ \\\"dimensions\\\":[ {\n \\\"value\\\":\\\"fragmentmetricdimensionvalue\\\" } ] } } } ],\n \\\"networkFirewallStatefulRuleGroupReferences\\\":[ {\n \\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\"\n } ], \\\"networkFirewallOrchestrationConfig\\\":{ \\\"firewallCreationConfig\\\":{\n \\\"endpointLocation\\\":{ \\\"availabilityZoneConfigList\\\":[ {\n \\\"availabilityZoneId\\\":null, \\\"availabilityZoneName\\\":\\\"us-east-1a\\\",\n \\\"allowedIPV4CidrList\\\":[ \\\"10.0.0.0/28\\\" ] }, { ¯\\\"availabilityZoneId\\\":null,\n \\\"availabilityZoneName\\\":\\\"us-east-1b\\\", \\\"allowedIPV4CidrList\\\":[ \\\"10.0.0.0/28\\\"\n ] } ] } }, \\\"singleFirewallEndpointPerVPC\\\":false, \\\"allowedIPV4CidrList\\\":null,\n \\\"routeManagementAction\\\":\\\"OFF\\\", \\\"networkFirewallLoggingConfiguration\\\":{\n \\\"logDestinationConfigs\\\":[ { \\\"logDestinationType\\\":\\\"S3\\\",\n \\\"logType\\\":\\\"ALERT\\\", \\\"logDestination\\\":{ \\\"bucketName\\\":\\\"s3-bucket-name\\\" } },\n { \\\"logDestinationType\\\":\\\"S3\\\", \\\"logType\\\":\\\"FLOW\\\", \\\"logDestination\\\":{\n \\\"bucketName\\\":\\\"s3-bucket-name\\\" } } ], \\\"overrideExistingConfig\\\":boolean }\n }\"\n

                        \n
                      • \n
                      • \n

                        Example: NETWORK_FIREWALL - Distributed deployment model with\n custom Availability Zone configuration, and route management.

                        \n

                        \n \"{\n \\\"type\\\":\\\"NETWORK_FIREWALL\\\",\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\",\\\"priority\\\":1}],\n \\\"networkFirewallStatelessDefaultActions\\\":[ \\\"aws:forward_to_sfe\\\",\n \\\"customActionName\\\" ], \\\"networkFirewallStatelessFragmentDefaultActions\\\":[\n \\\"aws:forward_to_sfe\\\", \\\"fragmentcustomactionname\\\" ],\n \\\"networkFirewallStatelessCustomActions\\\":[ { \\\"actionName\\\":\\\"customActionName\\\",\n \\\"actionDefinition\\\":{ \\\"publishMetricAction\\\":{ \\\"dimensions\\\":[ {\n \\\"value\\\":\\\"metricdimensionvalue\\\" } ] } } }, {\n \\\"actionName\\\":\\\"fragmentcustomactionname\\\", \\\"actionDefinition\\\":{\n \\\"publishMetricAction\\\":{ \\\"dimensions\\\":[ {\n \\\"value\\\":\\\"fragmentmetricdimensionvalue\\\" } ] } } } ],\n \\\"networkFirewallStatefulRuleGroupReferences\\\":[ {\n \\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\"\n } ], \\\"networkFirewallOrchestrationConfig\\\":{ \\\"firewallCreationConfig\\\":{\n \\\"endpointLocation\\\":{ \\\"availabilityZoneConfigList\\\":[ {\n \\\"availabilityZoneId\\\":null, \\\"availabilityZoneName\\\":\\\"us-east-1a\\\",\n \\\"allowedIPV4CidrList\\\":[ \\\"10.0.0.0/28\\\" ] }, { ¯\\\"availabilityZoneId\\\":null,\n \\\"availabilityZoneName\\\":\\\"us-east-1b\\\", \\\"allowedIPV4CidrList\\\":[ \\\"10.0.0.0/28\\\"\n ] } ] } }, \\\"singleFirewallEndpointPerVPC\\\":false, \\\"allowedIPV4CidrList\\\":null,\n \\\"routeManagementAction\\\":\\\"MONITOR\\\", \\\"routeManagementTargetTypes\\\":[\n \\\"InternetGateway\\\" ], \\\"routeManagementConfig\\\":{\n \\\"allowCrossAZTrafficIfNoEndpoint\\\":true } },\n \\\"networkFirewallLoggingConfiguration\\\":{ \\\"logDestinationConfigs\\\":[ {\n \\\"logDestinationType\\\":\\\"S3\\\", \\\"logType\\\":\\\"ALERT\\\", \\\"logDestination\\\":{\n \\\"bucketName\\\":\\\"s3-bucket-name\\\" } }, { \\\"logDestinationType\\\":\\\"S3\\\",\n \\\"logType\\\":\\\"FLOW\\\", \\\"logDestination\\\":{ \\\"bucketName\\\":\\\"s3-bucket-name\\\" } }\n ], \\\"overrideExistingConfig\\\":boolean } }\"\n

                        \n
                      • \n
                      • \n

                        Specification for SHIELD_ADVANCED for Amazon CloudFront distributions

                        \n

                        \n \"{\\\"type\\\":\\\"SHIELD_ADVANCED\\\",\\\"automaticResponseConfiguration\\\":\n {\\\"automaticResponseStatus\\\":\\\"ENABLED|IGNORED|DISABLED\\\",\n \\\"automaticResponseAction\\\":\\\"BLOCK|COUNT\\\"},\n \\\"overrideCustomerWebaclClassic\\\":true|false}\"\n

                        \n

                        For example:\n \"{\\\"type\\\":\\\"SHIELD_ADVANCED\\\",\\\"automaticResponseConfiguration\\\":\n {\\\"automaticResponseStatus\\\":\\\"ENABLED\\\",\n \\\"automaticResponseAction\\\":\\\"COUNT\\\"}}\"\n

                        \n

                        The default value for automaticResponseStatus is\n IGNORED. The value for automaticResponseAction is only\n required when automaticResponseStatus is set to ENABLED.\n The default value for overrideCustomerWebaclClassic is\n false.

                        \n

                        For other resource types that you can protect with a Shield Advanced policy, this\n ManagedServiceData configuration is an empty string.

                        \n
                      • \n
                      • \n

                        Example: WAFV2\n

                        \n

                        \n \"{\\\"type\\\":\\\"WAFV2\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupArn\\\":null,\\\"overrideAction\\\":{\\\"type\\\":\\\"NONE\\\"},\\\"managedRuleGroupIdentifier\\\":{\\\"version\\\":null,\\\"vendorName\\\":\\\"AWS\\\",\\\"managedRuleGroupName\\\":\\\"AWSManagedRulesAmazonIpReputationList\\\"},\\\"ruleGroupType\\\":\\\"ManagedRuleGroup\\\",\\\"excludeRules\\\":[{\\\"name\\\":\\\"NoUserAgent_HEADER\\\"}]}],\\\"postProcessRuleGroups\\\":[],\\\"defaultAction\\\":{\\\"type\\\":\\\"ALLOW\\\"},\\\"overrideCustomerWebACLAssociation\\\":false,\\\"loggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[\\\"arn:aws:firehose:us-west-2:12345678912:deliverystream/aws-waf-logs-fms-admin-destination\\\"],\\\"redactedFields\\\":[{\\\"redactedFieldType\\\":\\\"SingleHeader\\\",\\\"redactedFieldValue\\\":\\\"Cookies\\\"},{\\\"redactedFieldType\\\":\\\"Method\\\"}]}}\"\n

                        \n

                        In the loggingConfiguration, you can specify one\n logDestinationConfigs, you can optionally provide up to 20\n redactedFields, and the RedactedFieldType must be one of\n URI, QUERY_STRING, HEADER, or\n METHOD.

                        \n
                      • \n
                      • \n

                        Example: WAF Classic\n

                        \n

                        \n \"{\\\"type\\\": \\\"WAF\\\", \\\"ruleGroups\\\":\n [{\\\"id\\\":\\\"12345678-1bcd-9012-efga-0987654321ab\\\", \\\"overrideAction\\\" : {\\\"type\\\":\n \\\"COUNT\\\"}}], \\\"defaultAction\\\": {\\\"type\\\": \\\"BLOCK\\\"}}\"\n

                        \n
                      • \n
                      • \n

                        Example: SECURITY_GROUPS_COMMON\n

                        \n

                        \n \"{\\\"type\\\":\\\"SECURITY_GROUPS_COMMON\\\",\\\"revertManualSecurityGroupChanges\\\":false,\\\"exclusiveResourceSecurityGroupManagement\\\":false,\n \\\"applyToAllEC2InstanceENIs\\\":false,\\\"securityGroups\\\":[{\\\"id\\\":\\\"\n sg-000e55995d61a06bd\\\"}]}\"\n

                        \n
                      • \n
                      • \n

                        Example: Shared VPCs. Apply the preceding policy to resources in shared VPCs as\n well as to those in VPCs that the account owns

                        \n

                        \n \"{\\\"type\\\":\\\"SECURITY_GROUPS_COMMON\\\",\\\"revertManualSecurityGroupChanges\\\":false,\\\"exclusiveResourceSecurityGroupManagement\\\":false,\n \\\"applyToAllEC2InstanceENIs\\\":false,\\\"includeSharedVPC\\\":true,\\\"securityGroups\\\":[{\\\"id\\\":\\\"\n sg-000e55995d61a06bd\\\"}]}\"\n

                        \n
                      • \n
                      • \n

                        Example: SECURITY_GROUPS_CONTENT_AUDIT\n

                        \n

                        \n \"{\\\"type\\\":\\\"SECURITY_GROUPS_CONTENT_AUDIT\\\",\\\"securityGroups\\\":[{\\\"id\\\":\\\"sg-000e55995d61a06bd\\\"}],\\\"securityGroupAction\\\":{\\\"type\\\":\\\"ALLOW\\\"}}\"\n

                        \n

                        The security group action for content audit can be ALLOW or\n DENY. For ALLOW, all in-scope security group rules must\n be within the allowed range of the policy's security group rules. For\n DENY, all in-scope security group rules must not contain a value or a\n range that matches a rule value or range in the policy security group.

                        \n
                      • \n
                      • \n

                        Example: SECURITY_GROUPS_USAGE_AUDIT\n

                        \n

                        \n \"{\\\"type\\\":\\\"SECURITY_GROUPS_USAGE_AUDIT\\\",\\\"deleteUnusedSecurityGroups\\\":true,\\\"coalesceRedundantSecurityGroups\\\":true}\"\n

                        \n
                      • \n
                      " + } + }, + "PolicyOption": { + "target": "com.amazonaws.fms#PolicyOption", + "traits": { + "smithy.api#documentation": "

                      Contains the Network Firewall firewall policy options to configure a centralized deployment\n model.

                      " } } }, @@ -3984,7 +4200,7 @@ "Priority": { "target": "com.amazonaws.fms#StatelessRuleGroupPriority", "traits": { - "smithy.api#documentation": "

                      The priority of the rule group. Network Firewall evaluates the stateless rule groups in a firewall policy starting from the lowest priority setting.

                      " + "smithy.api#documentation": "

                      The priority of the rule group. Network Firewall evaluates the stateless rule groups in a\n firewall policy starting from the lowest priority setting.

                      " } } }, @@ -4013,20 +4229,20 @@ "Key": { "target": "com.amazonaws.fms#TagKey", "traits": { - "smithy.api#documentation": "

                      Part of the key:value pair that defines a tag. You can use a tag key to describe a category of information, such as \"customer.\" Tag keys are case-sensitive.

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

                      Part of the key:value pair that defines a tag. You can use a tag key to describe a\n category of information, such as \"customer.\" Tag keys are case-sensitive.

                      ", "smithy.api#required": {} } }, "Value": { "target": "com.amazonaws.fms#TagValue", "traits": { - "smithy.api#documentation": "

                      Part of the key:value pair that defines a tag. You can use a tag value to describe a specific value within a category, such as \"companyA\" or \"companyB.\" Tag values are case-sensitive.

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

                      Part of the key:value pair that defines a tag. You can use a tag value to describe a\n specific value within a category, such as \"companyA\" or \"companyB.\" Tag values are\n case-sensitive.

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

                      A collection of key:value pairs associated with an Amazon Web Services resource. The key:value pair can be anything you define. Typically, the tag key represents a category (such as \"environment\") and the tag value represents a specific value within that category (such as \"test,\" \"development,\" or \"production\"). You can add up to 50 tags to each Amazon Web Services resource.

                      " + "smithy.api#documentation": "

                      A collection of key:value pairs associated with an Amazon Web Services resource. The key:value pair\n can be anything you define. Typically, the tag key represents a category (such as\n \"environment\") and the tag value represents a specific value within that category (such as\n \"test,\" \"development,\" or \"production\"). You can add up to 50 tags to each Amazon Web Services resource.\n

                      " } }, "com.amazonaws.fms#TagKey": { @@ -4098,7 +4314,7 @@ "ResourceArn": { "target": "com.amazonaws.fms#ResourceArn", "traits": { - "smithy.api#documentation": "

                      The Amazon Resource Name (ARN) of the resource to return tags for. The Firewall Manager resources that support tagging are policies, applications lists, and protocols lists.

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

                      The Amazon Resource Name (ARN) of the resource to return tags for. The Firewall Manager\n resources that support tagging are policies, applications lists, and protocols lists.\n

                      ", "smithy.api#required": {} } }, @@ -4223,7 +4439,7 @@ "ResourceArn": { "target": "com.amazonaws.fms#ResourceArn", "traits": { - "smithy.api#documentation": "

                      The Amazon Resource Name (ARN) of the resource to return tags for. The Firewall Manager resources that support tagging are policies, applications lists, and protocols lists.

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

                      The Amazon Resource Name (ARN) of the resource to return tags for. The Firewall Manager\n resources that support tagging are policies, applications lists, and protocols lists.\n

                      ", "smithy.api#required": {} } }, @@ -4291,7 +4507,7 @@ "ResourceTags": { "target": "com.amazonaws.fms#TagList", "traits": { - "smithy.api#documentation": "

                      The ResourceTag objects associated with the resource.

                      " + "smithy.api#documentation": "

                      The ResourceTag objects associated with the resource.

                      \n

                      This option isn't available for the centralized deployment model when creating policies\n to configure Network Firewall.

                      " } }, "ResourceDescription": { @@ -4302,7 +4518,7 @@ } }, "traits": { - "smithy.api#documentation": "

                      Violations for a resource based on the specified Firewall Manager policy and Amazon Web Services account.

                      " + "smithy.api#documentation": "

                      Violations for a resource based on the specified Firewall Manager policy and Amazon Web Services\n account.

                      " } }, "com.amazonaws.fms#ViolationReason": { @@ -4408,6 +4624,14 @@ { "value": "RESOURCE_MISSING_DNS_FIREWALL", "name": "ResourceMissingDnsFirewall" + }, + { + "value": "FIREWALL_SUBNET_IS_OUT_OF_SCOPE", + "name": "FirewallSubnetIsOutOfScope" + }, + { + "value": "ROUTE_HAS_OUT_OF_SCOPE_ENDPOINT", + "name": "RouteHasOutOfScopeEndpoint" } ] } diff --git a/codegen/sdk-codegen/aws-models/lightsail.json b/codegen/sdk-codegen/aws-models/lightsail.json index 2aff208eeaaa..b86bd4432139 100644 --- a/codegen/sdk-codegen/aws-models/lightsail.json +++ b/codegen/sdk-codegen/aws-models/lightsail.json @@ -96,12 +96,12 @@ "lastUsed": { "target": "com.amazonaws.lightsail#AccessKeyLastUsed", "traits": { - "smithy.api#documentation": "

                      An object that describes the last time the access key was used.

                      \n\n \n

                      This object does not include data in the response of a CreateBucketAccessKey action. If the access key has not been used, the\n region and serviceName values are N/A, and the\n lastUsedDate value is null.

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

                      An object that describes the last time the access key was used.

                      \n\n \n

                      This object does not include data in the response of a CreateBucketAccessKey action. If the access key has not been used, the\n region and serviceName values are N/A, and the\n lastUsedDate value is null.

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

                      Describes an access key for an Amazon Lightsail bucket.

                      \n\n

                      Access keys grant full programmatic access to the specified bucket and its objects. You\n can have a maximum of two access keys per bucket. Use the CreateBucketAccessKey action to create an access key for a specific bucket. For\n more information about access keys, see Creating access keys for a bucket in Amazon Lightsail in the\n Amazon Lightsail Developer Guide.

                      \n\n \n

                      The secretAccessKey value is returned only in response to the\n CreateBucketAccessKey action. You can get a secret access key only when you\n first create an access key; you cannot get the secret access key later. If you lose the\n secret access key, you must create a new access key.

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

                      Describes an access key for an Amazon Lightsail bucket.

                      \n\n

                      Access keys grant full programmatic access to the specified bucket and its objects. You\n can have a maximum of two access keys per bucket. Use the CreateBucketAccessKey action to create an access key for a specific bucket. For\n more information about access keys, see Creating access keys for a bucket in Amazon Lightsail in the\n Amazon Lightsail Developer Guide.

                      \n\n \n

                      The secretAccessKey value is returned only in response to the\n CreateBucketAccessKey action. You can get a secret access key only when you\n first create an access key; you cannot get the secret access key later. If you lose the\n secret access key, you must create a new access key.

                      \n
                      " } }, "com.amazonaws.lightsail#AccessKeyLastUsed": { @@ -127,7 +127,7 @@ } }, "traits": { - "smithy.api#documentation": "

                      Describes the last time an access key was used.

                      \n\n \n

                      This object does not include data in the response of a CreateBucketAccessKey action.

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

                      Describes the last time an access key was used.

                      \n\n \n

                      This object does not include data in the response of a CreateBucketAccessKey action.

                      \n
                      " } }, "com.amazonaws.lightsail#AccessKeyList": { @@ -1130,7 +1130,7 @@ "bundleId": { "target": "com.amazonaws.lightsail#NonEmptyString", "traits": { - "smithy.api#documentation": "

                      The ID of the bundle currently applied to the bucket.

                      \n\n

                      A bucket bundle specifies the monthly cost, storage space, and data transfer quota for a\n bucket.

                      \n\n

                      Use the UpdateBucketBundle action to change the bundle of a\n bucket.

                      " + "smithy.api#documentation": "

                      The ID of the bundle currently applied to the bucket.

                      \n\n

                      A bucket bundle specifies the monthly cost, storage space, and data transfer quota for a\n bucket.

                      \n\n

                      Use the UpdateBucketBundle action to change the\n bundle of a bucket.

                      " } }, "createdAt": { @@ -1175,7 +1175,7 @@ "ableToUpdateBundle": { "target": "com.amazonaws.lightsail#boolean", "traits": { - "smithy.api#documentation": "

                      Indicates whether the bundle that is currently applied to a bucket can be changed to\n another bundle.

                      \n\n

                      You can update a bucket's bundle only one time within a monthly AWS billing\n cycle.

                      \n\n

                      Use the UpdateBucketBundle action to change a bucket's bundle.

                      " + "smithy.api#documentation": "

                      Indicates whether the bundle that is currently applied to a bucket can be changed to\n another bundle.

                      \n\n

                      You can update a bucket's bundle only one time within a monthly AWS billing\n cycle.

                      \n\n

                      Use the UpdateBucketBundle action to change a\n bucket's bundle.

                      " } }, "readonlyAccessAccounts": { @@ -1187,7 +1187,7 @@ "resourcesReceivingAccess": { "target": "com.amazonaws.lightsail#AccessReceiverList", "traits": { - "smithy.api#documentation": "

                      An array of objects that describe Lightsail instances that have access to the\n bucket.

                      \n\n

                      Use the SetResourceAccessForBucket action to update the instances that\n have access to a bucket.

                      " + "smithy.api#documentation": "

                      An array of objects that describe Lightsail instances that have access to the\n bucket.

                      \n\n

                      Use the SetResourceAccessForBucket\n action to update the instances that have access to a bucket.

                      " } }, "state": { @@ -1462,7 +1462,7 @@ } }, "traits": { - "smithy.api#documentation": "

                      Describes the per-path cache behavior of an Amazon Lightsail content delivery network (CDN)\n distribution.

                      \n

                      A per-path cache behavior is used to override, or add an exception to, the default cache\n behavior of a distribution. For example, if the cacheBehavior is set to\n cache, then a per-path cache behavior can be used to specify a directory, file,\n or file type that your distribution will cache. Alternately, if the distribution's\n cacheBehavior is dont-cache, then a per-path cache behavior can be\n used to specify a directory, file, or file type that your distribution will not cache.

                      \n

                      if the cacheBehavior's behavior is set to 'cache', then

                      " + "smithy.api#documentation": "

                      Describes the per-path cache behavior of an Amazon Lightsail content delivery network (CDN)\n distribution.

                      \n

                      A per-path cache behavior is used to override, or add an exception to, the default cache\n behavior of a distribution. For example, if the cacheBehavior is set to\n cache, then a per-path cache behavior can be used to specify a directory, file,\n or file type that your distribution will cache. Alternately, if the distribution's\n cacheBehavior is dont-cache, then a per-path cache behavior can be\n used to specify a directory, file, or file type that your distribution will not cache.

                      " } }, "com.amazonaws.lightsail#CacheSettings": { @@ -2063,7 +2063,7 @@ "image": { "target": "com.amazonaws.lightsail#string", "traits": { - "smithy.api#documentation": "

                      The name of the image used for the container.

                      \n \n

                      Container images sourced from your Lightsail container service, that are registered and\n stored on your service, start with a colon (:). For example, if your container\n service name is container-service-1, the container image label is\n mystaticsite, and you want to use the third (3) version of the\n registered container image, then you should specify\n :container-service-1.mystaticsite.3. To use the latest version of a container\n image, specify latest instead of a version number (for example,\n :container-service-1.mystaticsite.latest). Lightsail will automatically use\n the highest numbered version of the registered container image.

                      \n \n

                      Container images sourced from a public registry like Docker Hub don't start with a colon.\n For example, nginx:latest or nginx.

                      " + "smithy.api#documentation": "

                      The name of the image used for the container.

                      \n\n

                      Container images sourced from your Lightsail container service, that are registered and\n stored on your service, start with a colon (:). For example, if your container\n service name is container-service-1, the container image label is\n mystaticsite, and you want to use the third (3) version of the\n registered container image, then you should specify\n :container-service-1.mystaticsite.3. To use the latest version of a container\n image, specify latest instead of a version number (for example,\n :container-service-1.mystaticsite.latest). Lightsail will automatically use\n the highest numbered version of the registered container image.

                      \n\n

                      Container images sourced from a public registry like Docker Hub don't start with a colon.\n For example, nginx:latest or nginx.

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

                      Creates a new access key for the specified Amazon Lightsail bucket. Access keys consist of\n an access key ID and corresponding secret access key.

                      \n\n

                      Access keys grant full programmatic access to the specified bucket and its objects. You\n can have a maximum of two access keys per bucket. Use the GetBucketAccessKeys action to get a list of current access keys for a specific bucket. For more information\n about access keys, see Creating access keys for a bucket in Amazon Lightsail in the\n Amazon Lightsail Developer Guide.

                      \n\n \n

                      The secretAccessKey value is returned only in response to the\n CreateBucketAccessKey action. You can get a secret access key only when you\n first create an access key; you cannot get the secret access key later. If you lose the\n secret access key, you must create a new access key.

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

                      Creates a new access key for the specified Amazon Lightsail bucket. Access keys consist of\n an access key ID and corresponding secret access key.

                      \n\n

                      Access keys grant full programmatic access to the specified bucket and its objects. You\n can have a maximum of two access keys per bucket. Use the GetBucketAccessKeys action to get a list of current access keys for a specific bucket. For more\n information about access keys, see Creating access keys for a bucket in Amazon Lightsail in the\n Amazon Lightsail Developer Guide.

                      \n\n \n

                      The secretAccessKey value is returned only in response to the\n CreateBucketAccessKey action. You can get a secret access key only when you\n first create an access key; you cannot get the secret access key later. If you lose the\n secret access key, you must create a new access key.

                      \n
                      ", "smithy.api#http": { "method": "POST", "uri": "/ls/api/2016-11-28/CreateBucketAccessKey", @@ -2986,14 +2986,14 @@ "bundleId": { "target": "com.amazonaws.lightsail#NonEmptyString", "traits": { - "smithy.api#documentation": "

                      The ID of the bundle to use for the bucket.

                      \n\n

                      A bucket bundle specifies the monthly cost, storage space, and data transfer quota for a\n bucket.

                      \n\n

                      Use the GetBucketBundles action to get a list of bundle IDs that you can\n specify.

                      \n\n

                      Use the UpdateBucketBundle action to change the bundle after the bucket\n is created.

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

                      The ID of the bundle to use for the bucket.

                      \n\n

                      A bucket bundle specifies the monthly cost, storage space, and data transfer quota for a\n bucket.

                      \n\n

                      Use the GetBucketBundles action to get a list of\n bundle IDs that you can specify.

                      \n\n

                      Use the UpdateBucketBundle action to change the\n bundle after the bucket is created.

                      ", "smithy.api#required": {} } }, "tags": { "target": "com.amazonaws.lightsail#TagList", "traits": { - "smithy.api#documentation": "

                      The tag keys and optional values to add to the bucket during creation.

                      \n\n

                      Use the TagResource action to tag the bucket after it's created.

                      " + "smithy.api#documentation": "

                      The tag keys and optional values to add to the bucket during creation.

                      \n\n

                      Use the TagResource action to tag the bucket after it's\n created.

                      " } }, "enableObjectVersioning": { @@ -3774,7 +3774,7 @@ "origin": { "target": "com.amazonaws.lightsail#InputOrigin", "traits": { - "smithy.api#documentation": "

                      An object that describes the origin resource for the distribution, such as a Lightsail\n instance or load balancer.

                      \n

                      The distribution pulls, caches, and serves content from the origin.

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

                      An object that describes the origin resource for the distribution, such as a Lightsail\n instance, bucket, or load balancer.

                      \n

                      The distribution pulls, caches, and serves content from the origin.

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

                      Creates an SSH key pair.

                      \n

                      The create key pair operation supports tag-based access control via request\n tags. For more information, see the Amazon Lightsail Developer Guide.

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

                      Creates a custom SSH key pair that you can use with an Amazon Lightsail\n instance.

                      \n \n

                      Use the DownloadDefaultKeyPair action to create a Lightsail default key\n pair in an Amazon Web Services Region where a default key pair does not currently\n exist.

                      \n
                      \n

                      The create key pair operation supports tag-based access control via request\n tags. For more information, see the Amazon Lightsail Developer Guide.

                      ", "smithy.api#http": { "method": "POST", "uri": "/ls/api/2016-11-28/CreateKeyPair", @@ -5112,7 +5112,7 @@ "accessKeyId": { "target": "com.amazonaws.lightsail#NonEmptyString", "traits": { - "smithy.api#documentation": "

                      The ID of the access key to delete.

                      \n\n

                      Use the GetBucketAccessKeys action to get a list of access key IDs that\n you can specify.

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

                      The ID of the access key to delete.

                      \n\n

                      Use the GetBucketAccessKeys action to get a\n list of access key IDs that you can specify.

                      ", "smithy.api#required": {} } } @@ -5135,14 +5135,14 @@ "bucketName": { "target": "com.amazonaws.lightsail#BucketName", "traits": { - "smithy.api#documentation": "

                      The name of the bucket to delete.

                      \n\n

                      Use the GetBuckets action to get a list of bucket names that you can\n specify.

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

                      The name of the bucket to delete.

                      \n\n

                      Use the GetBuckets action to get a list of bucket names\n that you can specify.

                      ", "smithy.api#required": {} } }, "forceDelete": { "target": "com.amazonaws.lightsail#boolean", "traits": { - "smithy.api#documentation": "

                      A Boolean value that indicates whether to force delete the bucket.

                      \n\n

                      You must force delete the bucket if it has one of the following conditions:

                      \n
                        \n
                      • \n

                        The bucket is the origin of a distribution.

                        \n
                      • \n
                      • \n

                        The bucket has instances that were granted access to it using the SetResourceAccessForBucket action.

                        \n
                      • \n
                      • \n

                        The bucket has objects.

                        \n
                      • \n
                      • \n

                        The bucket has access keys.

                        \n
                      • \n
                      \n\n \n

                      Force deleting a bucket might impact other resources that rely on the bucket, such as\n instances, distributions, or software that use the issued access keys.

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

                      A Boolean value that indicates whether to force delete the bucket.

                      \n\n

                      You must force delete the bucket if it has one of the following conditions:

                      \n
                        \n
                      • \n

                        The bucket is the origin of a distribution.

                        \n
                      • \n
                      • \n

                        The bucket has instances that were granted access to it using the SetResourceAccessForBucket action.

                        \n
                      • \n
                      • \n

                        The bucket has objects.

                        \n
                      • \n
                      • \n

                        The bucket has access keys.

                        \n
                      • \n
                      \n\n \n

                      Force deleting a bucket might impact other resources that rely on the bucket, such as\n instances, distributions, or software that use the issued access keys.

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

                      Deletes a specific SSH key pair.

                      \n \n\n

                      The delete key pair operation supports tag-based access control via resource\n tags applied to the resource identified by key pair name. For more information,\n see the Amazon Lightsail Developer Guide.

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

                      Deletes the specified key pair by removing the public key from Amazon Lightsail.

                      \n

                      You can delete key pairs that were created using the ImportKeyPair and\n CreateKeyPair actions, as well as the Lightsail default key pair. A new default\n key pair will not be created unless you launch an instance without specifying a custom key\n pair, or you call the DownloadDefaultKeyPair API.

                      \n\n

                      The delete key pair operation supports tag-based access control via resource\n tags applied to the resource identified by key pair name. For more information,\n see the Amazon Lightsail Developer Guide.

                      ", "smithy.api#http": { "method": "POST", "uri": "/ls/api/2016-11-28/DeleteKeyPair", @@ -5890,6 +5890,12 @@ "smithy.api#documentation": "

                      The name of the key pair to delete.

                      ", "smithy.api#required": {} } + }, + "expectedFingerprint": { + "target": "com.amazonaws.lightsail#string", + "traits": { + "smithy.api#documentation": "

                      The RSA fingerprint of the Lightsail default key pair to delete.

                      \n \n

                      The expectedFingerprint parameter is required only when specifying to\n delete a Lightsail default key pair.

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

                      Downloads the default SSH key pair from the user's account.

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

                      Downloads the regional Amazon Lightsail default key pair.

                      \n

                      This action also creates a Lightsail default key pair if a default key pair\n does not currently exist in the Amazon Web Services Region.

                      ", "smithy.api#http": { "method": "POST", "uri": "/ls/api/2016-11-28/DownloadDefaultKeyPair", @@ -7239,6 +7245,12 @@ "traits": { "smithy.api#documentation": "

                      A base64-encoded RSA private key.

                      " } + }, + "createdAt": { + "target": "com.amazonaws.lightsail#IsoDate", + "traits": { + "smithy.api#documentation": "

                      The timestamp when the default key pair was created.

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

                      Returns the existing access key IDs for the specified Amazon Lightsail bucket.

                      \n\n \n

                      This action does not return the secret access key value of an access key. You can get a\n secret access key only when you create it from the response of the CreateBucketAccessKey action. If you lose the secret access key, you must\n create a new access key.

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

                      Returns the existing access key IDs for the specified Amazon Lightsail bucket.

                      \n\n \n

                      This action does not return the secret access key value of an access key. You can get a\n secret access key only when you create it from the response of the CreateBucketAccessKey action. If you lose the secret access key, you must create\n a new access key.

                      \n
                      ", "smithy.api#http": { "method": "POST", "uri": "/ls/api/2016-11-28/GetBucketAccessKeys", @@ -7935,7 +7947,7 @@ } ], "traits": { - "smithy.api#documentation": "

                      Returns the bundles that you can apply to a Amazon Lightsail bucket.

                      \n\n

                      The bucket bundle specifies the monthly cost, storage quota, and data transfer quota for a\n bucket.

                      \n\n

                      Use the UpdateBucketBundle action to update the bundle for a\n bucket.

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

                      Returns the bundles that you can apply to a Amazon Lightsail bucket.

                      \n\n

                      The bucket bundle specifies the monthly cost, storage quota, and data transfer quota for a\n bucket.

                      \n\n

                      Use the UpdateBucketBundle action to update the\n bundle for a bucket.

                      ", "smithy.api#http": { "method": "POST", "uri": "/ls/api/2016-11-28/GetBucketBundles", @@ -8122,7 +8134,7 @@ "includeConnectedResources": { "target": "com.amazonaws.lightsail#boolean", "traits": { - "smithy.api#documentation": "

                      A Boolean value that indicates whether to include Lightsail instances that were given\n access to the bucket using the SetResourceAccessForBucket action.

                      " + "smithy.api#documentation": "

                      A Boolean value that indicates whether to include Lightsail instances that were given\n access to the bucket using the SetResourceAccessForBucket\n action.

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

                      Returns all export snapshot records created as a result of the export\n snapshot operation.

                      \n

                      An export snapshot record can be used to create a new Amazon EC2 instance and its related\n resources with the CreateCloudFormationStack action.

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

                      Returns all export snapshot records created as a result of the export\n snapshot operation.

                      \n

                      An export snapshot record can be used to create a new Amazon EC2 instance and its related\n resources with the CreateCloudFormationStack\n action.

                      ", "smithy.api#http": { "method": "POST", "uri": "/ls/api/2016-11-28/GetExportSnapshotRecords", @@ -10307,6 +10319,12 @@ "traits": { "smithy.api#documentation": "

                      The token to advance to the next page of results from your request.

                      \n

                      To get a page token, perform an initial GetKeyPairs request. If your results\n are paginated, the response will return a next page token that you can specify as the page\n token in a subsequent request.

                      " } + }, + "includeDefaultKeyPair": { + "target": "com.amazonaws.lightsail#boolean", + "traits": { + "smithy.api#documentation": "

                      A Boolean value that indicates whether to include the default key pair in the response of\n your request.

                      " + } } } }, @@ -12212,7 +12230,7 @@ } }, "traits": { - "smithy.api#documentation": "

                      Describes the origin resource of an Amazon Lightsail content delivery network (CDN)\n distribution.

                      \n

                      An origin can be a Lightsail instance or load balancer. A distribution pulls content\n from an origin, caches it, and serves it to viewers via a worldwide network of edge\n servers.

                      " + "smithy.api#documentation": "

                      Describes the origin resource of an Amazon Lightsail content delivery network (CDN)\n distribution.

                      \n

                      An origin can be a Lightsail instance, bucket, or load balancer. A distribution pulls\n content from an origin, caches it, and serves it to viewers via a worldwide network of edge\n servers.

                      " } }, "com.amazonaws.lightsail#Instance": { @@ -13270,7 +13288,7 @@ "origin": { "target": "com.amazonaws.lightsail#Origin", "traits": { - "smithy.api#documentation": "

                      An object that describes the origin resource of the distribution, such as a Lightsail\n instance or load balancer.

                      \n

                      The distribution pulls, caches, and serves content from the origin.

                      " + "smithy.api#documentation": "

                      An object that describes the origin resource of the distribution, such as a Lightsail\n instance, bucket, or load balancer.

                      \n

                      The distribution pulls, caches, and serves content from the origin.

                      " } }, "originPublicDNS": { @@ -15476,7 +15494,7 @@ } }, "traits": { - "smithy.api#documentation": "

                      Describes the origin resource of an Amazon Lightsail content delivery network (CDN)\n distribution.

                      \n

                      An origin can be a Lightsail instance or load balancer. A distribution pulls content\n from an origin, caches it, and serves it to viewers via a worldwide network of edge\n servers.

                      " + "smithy.api#documentation": "

                      Describes the origin resource of an Amazon Lightsail content delivery network (CDN)\n distribution.

                      \n

                      An origin can be a Lightsail instance, bucket, or load balancer. A distribution pulls\n content from an origin, caches it, and serves it to viewers via a worldwide network of edge\n servers.

                      " } }, "com.amazonaws.lightsail#OriginProtocolPolicyEnum": { @@ -18325,7 +18343,7 @@ } ], "traits": { - "smithy.api#documentation": "

                      Updates the bundle, or storage plan, of an existing Amazon Lightsail bucket.

                      \n\n

                      A bucket bundle specifies the monthly cost, storage space, and data transfer quota for a\n bucket. You can update a bucket's bundle only one time within a monthly AWS billing cycle. To\n determine if you can update a bucket's bundle, use the GetBuckets action.\n The ableToUpdateBundle parameter in the response will indicate whether you can\n currently update a bucket's bundle.

                      \n\n

                      Update a bucket's bundle if it's consistently going over its storage space or data\n transfer quota, or if a bucket's usage is consistently in the lower range of its storage space\n or data transfer quota. Due to the unpredictable usage fluctuations that a bucket might\n experience, we strongly recommend that you update a bucket's bundle only as a long-term\n strategy, instead of as a short-term, monthly cost-cutting measure. Choose a bucket bundle\n that will provide the bucket with ample storage space and data transfer for a long time to\n come.

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

                      Updates the bundle, or storage plan, of an existing Amazon Lightsail bucket.

                      \n\n

                      A bucket bundle specifies the monthly cost, storage space, and data transfer quota for a\n bucket. You can update a bucket's bundle only one time within a monthly AWS billing cycle. To\n determine if you can update a bucket's bundle, use the GetBuckets action. The\n ableToUpdateBundle parameter in the response will indicate whether you can\n currently update a bucket's bundle.

                      \n\n

                      Update a bucket's bundle if it's consistently going over its storage space or data\n transfer quota, or if a bucket's usage is consistently in the lower range of its storage space\n or data transfer quota. Due to the unpredictable usage fluctuations that a bucket might\n experience, we strongly recommend that you update a bucket's bundle only as a long-term\n strategy, instead of as a short-term, monthly cost-cutting measure. Choose a bucket bundle\n that will provide the bucket with ample storage space and data transfer for a long time to\n come.

                      ", "smithy.api#http": { "method": "POST", "uri": "/ls/api/2016-11-28/UpdateBucketBundle", @@ -18346,7 +18364,7 @@ "bundleId": { "target": "com.amazonaws.lightsail#NonEmptyString", "traits": { - "smithy.api#documentation": "

                      The ID of the new bundle to apply to the bucket.

                      \n\n

                      Use the GetBucketBundles action to get a list of bundle IDs that you can\n specify.

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

                      The ID of the new bundle to apply to the bucket.

                      \n\n

                      Use the GetBucketBundles action to get a list of\n bundle IDs that you can specify.

                      ", "smithy.api#required": {} } } @@ -18610,7 +18628,7 @@ "origin": { "target": "com.amazonaws.lightsail#InputOrigin", "traits": { - "smithy.api#documentation": "

                      An object that describes the origin resource for the distribution, such as a Lightsail\n instance or load balancer.

                      \n

                      The distribution pulls, caches, and serves content from the origin.

                      " + "smithy.api#documentation": "

                      An object that describes the origin resource for the distribution, such as a Lightsail\n instance, bucket, or load balancer.

                      \n

                      The distribution pulls, caches, and serves content from the origin.

                      " } }, "defaultCacheBehavior": { diff --git a/codegen/sdk-codegen/aws-models/route-53.json b/codegen/sdk-codegen/aws-models/route-53.json index cbe1c7cfa8ce..5a1618f12e46 100644 --- a/codegen/sdk-codegen/aws-models/route-53.json +++ b/codegen/sdk-codegen/aws-models/route-53.json @@ -467,7 +467,7 @@ } ], "traits": { - "smithy.api#documentation": "

                      Associates an Amazon VPC with a private hosted zone.

                      \n\t\t \n

                      To perform the association, the VPC and the private hosted zone must already exist. \n\t\t\tYou can't convert a public hosted zone into a private hosted zone.

                      \n
                      \n\t\t \n

                      If you want to associate a VPC that was created by using one Amazon Web Services account with a private hosted zone that was created \n\t\t\tby using a different account, the Amazon Web Services account that created the private hosted zone must first submit a \n\t\t\tCreateVPCAssociationAuthorization request. Then the account that created the VPC must submit an \n\t\t\tAssociateVPCWithHostedZone request.

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

                      Associates an Amazon VPC with a private hosted zone.

                      \n\t\t \n

                      To perform the association, the VPC and the private hosted zone must already exist. \n\t\t\tYou can't convert a public hosted zone into a private hosted zone.

                      \n
                      \n\t\t \n

                      If you want to associate a VPC that was created by using one Amazon Web Services account with a private hosted zone that was created \n\t\t\tby using a different account, the Amazon Web Services account that created the private hosted zone must first submit a \n\t\t\tCreateVPCAssociationAuthorization request. Then the account that created the VPC must submit an \n\t\t\tAssociateVPCWithHostedZone request.

                      \n
                      \n\t\t \n

                      When granting access, the hosted zone and the Amazon VPC must belong to the same partition. A\n\t\t\tpartition is a group of Amazon Web Services Regions. Each Amazon Web Services account is scoped to one\n\t\t\tpartition.

                      \n\t\t\t

                      The following are the supported partitions:

                      \n\t\t\t
                        \n
                      • \n

                        \n aws - Amazon Web Services Regions

                        \n
                      • \n
                      • \n

                        \n aws-cn - China Regions

                        \n
                      • \n
                      • \n

                        \n aws-us-gov - Amazon Web Services GovCloud (US) Region

                        \n
                      • \n
                      \n\t\t\t

                      For more information, see Access Management\n\t\t\t\tin the Amazon Web Services General Reference.

                      \n
                      ", "smithy.api#http": { "method": "POST", "uri": "/2013-04-01/hostedzone/{HostedZoneId}/associatevpc", @@ -642,7 +642,7 @@ } ], "traits": { - "smithy.api#documentation": "

                      Creates, changes, or deletes a resource record set, which contains authoritative DNS information for a specified \n\t\t\tdomain name or subdomain name. For example, you can use ChangeResourceRecordSets to create a resource record set that \n\t\t\troutes traffic for test.example.com to a web server that has an IP address of 192.0.2.44.

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

                      \n Deleting Resource Record Sets\n

                      \n\t\t

                      To delete a resource record set, you must specify all the same values that you specified when you created it.

                      \n\n\t\t

                      \n Change Batches and Transactional Changes\n

                      \n\t\t

                      The request body must include a document with a ChangeResourceRecordSetsRequest element. \n\t\t\tThe request body contains a list of change items, known as a change batch. Change batches are considered transactional changes.\n\t\t\tRoute 53 validates the changes in the request and then either makes all or none of the changes in the change batch request. \n\t\t\tThis ensures that DNS routing isn't adversely affected by partial changes to the resource record sets in a hosted zone.

                      \n\t\t

                      For example, suppose a change batch request contains two changes: it deletes the CNAME resource record set for www.example.com and \n\t\t\tcreates an alias resource record set for www.example.com. If validation for both records succeeds, Route 53 deletes the first resource record set and \n\t\t\tcreates the second resource record set in a single operation. If validation for either the DELETE or the CREATE action fails, \n\t\t\tthen the request is canceled, and the original CNAME record continues to exist.

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

                      If you try to delete the same resource record set more than once in a single change batch, Route 53 returns an InvalidChangeBatch error.

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

                      \n Traffic Flow\n

                      \n\t\t

                      To create resource record sets for complex routing configurations, use either the traffic flow visual editor in the \n\t\t\tRoute 53 console or the API actions for traffic policies and traffic policy instances. Save the configuration as a traffic policy, \n\t\t\tthen associate the traffic policy with one or more domain names (such as example.com) or subdomain names (such as www.example.com), \n\t\t\tin the same hosted zone or in multiple hosted zones. You can roll back the updates if the new configuration isn't performing \n\t\t\tas expected. For more information, see Using Traffic Flow to Route DNS Traffic \n\t\t\tin the Amazon Route 53 Developer Guide.

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

                      \n Create, Delete, and Upsert\n

                      \n\t\t

                      Use ChangeResourceRecordsSetsRequest to perform the following actions:

                      \n\t\t\t
                        \n
                      • \n\t\t\t\t\t

                        \n CREATE: Creates a resource record set that has the specified values.

                        \n\t\t\t\t
                      • \n
                      • \n\t\t\t\t\t

                        \n DELETE: Deletes an existing resource record set that has the specified values.

                        \n\t\t\t\t
                      • \n
                      • \n\t\t\t\t\t

                        \n UPSERT: If a resource record set does not already exist, Amazon Web Services creates it. \n\t\t\t\t\t\tIf a resource set does exist, Route 53 updates it with the values in the request.

                        \n\t\t\t\t
                      • \n
                      \n\t\t\n\t\t

                      \n Syntaxes for Creating, Updating, and Deleting Resource Record Sets\n

                      \n\t\t

                      The syntax for a request depends on the type of resource record set that you want to create, delete, or update, such as \n\t\t\tweighted, alias, or failover. The XML elements in your request must appear in the order listed in the syntax.

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

                      For an example for each type of resource record set, see \"Examples.\"

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

                      Don't refer to the syntax in the \"Parameter Syntax\" section, which includes all of the elements for every kind of \n\t\t\tresource record set that you can create, delete, or update by using ChangeResourceRecordSets.

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

                      \n Change Propagation to Route 53 DNS Servers\n

                      \n\t\t

                      When you submit a ChangeResourceRecordSets request, Route 53 propagates your changes to all of the \n\t\t\tRoute 53 authoritative DNS servers. While your changes are propagating, GetChange returns a status of \n\t\t\tPENDING. When propagation is complete, GetChange returns a status of INSYNC. \n\t\t\tChanges generally propagate to all Route 53 name servers within 60 seconds. For more information, see \n\t\t\tGetChange.

                      \n\n\t\t

                      \n Limits on ChangeResourceRecordSets Requests\n

                      \n\t\t

                      For information about the limits on a ChangeResourceRecordSets request, see \n\t\t\tLimits in the \n\t\t\tAmazon Route 53 Developer Guide.

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

                      Creates, changes, or deletes a resource record set, which contains authoritative DNS information for a specified \n\t\t\tdomain name or subdomain name. For example, you can use ChangeResourceRecordSets to create a resource record set that \n\t\t\troutes traffic for test.example.com to a web server that has an IP address of 192.0.2.44.

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

                      \n Deleting Resource Record Sets\n

                      \n\t\t

                      To delete a resource record set, you must specify all the same values that you specified when you created it.

                      \n\n\t\t

                      \n Change Batches and Transactional Changes\n

                      \n\t\t

                      The request body must include a document with a ChangeResourceRecordSetsRequest element. \n\t\t\tThe request body contains a list of change items, known as a change batch. Change batches are considered transactional changes.\n\t\t\tRoute 53 validates the changes in the request and then either makes all or none of the changes in the change batch request. \n\t\t\tThis ensures that DNS routing isn't adversely affected by partial changes to the resource record sets in a hosted zone.

                      \n\t\t

                      For example, suppose a change batch request contains two changes: it deletes the CNAME resource record set for www.example.com and \n\t\t\tcreates an alias resource record set for www.example.com. If validation for both records succeeds, Route 53 deletes the first resource record set and \n\t\t\tcreates the second resource record set in a single operation. If validation for either the DELETE or the CREATE action fails, \n\t\t\tthen the request is canceled, and the original CNAME record continues to exist.

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

                      If you try to delete the same resource record set more than once in a single change batch, Route 53 returns an InvalidChangeBatch error.

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

                      \n Traffic Flow\n

                      \n\t\t

                      To create resource record sets for complex routing configurations, use either the traffic flow visual editor in the \n\t\t\tRoute 53 console or the API actions for traffic policies and traffic policy instances. Save the configuration as a traffic policy, \n\t\t\tthen associate the traffic policy with one or more domain names (such as example.com) or subdomain names (such as www.example.com), \n\t\t\tin the same hosted zone or in multiple hosted zones. You can roll back the updates if the new configuration isn't performing \n\t\t\tas expected. For more information, see Using Traffic Flow to Route DNS Traffic \n\t\t\tin the Amazon Route 53 Developer Guide.

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

                      \n Create, Delete, and Upsert\n

                      \n\t\t

                      Use ChangeResourceRecordsSetsRequest to perform the following actions:

                      \n\t\t\t
                        \n
                      • \n\t\t\t\t\t

                        \n CREATE: Creates a resource record set that has the specified values.

                        \n\t\t\t\t
                      • \n
                      • \n\t\t\t\t\t

                        \n DELETE: Deletes an existing resource record set that has the specified values.

                        \n\t\t\t\t
                      • \n
                      • \n\t\t\t\t\t

                        \n UPSERT: If a resource set exists Route 53 updates it with the values in the\n\t\t\t\t\trequest.

                        \n\t\t\t\t
                      • \n
                      \n\t\t\n\t\t

                      \n Syntaxes for Creating, Updating, and Deleting Resource Record Sets\n

                      \n\t\t

                      The syntax for a request depends on the type of resource record set that you want to create, delete, or update, such as \n\t\t\tweighted, alias, or failover. The XML elements in your request must appear in the order listed in the syntax.

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

                      For an example for each type of resource record set, see \"Examples.\"

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

                      Don't refer to the syntax in the \"Parameter Syntax\" section, which includes all of the elements for every kind of \n\t\t\tresource record set that you can create, delete, or update by using ChangeResourceRecordSets.

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

                      \n Change Propagation to Route 53 DNS Servers\n

                      \n\t\t

                      When you submit a ChangeResourceRecordSets request, Route 53 propagates your changes to all of the \n\t\t\tRoute 53 authoritative DNS servers. While your changes are propagating, GetChange returns a status of \n\t\t\tPENDING. When propagation is complete, GetChange returns a status of INSYNC. \n\t\t\tChanges generally propagate to all Route 53 name servers within 60 seconds. For more information, see \n\t\t\tGetChange.

                      \n\n\t\t

                      \n Limits on ChangeResourceRecordSets Requests\n

                      \n\t\t

                      For information about the limits on a ChangeResourceRecordSets request, see \n\t\t\tLimits in the \n\t\t\tAmazon Route 53 Developer Guide.

                      ", "smithy.api#http": { "method": "POST", "uri": "/2013-04-01/hostedzone/{HostedZoneId}/rrset", @@ -1186,7 +1186,7 @@ } ], "traits": { - "smithy.api#documentation": "

                      Creates a new public or private hosted zone. You create records in a public hosted zone to define how you want to route traffic \n\t\t\ton the internet for a domain, such as example.com, and its subdomains (apex.example.com, acme.example.com). You create records in a \n\t\t\tprivate hosted zone to define how you want to route traffic for a domain and its subdomains within one or more \n\t\t\tAmazon Virtual Private Clouds (Amazon VPCs).

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

                      You can't convert a public hosted zone to a private hosted zone or vice versa. Instead, you must create a new hosted zone \n\t\t\t\twith the same name and create new resource record sets.

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

                      For more information about charges for hosted zones, see Amazon Route 53 Pricing.

                      \n\t\t

                      Note the following:

                      \n\t\t
                        \n
                      • \n\t\t\t\t

                        You can't create a hosted zone for a top-level domain (TLD) such as .com.

                        \n\t\t\t
                      • \n
                      • \n\t\t\t\t

                        For public hosted zones, Route 53 automatically creates a default SOA record and four NS records for the zone. \n\t\t\t\t\tFor more information about SOA and NS records, see \n\t\t\t\t\tNS and SOA Records that Route 53 Creates for a Hosted Zone in the \n\t\t\t\t\tAmazon Route 53 Developer Guide.

                        \n\t\t\t\t

                        If you want to use the same name servers for multiple public hosted zones, you can optionally associate a reusable delegation set \n\t\t\t\t\twith the hosted zone. See the DelegationSetId element.

                        \n\t\t\t
                      • \n
                      • \n\t\t\t\t

                        If your domain is registered with a registrar other than Route 53, you must update the name servers with your registrar to make \n\t\t\t\t\tRoute 53 the DNS service for the domain. For more information, see \n\t\t\t\t\tMigrating DNS Service for an Existing Domain to Amazon Route 53 in the \n\t\t\t\t\tAmazon Route 53 Developer Guide.

                        \n\t\t\t
                      • \n
                      \n\t\t

                      When you submit a CreateHostedZone request, the initial status of the hosted zone is PENDING. \n\t\t\tFor public hosted zones, this means that the NS and SOA records are not yet available on all Route 53 DNS servers. When the \n\t\t\tNS and SOA records are available, the status of the zone changes to INSYNC.

                      \n\t\t

                      The CreateHostedZone request requires the caller to have an ec2:DescribeVpcs permission.

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

                      Creates a new public or private hosted zone. You create records in a public hosted zone to define how you want to route traffic \n\t\t\ton the internet for a domain, such as example.com, and its subdomains (apex.example.com, acme.example.com). You create records in a \n\t\t\tprivate hosted zone to define how you want to route traffic for a domain and its subdomains within one or more \n\t\t\tAmazon Virtual Private Clouds (Amazon VPCs).

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

                      You can't convert a public hosted zone to a private hosted zone or vice versa. Instead, you must create a new hosted zone \n\t\t\t\twith the same name and create new resource record sets.

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

                      For more information about charges for hosted zones, see Amazon Route 53 Pricing.

                      \n\t\t

                      Note the following:

                      \n\t\t
                        \n
                      • \n\t\t\t\t

                        You can't create a hosted zone for a top-level domain (TLD) such as .com.

                        \n\t\t\t
                      • \n
                      • \n\t\t\t\t

                        For public hosted zones, Route 53 automatically creates a default SOA record and four NS records for the zone. \n\t\t\t\t\tFor more information about SOA and NS records, see \n\t\t\t\t\tNS and SOA Records that Route 53 Creates for a Hosted Zone in the \n\t\t\t\t\tAmazon Route 53 Developer Guide.

                        \n\t\t\t\t

                        If you want to use the same name servers for multiple public hosted zones, you can optionally associate a reusable delegation set \n\t\t\t\t\twith the hosted zone. See the DelegationSetId element.

                        \n\t\t\t
                      • \n
                      • \n\t\t\t\t

                        If your domain is registered with a registrar other than Route 53, you must update the name servers with your registrar to make \n\t\t\t\t\tRoute 53 the DNS service for the domain. For more information, see \n\t\t\t\t\tMigrating DNS Service for an Existing Domain to Amazon Route 53 in the \n\t\t\t\t\tAmazon Route 53 Developer Guide.

                        \n\t\t\t
                      • \n
                      \n\t\t

                      When you submit a CreateHostedZone request, the initial status of the hosted zone is PENDING. \n\t\t\tFor public hosted zones, this means that the NS and SOA records are not yet available on all Route 53 DNS servers. When the \n\t\t\tNS and SOA records are available, the status of the zone changes to INSYNC.

                      \n\t\t

                      The CreateHostedZone request requires the caller to have an ec2:DescribeVpcs permission.

                      \n\t\t \n

                      When creating private hosted zones, the Amazon VPC must belong to the same partition\n\t\t\t\twhere the hosted zone is created. A partition is a group of Amazon Web Services Regions. Each Amazon Web Services account is scoped to one partition.

                      \n\t\t\t

                      The following are the supported partitions:

                      \n\t\t\t
                        \n
                      • \n

                        \n aws - Amazon Web Services Regions

                        \n
                      • \n
                      • \n

                        \n aws-cn - China Regions

                        \n
                      • \n
                      • \n

                        \n aws-us-gov - Amazon Web Services GovCloud (US) Region

                        \n
                      • \n
                      \n\t\t\t

                      For more information, see Access Management\n\t\t\t\tin the Amazon Web Services General Reference.

                      \n
                      ", "smithy.api#http": { "method": "POST", "uri": "/2013-04-01/hostedzone", @@ -1421,7 +1421,7 @@ } ], "traits": { - "smithy.api#documentation": "

                      Creates a configuration for DNS query logging. After you create a query logging configuration, Amazon Route 53 begins to publish \n\t\t\tlog data to an Amazon CloudWatch Logs log group.

                      \n\t\t

                      DNS query logs contain information about the queries that Route 53 receives for a specified public hosted zone, such as the following:

                      \n\t\t
                        \n
                      • \n

                        Route 53 edge location that responded to the DNS query

                        \n
                      • \n
                      • \n

                        Domain or subdomain that was requested

                        \n
                      • \n
                      • \n

                        DNS record type, such as A or AAAA

                        \n
                      • \n
                      • \n

                        DNS response code, such as NoError or ServFail\n

                        \n
                      • \n
                      \n\t\t\n\t\t
                      \n
                      Log Group and Resource Policy
                      \n
                      \n

                      Before you create a query logging configuration, perform the following operations.

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

                      If you create a query logging configuration using the Route 53 console, Route 53 performs these operations automatically.

                      \n
                      \n\t\t\t\t\t
                        \n
                      1. \n

                        Create a CloudWatch Logs log group, and make note of the ARN, which you specify when you create a \n\t\t\t\t\t\t\tquery logging configuration. Note the following:

                        \n\t\t\t\t\t\t\t
                          \n
                        • \n

                          You must create the log group in the us-east-1 region.

                          \n
                        • \n
                        • \n

                          You must use the same Amazon Web Services account to create the log group and the hosted zone that you want to \n\t\t\t\t\t\t\t\t\tconfigure query logging for.

                          \n
                        • \n
                        • \n

                          When you create log groups for query logging, we recommend that you use a consistent prefix, for example:

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

                          \n /aws/route53/hosted zone name\n \n

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

                          In the next step, you'll create a resource policy, which controls access to one or more log groups and the associated \n\t\t\t\t\t\t\t\t\t\tAmazon Web Services resources, such as Route 53 hosted zones. There's a limit on the number of resource policies that you can create, so \n\t\t\t\t\t\t\t\t\t\twe recommend that you use a consistent prefix so you can use the same resource policy for all the log groups that you create \n\t\t\t\t\t\t\t\t\t\tfor query logging.

                          \n\t\t\t\t\t\t\t\t
                        • \n
                        \n\t\t\t\t\t\t
                      2. \n
                      3. \n

                        Create a CloudWatch Logs resource policy, and give it the permissions that Route 53 needs to create log streams and to \n\t\t\t\t\t\t\tsend query logs to log streams. For the value of Resource, specify the ARN for the log group that you created \n\t\t\t\t\t\t\tin the previous step. To use the same resource policy for all the CloudWatch Logs log groups that you created for query logging configurations, \n\t\t\t\t\t\t\treplace the hosted zone name with *, for example:

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

                        \n arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/*\n

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

                        You can't use the CloudWatch console to create or edit a resource policy. You must use the CloudWatch API, one of the Amazon Web Services SDKs, \n\t\t\t\t\t\t\t\tor the CLI.

                        \n
                        \n\t\t\t\t\t\t
                      4. \n
                      \n\t\t\t\t
                      \n
                      Log Streams and Edge Locations
                      \n
                      \n

                      When Route 53 finishes creating the configuration for DNS query logging, it does the following:

                      \n\t\t\t\t\t
                        \n
                      • \n

                        Creates a log stream for an edge location the first time that the edge location responds to DNS queries for the \n\t\t\t\t\t\t\tspecified hosted zone. That log stream is used to log all queries that Route 53 responds to for that edge location.

                        \n
                      • \n
                      • \n

                        Begins to send query logs to the applicable log stream.

                        \n
                      • \n
                      \n\t\t\t\t\t

                      The name of each log stream is in the following format:

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

                      \n \n hosted zone ID/edge location code\n \n

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

                      The edge location code is a three-letter code and an arbitrarily assigned number, for example, DFW3. The three-letter code \n\t\t\t\t\t\ttypically corresponds with the International Air Transport Association airport code for an airport near the edge location. \n\t\t\t\t\t\t(These abbreviations might change in the future.) For a list of edge locations, see \"The Route 53 Global Network\" on the \n\t\t\t\t\t\tRoute 53 Product Details page.

                      \n\t\t\t\t
                      \n
                      Queries That Are Logged
                      \n
                      \n

                      Query logs contain only the queries that DNS resolvers forward to Route 53. If a DNS resolver has already cached \n\t\t\t\t\tthe response to a query (such as the IP address for a load balancer for example.com), the resolver will continue to return \n\t\t\t\t\tthe cached response. It doesn't forward another query to Route 53 until the TTL for the corresponding resource record set expires. \n\t\t\t\t\tDepending on how many DNS queries are submitted for a resource record set, and depending on the TTL for that resource record set, \n\t\t\t\t\tquery logs might contain information about only one query out of every several thousand queries that are submitted to DNS. \n\t\t\t\t\tFor more information about how DNS works, see \n\t\t\t\t\tRouting Internet Traffic to Your Website or Web Application\n\t\t\t\t\tin the Amazon Route 53 Developer Guide.

                      \n\t\t\t\t
                      \n
                      Log File Format
                      \n
                      \n

                      For a list of the values in each query log and the format of each value, see \n\t\t\t\t\tLogging DNS Queries in the \n\t\t\t\t\tAmazon Route 53 Developer Guide.

                      \n\t\t\t\t
                      \n
                      Pricing
                      \n
                      \n

                      For information about charges for query logs, see \n\t\t\t\t\tAmazon CloudWatch Pricing.

                      \n
                      \n
                      How to Stop Logging
                      \n
                      \n

                      If you want Route 53 to stop sending query logs to CloudWatch Logs, delete the query logging configuration. For more information, see \n\t\t\t\t\tDeleteQueryLoggingConfig.

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

                      Creates a configuration for DNS query logging. After you create a query logging configuration, Amazon Route 53 begins to publish \n\t\t\tlog data to an Amazon CloudWatch Logs log group.

                      \n\t\t

                      DNS query logs contain information about the queries that Route 53 receives for a specified public hosted zone, such as the following:

                      \n\t\t
                        \n
                      • \n

                        Route 53 edge location that responded to the DNS query

                        \n
                      • \n
                      • \n

                        Domain or subdomain that was requested

                        \n
                      • \n
                      • \n

                        DNS record type, such as A or AAAA

                        \n
                      • \n
                      • \n

                        DNS response code, such as NoError or ServFail\n

                        \n
                      • \n
                      \n\t\t\n\t\t
                      \n
                      Log Group and Resource Policy
                      \n
                      \n

                      Before you create a query logging configuration, perform the following operations.

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

                      If you create a query logging configuration using the Route 53 console, Route 53 performs these operations automatically.

                      \n
                      \n\t\t\t\t\t
                        \n
                      1. \n

                        Create a CloudWatch Logs log group, and make note of the ARN, which you specify when you create a \n\t\t\t\t\t\t\tquery logging configuration. Note the following:

                        \n\t\t\t\t\t\t\t
                          \n
                        • \n

                          You must create the log group in the us-east-1 region.

                          \n
                        • \n
                        • \n

                          You must use the same Amazon Web Services account to create the log group and the hosted zone that you want to \n\t\t\t\t\t\t\t\t\tconfigure query logging for.

                          \n
                        • \n
                        • \n

                          When you create log groups for query logging, we recommend that you use a consistent prefix, for example:

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

                          \n /aws/route53/hosted zone name\n \n

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

                          In the next step, you'll create a resource policy, which controls access to one or more log groups and the associated \n\t\t\t\t\t\t\t\t\t\tAmazon Web Services resources, such as Route 53 hosted zones. There's a limit on the number of resource policies that you can create, so \n\t\t\t\t\t\t\t\t\t\twe recommend that you use a consistent prefix so you can use the same resource policy for all the log groups that you create \n\t\t\t\t\t\t\t\t\t\tfor query logging.

                          \n\t\t\t\t\t\t\t\t
                        • \n
                        \n\t\t\t\t\t\t
                      2. \n
                      3. \n

                        Create a CloudWatch Logs resource policy, and give it the permissions that Route 53 needs to create log streams and to \n\t\t\t\t\t\t\tsend query logs to log streams. For the value of Resource, specify the ARN for the log group that you created \n\t\t\t\t\t\t\tin the previous step. To use the same resource policy for all the CloudWatch Logs log groups that you created for query logging configurations, \n\t\t\t\t\t\t\treplace the hosted zone name with *, for example:

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

                        \n arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/*\n

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

                        To avoid the confused deputy problem, a security issue where an entity without a\n\t\t\t\t\t\t\t\tpermission for an action can coerce a more-privileged entity to\n\t\t\t\t\t\t\t\tperform it, you can optionally limit the permissions that a service\n\t\t\t\t\t\t\t\thas to a resource in a resource-based policy by supplying the\n\t\t\t\t\t\t\t\tfollowing values:

                        \n\t\t\t\t\t\t\t
                          \n
                        • \n

                          For aws:SourceArn, supply the hosted zone ARN used in creating the query logging\n\t\t\t\t\t\t\t\t\t\tconfiguration. For example, aws:SourceArn:\n\t\t\t\t\t\t\t\t\t\t\tarn:aws:route53:::hostedzone/hosted zone\n\t\t\t\t\t\t\t\t\t\tID.

                          \n
                        • \n
                        • \n

                          For aws:SourceAccount, supply the account ID for the account that creates the\n\t\t\t\t\t\t\t\t\t\tquery logging configuration. For example,\n\t\t\t\t\t\t\t\t\t\t\taws:SourceAccount:111111111111.

                          \n
                        • \n
                        \n\t\t\t\t\t\t\t

                        For more information, see The confused\n\t\t\t\t\t\t\t\t\tdeputy problem in the Amazon Web Services\n\t\t\t\t\t\t\t\t\tIAM User Guide.

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

                        You can't use the CloudWatch console to create or edit a resource policy. You must use the CloudWatch API, one of the Amazon Web Services SDKs, \n\t\t\t\t\t\t\t\tor the CLI.

                        \n
                        \n\t\t\t\t\t\t
                      4. \n
                      \n\t\t\t\t
                      \n
                      Log Streams and Edge Locations
                      \n
                      \n

                      When Route 53 finishes creating the configuration for DNS query logging, it does the following:

                      \n\t\t\t\t\t
                        \n
                      • \n

                        Creates a log stream for an edge location the first time that the edge location responds to DNS queries for the \n\t\t\t\t\t\t\tspecified hosted zone. That log stream is used to log all queries that Route 53 responds to for that edge location.

                        \n
                      • \n
                      • \n

                        Begins to send query logs to the applicable log stream.

                        \n
                      • \n
                      \n\t\t\t\t\t

                      The name of each log stream is in the following format:

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

                      \n \n hosted zone ID/edge location code\n \n

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

                      The edge location code is a three-letter code and an arbitrarily assigned number, for example, DFW3. The three-letter code \n\t\t\t\t\t\ttypically corresponds with the International Air Transport Association airport code for an airport near the edge location. \n\t\t\t\t\t\t(These abbreviations might change in the future.) For a list of edge locations, see \"The Route 53 Global Network\" on the \n\t\t\t\t\t\tRoute 53 Product Details page.

                      \n\t\t\t\t
                      \n
                      Queries That Are Logged
                      \n
                      \n

                      Query logs contain only the queries that DNS resolvers forward to Route 53. If a DNS resolver has already cached \n\t\t\t\t\tthe response to a query (such as the IP address for a load balancer for example.com), the resolver will continue to return \n\t\t\t\t\tthe cached response. It doesn't forward another query to Route 53 until the TTL for the corresponding resource record set expires. \n\t\t\t\t\tDepending on how many DNS queries are submitted for a resource record set, and depending on the TTL for that resource record set, \n\t\t\t\t\tquery logs might contain information about only one query out of every several thousand queries that are submitted to DNS. \n\t\t\t\t\tFor more information about how DNS works, see \n\t\t\t\t\tRouting Internet Traffic to Your Website or Web Application\n\t\t\t\t\tin the Amazon Route 53 Developer Guide.

                      \n\t\t\t\t
                      \n
                      Log File Format
                      \n
                      \n

                      For a list of the values in each query log and the format of each value, see \n\t\t\t\t\tLogging DNS Queries in the \n\t\t\t\t\tAmazon Route 53 Developer Guide.

                      \n\t\t\t\t
                      \n
                      Pricing
                      \n
                      \n

                      For information about charges for query logs, see \n\t\t\t\t\tAmazon CloudWatch Pricing.

                      \n
                      \n
                      How to Stop Logging
                      \n
                      \n

                      If you want Route 53 to stop sending query logs to CloudWatch Logs, delete the query logging configuration. For more information, see \n\t\t\t\t\tDeleteQueryLoggingConfig.

                      \n\t\t\t\t
                      \n
                      ", "smithy.api#http": { "method": "POST", "uri": "/2013-04-01/queryloggingconfig", @@ -2744,7 +2744,7 @@ } ], "traits": { - "smithy.api#documentation": "

                      Disassociates an Amazon Virtual Private Cloud (Amazon VPC) from an Amazon Route 53 private hosted zone. Note the following:

                      \n\t\t
                        \n
                      • \n

                        You can't disassociate the last Amazon VPC from a private hosted zone.

                        \n
                      • \n
                      • \n

                        You can't convert a private hosted zone into a public hosted zone.

                        \n
                      • \n
                      • \n

                        You can submit a DisassociateVPCFromHostedZone request using either the account \n\t\t\t\tthat created the hosted zone or the account that created the Amazon VPC.

                        \n
                      • \n
                      • \n

                        Some services, such as Cloud Map and Amazon Elastic File System (Amazon EFS) automatically create hosted zones and associate \n\t\t\t\tVPCs with the hosted zones. A service can create a hosted zone using your account or using its own account. \n\t\t\t\tYou can disassociate a VPC from a hosted zone only if the service created the hosted zone using your account.

                        \n\t\t\t\t

                        When you run DisassociateVPCFromHostedZone, \n\t\t\t\t\tif the hosted zone has a value for OwningAccount, you can use DisassociateVPCFromHostedZone. \n\t\t\t\t\tIf the hosted zone has a value for OwningService, you can't use DisassociateVPCFromHostedZone.

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

                      Disassociates an Amazon Virtual Private Cloud (Amazon VPC) from an Amazon Route 53 private hosted zone. Note the following:

                      \n\t\t
                        \n
                      • \n

                        You can't disassociate the last Amazon VPC from a private hosted zone.

                        \n
                      • \n
                      • \n

                        You can't convert a private hosted zone into a public hosted zone.

                        \n
                      • \n
                      • \n

                        You can submit a DisassociateVPCFromHostedZone request using either the account \n\t\t\t\tthat created the hosted zone or the account that created the Amazon VPC.

                        \n
                      • \n
                      • \n

                        Some services, such as Cloud Map and Amazon Elastic File System (Amazon EFS) automatically create hosted zones and associate \n\t\t\t\tVPCs with the hosted zones. A service can create a hosted zone using your account or using its own account. \n\t\t\t\tYou can disassociate a VPC from a hosted zone only if the service created the hosted zone using your account.

                        \n\t\t\t\t

                        When you run DisassociateVPCFromHostedZone, \n\t\t\t\t\tif the hosted zone has a value for OwningAccount, you can use DisassociateVPCFromHostedZone. \n\t\t\t\t\tIf the hosted zone has a value for OwningService, you can't use DisassociateVPCFromHostedZone.

                        \n\t\t\t
                      • \n
                      \n\t\t \n

                      When revoking access, the hosted zone and the Amazon VPC must belong to the same\n\t\t\t\tpartition. A partition is a group of Amazon Web Services Regions. Each Amazon Web Services account is scoped to one partition.

                      \n\t\t\t

                      The following are the supported partitions:

                      \n\t\t\t
                        \n
                      • \n

                        \n aws - Amazon Web Services Regions

                        \n
                      • \n
                      • \n

                        \n aws-cn - China Regions

                        \n
                      • \n
                      • \n

                        \n aws-us-gov - Amazon Web Services GovCloud (US) Region

                        \n
                      • \n
                      \n\t\t\t

                      For more information, see Access Management\n\t\t\t\tin the Amazon Web Services General Reference.

                      \n
                      ", "smithy.api#http": { "method": "POST", "uri": "/2013-04-01/hostedzone/{HostedZoneId}/disassociatevpc", @@ -5546,7 +5546,7 @@ } ], "traits": { - "smithy.api#documentation": "

                      Lists all the private hosted zones that a specified VPC is associated with, regardless of which Amazon Web Services account or Amazon Web Services service owns the \n\t\t\thosted zones. The HostedZoneOwner structure in the response contains one of the following values:

                      \n\t\t
                        \n
                      • \n

                        An OwningAccount element, which contains the account number of either the current Amazon Web Services account or \n\t\t\t\tanother Amazon Web Services account. Some services, such as Cloud Map, create hosted zones using the current account.

                        \n\t\t\t
                      • \n
                      • \n

                        An OwningService element, which identifies the Amazon Web Services service that created and owns the hosted zone. \n\t\t\t\tFor example, if a hosted zone was created by Amazon Elastic File System (Amazon EFS), the value of Owner is \n\t\t\t\tefs.amazonaws.com.

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

                      Lists all the private hosted zones that a specified VPC is associated with, regardless of which Amazon Web Services account or Amazon Web Services service owns the \n\t\t\thosted zones. The HostedZoneOwner structure in the response contains one of the following values:

                      \n\t\t
                        \n
                      • \n

                        An OwningAccount element, which contains the account number of either the current Amazon Web Services account or \n\t\t\t\tanother Amazon Web Services account. Some services, such as Cloud Map, create hosted zones using the current account.

                        \n\t\t\t
                      • \n
                      • \n

                        An OwningService element, which identifies the Amazon Web Services service that created and owns the hosted zone. \n\t\t\t\tFor example, if a hosted zone was created by Amazon Elastic File System (Amazon EFS), the value of Owner is \n\t\t\t\tefs.amazonaws.com.

                        \n\t\t\t
                      • \n
                      \n\t\t \n

                      When listing private hosted zones, the hosted zone and the Amazon VPC must belong to\n\t\t\t\tthe same partition where the hosted zones were created. A partition is a group of\n\t\t\t\t\tAmazon Web Services Regions. Each Amazon Web Services account is scoped to one\n\t\t\t\tpartition.

                      \n\t\t\t

                      The following are the supported partitions:

                      \n\t\t\t
                        \n
                      • \n

                        \n aws - Amazon Web Services Regions

                        \n
                      • \n
                      • \n

                        \n aws-cn - China Regions

                        \n
                      • \n
                      • \n

                        \n aws-us-gov - Amazon Web Services GovCloud (US) Region

                        \n
                      • \n
                      \n\t\t\t

                      For more information, see Access Management\n\t\t\t\tin the Amazon Web Services General Reference.

                      \n
                      ", "smithy.api#http": { "method": "GET", "uri": "/2013-04-01/hostedzonesbyvpc", diff --git a/codegen/sdk-codegen/aws-models/s3-control.json b/codegen/sdk-codegen/aws-models/s3-control.json index 669f92d805c1..2463b7464526 100644 --- a/codegen/sdk-codegen/aws-models/s3-control.json +++ b/codegen/sdk-codegen/aws-models/s3-control.json @@ -6137,6 +6137,29 @@ ] } }, + "com.amazonaws.s3control#S3ChecksumAlgorithm": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "CRC32", + "name": "CRC32" + }, + { + "value": "CRC32C", + "name": "CRC32C" + }, + { + "value": "SHA1", + "name": "SHA1" + }, + { + "value": "SHA256", + "name": "SHA256" + } + ] + } + }, "com.amazonaws.s3control#S3ContentLength": { "type": "long", "traits": { @@ -6249,6 +6272,12 @@ "traits": { "smithy.api#documentation": "

                      Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with\n server-side encryption using Amazon Web Services KMS (SSE-KMS). Setting this header to true\n causes Amazon S3 to use an S3 Bucket Key for object encryption with SSE-KMS.

                      \n

                      Specifying this header with an object action doesn’t affect\n bucket-level settings for S3 Bucket Key.

                      " } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3control#S3ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

                      Indicates the algorithm you want Amazon S3 to use to create the checksum. For more information\n see \n Checking object integrity in the Amazon S3 User Guide.

                      " + } } }, "traits": { diff --git a/codegen/sdk-codegen/aws-models/s3.json b/codegen/sdk-codegen/aws-models/s3.json index 923485f488a8..4c0df050fcde 100644 --- a/codegen/sdk-codegen/aws-models/s3.json +++ b/codegen/sdk-codegen/aws-models/s3.json @@ -85,7 +85,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

                      The bucket name to which the upload was taking place.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

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

                      The bucket name to which the upload was taking place.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -115,7 +115,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -369,6 +369,9 @@ { "target": "com.amazonaws.s3#GetObjectAcl" }, + { + "target": "com.amazonaws.s3#GetObjectAttributes" + }, { "target": "com.amazonaws.s3#GetObjectLegalHold" }, @@ -1043,7 +1046,7 @@ "QuoteEscapeCharacter": { "target": "com.amazonaws.s3#QuoteEscapeCharacter", "traits": { - "smithy.api#documentation": "

                      A single character used for escaping the quotation mark character inside an already\n escaped value. For example, the value \"\"\" a , b \"\"\" is parsed as \" a , b \".

                      " + "smithy.api#documentation": "

                      A single character used for escaping the quotation mark character inside an already\n escaped value. For example, the value \"\"\" a , b \"\"\" is parsed as \" a , b\n \".

                      " } }, "RecordDelimiter": { @@ -1116,6 +1119,90 @@ "com.amazonaws.s3#CacheControl": { "type": "string" }, + "com.amazonaws.s3#Checksum": { + "type": "structure", + "members": { + "ChecksumCRC32": { + "target": "com.amazonaws.s3#ChecksumCRC32", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      " + } + }, + "ChecksumCRC32C": { + "target": "com.amazonaws.s3#ChecksumCRC32C", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      " + } + }, + "ChecksumSHA1": { + "target": "com.amazonaws.s3#ChecksumSHA1", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      " + } + }, + "ChecksumSHA256": { + "target": "com.amazonaws.s3#ChecksumSHA256", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

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

                      Contains all the possible checksum or digest values for an object.

                      " + } + }, + "com.amazonaws.s3#ChecksumAlgorithm": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "CRC32", + "name": "CRC32" + }, + { + "value": "CRC32C", + "name": "CRC32C" + }, + { + "value": "SHA1", + "name": "SHA1" + }, + { + "value": "SHA256", + "name": "SHA256" + } + ] + } + }, + "com.amazonaws.s3#ChecksumAlgorithmList": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#ChecksumAlgorithm" + } + }, + "com.amazonaws.s3#ChecksumCRC32": { + "type": "string" + }, + "com.amazonaws.s3#ChecksumCRC32C": { + "type": "string" + }, + "com.amazonaws.s3#ChecksumMode": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ENABLED", + "name": "ENABLED" + } + ] + } + }, + "com.amazonaws.s3#ChecksumSHA1": { + "type": "string" + }, + "com.amazonaws.s3#ChecksumSHA256": { + "type": "string" + }, "com.amazonaws.s3#Code": { "type": "string" }, @@ -1171,7 +1258,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

                      The name of the bucket that contains the newly created object. Does not return the access point ARN or access point alias if used.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

                      " + "smithy.api#documentation": "

                      The name of the bucket that contains the newly created object. Does not return the access point ARN or access point alias if used.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      " } }, "Key": { @@ -1183,14 +1270,38 @@ "Expiration": { "target": "com.amazonaws.s3#Expiration", "traits": { - "smithy.api#documentation": "

                      If the object expiration is configured, this will contain the expiration date\n (expiry-date) and rule ID (rule-id). The value of rule-id is URL encoded.

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

                      If the object expiration is configured, this will contain the expiration date\n (expiry-date) and rule ID (rule-id). The value of\n rule-id is URL-encoded.

                      ", "smithy.api#httpHeader": "x-amz-expiration" } }, "ETag": { "target": "com.amazonaws.s3#ETag", "traits": { - "smithy.api#documentation": "

                      Entity tag that identifies the newly created object's data. Objects with different\n object data will have different entity tags. The entity tag is an opaque string. The entity\n tag may or may not be an MD5 digest of the object data. If the entity tag is not an MD5\n digest of the object data, it will contain one or more nonhexadecimal characters and/or\n will consist of less than 32 or more than 32 hexadecimal digits.

                      " + "smithy.api#documentation": "

                      Entity tag that identifies the newly created object's data. Objects with different\n object data will have different entity tags. The entity tag is an opaque string. The entity\n tag may or may not be an MD5 digest of the object data. If the entity tag is not an MD5\n digest of the object data, it will contain one or more nonhexadecimal characters and/or\n will consist of less than 32 or more than 32 hexadecimal digits. For more information about\n how the entity tag is calculated, see\n Checking\n object integrity in the Amazon S3 User Guide.

                      " + } + }, + "ChecksumCRC32": { + "target": "com.amazonaws.s3#ChecksumCRC32", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      " + } + }, + "ChecksumCRC32C": { + "target": "com.amazonaws.s3#ChecksumCRC32C", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      " + } + }, + "ChecksumSHA1": { + "target": "com.amazonaws.s3#ChecksumSHA1", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      " + } + }, + "ChecksumSHA256": { + "target": "com.amazonaws.s3#ChecksumSHA256", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      " } }, "ServerSideEncryption": { @@ -1238,7 +1349,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

                      Name of the bucket to which the multipart upload was initiated.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

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

                      Name of the bucket to which the multipart upload was initiated.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1267,6 +1378,34 @@ "smithy.api#required": {} } }, + "ChecksumCRC32": { + "target": "com.amazonaws.s3#ChecksumCRC32", + "traits": { + "smithy.api#documentation": "

                      This header can be used as a data integrity check to verify that the data received is the same data that was originally sent.\n This header specifies the base64-encoded, 32-bit CRC32 checksum of the object. For more information, see\n Checking object integrity in the\n Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-checksum-crc32" + } + }, + "ChecksumCRC32C": { + "target": "com.amazonaws.s3#ChecksumCRC32C", + "traits": { + "smithy.api#documentation": "

                      This header can be used as a data integrity check to verify that the data received is the same data that was originally sent.\n This header specifies the base64-encoded, 32-bit CRC32C checksum of the object. For more information, see\n Checking object integrity in the\n Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-checksum-crc32c" + } + }, + "ChecksumSHA1": { + "target": "com.amazonaws.s3#ChecksumSHA1", + "traits": { + "smithy.api#documentation": "

                      This header can be used as a data integrity check to verify that the data received is the same data that was originally sent.\n This header specifies the base64-encoded, 160-bit SHA-1 digest of the object. For more information, see\n Checking object integrity in the\n Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-checksum-sha1" + } + }, + "ChecksumSHA256": { + "target": "com.amazonaws.s3#ChecksumSHA256", + "traits": { + "smithy.api#documentation": "

                      This header can be used as a data integrity check to verify that the data received is the same data that was originally sent.\n This header specifies the base64-encoded, 256-bit SHA-256 digest of the object. For more information, see\n Checking object integrity in the\n Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-checksum-sha256" + } + }, "RequestPayer": { "target": "com.amazonaws.s3#RequestPayer", "traits": { @@ -1276,9 +1415,30 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } + }, + "SSECustomerAlgorithm": { + "target": "com.amazonaws.s3#SSECustomerAlgorithm", + "traits": { + "smithy.api#documentation": "

                      The server-side encryption (SSE) algorithm used to encrypt the object. This parameter is needed only when the object was created \n using a checksum algorithm. For more information,\n see Protecting data using SSE-C keys in the\n Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-algorithm" + } + }, + "SSECustomerKey": { + "target": "com.amazonaws.s3#SSECustomerKey", + "traits": { + "smithy.api#documentation": "

                      The server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. \n For more information, see\n Protecting data using SSE-C keys in the\n Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key" + } + }, + "SSECustomerKeyMD5": { + "target": "com.amazonaws.s3#SSECustomerKeyMD5", + "traits": { + "smithy.api#documentation": "

                      The MD5 server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum \n algorithm. For more information,\n see Protecting data using SSE-C keys in the\n Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key-MD5" + } } } }, @@ -1307,6 +1467,30 @@ "smithy.api#documentation": "

                      Entity tag returned when the part was uploaded.

                      " } }, + "ChecksumCRC32": { + "target": "com.amazonaws.s3#ChecksumCRC32", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      " + } + }, + "ChecksumCRC32C": { + "target": "com.amazonaws.s3#ChecksumCRC32C", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      " + } + }, + "ChecksumSHA1": { + "target": "com.amazonaws.s3#ChecksumSHA1", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      " + } + }, + "ChecksumSHA256": { + "target": "com.amazonaws.s3#ChecksumSHA256", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      " + } + }, "PartNumber": { "target": "com.amazonaws.s3#PartNumber", "traits": { @@ -1408,7 +1592,7 @@ } ], "traits": { - "smithy.api#documentation": "

                      Creates a copy of an object that is already stored in Amazon S3.

                      \n \n

                      You can store individual objects of up to 5 TB in Amazon S3. You create a copy of your\n object up to 5 GB in size in a single atomic action using this API. However, to copy\n an object greater than 5 GB, you must use the multipart upload Upload Part - Copy API.\n For more information, see Copy Object Using the REST Multipart Upload API.

                      \n
                      \n

                      All copy requests must be authenticated. Additionally, you must have\n read access to the source object and write\n access to the destination bucket. For more information, see REST Authentication. Both the Region\n that you want to copy the object from and the Region that you want to copy the object to\n must be enabled for your account.

                      \n

                      A copy request might return an error when Amazon S3 receives the copy request or while Amazon S3\n is copying the files. If the error occurs before the copy action starts, you receive a\n standard Amazon S3 error. If the error occurs during the copy operation, the error response is\n embedded in the 200 OK response. This means that a 200 OK\n response can contain either a success or an error. Design your application to parse the\n contents of the response and handle it appropriately.

                      \n

                      If the copy is successful, you receive a response with information about the copied\n object.

                      \n \n

                      If the request is an HTTP 1.1 request, the response is chunk encoded. If it were not,\n it would not contain the content-length, and you would need to read the entire\n body.

                      \n
                      \n

                      The copy request charge is based on the storage class and Region that you specify for\n the destination object. For pricing information, see Amazon S3 pricing.

                      \n \n

                      Amazon S3 transfer acceleration does not support cross-Region copies. If you request a\n cross-Region copy using a transfer acceleration endpoint, you get a 400 Bad\n Request error. For more information, see Transfer Acceleration.

                      \n
                      \n

                      \n Metadata\n

                      \n

                      When copying an object, you can preserve all metadata (default) or specify new metadata.\n However, the ACL is not preserved and is set to private for the user making the request. To\n override the default ACL setting, specify a new ACL when generating a copy request. For\n more information, see Using ACLs.

                      \n

                      To specify whether you want the object metadata copied from the source object or\n replaced with metadata provided in the request, you can optionally add the\n x-amz-metadata-directive header. When you grant permissions, you can use\n the s3:x-amz-metadata-directive condition key to enforce certain metadata\n behavior when objects are uploaded. For more information, see Specifying Conditions in a\n Policy in the Amazon S3 User Guide. For a complete list of\n Amazon S3-specific condition keys, see Actions, Resources, and Condition Keys for\n Amazon S3.

                      \n

                      \n \n x-amz-copy-source-if Headers\n

                      \n

                      To only copy an object under certain conditions, such as whether the Etag\n matches or whether the object was modified before or after a specified date, use the\n following request parameters:

                      \n
                        \n
                      • \n

                        \n x-amz-copy-source-if-match\n

                        \n
                      • \n
                      • \n

                        \n x-amz-copy-source-if-none-match\n

                        \n
                      • \n
                      • \n

                        \n x-amz-copy-source-if-unmodified-since\n

                        \n
                      • \n
                      • \n

                        \n x-amz-copy-source-if-modified-since\n

                        \n
                      • \n
                      \n

                      If both the x-amz-copy-source-if-match and\n x-amz-copy-source-if-unmodified-since headers are present in the request\n and evaluate as follows, Amazon S3 returns 200 OK and copies the data:

                      \n
                        \n
                      • \n

                        \n x-amz-copy-source-if-match condition evaluates to true

                        \n
                      • \n
                      • \n

                        \n x-amz-copy-source-if-unmodified-since condition evaluates to\n false

                        \n
                      • \n
                      \n\n

                      If both the x-amz-copy-source-if-none-match and\n x-amz-copy-source-if-modified-since headers are present in the request and\n evaluate as follows, Amazon S3 returns the 412 Precondition Failed response\n code:

                      \n
                        \n
                      • \n

                        \n x-amz-copy-source-if-none-match condition evaluates to false

                        \n
                      • \n
                      • \n

                        \n x-amz-copy-source-if-modified-since condition evaluates to\n true

                        \n
                      • \n
                      \n\n \n

                      All headers with the x-amz- prefix, including\n x-amz-copy-source, must be signed.

                      \n
                      \n

                      \n Server-side encryption\n

                      \n

                      When you perform a CopyObject operation, you can optionally use the appropriate encryption-related \n headers to encrypt the object using server-side encryption with Amazon Web Services managed encryption keys \n (SSE-S3 or SSE-KMS) or a customer-provided encryption key. With server-side encryption, Amazon S3 \n encrypts your data as it writes it to disks in its data centers and decrypts the data when \n you access it. For more information about server-side encryption, see Using\n Server-Side Encryption.

                      \n

                      If a target object uses SSE-KMS, you can enable an S3 Bucket Key for the object. For more\n information, see Amazon S3 Bucket Keys in the Amazon S3 User Guide.

                      \n

                      \n Access Control List (ACL)-Specific Request\n Headers\n

                      \n

                      When copying an object, you can optionally use headers to grant ACL-based permissions.\n By default, all objects are private. Only the owner has full access control. When adding a\n new object, you can grant permissions to individual Amazon Web Services accounts or to predefined groups\n defined by Amazon S3. These permissions are then added to the ACL on the object. For more\n information, see Access Control List (ACL) Overview and Managing ACLs Using the REST\n API.

                      \n

                      If the bucket that you're copying objects to uses the bucket owner enforced setting for\n S3 Object Ownership, ACLs are disabled and no longer affect permissions. Buckets that\n use this setting only accept PUT requests that don't specify an ACL or PUT requests that\n specify bucket owner full control ACLs, such as the bucket-owner-full-control canned\n ACL or an equivalent form of this ACL expressed in the XML format.

                      \n

                      For more information, see Controlling ownership of\n objects and disabling ACLs in the Amazon S3 User Guide.

                      \n \n

                      If your bucket uses the bucket owner enforced setting for Object Ownership, \n all objects written to the bucket by any account will be owned by the bucket owner.

                      \n
                      \n

                      \n Storage Class Options\n

                      \n

                      You can use the CopyObject action to change the storage class of an\n object that is already stored in Amazon S3 using the StorageClass parameter. For\n more information, see Storage\n Classes in the Amazon S3 User Guide.

                      \n

                      \n Versioning\n

                      \n

                      By default, x-amz-copy-source identifies the current version of an object\n to copy. If the current version is a delete marker, Amazon S3 behaves as if the object was\n deleted. To copy a different version, use the versionId subresource.

                      \n

                      If you enable versioning on the target bucket, Amazon S3 generates a unique version ID for\n the object being copied. This version ID is different from the version ID of the source\n object. Amazon S3 returns the version ID of the copied object in the\n x-amz-version-id response header in the response.

                      \n

                      If you do not enable versioning or suspend it on the target bucket, the version ID that\n Amazon S3 generates is always null.

                      \n

                      If the source object's storage class is GLACIER, you must restore a copy of this object\n before you can use it as a source object for the copy operation. For more information, see\n RestoreObject.

                      \n

                      The following operations are related to CopyObject:

                      \n \n

                      For more information, see Copying\n Objects.

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

                      Creates a copy of an object that is already stored in Amazon S3.

                      \n \n

                      You can store individual objects of up to 5 TB in Amazon S3. You create a copy of your\n object up to 5 GB in size in a single atomic action using this API. However, to copy an\n object greater than 5 GB, you must use the multipart upload Upload Part - Copy\n (UploadPartCopy) API. For more information, see Copy Object Using the\n REST Multipart Upload API.

                      \n
                      \n

                      All copy requests must be authenticated. Additionally, you must have\n read access to the source object and write\n access to the destination bucket. For more information, see REST Authentication. Both the Region\n that you want to copy the object from and the Region that you want to copy the object to\n must be enabled for your account.

                      \n

                      A copy request might return an error when Amazon S3 receives the copy request or while Amazon S3\n is copying the files. If the error occurs before the copy action starts, you receive a\n standard Amazon S3 error. If the error occurs during the copy operation, the error response is\n embedded in the 200 OK response. This means that a 200 OK\n response can contain either a success or an error. Design your application to parse the\n contents of the response and handle it appropriately.

                      \n

                      If the copy is successful, you receive a response with information about the copied\n object.

                      \n \n

                      If the request is an HTTP 1.1 request, the response is chunk encoded. If it were not,\n it would not contain the content-length, and you would need to read the entire\n body.

                      \n
                      \n

                      The copy request charge is based on the storage class and Region that you specify for\n the destination object. For pricing information, see Amazon S3 pricing.

                      \n \n

                      Amazon S3 transfer acceleration does not support cross-Region copies. If you request a\n cross-Region copy using a transfer acceleration endpoint, you get a 400 Bad\n Request error. For more information, see Transfer Acceleration.

                      \n
                      \n

                      \n Metadata\n

                      \n

                      When copying an object, you can preserve all metadata (default) or specify new metadata.\n However, the ACL is not preserved and is set to private for the user making the request. To\n override the default ACL setting, specify a new ACL when generating a copy request. For\n more information, see Using ACLs.

                      \n

                      To specify whether you want the object metadata copied from the source object or\n replaced with metadata provided in the request, you can optionally add the\n x-amz-metadata-directive header. When you grant permissions, you can use\n the s3:x-amz-metadata-directive condition key to enforce certain metadata\n behavior when objects are uploaded. For more information, see Specifying Conditions in a\n Policy in the Amazon S3 User Guide. For a complete list of\n Amazon S3-specific condition keys, see Actions, Resources, and Condition Keys for\n Amazon S3.

                      \n

                      \n x-amz-copy-source-if Headers\n

                      \n

                      To only copy an object under certain conditions, such as whether the Etag\n matches or whether the object was modified before or after a specified date, use the\n following request parameters:

                      \n
                        \n
                      • \n

                        \n x-amz-copy-source-if-match\n

                        \n
                      • \n
                      • \n

                        \n x-amz-copy-source-if-none-match\n

                        \n
                      • \n
                      • \n

                        \n x-amz-copy-source-if-unmodified-since\n

                        \n
                      • \n
                      • \n

                        \n x-amz-copy-source-if-modified-since\n

                        \n
                      • \n
                      \n

                      If both the x-amz-copy-source-if-match and\n x-amz-copy-source-if-unmodified-since headers are present in the request\n and evaluate as follows, Amazon S3 returns 200 OK and copies the data:

                      \n
                        \n
                      • \n

                        \n x-amz-copy-source-if-match condition evaluates to true

                        \n
                      • \n
                      • \n

                        \n x-amz-copy-source-if-unmodified-since condition evaluates to\n false

                        \n
                      • \n
                      \n\n

                      If both the x-amz-copy-source-if-none-match and\n x-amz-copy-source-if-modified-since headers are present in the request and\n evaluate as follows, Amazon S3 returns the 412 Precondition Failed response\n code:

                      \n
                        \n
                      • \n

                        \n x-amz-copy-source-if-none-match condition evaluates to false

                        \n
                      • \n
                      • \n

                        \n x-amz-copy-source-if-modified-since condition evaluates to\n true

                        \n
                      • \n
                      \n\n \n

                      All headers with the x-amz- prefix, including\n x-amz-copy-source, must be signed.

                      \n
                      \n

                      \n Server-side encryption\n

                      \n

                      When you perform a CopyObject operation, you can optionally use the appropriate encryption-related \n headers to encrypt the object using server-side encryption with Amazon Web Services managed encryption keys \n (SSE-S3 or SSE-KMS) or a customer-provided encryption key. With server-side encryption, Amazon S3 \n encrypts your data as it writes it to disks in its data centers and decrypts the data when \n you access it. For more information about server-side encryption, see Using\n Server-Side Encryption.

                      \n

                      If a target object uses SSE-KMS, you can enable an S3 Bucket Key for the object. For more\n information, see Amazon S3 Bucket Keys in the Amazon S3 User Guide.

                      \n

                      \n Access Control List (ACL)-Specific Request\n Headers\n

                      \n

                      When copying an object, you can optionally use headers to grant ACL-based permissions.\n By default, all objects are private. Only the owner has full access control. When adding a\n new object, you can grant permissions to individual Amazon Web Services accounts or to predefined groups\n defined by Amazon S3. These permissions are then added to the ACL on the object. For more\n information, see Access Control List (ACL) Overview and Managing ACLs Using the REST\n API.

                      \n

                      If the bucket that you're copying objects to uses the bucket owner enforced setting for\n S3 Object Ownership, ACLs are disabled and no longer affect permissions. Buckets that\n use this setting only accept PUT requests that don't specify an ACL or PUT requests that\n specify bucket owner full control ACLs, such as the bucket-owner-full-control canned\n ACL or an equivalent form of this ACL expressed in the XML format.

                      \n

                      For more information, see Controlling ownership of\n objects and disabling ACLs in the Amazon S3 User Guide.

                      \n \n

                      If your bucket uses the bucket owner enforced setting for Object Ownership, \n all objects written to the bucket by any account will be owned by the bucket owner.

                      \n
                      \n

                      \n Checksums\n

                      \n

                      When copying an object, if it has a checksum, that checksum will be copied to the new object\n by default. When you copy the object over, you may optionally specify a different checksum\n algorithm to use with the x-amz-checksum-algorithm header.

                      \n

                      \n Storage Class Options\n

                      \n

                      You can use the CopyObject action to change the storage class of an\n object that is already stored in Amazon S3 using the StorageClass parameter. For\n more information, see Storage\n Classes in the Amazon S3 User Guide.

                      \n

                      \n Versioning\n

                      \n

                      By default, x-amz-copy-source identifies the current version of an object\n to copy. If the current version is a delete marker, Amazon S3 behaves as if the object was\n deleted. To copy a different version, use the versionId subresource.

                      \n

                      If you enable versioning on the target bucket, Amazon S3 generates a unique version ID for\n the object being copied. This version ID is different from the version ID of the source\n object. Amazon S3 returns the version ID of the copied object in the\n x-amz-version-id response header in the response.

                      \n

                      If you do not enable versioning or suspend it on the target bucket, the version ID that\n Amazon S3 generates is always null.

                      \n

                      If the source object's storage class is GLACIER, you must restore a copy of this object\n before you can use it as a source object for the copy operation. For more information, see\n RestoreObject.

                      \n

                      The following operations are related to CopyObject:

                      \n \n

                      For more information, see Copying\n Objects.

                      ", "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}/{Key+}?x-id=CopyObject", @@ -1510,7 +1694,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

                      The name of the destination bucket.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

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

                      The name of the destination bucket.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1522,6 +1706,13 @@ "smithy.api#httpHeader": "Cache-Control" } }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

                      Indicates the algorithm you want Amazon S3 to use to create the checksum for the object. For more information, see\n Checking object integrity in\n the Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-checksum-algorithm" + } + }, "ContentDisposition": { "target": "com.amazonaws.s3#ContentDisposition", "traits": { @@ -1553,7 +1744,7 @@ "CopySource": { "target": "com.amazonaws.s3#CopySource", "traits": { - "smithy.api#documentation": "

                      Specifies the source object for the copy operation. You specify the value in one of two\n formats, depending on whether you want to access the source object through an access point:

                      \n
                        \n
                      • \n

                        For objects not accessed through an access point, specify the name of the source\n bucket and the key of the source object, separated by a slash (/). For example, to\n copy the object reports/january.pdf from the bucket\n awsexamplebucket, use\n awsexamplebucket/reports/january.pdf. The value must be URL\n encoded.

                        \n
                      • \n
                      • \n

                        For objects accessed through access points, specify the Amazon Resource Name (ARN) of the object as accessed through the access point, in the format arn:aws:s3:::accesspoint//object/. For example, to copy the object reports/january.pdf through access point my-access-point owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf. The value must be URL encoded.

                        \n \n

                        Amazon S3 supports copy operations using access points only when the source and destination buckets are in the same Amazon Web Services Region.

                        \n
                        \n

                        Alternatively, for objects accessed through Amazon S3 on Outposts, specify the ARN of the object as accessed in the format arn:aws:s3-outposts:::outpost//object/. For example, to copy the object reports/january.pdf through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf. The value must be URL encoded.

                        \n
                      • \n
                      \n

                      To copy a specific version of an object, append ?versionId=\n to the value (for example,\n awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893).\n If you don't specify a version ID, Amazon S3 copies the latest version of the source\n object.

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

                      Specifies the source object for the copy operation. You specify the value in one of two\n formats, depending on whether you want to access the source object through an access point:

                      \n
                        \n
                      • \n

                        For objects not accessed through an access point, specify the name of the source bucket\n and the key of the source object, separated by a slash (/). For example, to copy the\n object reports/january.pdf from the bucket\n awsexamplebucket, use awsexamplebucket/reports/january.pdf.\n The value must be URL-encoded.

                        \n
                      • \n
                      • \n

                        For objects accessed through access points, specify the Amazon Resource Name (ARN) of the object as accessed through the access point, in the format arn:aws:s3:::accesspoint//object/. For example, to copy the object reports/january.pdf through access point my-access-point owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf. The value must be URL encoded.

                        \n \n

                        Amazon S3 supports copy operations using access points only when the source and destination buckets are in the same Amazon Web Services Region.

                        \n
                        \n

                        Alternatively, for objects accessed through Amazon S3 on Outposts, specify the ARN of the object as accessed in the format arn:aws:s3-outposts:::outpost//object/. For example, to copy the object reports/january.pdf through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf. The value must be URL-encoded.

                        \n
                      • \n
                      \n

                      To copy a specific version of an object, append ?versionId=\n to the value (for example,\n awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893).\n If you don't specify a version ID, Amazon S3 copies the latest version of the source\n object.

                      ", "smithy.api#httpHeader": "x-amz-copy-source", "smithy.api#required": {} } @@ -1764,21 +1955,21 @@ "ObjectLockLegalHoldStatus": { "target": "com.amazonaws.s3#ObjectLockLegalHoldStatus", "traits": { - "smithy.api#documentation": "

                      Specifies whether you want to apply a Legal Hold to the copied object.

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

                      Specifies whether you want to apply a legal hold to the copied object.

                      ", "smithy.api#httpHeader": "x-amz-object-lock-legal-hold" } }, "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected destination bucket owner. If the destination bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected destination bucket owner. If the destination bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } }, "ExpectedSourceBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected source bucket owner. If the source bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected source bucket owner. If the source bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-source-expected-bucket-owner" } } @@ -1798,6 +1989,30 @@ "traits": { "smithy.api#documentation": "

                      Creation date of the object.

                      " } + }, + "ChecksumCRC32": { + "target": "com.amazonaws.s3#ChecksumCRC32", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      " + } + }, + "ChecksumCRC32C": { + "target": "com.amazonaws.s3#ChecksumCRC32C", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      " + } + }, + "ChecksumSHA1": { + "target": "com.amazonaws.s3#ChecksumSHA1", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      " + } + }, + "ChecksumSHA256": { + "target": "com.amazonaws.s3#ChecksumSHA256", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      " + } } }, "traits": { @@ -1818,6 +2033,30 @@ "traits": { "smithy.api#documentation": "

                      Date and time at which the object was uploaded.

                      " } + }, + "ChecksumCRC32": { + "target": "com.amazonaws.s3#ChecksumCRC32", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      " + } + }, + "ChecksumCRC32C": { + "target": "com.amazonaws.s3#ChecksumCRC32C", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      " + } + }, + "ChecksumSHA1": { + "target": "com.amazonaws.s3#ChecksumSHA1", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      " + } + }, + "ChecksumSHA256": { + "target": "com.amazonaws.s3#ChecksumSHA256", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      " + } } }, "traits": { @@ -1905,7 +2144,7 @@ "Location": { "target": "com.amazonaws.s3#Location", "traits": { - "smithy.api#documentation": "

                      Specifies the Region where the bucket will be created. If you are creating a bucket on\n the US East (N. Virginia) Region (us-east-1), you do not need to specify the\n location.

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

                      A forward slash followed by the name of the bucket.

                      ", "smithy.api#httpHeader": "Location" } } @@ -1996,7 +2235,7 @@ "target": "com.amazonaws.s3#CreateMultipartUploadOutput" }, "traits": { - "smithy.api#documentation": "

                      This action initiates a multipart upload and returns an upload ID. This upload ID is\n used to associate all of the parts in the specific multipart upload. You specify this\n upload ID in each of your subsequent upload part requests (see UploadPart). You also include this\n upload ID in the final request to either complete or abort the multipart upload\n request.

                      \n\n

                      For more information about multipart uploads, see Multipart Upload Overview.

                      \n\n

                      If you have configured a lifecycle rule to abort incomplete multipart uploads, the\n upload must complete within the number of days specified in the bucket lifecycle\n configuration. Otherwise, the incomplete multipart upload becomes eligible for an abort\n action and Amazon S3 aborts the multipart upload. For more information, see Aborting\n Incomplete Multipart Uploads Using a Bucket Lifecycle Policy.

                      \n\n

                      For information about the permissions required to use the multipart upload API, see\n Multipart Upload and\n Permissions.

                      \n\n

                      For request signing, multipart upload is just a series of regular requests. You initiate\n a multipart upload, send one or more requests to upload parts, and then complete the\n multipart upload process. You sign each request individually. There is nothing special\n about signing multipart upload requests. For more information about signing, see Authenticating\n Requests (Amazon Web Services Signature Version 4).

                      \n\n \n

                      After you initiate a multipart upload and upload one or more parts, to stop being\n charged for storing the uploaded parts, you must either complete or abort the multipart\n upload. Amazon S3 frees up the space used to store the parts and stop charging you for\n storing them only after you either complete or abort a multipart upload.

                      \n
                      \n\n

                      You can optionally request server-side encryption. For server-side encryption, Amazon S3\n encrypts your data as it writes it to disks in its data centers and decrypts it when you\n access it. You can provide your own encryption key, or use Amazon Web Services KMS keys or Amazon S3-managed encryption keys. If you choose to provide\n your own encryption key, the request headers you provide in UploadPart and UploadPartCopy requests must match the headers you used in the request to\n initiate the upload by using CreateMultipartUpload.

                      \n

                      To perform a multipart upload with encryption using an Amazon Web Services KMS key, the requester must\n have permission to the kms:Decrypt and kms:GenerateDataKey*\n actions on the key. These permissions are required because Amazon S3 must decrypt and read data\n from the encrypted file parts before it completes the multipart upload. For more\n information, see Multipart upload API\n and permissions in the Amazon S3 User Guide.

                      \n\n

                      If your Identity and Access Management (IAM) user or role is in the same Amazon Web Services account\n as the KMS key, then you must have these permissions on the key policy. If your IAM\n user or role belongs to a different account than the key, then you must have the\n permissions on both the key policy and your IAM user or role.

                      \n\n\n

                      For more information, see Protecting\n Data Using Server-Side Encryption.

                      \n\n
                      \n
                      Access Permissions
                      \n
                      \n

                      When copying an object, you can optionally specify the accounts or groups that\n should be granted specific permissions on the new object. There are two ways to\n grant the permissions using the request headers:

                      \n
                        \n
                      • \n

                        Specify a canned ACL with the x-amz-acl request header. For\n more information, see Canned ACL.

                        \n
                      • \n
                      • \n

                        Specify access permissions explicitly with the\n x-amz-grant-read, x-amz-grant-read-acp,\n x-amz-grant-write-acp, and\n x-amz-grant-full-control headers. These parameters map to\n the set of permissions that Amazon S3 supports in an ACL. For more information,\n see Access Control List (ACL)\n Overview.

                        \n
                      • \n
                      \n

                      You can use either a canned ACL or specify access permissions explicitly. You\n cannot do both.

                      \n
                      \n
                      Server-Side- Encryption-Specific Request Headers
                      \n
                      \n

                      You can optionally tell Amazon S3 to encrypt data at rest using server-side\n encryption. Server-side encryption is for data encryption at rest. Amazon S3 encrypts\n your data as it writes it to disks in its data centers and decrypts it when you\n access it. The option you use depends on whether you want to use Amazon Web Services managed\n encryption keys or provide your own encryption key.

                      \n
                        \n
                      • \n

                        Use encryption keys managed by Amazon S3 or customer managed key stored\n in Amazon Web Services Key Management Service (Amazon Web Services KMS) – If you want Amazon Web Services to manage the keys\n used to encrypt data, specify the following headers in the request.

                        \n
                          \n
                        • \n

                          x-amz-server-side-encryption

                          \n
                        • \n
                        • \n

                          x-amz-server-side-encryption-aws-kms-key-id

                          \n
                        • \n
                        • \n

                          x-amz-server-side-encryption-context

                          \n
                        • \n
                        \n \n

                        If you specify x-amz-server-side-encryption:aws:kms, but\n don't provide x-amz-server-side-encryption-aws-kms-key-id,\n Amazon S3 uses the Amazon Web Services managed key in Amazon Web Services KMS to protect the data.

                        \n
                        \n \n

                        All GET and PUT requests for an object protected by Amazon Web Services KMS fail if\n you don't make them with SSL or by using SigV4.

                        \n
                        \n

                        For more information about server-side encryption with KMS key (SSE-KMS),\n see Protecting Data Using Server-Side Encryption with KMS keys.

                        \n
                      • \n
                      • \n

                        Use customer-provided encryption keys – If you want to manage your own\n encryption keys, provide all the following headers in the request.

                        \n
                          \n
                        • \n

                          x-amz-server-side-encryption-customer-algorithm

                          \n
                        • \n
                        • \n

                          x-amz-server-side-encryption-customer-key

                          \n
                        • \n
                        • \n

                          x-amz-server-side-encryption-customer-key-MD5

                          \n
                        • \n
                        \n

                        For more information about server-side encryption with KMS keys (SSE-KMS),\n see Protecting Data Using Server-Side Encryption with KMS keys.

                        \n
                      • \n
                      \n
                      \n
                      Access-Control-List (ACL)-Specific Request Headers
                      \n
                      \n

                      You also can use the following access control–related headers with this\n operation. By default, all objects are private. Only the owner has full access\n control. When adding a new object, you can grant permissions to individual Amazon Web Services accounts or to predefined groups defined by Amazon S3. These permissions are then added\n to the access control list (ACL) on the object. For more information, see Using ACLs. With this\n operation, you can grant access permissions using one of the following two\n methods:

                      \n
                        \n
                      • \n

                        Specify a canned ACL (x-amz-acl) — Amazon S3 supports a set of\n predefined ACLs, known as canned ACLs. Each canned ACL\n has a predefined set of grantees and permissions. For more information, see\n Canned\n ACL.

                        \n
                      • \n
                      • \n

                        Specify access permissions explicitly — To explicitly grant access\n permissions to specific Amazon Web Services accounts or groups, use the following headers.\n Each header maps to specific permissions that Amazon S3 supports in an ACL. For\n more information, see Access\n Control List (ACL) Overview. In the header, you specify a list of\n grantees who get the specific permission. To grant permissions explicitly,\n use:

                        \n
                          \n
                        • \n

                          x-amz-grant-read

                          \n
                        • \n
                        • \n

                          x-amz-grant-write

                          \n
                        • \n
                        • \n

                          x-amz-grant-read-acp

                          \n
                        • \n
                        • \n

                          x-amz-grant-write-acp

                          \n
                        • \n
                        • \n

                          x-amz-grant-full-control

                          \n
                        • \n
                        \n

                        You specify each grantee as a type=value pair, where the type is one of\n the following:

                        \n
                          \n
                        • \n

                          \n id – if the value specified is the canonical user ID\n of an Amazon Web Services account

                          \n
                        • \n
                        • \n

                          \n uri – if you are granting permissions to a predefined\n group

                          \n
                        • \n
                        • \n

                          \n emailAddress – if the value specified is the email\n address of an Amazon Web Services account

                          \n \n

                          Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:

                          \n
                            \n
                          • \n

                            US East (N. Virginia)

                            \n
                          • \n
                          • \n

                            US West (N. California)

                            \n
                          • \n
                          • \n

                            US West (Oregon)

                            \n
                          • \n
                          • \n

                            Asia Pacific (Singapore)

                            \n
                          • \n
                          • \n

                            Asia Pacific (Sydney)

                            \n
                          • \n
                          • \n

                            Asia Pacific (Tokyo)

                            \n
                          • \n
                          • \n

                            Europe (Ireland)

                            \n
                          • \n
                          • \n

                            South America (São Paulo)

                            \n
                          • \n
                          \n

                          For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the Amazon Web Services General Reference.

                          \n
                          \n
                        • \n
                        \n

                        For example, the following x-amz-grant-read header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:

                        \n

                        \n x-amz-grant-read: id=\"11112222333\", id=\"444455556666\" \n

                        \n
                      • \n
                      \n\n
                      \n
                      \n\n

                      The following operations are related to CreateMultipartUpload:

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

                      This action initiates a multipart upload and returns an upload ID. This upload ID is\n used to associate all of the parts in the specific multipart upload. You specify this\n upload ID in each of your subsequent upload part requests (see UploadPart). You also include this\n upload ID in the final request to either complete or abort the multipart upload\n request.

                      \n\n

                      For more information about multipart uploads, see Multipart Upload Overview.

                      \n\n

                      If you have configured a lifecycle rule to abort incomplete multipart uploads, the\n upload must complete within the number of days specified in the bucket lifecycle\n configuration. Otherwise, the incomplete multipart upload becomes eligible for an abort\n action and Amazon S3 aborts the multipart upload. For more information, see Aborting\n Incomplete Multipart Uploads Using a Bucket Lifecycle Policy.

                      \n\n

                      For information about the permissions required to use the multipart upload API, see\n Multipart Upload and\n Permissions.

                      \n\n

                      For request signing, multipart upload is just a series of regular requests. You initiate\n a multipart upload, send one or more requests to upload parts, and then complete the\n multipart upload process. You sign each request individually. There is nothing special\n about signing multipart upload requests. For more information about signing, see Authenticating\n Requests (Amazon Web Services Signature Version 4).

                      \n\n \n

                      After you initiate a multipart upload and upload one or more parts, to stop being\n charged for storing the uploaded parts, you must either complete or abort the multipart\n upload. Amazon S3 frees up the space used to store the parts and stop charging you for\n storing them only after you either complete or abort a multipart upload.

                      \n
                      \n\n

                      You can optionally request server-side encryption. For server-side encryption, Amazon S3\n encrypts your data as it writes it to disks in its data centers and decrypts it when you\n access it. You can provide your own encryption key, or use Amazon Web Services KMS keys or Amazon S3-managed encryption keys. If you choose to provide\n your own encryption key, the request headers you provide in UploadPart and UploadPartCopy requests must match the headers you used in the request to\n initiate the upload by using CreateMultipartUpload.

                      \n

                      To perform a multipart upload with encryption using an Amazon Web Services KMS key, the requester must\n have permission to the kms:Decrypt and kms:GenerateDataKey*\n actions on the key. These permissions are required because Amazon S3 must decrypt and read data\n from the encrypted file parts before it completes the multipart upload. For more\n information, see Multipart upload API\n and permissions in the Amazon S3 User Guide.

                      \n\n

                      If your Identity and Access Management (IAM) user or role is in the same Amazon Web Services account\n as the KMS key, then you must have these permissions on the key policy. If your IAM\n user or role belongs to a different account than the key, then you must have the\n permissions on both the key policy and your IAM user or role.

                      \n\n\n

                      For more information, see Protecting\n Data Using Server-Side Encryption.

                      \n\n
                      \n
                      Access Permissions
                      \n
                      \n

                      When copying an object, you can optionally specify the accounts or groups that\n should be granted specific permissions on the new object. There are two ways to\n grant the permissions using the request headers:

                      \n
                        \n
                      • \n

                        Specify a canned ACL with the x-amz-acl request header. For\n more information, see Canned ACL.

                        \n
                      • \n
                      • \n

                        Specify access permissions explicitly with the\n x-amz-grant-read, x-amz-grant-read-acp,\n x-amz-grant-write-acp, and\n x-amz-grant-full-control headers. These parameters map to\n the set of permissions that Amazon S3 supports in an ACL. For more information,\n see Access Control List (ACL)\n Overview.

                        \n
                      • \n
                      \n

                      You can use either a canned ACL or specify access permissions explicitly. You\n cannot do both.

                      \n
                      \n
                      Server-Side- Encryption-Specific Request Headers
                      \n
                      \n

                      You can optionally tell Amazon S3 to encrypt data at rest using server-side\n encryption. Server-side encryption is for data encryption at rest. Amazon S3 encrypts\n your data as it writes it to disks in its data centers and decrypts it when you\n access it. The option you use depends on whether you want to use Amazon Web Services managed\n encryption keys or provide your own encryption key.

                      \n
                        \n
                      • \n

                        Use encryption keys managed by Amazon S3 or customer managed key stored\n in Amazon Web Services Key Management Service (Amazon Web Services KMS) – If you want Amazon Web Services to manage the keys\n used to encrypt data, specify the following headers in the request.

                        \n
                          \n
                        • \n

                          \n x-amz-server-side-encryption\n

                          \n
                        • \n
                        • \n

                          \n x-amz-server-side-encryption-aws-kms-key-id\n

                          \n
                        • \n
                        • \n

                          \n x-amz-server-side-encryption-context\n

                          \n
                        • \n
                        \n \n

                        If you specify x-amz-server-side-encryption:aws:kms, but\n don't provide x-amz-server-side-encryption-aws-kms-key-id,\n Amazon S3 uses the Amazon Web Services managed key in Amazon Web Services KMS to protect the data.

                        \n
                        \n \n

                        All GET and PUT requests for an object protected by Amazon Web Services KMS fail if\n you don't make them with SSL or by using SigV4.

                        \n
                        \n

                        For more information about server-side encryption with KMS key (SSE-KMS),\n see Protecting Data Using Server-Side Encryption with KMS keys.

                        \n
                      • \n
                      • \n

                        Use customer-provided encryption keys – If you want to manage your own\n encryption keys, provide all the following headers in the request.

                        \n
                          \n
                        • \n

                          \n x-amz-server-side-encryption-customer-algorithm\n

                          \n
                        • \n
                        • \n

                          \n x-amz-server-side-encryption-customer-key\n

                          \n
                        • \n
                        • \n

                          \n x-amz-server-side-encryption-customer-key-MD5\n

                          \n
                        • \n
                        \n

                        For more information about server-side encryption with KMS keys (SSE-KMS),\n see Protecting Data Using Server-Side Encryption with KMS keys.

                        \n
                      • \n
                      \n
                      \n
                      Access-Control-List (ACL)-Specific Request Headers
                      \n
                      \n

                      You also can use the following access control–related headers with this\n operation. By default, all objects are private. Only the owner has full access\n control. When adding a new object, you can grant permissions to individual Amazon Web Services accounts or to predefined groups defined by Amazon S3. These permissions are then added\n to the access control list (ACL) on the object. For more information, see Using ACLs. With this\n operation, you can grant access permissions using one of the following two\n methods:

                      \n
                        \n
                      • \n

                        Specify a canned ACL (x-amz-acl) — Amazon S3 supports a set of\n predefined ACLs, known as canned ACLs. Each canned ACL\n has a predefined set of grantees and permissions. For more information, see\n Canned\n ACL.

                        \n
                      • \n
                      • \n

                        Specify access permissions explicitly — To explicitly grant access\n permissions to specific Amazon Web Services accounts or groups, use the following headers.\n Each header maps to specific permissions that Amazon S3 supports in an ACL. For\n more information, see Access\n Control List (ACL) Overview. In the header, you specify a list of\n grantees who get the specific permission. To grant permissions explicitly,\n use:

                        \n
                          \n
                        • \n

                          \n x-amz-grant-read\n

                          \n
                        • \n
                        • \n

                          \n x-amz-grant-write\n

                          \n
                        • \n
                        • \n

                          \n x-amz-grant-read-acp\n

                          \n
                        • \n
                        • \n

                          \n x-amz-grant-write-acp\n

                          \n
                        • \n
                        • \n

                          \n x-amz-grant-full-control\n

                          \n
                        • \n
                        \n

                        You specify each grantee as a type=value pair, where the type is one of\n the following:

                        \n
                          \n
                        • \n

                          \n id – if the value specified is the canonical user ID\n of an Amazon Web Services account

                          \n
                        • \n
                        • \n

                          \n uri – if you are granting permissions to a predefined\n group

                          \n
                        • \n
                        • \n

                          \n emailAddress – if the value specified is the email\n address of an Amazon Web Services account

                          \n \n

                          Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:

                          \n
                            \n
                          • \n

                            US East (N. Virginia)

                            \n
                          • \n
                          • \n

                            US West (N. California)

                            \n
                          • \n
                          • \n

                            US West (Oregon)

                            \n
                          • \n
                          • \n

                            Asia Pacific (Singapore)

                            \n
                          • \n
                          • \n

                            Asia Pacific (Sydney)

                            \n
                          • \n
                          • \n

                            Asia Pacific (Tokyo)

                            \n
                          • \n
                          • \n

                            Europe (Ireland)

                            \n
                          • \n
                          • \n

                            South America (São Paulo)

                            \n
                          • \n
                          \n

                          For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the Amazon Web Services General Reference.

                          \n
                          \n
                        • \n
                        \n

                        For example, the following x-amz-grant-read header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:

                        \n

                        \n x-amz-grant-read: id=\"11112222333\", id=\"444455556666\" \n

                        \n
                      • \n
                      \n\n
                      \n
                      \n\n

                      The following operations are related to CreateMultipartUpload:

                      \n ", "smithy.api#http": { "method": "POST", "uri": "/{Bucket}/{Key+}?uploads&x-id=CreateMultipartUpload", @@ -2024,7 +2263,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

                      The name of the bucket to which the multipart upload was initiated. Does not return the access point ARN or access point alias if used.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

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

                      The name of the bucket to which the multipart upload was initiated. Does not return the access point ARN or access point alias if used.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      ", "smithy.api#xmlName": "Bucket" } }, @@ -2087,6 +2326,13 @@ "traits": { "smithy.api#httpHeader": "x-amz-request-charged" } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

                      The algorithm that was used to create a checksum of the object.

                      ", + "smithy.api#httpHeader": "x-amz-checksum-algorithm" + } } }, "traits": { @@ -2106,7 +2352,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

                      The name of the bucket to which to initiate the upload

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

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

                      The name of the bucket to which to initiate the upload

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2289,16 +2535,23 @@ "ObjectLockLegalHoldStatus": { "target": "com.amazonaws.s3#ObjectLockLegalHoldStatus", "traits": { - "smithy.api#documentation": "

                      Specifies whether you want to apply a Legal Hold to the uploaded object.

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

                      Specifies whether you want to apply a legal hold to the uploaded object.

                      ", "smithy.api#httpHeader": "x-amz-object-lock-legal-hold" } }, "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

                      Indicates the algorithm you want Amazon S3 to use to create the checksum for the object. For more information, see\n Checking object integrity in\n the Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-checksum-algorithm" + } } } }, @@ -2416,7 +2669,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -2450,7 +2703,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -2484,7 +2737,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -2561,7 +2814,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -2595,7 +2848,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -2637,7 +2890,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -2671,7 +2924,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -2705,7 +2958,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -2739,7 +2992,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -2759,7 +3012,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -2793,7 +3046,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -2827,7 +3080,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -2960,7 +3213,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

                      The bucket name of the bucket containing the object.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

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

                      The bucket name of the bucket containing the object.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2996,14 +3249,14 @@ "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. To use this header, you must have the s3:PutBucketPublicAccessBlock\n permission.

                      ", + "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:BypassGovernanceRetention\n permission.

                      ", "smithy.api#httpHeader": "x-amz-bypass-governance-retention" } }, "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -3044,7 +3297,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

                      The bucket name containing the objects from which to remove the tags.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

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

                      The bucket name containing the objects from which to remove the tags.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -3067,7 +3320,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -3082,13 +3335,16 @@ "target": "com.amazonaws.s3#DeleteObjectsOutput" }, "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, "smithy.api#documentation": "

                      This action enables you to delete multiple objects from a bucket using a single HTTP\n request. If you know the object keys that you want to delete, then this action provides\n a suitable alternative to sending individual delete requests, reducing per-request\n overhead.

                      \n\n

                      The request contains a list of up to 1000 keys that you want to delete. In the XML, you\n provide the object key names, and optionally, version IDs if you want to delete a specific\n version of the object from a versioning-enabled bucket. For each key, Amazon S3 performs a\n delete action and returns the result of that delete, success, or failure, in the\n response. Note that if the object specified in the request is not found, Amazon S3 returns the\n result as deleted.

                      \n\n

                      The action supports two modes for the response: verbose and quiet. By default, the\n action uses verbose mode in which the response includes the result of deletion of each\n key in your request. In quiet mode the response includes only keys where the delete\n action encountered an error. For a successful deletion, the action does not return\n any information about the delete in the response body.

                      \n\n

                      When performing this action on an MFA Delete enabled bucket, that attempts to delete\n any versioned objects, you must include an MFA token. If you do not provide one, the entire\n request will fail, even if there are non-versioned objects you are trying to delete. If you\n provide an invalid token, whether there are versioned keys in the request or not, the\n entire Multi-Object Delete request will fail. For information about MFA Delete, see MFA\n Delete.

                      \n\n

                      Finally, the Content-MD5 header is required for all Multi-Object Delete requests. Amazon\n S3 uses the header value to ensure that your request body has not been altered in\n transit.

                      \n\n

                      The following operations are related to DeleteObjects:

                      \n ", "smithy.api#http": { "method": "POST", "uri": "/{Bucket}?delete&x-id=DeleteObjects", "code": 200 - }, - "smithy.api#httpChecksumRequired": {} + } } }, "com.amazonaws.s3#DeleteObjectsOutput": { @@ -3126,7 +3382,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

                      The bucket name containing the objects to delete.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

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

                      The bucket name containing the objects to delete.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -3156,16 +3412,23 @@ "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. To use this header, you must have the s3:PutBucketPublicAccessBlock\n permission.

                      ", + "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:BypassGovernanceRetention\n permission.

                      ", "smithy.api#httpHeader": "x-amz-bypass-governance-retention" } }, "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any\n additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

                      \n

                      If you provide an individual checksum, Amazon S3 ignores any provided\n ChecksumAlgorithm parameter.

                      \n

                      This checksum algorithm must be the same for all parts and it match the checksum\n value supplied in the CreateMultipartUpload request.

                      ", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } } } }, @@ -3197,7 +3460,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -3335,7 +3598,7 @@ "KMSKeyId": { "target": "com.amazonaws.s3#SSEKMSKeyId", "traits": { - "smithy.api#documentation": "

                      If the encryption type is aws:kms, this optional value specifies the ID of\n the symmetric customer managed key to use for encryption of job results. Amazon S3 only\n supports symmetric keys. For more information, see Using symmetric and\n asymmetric keys in the Amazon Web Services Key Management Service Developer Guide.

                      " + "smithy.api#documentation": "

                      If the encryption type is aws:kms, this optional value specifies the ID of\n the symmetric customer managed key to use for encryption of job results. Amazon S3 only\n supports symmetric keys. For more information, see Using symmetric and\n asymmetric keys in the Amazon Web Services Key Management Service Developer\n Guide.

                      " } }, "KMSContext": { @@ -3728,7 +3991,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -3786,7 +4049,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -3843,7 +4106,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -3858,7 +4121,7 @@ "target": "com.amazonaws.s3#GetBucketCorsOutput" }, "traits": { - "smithy.api#documentation": "

                      Returns the cors configuration information set for the bucket.

                      \n\n

                      To use this operation, you must have permission to perform the s3:GetBucketCORS action.\n By default, the bucket owner has this permission and can grant it to others.

                      \n\n

                      For more information about cors, see Enabling\n Cross-Origin Resource Sharing.

                      \n\n

                      The following operations are related to GetBucketCors:

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

                      Returns the Cross-Origin Resource Sharing (CORS) configuration information set for the\n bucket.

                      \n\n

                      To use this operation, you must have permission to perform the\n s3:GetBucketCORS action. By default, the bucket owner has this permission\n and can grant it to others.

                      \n\n

                      For more information about CORS, see Enabling Cross-Origin Resource\n Sharing.

                      \n\n

                      The following operations are related to GetBucketCors:

                      \n ", "smithy.api#http": { "method": "GET", "uri": "/{Bucket}?cors", @@ -3896,7 +4159,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -3944,7 +4207,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -4051,7 +4314,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -4104,7 +4367,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -4156,7 +4419,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -4204,7 +4467,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -4261,7 +4524,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -4298,7 +4561,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -4347,7 +4610,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -4396,7 +4659,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -4445,7 +4708,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -4493,7 +4756,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -4544,7 +4807,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -4559,7 +4822,7 @@ "target": "com.amazonaws.s3#GetBucketTaggingOutput" }, "traits": { - "smithy.api#documentation": "

                      Returns the tag set associated with the bucket.

                      \n

                      To use this operation, you must have permission to perform the\n s3:GetBucketTagging action. By default, the bucket owner has this\n permission and can grant this permission to others.

                      \n\n

                      \n GetBucketTagging has the following special error:

                      \n
                        \n
                      • \n

                        Error code: NoSuchTagSetError\n

                        \n
                          \n
                        • \n

                          Description: There is no tag set associated with the bucket.

                          \n
                        • \n
                        \n
                      • \n
                      \n\n

                      The following operations are related to GetBucketTagging:

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

                      Returns the tag set associated with the bucket.

                      \n

                      To use this operation, you must have permission to perform the\n s3:GetBucketTagging action. By default, the bucket owner has this\n permission and can grant this permission to others.

                      \n\n

                      \n GetBucketTagging has the following special error:

                      \n
                        \n
                      • \n

                        Error code: NoSuchTagSet\n

                        \n
                          \n
                        • \n

                          Description: There is no tag set associated with the bucket.

                          \n
                        • \n
                        \n
                      • \n
                      \n\n

                      The following operations are related to GetBucketTagging:

                      \n ", "smithy.api#http": { "method": "GET", "uri": "/{Bucket}?tagging", @@ -4596,7 +4859,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -4654,7 +4917,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -4723,7 +4986,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -4746,7 +5009,11 @@ } ], "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 KMS keys (SSE-KMS) \n 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
                      • \n

                        x-amz-server-side-encryption-customer-algorithm

                        \n
                      • \n
                      • \n

                        x-amz-server-side-encryption-customer-key

                        \n
                      • \n
                      • \n

                        x-amz-server-side-encryption-customer-key-MD5

                        \n
                      • \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

                        If you have the s3:ListBucket permission on the bucket, Amazon S3 will\n return an HTTP status code 404 (\"no such key\") error.

                        \n
                      • \n
                      • \n

                        If you don’t have the s3:ListBucket permission, Amazon S3 will return an\n HTTP status code 403 (\"access denied\") error.

                        \n
                      • \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 If you supply a versionId, you need the s3:GetObjectVersion permission to\n access a specific version of an object. If you request a specific version, you do not need to have\n the s3:GetObject permission.\n

                        \n
                      • \n
                      • \n

                        If the current version of the object is a delete marker, Amazon S3 behaves as if the\n object was deleted and includes x-amz-delete-marker: true in the\n response.

                        \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 response-content-type\n

                        \n
                      • \n
                      • \n

                        \n response-content-language\n

                        \n
                      • \n
                      • \n

                        \n response-expires\n

                        \n
                      • \n
                      • \n

                        \n response-cache-control\n

                        \n
                      • \n
                      • \n

                        \n response-content-disposition\n

                        \n
                      • \n
                      • \n

                        \n response-content-encoding\n

                        \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 ", + "aws.protocols#httpChecksum": { + "requestValidationModeMember": "ChecksumMode", + "responseAlgorithms": ["CRC32", "CRC32C", "SHA256", "SHA1"] + }, + "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

                      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 KMS keys (SSE-KMS) \n 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
                      • \n

                        x-amz-server-side-encryption-customer-algorithm

                        \n
                      • \n
                      • \n

                        x-amz-server-side-encryption-customer-key

                        \n
                      • \n
                      • \n

                        x-amz-server-side-encryption-customer-key-MD5

                        \n
                      • \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

                        If you have the s3:ListBucket permission on the bucket, Amazon S3 will\n return an HTTP status code 404 (\"no such key\") error.

                        \n
                      • \n
                      • \n

                        If you don’t have the s3:ListBucket permission, Amazon S3 will return an\n HTTP status code 403 (\"access denied\") error.

                        \n
                      • \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 If you supply a versionId, you need the s3:GetObjectVersion permission to\n access a specific version of an object. If you request a specific version, you do not need to have\n the s3:GetObject permission.\n

                        \n
                      • \n
                      • \n

                        If the current version of the object is a delete marker, Amazon S3 behaves as if the\n object was deleted and includes x-amz-delete-marker: true in the\n response.

                        \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\n header value in 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 response-content-type\n

                        \n
                      • \n
                      • \n

                        \n response-content-language\n

                        \n
                      • \n
                      • \n

                        \n response-expires\n

                        \n
                      • \n
                      • \n

                        \n response-cache-control\n

                        \n
                      • \n
                      • \n

                        \n response-content-disposition\n

                        \n
                      • \n
                      • \n

                        \n response-content-encoding\n

                        \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", @@ -4768,7 +5035,7 @@ } ], "traits": { - "smithy.api#documentation": "

                      Returns the access control list (ACL) of an object. To use this operation, you must have\n READ_ACP access to the object.

                      \n

                      This action is not supported by Amazon S3 on Outposts.

                      \n

                      \n Versioning\n

                      \n

                      By default, GET returns ACL information about the current version of an object. To\n return ACL information about a different version, use the versionId subresource.

                      \n \n

                      If your bucket uses the bucket owner enforced setting for S3 Object Ownership, \n requests to read ACLs are still supported and return the bucket-owner-full-control \n ACL with the owner being the account that created the bucket. For more information, see \n \n Controlling object ownership and disabling ACLs in the Amazon S3 User Guide.

                      \n
                      \n

                      The following operations are related to GetObjectAcl:

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

                      Returns the access control list (ACL) of an object. To use this operation, you must have\n s3:GetObjectAcl permissions or READ_ACP access to the object.\n For more information, see Mapping of ACL permissions and access policy permissions in the Amazon S3\n User Guide\n

                      \n

                      This action is not supported by Amazon S3 on Outposts.

                      \n

                      \n Versioning\n

                      \n

                      By default, GET returns ACL information about the current version of an object. To\n return ACL information about a different version, use the versionId subresource.

                      \n \n

                      If your bucket uses the bucket owner enforced setting for S3 Object Ownership, \n requests to read ACLs are still supported and return the bucket-owner-full-control \n ACL with the owner being the account that created the bucket. For more information, see \n \n Controlling object ownership and disabling ACLs in the Amazon S3 User Guide.

                      \n
                      \n

                      The following operations are related to GetObjectAcl:

                      \n ", "smithy.api#http": { "method": "GET", "uri": "/{Bucket}/{Key+}?acl", @@ -4838,12 +5105,227 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } } }, + "com.amazonaws.s3#GetObjectAttributes": { + "type": "operation", + "input": { + "target": "com.amazonaws.s3#GetObjectAttributesRequest" + }, + "output": { + "target": "com.amazonaws.s3#GetObjectAttributesOutput" + }, + "errors": [ + { + "target": "com.amazonaws.s3#NoSuchKey" + } + ], + "traits": { + "smithy.api#documentation": "

                      Retrieves all the metadata from an object without returning the object itself. This\n action is useful if you're interested only in an object's metadata. To use\n GetObjectAttributes, you must have READ access to the object.

                      \n\n

                      \n GetObjectAttributes combines the functionality of\n GetObjectAcl, GetObjectLegalHold,\n GetObjectLockConfiguration, GetObjectRetention,\n GetObjectTagging, HeadObject, and ListParts. All\n of the data returned with each of those individual calls can be returned with a single call\n to GetObjectAttributes.

                      \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
                      • \n

                        \n x-amz-server-side-encryption-customer-algorithm\n

                        \n
                      • \n
                      • \n

                        \n x-amz-server-side-encryption-customer-key\n

                        \n
                      • \n
                      • \n

                        \n x-amz-server-side-encryption-customer-key-MD5\n

                        \n
                      • \n
                      \n

                      For more information about SSE-C, see Server-Side Encryption\n (Using Customer-Provided Encryption Keys) in the\n Amazon S3 User Guide.

                      \n \n
                        \n
                      • \n

                        Encryption request headers, such as\n x-amz-server-side-encryption, should not be sent for GET requests\n if your object uses server-side encryption with Amazon Web Services KMS keys stored in Amazon Web Services Key\n Management Service (SSE-KMS) or server-side encryption with Amazon S3 managed\n encryption keys (SSE-S3). If your object does use these types of keys, you'll get\n an HTTP 400 Bad Request error.

                        \n
                      • \n
                      • \n

                        \n The last modified property in this case is the creation date of the object.

                        \n
                      • \n
                      \n
                      \n\n

                      Consider the following when using request headers:

                      \n
                        \n
                      • \n

                        If both of the If-Match and If-Unmodified-Since\n headers are present in the request as follows, then Amazon S3 returns the HTTP\n status code 200 OK and the data requested:

                        \n
                          \n
                        • \n

                          \n If-Match condition evaluates to true.

                          \n
                        • \n
                        • \n

                          \n If-Unmodified-Since condition evaluates to\n false.

                          \n
                        • \n
                        \n
                      • \n
                      • \n

                        If both of the If-None-Match and If-Modified-Since\n headers are present in the request as follows, then Amazon S3 returns the HTTP status code\n 304 Not Modified:

                        \n
                          \n
                        • \n

                          \n If-None-Match condition evaluates to\n false.

                          \n
                        • \n
                        • \n

                          \n If-Modified-Since condition evaluates to\n true.

                          \n
                        • \n
                        \n
                      • \n
                      \n\n

                      For more information about conditional requests, see RFC 7232.

                      \n\n

                      \n Permissions\n

                      \n

                      The permissions that you need to use this operation depend on whether the bucket is\n versioned. If the bucket is versioned, you need both the s3:GetObjectVersion\n and s3:GetObjectVersionAttributes permissions for this operation. If the\n bucket is not versioned, you need the s3:GetObject and\n s3:GetObjectAttributes permissions. For more information, see Specifying\n Permissions in a Policy in the Amazon S3 User Guide. If the\n object that you request does not exist, the error Amazon S3 returns depends on whether you also\n have the s3:ListBucket permission.

                      \n
                        \n
                      • \n

                        If you have the s3:ListBucket permission on the bucket, Amazon S3\n returns an HTTP status code 404 Not Found (\"no such key\") error.

                        \n
                      • \n
                      • \n

                        If you don't have the s3:ListBucket permission, Amazon S3 returns an\n HTTP status code 403 Forbidden (\"access denied\") error.

                        \n
                      • \n
                      \n\n

                      The following actions are related to GetObjectAttributes:

                      \n ", + "smithy.api#http": { + "method": "GET", + "uri": "/{Bucket}/{Key+}?attributes", + "code": 200 + } + } + }, + "com.amazonaws.s3#GetObjectAttributesOutput": { + "type": "structure", + "members": { + "DeleteMarker": { + "target": "com.amazonaws.s3#DeleteMarker", + "traits": { + "smithy.api#documentation": "

                      Specifies whether the object retrieved was (true) or was not\n (false) a delete marker. If false, this response header does\n not appear in the response.

                      ", + "smithy.api#httpHeader": "x-amz-delete-marker" + } + }, + "LastModified": { + "target": "com.amazonaws.s3#LastModified", + "traits": { + "smithy.api#documentation": "

                      The creation date of the object.

                      ", + "smithy.api#httpHeader": "Last-Modified" + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

                      The version ID of the object.

                      ", + "smithy.api#httpHeader": "x-amz-version-id" + } + }, + "RequestCharged": { + "target": "com.amazonaws.s3#RequestCharged", + "traits": { + "smithy.api#httpHeader": "x-amz-request-charged" + } + }, + "ETag": { + "target": "com.amazonaws.s3#ETag", + "traits": { + "smithy.api#documentation": "

                      An ETag is an opaque identifier assigned by a web server to a specific version of a\n resource found at a URL.

                      " + } + }, + "Checksum": { + "target": "com.amazonaws.s3#Checksum", + "traits": { + "smithy.api#documentation": "

                      The checksum or digest of the object.

                      " + } + }, + "ObjectParts": { + "target": "com.amazonaws.s3#GetObjectAttributesParts", + "traits": { + "smithy.api#documentation": "

                      A collection of parts associated with a multipart upload.

                      " + } + }, + "StorageClass": { + "target": "com.amazonaws.s3#StorageClass", + "traits": { + "smithy.api#documentation": "

                      Provides the storage class information of the object. Amazon S3 returns this header for all\n objects except for S3 Standard storage class objects.

                      \n\n

                      For more information, see Storage\n Classes.

                      " + } + }, + "ObjectSize": { + "target": "com.amazonaws.s3#ObjectSize", + "traits": { + "smithy.api#documentation": "

                      The size of the object in bytes.

                      " + } + } + } + }, + "com.amazonaws.s3#GetObjectAttributesParts": { + "type": "structure", + "members": { + "TotalPartsCount": { + "target": "com.amazonaws.s3#PartsCount", + "traits": { + "smithy.api#documentation": "

                      The total number of parts.

                      ", + "smithy.api#xmlName": "PartsCount" + } + }, + "PartNumberMarker": { + "target": "com.amazonaws.s3#PartNumberMarker", + "traits": { + "smithy.api#documentation": "

                      The marker for the current part.

                      " + } + }, + "NextPartNumberMarker": { + "target": "com.amazonaws.s3#NextPartNumberMarker", + "traits": { + "smithy.api#documentation": "

                      When a list is truncated, this element specifies the last part in the list, as well as\n the value to use for the PartNumberMarker request parameter in a subsequent\n request.

                      " + } + }, + "MaxParts": { + "target": "com.amazonaws.s3#MaxParts", + "traits": { + "smithy.api#documentation": "

                      The maximum number of parts allowed in the response.

                      " + } + }, + "IsTruncated": { + "target": "com.amazonaws.s3#IsTruncated", + "traits": { + "smithy.api#documentation": "

                      Indicates whether the returned list of parts is truncated. A value of\n true indicates that the list was truncated. A list can be truncated if the\n number of parts exceeds the limit returned in the MaxParts element.

                      " + } + }, + "Parts": { + "target": "com.amazonaws.s3#PartsList", + "traits": { + "smithy.api#documentation": "

                      A container for elements related to a particular part. A response can contain zero or\n more Parts elements.

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

                      A collection of parts associated with a multipart upload.

                      " + } + }, + "com.amazonaws.s3#GetObjectAttributesRequest": { + "type": "structure", + "members": { + "Bucket": { + "target": "com.amazonaws.s3#BucketName", + "traits": { + "smithy.api#documentation": "

                      The name of the bucket that contains the object.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Key": { + "target": "com.amazonaws.s3#ObjectKey", + "traits": { + "smithy.api#documentation": "

                      The object key.

                      ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "VersionId": { + "target": "com.amazonaws.s3#ObjectVersionId", + "traits": { + "smithy.api#documentation": "

                      The version ID used to reference a specific version of the object.

                      ", + "smithy.api#httpQuery": "versionId" + } + }, + "MaxParts": { + "target": "com.amazonaws.s3#MaxParts", + "traits": { + "smithy.api#documentation": "

                      Sets the maximum number of parts to return.

                      ", + "smithy.api#httpHeader": "x-amz-max-parts" + } + }, + "PartNumberMarker": { + "target": "com.amazonaws.s3#PartNumberMarker", + "traits": { + "smithy.api#documentation": "

                      Specifies the part after which listing should begin. Only parts with higher part numbers\n will be listed.

                      ", + "smithy.api#httpHeader": "x-amz-part-number-marker" + } + }, + "SSECustomerAlgorithm": { + "target": "com.amazonaws.s3#SSECustomerAlgorithm", + "traits": { + "smithy.api#documentation": "

                      Specifies the algorithm to use when encrypting the object (for example,\n AES256).

                      ", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-algorithm" + } + }, + "SSECustomerKey": { + "target": "com.amazonaws.s3#SSECustomerKey", + "traits": { + "smithy.api#documentation": "

                      Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This\n value is used to store the object and then it is discarded; Amazon S3 does not store the\n encryption key. The key must be appropriate for use with the algorithm specified in the\n x-amz-server-side-encryption-customer-algorithm header.

                      ", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key" + } + }, + "SSECustomerKeyMD5": { + "target": "com.amazonaws.s3#SSECustomerKeyMD5", + "traits": { + "smithy.api#documentation": "

                      Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses\n this header for a message integrity check to ensure that the encryption key was transmitted\n without error.

                      ", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key-MD5" + } + }, + "RequestPayer": { + "target": "com.amazonaws.s3#RequestPayer", + "traits": { + "smithy.api#httpHeader": "x-amz-request-payer" + } + }, + "ExpectedBucketOwner": { + "target": "com.amazonaws.s3#AccountId", + "traits": { + "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", + "smithy.api#httpHeader": "x-amz-expected-bucket-owner" + } + }, + "ObjectAttributes": { + "target": "com.amazonaws.s3#ObjectAttributesList", + "traits": { + "smithy.api#documentation": "

                      An XML header that specifies the fields at the root level that you want returned in\n the response. Fields that you do not specify are not returned.

                      ", + "smithy.api#httpHeader": "x-amz-object-attributes", + "smithy.api#required": {} + } + } + } + }, "com.amazonaws.s3#GetObjectLegalHold": { "type": "operation", "input": { @@ -4853,7 +5335,7 @@ "target": "com.amazonaws.s3#GetObjectLegalHoldOutput" }, "traits": { - "smithy.api#documentation": "

                      Gets an object's current Legal Hold status. For more information, see Locking Objects.

                      \n

                      This action is not supported by Amazon S3 on Outposts.

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

                      Gets an object's current legal hold status. For more information, see Locking\n Objects.

                      \n

                      This action is not supported by Amazon S3 on Outposts.

                      \n\n

                      The following action is related to GetObjectLegalHold:

                      \n ", "smithy.api#http": { "method": "GET", "uri": "/{Bucket}/{Key+}?legal-hold", @@ -4867,7 +5349,7 @@ "LegalHold": { "target": "com.amazonaws.s3#ObjectLockLegalHold", "traits": { - "smithy.api#documentation": "

                      The current Legal Hold status for the specified object.

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

                      The current legal hold status for the specified object.

                      ", "smithy.api#httpPayload": {} } } @@ -4879,7 +5361,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

                      The bucket name containing the object whose Legal Hold status you want to retrieve.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

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

                      The bucket name containing the object whose legal hold status you want to retrieve.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -4887,7 +5369,7 @@ "Key": { "target": "com.amazonaws.s3#ObjectKey", "traits": { - "smithy.api#documentation": "

                      The key name for the object whose Legal Hold status you want to retrieve.

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

                      The key name for the object whose legal hold status you want to retrieve.

                      ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -4895,7 +5377,7 @@ "VersionId": { "target": "com.amazonaws.s3#ObjectVersionId", "traits": { - "smithy.api#documentation": "

                      The version ID of the object whose Legal Hold status you want to retrieve.

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

                      The version ID of the object whose legal hold status you want to retrieve.

                      ", "smithy.api#httpQuery": "versionId" } }, @@ -4908,7 +5390,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -4923,7 +5405,7 @@ "target": "com.amazonaws.s3#GetObjectLockConfigurationOutput" }, "traits": { - "smithy.api#documentation": "

                      Gets the Object Lock configuration for a bucket. The rule specified in the Object Lock\n configuration will be applied by default to every new object placed in the specified\n bucket. For more information, see Locking\n Objects.

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

                      Gets the Object Lock configuration for a bucket. The rule specified in the Object Lock\n configuration will be applied by default to every new object placed in the specified\n bucket. For more information, see Locking\n Objects.

                      \n\n

                      The following action is related to GetObjectLockConfiguration:

                      \n ", "smithy.api#http": { "method": "GET", "uri": "/{Bucket}?object-lock", @@ -4957,7 +5439,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -4990,7 +5472,7 @@ "Expiration": { "target": "com.amazonaws.s3#Expiration", "traits": { - "smithy.api#documentation": "

                      If the object expiration is configured (see PUT Bucket lifecycle), the response includes\n this header. It includes the expiry-date and rule-id key-value pairs providing object\n expiration information. The value of the rule-id is URL encoded.

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

                      If the object expiration is configured (see PUT Bucket lifecycle), the response includes\n this header. It includes the expiry-date and rule-id key-value\n pairs providing object expiration information. The value of the rule-id is\n URL-encoded.

                      ", "smithy.api#httpHeader": "x-amz-expiration" } }, @@ -5018,10 +5500,38 @@ "ETag": { "target": "com.amazonaws.s3#ETag", "traits": { - "smithy.api#documentation": "

                      An ETag is an opaque identifier assigned by a web server to a specific version of a\n resource found at a URL.

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

                      An entity tag (ETag) is an opaque identifier assigned by a web server to a specific\n version of a resource found at a URL.

                      ", "smithy.api#httpHeader": "ETag" } }, + "ChecksumCRC32": { + "target": "com.amazonaws.s3#ChecksumCRC32", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-checksum-crc32" + } + }, + "ChecksumCRC32C": { + "target": "com.amazonaws.s3#ChecksumCRC32C", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-checksum-crc32c" + } + }, + "ChecksumSHA1": { + "target": "com.amazonaws.s3#ChecksumSHA1", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-checksum-sha1" + } + }, + "ChecksumSHA256": { + "target": "com.amazonaws.s3#ChecksumSHA256", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-checksum-sha256" + } + }, "MissingMeta": { "target": "com.amazonaws.s3#MissingMeta", "traits": { @@ -5157,7 +5667,7 @@ "PartsCount": { "target": "com.amazonaws.s3#PartsCount", "traits": { - "smithy.api#documentation": "

                      The count of parts this object has.

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

                      The count of parts this object has. This value is only returned if you specify partNumber\n in your request and the object was uploaded as a multipart upload.

                      ", "smithy.api#httpHeader": "x-amz-mp-parts-count" } }, @@ -5197,7 +5707,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

                      The bucket name containing the object.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using an Object Lambda access point the hostname takes the form AccessPointName-AccountId.s3-object-lambda.Region.amazonaws.com.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

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

                      The bucket name containing the object.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using an Object Lambda access point the hostname takes the form AccessPointName-AccountId.s3-object-lambda.Region.amazonaws.com.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -5205,28 +5715,28 @@ "IfMatch": { "target": "com.amazonaws.s3#IfMatch", "traits": { - "smithy.api#documentation": "

                      Return the object only if its entity tag (ETag) is the same as the one specified,\n otherwise return a 412 (precondition failed).

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

                      Return the object only if its entity tag (ETag) is the same as the one specified;\n otherwise, return a 412 (precondition failed) error.

                      ", "smithy.api#httpHeader": "If-Match" } }, "IfModifiedSince": { "target": "com.amazonaws.s3#IfModifiedSince", "traits": { - "smithy.api#documentation": "

                      Return the object only if it has been modified since the specified time, otherwise\n return a 304 (not modified).

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

                      Return the object only if it has been modified since the specified time; otherwise,\n return a 304 (not modified) error.

                      ", "smithy.api#httpHeader": "If-Modified-Since" } }, "IfNoneMatch": { "target": "com.amazonaws.s3#IfNoneMatch", "traits": { - "smithy.api#documentation": "

                      Return the object only if its entity tag (ETag) is different from the one specified,\n otherwise return a 304 (not modified).

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

                      Return the object only if its entity tag (ETag) is different from the one specified;\n otherwise, return a 304 (not modified) error.

                      ", "smithy.api#httpHeader": "If-None-Match" } }, "IfUnmodifiedSince": { "target": "com.amazonaws.s3#IfUnmodifiedSince", "traits": { - "smithy.api#documentation": "

                      Return the object only if it has not been modified since the specified time, otherwise\n return a 412 (precondition failed).

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

                      Return the object only if it has not been modified since the specified time; otherwise,\n return a 412 (precondition failed) error.

                      ", "smithy.api#httpHeader": "If-Unmodified-Since" } }, @@ -5331,9 +5841,16 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } + }, + "ChecksumMode": { + "target": "com.amazonaws.s3#ChecksumMode", + "traits": { + "smithy.api#documentation": "

                      To retrieve the checksum, this mode must be enabled.

                      ", + "smithy.api#httpHeader": "x-amz-checksum-mode" + } } } }, @@ -5349,7 +5866,7 @@ "target": "com.amazonaws.s3#GetObjectRetentionOutput" }, "traits": { - "smithy.api#documentation": "

                      Retrieves an object's retention settings. For more information, see Locking Objects.

                      \n

                      This action is not supported by Amazon S3 on Outposts.

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

                      Retrieves an object's retention settings. For more information, see Locking Objects.

                      \n

                      This action is not supported by Amazon S3 on Outposts.

                      \n\n

                      The following action is related to GetObjectRetention:

                      \n ", "smithy.api#http": { "method": "GET", "uri": "/{Bucket}/{Key+}?retention", @@ -5404,7 +5921,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -5419,7 +5936,7 @@ "target": "com.amazonaws.s3#GetObjectTaggingOutput" }, "traits": { - "smithy.api#documentation": "

                      Returns the tag-set of an object. You send the GET request against the tagging\n subresource associated with the object.

                      \n\n

                      To use this operation, you must have permission to perform the\n s3:GetObjectTagging action. By default, the GET action returns\n information about current version of an object. For a versioned bucket, you can have\n multiple versions of an object in your bucket. To retrieve tags of any other version, use\n the versionId query parameter. You also need permission for the\n s3:GetObjectVersionTagging action.

                      \n\n

                      By default, the bucket owner has this permission and can grant this permission to\n others.

                      \n\n

                      For information about the Amazon S3 object tagging feature, see Object Tagging.

                      \n\n

                      The following action is related to GetObjectTagging:

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

                      Returns the tag-set of an object. You send the GET request against the tagging\n subresource associated with the object.

                      \n\n

                      To use this operation, you must have permission to perform the\n s3:GetObjectTagging action. By default, the GET action returns\n information about current version of an object. For a versioned bucket, you can have\n multiple versions of an object in your bucket. To retrieve tags of any other version, use\n the versionId query parameter. You also need permission for the\n s3:GetObjectVersionTagging action.

                      \n\n

                      By default, the bucket owner has this permission and can grant this permission to\n others.

                      \n\n

                      For information about the Amazon S3 object tagging feature, see Object Tagging.

                      \n\n

                      The following actions are related to GetObjectTagging:

                      \n ", "smithy.api#http": { "method": "GET", "uri": "/{Bucket}/{Key+}?tagging", @@ -5455,7 +5972,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

                      The bucket name containing the object for which to get the tagging information.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

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

                      The bucket name containing the object for which to get the tagging information.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -5478,7 +5995,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } }, @@ -5553,7 +6070,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -5602,7 +6119,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -5767,7 +6284,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

                      The bucket name.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

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

                      The bucket name.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -5775,7 +6292,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -5795,7 +6312,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
                      • \n

                        x-amz-server-side-encryption-customer-algorithm

                        \n
                      • \n
                      • \n

                        x-amz-server-side-encryption-customer-key

                        \n
                      • \n
                      • \n

                        x-amz-server-side-encryption-customer-key-MD5

                        \n
                      • \n
                      \n

                      For more information about SSE-C, see Server-Side Encryption (Using\n Customer-Provided Encryption Keys).

                      \n \n
                        \n
                      • \n

                        Encryption request headers, like x-amz-server-side-encryption, should\n not be sent for GET requests if your object uses server-side encryption with KMS keys (SSE-KMS)\n or server-side encryption with Amazon S3–managed encryption keys\n (SSE-S3). If your object does use these types of keys, you’ll get an HTTP 400 BadRequest\n error.

                        \n
                      • \n
                      • \n

                        \n The last modified property in this case is the creation date of the object.

                        \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

                        Consideration 1 – If both of the If-Match and\n If-Unmodified-Since headers are present in the request as\n follows:

                        \n
                          \n
                        • \n

                          \n If-Match condition evaluates to true, and;

                          \n
                        • \n
                        • \n

                          \n If-Unmodified-Since condition evaluates to\n false;

                          \n
                        • \n
                        \n

                        Then Amazon S3 returns 200 OK and the data requested.

                        \n
                      • \n
                      • \n

                        Consideration 2 – If both of the If-None-Match and\n If-Modified-Since headers are present in the request as\n follows:

                        \n
                          \n
                        • \n

                          \n If-None-Match condition evaluates to false,\n and;

                          \n
                        • \n
                        • \n

                          \n If-Modified-Since condition evaluates to\n true;

                          \n
                        • \n
                        \n

                        Then Amazon S3 returns the 304 Not Modified response code.

                        \n
                      • \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

                        If you have the s3:ListBucket permission on the bucket, Amazon S3 returns\n an HTTP status code 404 (\"no such key\") error.

                        \n
                      • \n
                      • \n

                        If you don’t have the s3:ListBucket permission, Amazon S3 returns an HTTP\n status code 403 (\"access denied\") error.

                        \n
                      • \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
                      • \n

                        x-amz-server-side-encryption-customer-algorithm

                        \n
                      • \n
                      • \n

                        x-amz-server-side-encryption-customer-key

                        \n
                      • \n
                      • \n

                        x-amz-server-side-encryption-customer-key-MD5

                        \n
                      • \n
                      \n

                      For more information about SSE-C, see Server-Side Encryption (Using\n Customer-Provided Encryption Keys).

                      \n \n
                        \n
                      • \n

                        Encryption request headers, like x-amz-server-side-encryption, should\n not be sent for GET requests if your object uses server-side encryption with KMS keys (SSE-KMS)\n or server-side encryption with Amazon S3–managed encryption keys\n (SSE-S3). If your object does use these types of keys, you’ll get an HTTP 400 BadRequest\n error.

                        \n
                      • \n
                      • \n

                        \n The last modified property in this case is the creation date of the object.

                        \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

                        Consideration 1 – If both of the If-Match and\n If-Unmodified-Since headers are present in the request as\n follows:

                        \n
                          \n
                        • \n

                          \n If-Match condition evaluates to true, and;

                          \n
                        • \n
                        • \n

                          \n If-Unmodified-Since condition evaluates to\n false;

                          \n
                        • \n
                        \n

                        Then Amazon S3 returns 200 OK and the data requested.

                        \n
                      • \n
                      • \n

                        Consideration 2 – If both of the If-None-Match and\n If-Modified-Since headers are present in the request as\n follows:

                        \n
                          \n
                        • \n

                          \n If-None-Match condition evaluates to false,\n and;

                          \n
                        • \n
                        • \n

                          \n If-Modified-Since condition evaluates to\n true;

                          \n
                        • \n
                        \n

                        Then Amazon S3 returns the 304 Not Modified response code.

                        \n
                      • \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

                        If you have the s3:ListBucket permission on the bucket, Amazon S3 returns\n an HTTP status code 404 (\"no such key\") error.

                        \n
                      • \n
                      • \n

                        If you don’t have the s3:ListBucket permission, Amazon S3 returns an HTTP\n status code 403 (\"access denied\") error.

                        \n
                      • \n
                      \n\n

                      The following actions are related to HeadObject:

                      \n ", "smithy.api#http": { "method": "HEAD", "uri": "/{Bucket}/{Key+}", @@ -5853,7 +6370,7 @@ "Expiration": { "target": "com.amazonaws.s3#Expiration", "traits": { - "smithy.api#documentation": "

                      If the object expiration is configured (see PUT Bucket lifecycle), the response includes\n this header. It includes the expiry-date and rule-id key-value pairs providing object\n expiration information. The value of the rule-id is URL encoded.

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

                      If the object expiration is configured (see PUT Bucket lifecycle), the response includes\n this header. It includes the expiry-date and rule-id key-value\n pairs providing object expiration information. The value of the rule-id is\n URL-encoded.

                      ", "smithy.api#httpHeader": "x-amz-expiration" } }, @@ -5885,10 +6402,38 @@ "smithy.api#httpHeader": "Content-Length" } }, + "ChecksumCRC32": { + "target": "com.amazonaws.s3#ChecksumCRC32", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-checksum-crc32" + } + }, + "ChecksumCRC32C": { + "target": "com.amazonaws.s3#ChecksumCRC32C", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-checksum-crc32c" + } + }, + "ChecksumSHA1": { + "target": "com.amazonaws.s3#ChecksumSHA1", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-checksum-sha1" + } + }, + "ChecksumSHA256": { + "target": "com.amazonaws.s3#ChecksumSHA256", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-checksum-sha256" + } + }, "ETag": { "target": "com.amazonaws.s3#ETag", "traits": { - "smithy.api#documentation": "

                      An ETag is an opaque identifier assigned by a web server to a specific version of a\n resource found at a URL.

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

                      An entity tag (ETag) is an opaque identifier assigned by a web server to a specific\n version of a resource found at a URL.

                      ", "smithy.api#httpHeader": "ETag" } }, @@ -6013,14 +6558,14 @@ "ReplicationStatus": { "target": "com.amazonaws.s3#ReplicationStatus", "traits": { - "smithy.api#documentation": "

                      Amazon S3 can return this header if your request involves a bucket that is either a source or\n a destination in a replication rule.

                      \n\n

                      In replication, you have a source bucket on which you configure replication and\n destination bucket or buckets where Amazon S3 stores object replicas. When you request an object\n (GetObject) or object metadata (HeadObject) from these\n buckets, Amazon S3 will return the x-amz-replication-status header in the response\n as follows:

                      \n
                        \n
                      • \n

                        If requesting an object from the source bucket — Amazon S3 will return the\n x-amz-replication-status header if the object in your request is\n eligible for replication.

                        \n

                        For example, suppose that in your replication configuration, you specify object\n prefix TaxDocs requesting Amazon S3 to replicate objects with key prefix\n TaxDocs. Any objects you upload with this key name prefix, for\n example TaxDocs/document1.pdf, are eligible for replication. For any\n object request with this key name prefix, Amazon S3 will return the\n x-amz-replication-status header with value PENDING, COMPLETED or\n FAILED indicating object replication status.

                        \n
                      • \n
                      • \n

                        If requesting an object from a destination bucket — Amazon S3 will return the\n x-amz-replication-status header with value REPLICA if the object in\n your request is a replica that Amazon S3 created and there is no replica modification\n replication in progress.

                        \n
                      • \n
                      • \n

                        When replicating objects to multiple destination buckets the\n x-amz-replication-status header acts differently. The header of the\n source object will only return a value of COMPLETED when replication is successful to\n all destinations. The header will remain at value PENDING until replication has\n completed for all destinations. If one or more destinations fails replication the\n header will return FAILED.

                        \n
                      • \n
                      \n\n

                      For more information, see Replication.

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

                      Amazon S3 can return this header if your request involves a bucket that is either a source or\n a destination in a replication rule.

                      \n\n

                      In replication, you have a source bucket on which you configure replication and\n destination bucket or buckets where Amazon S3 stores object replicas. When you request an object\n (GetObject) or object metadata (HeadObject) from these\n buckets, Amazon S3 will return the x-amz-replication-status header in the response\n as follows:

                      \n
                        \n
                      • \n

                        \n If requesting an object from the source bucket, Amazon S3 will return the\n x-amz-replication-status header if the object in your request is\n eligible for replication.

                        \n

                        For example, suppose that in your replication configuration, you specify object\n prefix TaxDocs requesting Amazon S3 to replicate objects with key prefix\n TaxDocs. Any objects you upload with this key name prefix, for\n example TaxDocs/document1.pdf, are eligible for replication. For any\n object request with this key name prefix, Amazon S3 will return the\n x-amz-replication-status header with value PENDING, COMPLETED or\n FAILED indicating object replication status.

                        \n
                      • \n
                      • \n

                        \n If requesting an object from a destination bucket, Amazon S3 will return the\n x-amz-replication-status header with value REPLICA if the object in\n your request is a replica that Amazon S3 created and there is no replica modification\n replication in progress.

                        \n
                      • \n
                      • \n

                        \n When replicating objects to multiple destination buckets, the\n x-amz-replication-status header acts differently. The header of the\n source object will only return a value of COMPLETED when replication is successful to\n all destinations. The header will remain at value PENDING until replication has\n completed for all destinations. If one or more destinations fails replication the\n header will return FAILED.

                        \n
                      • \n
                      \n\n

                      For more information, see Replication.

                      ", "smithy.api#httpHeader": "x-amz-replication-status" } }, "PartsCount": { "target": "com.amazonaws.s3#PartsCount", "traits": { - "smithy.api#documentation": "

                      The count of parts this object has.

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

                      The count of parts this object has. This value is only returned if you specify partNumber\n in your request and the object was uploaded as a multipart upload.

                      ", "smithy.api#httpHeader": "x-amz-mp-parts-count" } }, @@ -6053,7 +6598,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

                      The name of the bucket containing the object.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

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

                      The name of the bucket containing the object.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -6061,28 +6606,28 @@ "IfMatch": { "target": "com.amazonaws.s3#IfMatch", "traits": { - "smithy.api#documentation": "

                      Return the object only if its entity tag (ETag) is the same as the one specified,\n otherwise return a 412 (precondition failed).

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

                      Return the object only if its entity tag (ETag) is the same as the one specified;\n otherwise, return a 412 (precondition failed) error.

                      ", "smithy.api#httpHeader": "If-Match" } }, "IfModifiedSince": { "target": "com.amazonaws.s3#IfModifiedSince", "traits": { - "smithy.api#documentation": "

                      Return the object only if it has been modified since the specified time, otherwise\n return a 304 (not modified).

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

                      Return the object only if it has been modified since the specified time; otherwise,\n return a 304 (not modified) error.

                      ", "smithy.api#httpHeader": "If-Modified-Since" } }, "IfNoneMatch": { "target": "com.amazonaws.s3#IfNoneMatch", "traits": { - "smithy.api#documentation": "

                      Return the object only if its entity tag (ETag) is different from the one specified,\n otherwise return a 304 (not modified).

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

                      Return the object only if its entity tag (ETag) is different from the one specified;\n otherwise, return a 304 (not modified) error.

                      ", "smithy.api#httpHeader": "If-None-Match" } }, "IfUnmodifiedSince": { "target": "com.amazonaws.s3#IfUnmodifiedSince", "traits": { - "smithy.api#documentation": "

                      Return the object only if it has not been modified since the specified time, otherwise\n return a 412 (precondition failed).

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

                      Return the object only if it has not been modified since the specified time; otherwise,\n return a 412 (precondition failed) error.

                      ", "smithy.api#httpHeader": "If-Unmodified-Since" } }, @@ -6145,9 +6690,16 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } + }, + "ChecksumMode": { + "target": "com.amazonaws.s3#ChecksumMode", + "traits": { + "smithy.api#documentation": "

                      To retrieve the checksum, this parameter must be enabled.

                      \n

                      In addition, if you enable ChecksumMode and the object is encrypted with\n Amazon Web Services Key Management Service (Amazon Web Services KMS), you must have permission to use the\n kms:Decrypt action for the request to succeed.

                      ", + "smithy.api#httpHeader": "x-amz-checksum-mode" + } } } }, @@ -6600,6 +7152,10 @@ { "value": "BucketKeyStatus", "name": "BucketKeyStatus" + }, + { + "value": "ChecksumAlgorithm", + "name": "ChecksumAlgorithm" } ] } @@ -6829,7 +7385,7 @@ "Filter": { "target": "com.amazonaws.s3#LifecycleRuleFilter", "traits": { - "smithy.api#documentation": "

                      The Filter is used to identify objects that a Lifecycle Rule applies to. A\n Filter must have exactly one of Prefix, Tag, or\n And specified. Filter is required if the LifecycleRule\n does not containt a Prefix element.

                      " + "smithy.api#documentation": "

                      The Filter is used to identify objects that a Lifecycle Rule applies to. A\n Filter must have exactly one of Prefix, Tag, or\n And specified. Filter is required if the\n LifecycleRule does not contain a Prefix element.

                      " } }, "Status": { @@ -7013,7 +7569,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -7042,13 +7598,13 @@ "IsTruncated": { "target": "com.amazonaws.s3#IsTruncated", "traits": { - "smithy.api#documentation": "

                      Indicates whether the returned list of analytics configurations is complete. A value of\n true indicates that the list is not complete and the NextContinuationToken will be provided\n for a subsequent request.

                      " + "smithy.api#documentation": "

                      Indicates whether the returned list of analytics configurations is complete. A value of\n true indicates that the list is not complete and the\n NextContinuationToken will be provided for a subsequent request.

                      " } }, "ContinuationToken": { "target": "com.amazonaws.s3#Token", "traits": { - "smithy.api#documentation": "

                      The ContinuationToken that represents a placeholder from where this request should\n begin.

                      " + "smithy.api#documentation": "

                      The ContinuationToken that represents a placeholder from where this request\n should begin.

                      " } }, "NextContinuationToken": { @@ -7081,7 +7637,7 @@ "ContinuationToken": { "target": "com.amazonaws.s3#Token", "traits": { - "smithy.api#documentation": "

                      The ContinuationToken that represents a placeholder from where this request should\n begin.

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

                      The ContinuationToken that represents a placeholder from where this request\n should begin.

                      ", "smithy.api#httpQuery": "continuation-token" } } @@ -7159,7 +7715,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -7237,7 +7793,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -7249,7 +7805,7 @@ "target": "com.amazonaws.s3#ListBucketsOutput" }, "traits": { - "smithy.api#documentation": "

                      Returns a list of all buckets owned by the authenticated sender of the request.

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

                      Returns a list of all buckets owned by the authenticated sender of the request. To use\n this operation, you must have the s3:ListAllMyBuckets permission.

                      ", "smithy.api#http": { "method": "GET", "uri": "/", @@ -7263,7 +7819,7 @@ "Buckets": { "target": "com.amazonaws.s3#Buckets", "traits": { - "smithy.api#documentation": "

                      The list of buckets owned by the requestor.

                      " + "smithy.api#documentation": "

                      The list of buckets owned by the requester.

                      " } }, "Owner": { @@ -7383,7 +7939,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

                      The name of the bucket to which the multipart upload was initiated.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

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

                      The name of the bucket to which the multipart upload was initiated.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -7432,7 +7988,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -7601,7 +8157,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -7705,7 +8261,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

                      The name of the bucket containing the objects.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

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

                      The name of the bucket containing the objects.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -7754,7 +8310,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -7806,7 +8362,7 @@ "Name": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

                      The bucket name.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

                      " + "smithy.api#documentation": "

                      The bucket name.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      " } }, "Prefix": { @@ -7875,7 +8431,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

                      Bucket name to list.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

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

                      Bucket name to list.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -7939,7 +8495,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -7954,7 +8510,7 @@ "target": "com.amazonaws.s3#ListPartsOutput" }, "traits": { - "smithy.api#documentation": "

                      Lists the parts that have been uploaded for a specific multipart upload. This operation\n must include the upload ID, which you obtain by sending the initiate multipart upload\n request (see CreateMultipartUpload).\n This request returns a maximum of 1,000 uploaded parts. The default number of parts\n returned is 1,000 parts. You can restrict the number of parts returned by specifying the\n max-parts request parameter. If your multipart upload consists of more than\n 1,000 parts, the response returns an IsTruncated field with the value of true,\n and a NextPartNumberMarker element. In subsequent ListParts\n requests you can include the part-number-marker query string parameter and set its value to\n the NextPartNumberMarker field value from the previous response.

                      \n\n

                      For more information on multipart uploads, see Uploading Objects Using Multipart\n Upload.

                      \n\n

                      For information on permissions required to use the multipart upload API, see Multipart Upload and\n Permissions.

                      \n\n

                      The following operations are related to ListParts:

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

                      Lists the parts that have been uploaded for a specific multipart upload. This operation\n must include the upload ID, which you obtain by sending the initiate multipart upload\n request (see CreateMultipartUpload).\n This request returns a maximum of 1,000 uploaded parts. The default number of parts\n returned is 1,000 parts. You can restrict the number of parts returned by specifying the\n max-parts request parameter. If your multipart upload consists of more than\n 1,000 parts, the response returns an IsTruncated field with the value of true,\n and a NextPartNumberMarker element. In subsequent ListParts\n requests you can include the part-number-marker query string parameter and set its value to\n the NextPartNumberMarker field value from the previous response.

                      \n

                      If the upload was created using a checksum algorithm, you will need to have permission\n to the kms:Decrypt action for the request to succeed.\n

                      \n\n

                      For more information on multipart uploads, see Uploading Objects Using Multipart\n Upload.

                      \n\n

                      For information on permissions required to use the multipart upload API, see Multipart Upload and\n Permissions.

                      \n\n

                      The following operations are related to ListParts:

                      \n ", "smithy.api#http": { "method": "GET", "uri": "/{Bucket}/{Key+}?x-id=ListParts", @@ -8058,6 +8614,12 @@ "traits": { "smithy.api#httpHeader": "x-amz-request-charged" } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

                      The algorithm that was used to create a checksum of the object.

                      " + } } }, "traits": { @@ -8070,7 +8632,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

                      The name of the bucket to which the parts are being uploaded.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

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

                      The name of the bucket to which the parts are being uploaded.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -8114,9 +8676,30 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } + }, + "SSECustomerAlgorithm": { + "target": "com.amazonaws.s3#SSECustomerAlgorithm", + "traits": { + "smithy.api#documentation": "

                      The server-side encryption (SSE) algorithm used to encrypt the object. This parameter is needed only when the object was created \n using a checksum algorithm. For more information,\n see Protecting data using SSE-C keys in the\n Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-algorithm" + } + }, + "SSECustomerKey": { + "target": "com.amazonaws.s3#SSECustomerKey", + "traits": { + "smithy.api#documentation": "

                      The server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. \n For more information, see\n Protecting data using SSE-C keys in the\n Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key" + } + }, + "SSECustomerKeyMD5": { + "target": "com.amazonaws.s3#SSECustomerKeyMD5", + "traits": { + "smithy.api#documentation": "

                      The MD5 server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum \n algorithm. For more information,\n see Protecting data using SSE-C keys in the\n Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key-MD5" + } } } }, @@ -8296,7 +8879,7 @@ "AccessPointArn": { "target": "com.amazonaws.s3#AccessPointArn", "traits": { - "smithy.api#documentation": "

                      The access point ARN used when evaluating an AND predicate.

                      " + "smithy.api#documentation": "

                      The access point ARN used when evaluating an AND predicate.

                      " } } }, @@ -8425,6 +9008,12 @@ "traits": { "smithy.api#documentation": "

                      Identifies who initiated the multipart upload.

                      " } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

                      The algorithm that was used to create a checksum of the object.

                      " + } } }, "traits": { @@ -8618,7 +9207,14 @@ "ETag": { "target": "com.amazonaws.s3#ETag", "traits": { - "smithy.api#documentation": "

                      The entity tag is a hash of the object. The ETag reflects changes only to the contents\n of an object, not its metadata. The ETag may or may not be an MD5 digest of the object\n data. Whether or not it is depends on how the object was created and how it is encrypted as\n described below:

                      \n
                        \n
                      • \n

                        Objects created by the PUT Object, POST Object, or Copy operation, or through the\n Amazon Web Services Management Console, and are encrypted by SSE-S3 or plaintext, have ETags that are\n an MD5 digest of their object data.

                        \n
                      • \n
                      • \n

                        Objects created by the PUT Object, POST Object, or Copy operation, or through the\n Amazon Web Services Management Console, and are encrypted by SSE-C or SSE-KMS, have ETags that are\n not an MD5 digest of their object data.

                        \n
                      • \n
                      • \n

                        If an object is created by either the Multipart Upload or Part Copy operation, the\n ETag is not an MD5 digest, regardless of the method of encryption.

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

                      The entity tag is a hash of the object. The ETag reflects changes only to the contents\n of an object, not its metadata. The ETag may or may not be an MD5 digest of the object\n data. Whether or not it is depends on how the object was created and how it is encrypted as\n described below:

                      \n
                        \n
                      • \n

                        Objects created by the PUT Object, POST Object, or Copy operation, or through the\n Amazon Web Services Management Console, and are encrypted by SSE-S3 or plaintext, have ETags that are\n an MD5 digest of their object data.

                        \n
                      • \n
                      • \n

                        Objects created by the PUT Object, POST Object, or Copy operation, or through the\n Amazon Web Services Management Console, and are encrypted by SSE-C or SSE-KMS, have ETags that are\n not an MD5 digest of their object data.

                        \n
                      • \n
                      • \n

                        If an object is created by either the Multipart Upload or Part Copy operation, the\n ETag is not an MD5 digest, regardless of the method of encryption.

                        \n
                      • \n
                      " + } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithmList", + "traits": { + "smithy.api#documentation": "

                      The algorithm that was used to create a checksum of the object.

                      ", + "smithy.api#xmlFlattened": {} } }, "Size": { @@ -8652,6 +9248,39 @@ "smithy.api#error": "client" } }, + "com.amazonaws.s3#ObjectAttributes": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ETag", + "name": "ETAG" + }, + { + "value": "Checksum", + "name": "CHECKSUM" + }, + { + "value": "ObjectParts", + "name": "OBJECT_PARTS" + }, + { + "value": "StorageClass", + "name": "STORAGE_CLASS" + }, + { + "value": "ObjectSize", + "name": "OBJECT_SIZE" + } + ] + } + }, + "com.amazonaws.s3#ObjectAttributesList": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#ObjectAttributes" + } + }, "com.amazonaws.s3#ObjectCannedACL": { "type": "string", "traits": { @@ -8768,12 +9397,12 @@ "Status": { "target": "com.amazonaws.s3#ObjectLockLegalHoldStatus", "traits": { - "smithy.api#documentation": "

                      Indicates whether the specified object has a Legal Hold in place.

                      " + "smithy.api#documentation": "

                      Indicates whether the specified object has a legal hold in place.

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

                      A Legal Hold configuration for an object.

                      " + "smithy.api#documentation": "

                      A legal hold configuration for an object.

                      " } }, "com.amazonaws.s3#ObjectLockLegalHoldStatus": { @@ -8892,6 +9521,53 @@ ] } }, + "com.amazonaws.s3#ObjectPart": { + "type": "structure", + "members": { + "PartNumber": { + "target": "com.amazonaws.s3#PartNumber", + "traits": { + "smithy.api#documentation": "

                      The part number identifying the part. This value is a positive integer between 1 and\n 10,000.

                      " + } + }, + "Size": { + "target": "com.amazonaws.s3#Size", + "traits": { + "smithy.api#documentation": "

                      The size of the uploaded part in bytes.

                      " + } + }, + "ChecksumCRC32": { + "target": "com.amazonaws.s3#ChecksumCRC32", + "traits": { + "smithy.api#documentation": "

                      This header can be used as a data integrity check to verify that the data received is the same data that was originally sent.\n This header specifies the base64-encoded, 32-bit CRC32 checksum of the object. For more information, see\n Checking object integrity in the\n Amazon S3 User Guide.

                      " + } + }, + "ChecksumCRC32C": { + "target": "com.amazonaws.s3#ChecksumCRC32C", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      " + } + }, + "ChecksumSHA1": { + "target": "com.amazonaws.s3#ChecksumSHA1", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      " + } + }, + "ChecksumSHA256": { + "target": "com.amazonaws.s3#ChecksumSHA256", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

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

                      A container for elements related to an individual part.

                      " + } + }, + "com.amazonaws.s3#ObjectSize": { + "type": "long" + }, "com.amazonaws.s3#ObjectSizeGreaterThanBytes": { "type": "long" }, @@ -8950,6 +9626,13 @@ "smithy.api#documentation": "

                      The entity tag is an MD5 hash of that version of the object.

                      " } }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithmList", + "traits": { + "smithy.api#documentation": "

                      The algorithm that was used to create a checksum of the object.

                      ", + "smithy.api#xmlFlattened": {} + } + }, "Size": { "target": "com.amazonaws.s3#Size", "traits": { @@ -9152,6 +9835,30 @@ "traits": { "smithy.api#documentation": "

                      Size in bytes of the uploaded part data.

                      " } + }, + "ChecksumCRC32": { + "target": "com.amazonaws.s3#ChecksumCRC32", + "traits": { + "smithy.api#documentation": "

                      This header can be used as a data integrity check to verify that the data received is the same data that was originally sent.\n This header specifies the base64-encoded, 32-bit CRC32 checksum of the object. For more information, see\n Checking object integrity in the\n Amazon S3 User Guide.

                      " + } + }, + "ChecksumCRC32C": { + "target": "com.amazonaws.s3#ChecksumCRC32C", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      " + } + }, + "ChecksumSHA1": { + "target": "com.amazonaws.s3#ChecksumSHA1", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      " + } + }, + "ChecksumSHA256": { + "target": "com.amazonaws.s3#ChecksumSHA256", + "traits": { + "smithy.api#documentation": "

                      This header can be used as a data integrity check to verify that the data received is the same data that was originally sent.\n This header specifies the base64-encoded, 256-bit SHA-256 digest of the object. For more information, see\n Checking object integrity in the\n Amazon S3 User Guide.

                      " + } } }, "traits": { @@ -9173,6 +9880,12 @@ "com.amazonaws.s3#PartsCount": { "type": "integer" }, + "com.amazonaws.s3#PartsList": { + "type": "list", + "member": { + "target": "com.amazonaws.s3#ObjectPart" + } + }, "com.amazonaws.s3#Payer": { "type": "string", "traits": { @@ -9301,7 +10014,7 @@ "BlockPublicAcls": { "target": "com.amazonaws.s3#Setting", "traits": { - "smithy.api#documentation": "

                      Specifies whether Amazon S3 should block public access control lists (ACLs) for this bucket\n and objects in this bucket. Setting this element to TRUE causes the following\n behavior:

                      \n
                        \n
                      • \n

                        PUT Bucket acl and PUT Object acl calls fail if the specified ACL is\n public.

                        \n
                      • \n
                      • \n

                        PUT Object calls fail if the request includes a public ACL.

                        \n
                      • \n
                      • \n

                        PUT Bucket calls fail if the request includes a public ACL.

                        \n
                      • \n
                      \n

                      Enabling this setting doesn't affect existing policies or ACLs.

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

                      Specifies whether Amazon S3 should block public access control lists (ACLs) for this bucket\n and objects in this bucket. Setting this element to TRUE causes the following\n behavior:

                      \n
                        \n
                      • \n

                        PUT Bucket ACL and PUT Object ACL calls fail if the specified ACL is\n public.

                        \n
                      • \n
                      • \n

                        PUT Object calls fail if the request includes a public ACL.

                        \n
                      • \n
                      • \n

                        PUT Bucket calls fail if the request includes a public ACL.

                        \n
                      • \n
                      \n

                      Enabling this setting doesn't affect existing policies or ACLs.

                      ", "smithy.api#xmlName": "BlockPublicAcls" } }, @@ -9337,7 +10050,10 @@ "target": "com.amazonaws.s3#PutBucketAccelerateConfigurationRequest" }, "traits": { - "smithy.api#documentation": "

                      Sets the accelerate configuration of an existing bucket. Amazon S3 Transfer Acceleration is a\n bucket-level feature that enables you to perform faster data transfers to Amazon S3.

                      \n\n

                      To use this operation, you must have permission to perform the\n s3:PutAccelerateConfiguration action. The bucket owner has this permission by default. The\n bucket owner can grant this permission to others. For more information about permissions,\n see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3\n Resources.

                      \n\n

                      The Transfer Acceleration state of a bucket can be set to one of the following two\n values:

                      \n
                        \n
                      • \n

                        Enabled – Enables accelerated data transfers to the bucket.

                        \n
                      • \n
                      • \n

                        Suspended – Disables accelerated data transfers to the bucket.

                        \n
                      • \n
                      \n\n\n

                      The GetBucketAccelerateConfiguration action returns the transfer acceleration\n state of a bucket.

                      \n\n

                      After setting the Transfer Acceleration state of a bucket to Enabled, it might take up\n to thirty minutes before the data transfer rates to the bucket increase.

                      \n\n

                      The name of the bucket used for Transfer Acceleration must be DNS-compliant and must\n not contain periods (\".\").

                      \n\n

                      For more information about transfer acceleration, see Transfer Acceleration.

                      \n\n

                      The following operations are related to\n PutBucketAccelerateConfiguration:

                      \n ", + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm" + }, + "smithy.api#documentation": "

                      Sets the accelerate configuration of an existing bucket. Amazon S3 Transfer Acceleration is a\n bucket-level feature that enables you to perform faster data transfers to Amazon S3.

                      \n\n

                      To use this operation, you must have permission to perform the\n s3:PutAccelerateConfiguration action. The bucket owner has this permission\n by default. The bucket owner can grant this permission to others. For more information\n about permissions, see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources.

                      \n\n

                      The Transfer Acceleration state of a bucket can be set to one of the following two\n values:

                      \n
                        \n
                      • \n

                        Enabled – Enables accelerated data transfers to the bucket.

                        \n
                      • \n
                      • \n

                        Suspended – Disables accelerated data transfers to the bucket.

                        \n
                      • \n
                      \n\n\n

                      The GetBucketAccelerateConfiguration action returns the transfer acceleration\n state of a bucket.

                      \n\n

                      After setting the Transfer Acceleration state of a bucket to Enabled, it might take up\n to thirty minutes before the data transfer rates to the bucket increase.

                      \n\n

                      The name of the bucket used for Transfer Acceleration must be DNS-compliant and must\n not contain periods (\".\").

                      \n\n

                      For more information about transfer acceleration, see Transfer Acceleration.

                      \n\n

                      The following operations are related to\n PutBucketAccelerateConfiguration:

                      \n ", "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}?accelerate", @@ -9368,9 +10084,16 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } + }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any\n additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

                      \n

                      If you provide an individual checksum, Amazon S3 ignores any provided\n ChecksumAlgorithm parameter.

                      ", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } } } }, @@ -9380,13 +10103,16 @@ "target": "com.amazonaws.s3#PutBucketAclRequest" }, "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, "smithy.api#documentation": "

                      Sets the permissions on an existing bucket using access control lists (ACL). For more\n information, see Using ACLs. To set\n the ACL of a bucket, you must have WRITE_ACP permission.

                      \n\n

                      You can use one of the following two ways to set a bucket's permissions:

                      \n
                        \n
                      • \n

                        Specify the ACL in the request body

                        \n
                      • \n
                      • \n

                        Specify permissions using request headers

                        \n
                      • \n
                      \n\n \n

                      You cannot specify access permission using both the body and the request\n headers.

                      \n
                      \n\n

                      Depending on your application needs, you may choose to set the ACL on a bucket using\n either the request body or the headers. For example, if you have an existing application\n that updates a bucket ACL using the request body, then you can continue to use that\n approach.

                      \n\n \n

                      If your bucket uses the bucket owner enforced setting for S3 Object Ownership, ACLs are disabled and no longer affect permissions. \n You must use policies to grant access to your bucket and the objects in it. Requests to set ACLs or update ACLs fail and \n return the AccessControlListNotSupported error code. Requests to read ACLs are still supported.\n For more information, see Controlling object ownership\n in the Amazon S3 User Guide.

                      \n
                      \n

                      \n Access Permissions\n

                      \n

                      You can set access permissions using one of the following methods:

                      \n
                        \n
                      • \n

                        Specify a canned ACL with the x-amz-acl request header. Amazon S3 supports\n a set of predefined ACLs, known as canned ACLs. Each canned ACL\n has a predefined set of grantees and permissions. Specify the canned ACL name as the\n value of x-amz-acl. If you use this header, you cannot use other access\n control-specific headers in your request. For more information, see Canned ACL.

                        \n
                      • \n
                      • \n

                        Specify access permissions explicitly with the x-amz-grant-read,\n x-amz-grant-read-acp, x-amz-grant-write-acp, and\n x-amz-grant-full-control headers. When using these headers, you\n specify explicit access permissions and grantees (Amazon Web Services accounts or Amazon S3 groups) who\n will receive the permission. If you use these ACL-specific headers, you cannot use\n the x-amz-acl header to set a canned ACL. These parameters map to the\n set of permissions that Amazon S3 supports in an ACL. For more information, see Access Control List (ACL)\n Overview.

                        \n

                        You specify each grantee as a type=value pair, where the type is one of the\n following:

                        \n
                          \n
                        • \n

                          \n id – if the value specified is the canonical user ID of an Amazon Web Services account

                          \n
                        • \n
                        • \n

                          \n uri – if you are granting permissions to a predefined\n group

                          \n
                        • \n
                        • \n

                          \n emailAddress – if the value specified is the email address of\n an Amazon Web Services account

                          \n \n

                          Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:

                          \n
                            \n
                          • \n

                            US East (N. Virginia)

                            \n
                          • \n
                          • \n

                            US West (N. California)

                            \n
                          • \n
                          • \n

                            US West (Oregon)

                            \n
                          • \n
                          • \n

                            Asia Pacific (Singapore)

                            \n
                          • \n
                          • \n

                            Asia Pacific (Sydney)

                            \n
                          • \n
                          • \n

                            Asia Pacific (Tokyo)

                            \n
                          • \n
                          • \n

                            Europe (Ireland)

                            \n
                          • \n
                          • \n

                            South America (São Paulo)

                            \n
                          • \n
                          \n

                          For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the Amazon Web Services General Reference.

                          \n
                          \n
                        • \n
                        \n

                        For example, the following x-amz-grant-write header grants create,\n overwrite, and delete objects permission to LogDelivery group predefined by Amazon S3 and\n two Amazon Web Services accounts identified by their email addresses.

                        \n

                        \n x-amz-grant-write: uri=\"http://acs.amazonaws.com/groups/s3/LogDelivery\",\n id=\"111122223333\", id=\"555566667777\" \n

                        \n\n
                      • \n
                      \n

                      You can use either a canned ACL or specify access permissions explicitly. You cannot do\n both.

                      \n

                      \n Grantee Values\n

                      \n

                      You can specify the person (grantee) to whom you're assigning access rights (using\n request elements) in the following ways:

                      \n
                        \n
                      • \n

                        By the person's ID:

                        \n

                        \n <>ID<><>GranteesEmail<>\n \n

                        \n

                        DisplayName is optional and ignored in the request

                        \n
                      • \n
                      • \n

                        By URI:

                        \n

                        \n <>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<>\n

                        \n
                      • \n
                      • \n

                        By Email address:

                        \n

                        \n <>Grantees@email.com<>lt;/Grantee>\n

                        \n

                        The grantee is resolved to the CanonicalUser and, in a response to a GET Object\n acl request, appears as the CanonicalUser.

                        \n \n

                        Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:

                        \n
                          \n
                        • \n

                          US East (N. Virginia)

                          \n
                        • \n
                        • \n

                          US West (N. California)

                          \n
                        • \n
                        • \n

                          US West (Oregon)

                          \n
                        • \n
                        • \n

                          Asia Pacific (Singapore)

                          \n
                        • \n
                        • \n

                          Asia Pacific (Sydney)

                          \n
                        • \n
                        • \n

                          Asia Pacific (Tokyo)

                          \n
                        • \n
                        • \n

                          Europe (Ireland)

                          \n
                        • \n
                        • \n

                          South America (São Paulo)

                          \n
                        • \n
                        \n

                        For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the Amazon Web Services General Reference.

                        \n
                        \n
                      • \n
                      \n\n\n

                      \n Related Resources\n

                      \n ", "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}?acl", "code": 200 - }, - "smithy.api#httpChecksumRequired": {} + } } }, "com.amazonaws.s3#PutBucketAclRequest": { @@ -9422,6 +10148,13 @@ "smithy.api#httpHeader": "Content-MD5" } }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any\n additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

                      \n

                      If you provide an individual checksum, Amazon S3 ignores any provided\n ChecksumAlgorithm parameter.

                      ", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, "GrantFullControl": { "target": "com.amazonaws.s3#GrantFullControl", "traits": { @@ -9460,7 +10193,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -9511,7 +10244,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -9523,13 +10256,16 @@ "target": "com.amazonaws.s3#PutBucketCorsRequest" }, "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, "smithy.api#documentation": "

                      Sets the cors configuration for your bucket. If the configuration exists,\n Amazon S3 replaces it.

                      \n

                      To use this operation, you must be allowed to perform the s3:PutBucketCORS\n action. By default, the bucket owner has this permission and can grant it to others.

                      \n

                      You set this configuration on a bucket so that the bucket can service cross-origin\n requests. For example, you might want to enable a request whose origin is\n http://www.example.com to access your Amazon S3 bucket at\n my.example.bucket.com by using the browser's XMLHttpRequest\n capability.

                      \n

                      To enable cross-origin resource sharing (CORS) on a bucket, you add the\n cors subresource to the bucket. The cors subresource is an XML\n document in which you configure rules that identify origins and the HTTP methods that can\n be executed on your bucket. The document is limited to 64 KB in size.

                      \n

                      When Amazon S3 receives a cross-origin request (or a pre-flight OPTIONS request) against a\n bucket, it evaluates the cors configuration on the bucket and uses the first\n CORSRule rule that matches the incoming browser request to enable a\n cross-origin request. For a rule to match, the following conditions must be met:

                      \n
                        \n
                      • \n

                        The request's Origin header must match AllowedOrigin\n elements.

                        \n
                      • \n
                      • \n

                        The request method (for example, GET, PUT, HEAD, and so on) or the\n Access-Control-Request-Method header in case of a pre-flight\n OPTIONS request must be one of the AllowedMethod\n elements.

                        \n
                      • \n
                      • \n

                        Every header specified in the Access-Control-Request-Headers request\n header of a pre-flight request must match an AllowedHeader element.\n

                        \n
                      • \n
                      \n

                      For more information about CORS, go to Enabling\n Cross-Origin Resource Sharing in the Amazon S3 User Guide.

                      \n \n

                      \n Related Resources\n

                      \n ", "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}?cors", "code": 200 - }, - "smithy.api#httpChecksumRequired": {} + } } }, "com.amazonaws.s3#PutBucketCorsRequest": { @@ -9559,10 +10295,17 @@ "smithy.api#httpHeader": "Content-MD5" } }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any\n additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

                      \n

                      If you provide an individual checksum, Amazon S3 ignores any provided\n ChecksumAlgorithm parameter.

                      ", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -9574,13 +10317,16 @@ "target": "com.amazonaws.s3#PutBucketEncryptionRequest" }, "traits": { - "smithy.api#documentation": "

                      This action uses the encryption subresource to configure default\n encryption and Amazon S3 Bucket Key for an existing bucket.

                      \n

                      Default encryption for a bucket can use server-side encryption with Amazon S3-managed keys\n (SSE-S3) or customer managed keys (SSE-KMS). If you specify default encryption\n using SSE-KMS, you can also configure Amazon S3 Bucket Key. For information about default\n encryption, see Amazon S3 default bucket encryption\n in the Amazon S3 User Guide. For more information about S3 Bucket Keys,\n see Amazon S3 Bucket Keys in the Amazon S3 User Guide.

                      \n \n

                      This action requires Amazon Web Services Signature Version 4. For more information, see Authenticating Requests (Amazon Web Services Signature\n Version 4).

                      \n
                      \n

                      To use this operation, you must have permissions to perform the\n s3:PutEncryptionConfiguration action. The bucket owner has this permission\n by default. The bucket owner can grant this permission to others. For more information\n about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3\n Resources in the Amazon S3 User Guide.

                      \n \n

                      \n Related Resources\n

                      \n ", + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, + "smithy.api#documentation": "

                      This action uses the encryption subresource to configure default\n encryption and Amazon S3 Bucket Key for an existing bucket.

                      \n

                      Default encryption for a bucket can use server-side encryption with Amazon S3-managed keys\n (SSE-S3) or customer managed keys (SSE-KMS). If you specify default encryption\n using SSE-KMS, you can also configure Amazon S3 Bucket Key. When the default encryption is SSE-KMS, if\n you upload an object to the bucket and do not specify the KMS key to use for encryption, Amazon S3\n uses the default Amazon Web Services managed KMS key for your account. For information about default\n encryption, see Amazon S3 default bucket encryption\n in the Amazon S3 User Guide. For more information about S3 Bucket Keys,\n see Amazon S3 Bucket Keys in the Amazon S3 User Guide.

                      \n \n

                      This action requires Amazon Web Services Signature Version 4. For more information, see Authenticating Requests (Amazon Web Services Signature\n Version 4).

                      \n
                      \n

                      To use this operation, you must have permissions to perform the\n s3:PutEncryptionConfiguration action. The bucket owner has this permission\n by default. The bucket owner can grant this permission to others. For more information\n about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3\n Resources in the Amazon S3 User Guide.

                      \n \n

                      \n Related Resources\n

                      \n ", "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}?encryption", "code": 200 - }, - "smithy.api#httpChecksumRequired": {} + } } }, "com.amazonaws.s3#PutBucketEncryptionRequest": { @@ -9601,6 +10347,13 @@ "smithy.api#httpHeader": "Content-MD5" } }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any\n additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

                      \n

                      If you provide an individual checksum, Amazon S3 ignores any provided\n ChecksumAlgorithm parameter.

                      ", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, "ServerSideEncryptionConfiguration": { "target": "com.amazonaws.s3#ServerSideEncryptionConfiguration", "traits": { @@ -9612,7 +10365,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -9707,7 +10460,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -9719,13 +10472,16 @@ "target": "com.amazonaws.s3#PutBucketLifecycleConfigurationRequest" }, "traits": { - "smithy.api#documentation": "

                      Creates a new lifecycle configuration for the bucket or replaces an existing lifecycle\n configuration. For information about lifecycle configuration, see Managing your storage\n lifecycle.

                      \n\n \n

                      Bucket lifecycle configuration now supports specifying a lifecycle rule using an\n object key name prefix, one or more object tags, or a combination of both. Accordingly,\n this section describes the latest API. The previous version of the API supported\n filtering based only on an object key name prefix, which is supported for backward\n compatibility. For the related API description, see PutBucketLifecycle.

                      \n
                      \n\n \n\n

                      \n Rules\n

                      \n

                      You specify the lifecycle configuration in your request body. The lifecycle\n configuration is specified as XML consisting of one or more rules. Each rule consists of\n the following:

                      \n\n
                        \n
                      • \n

                        Filter identifying a subset of objects to which the rule applies. The filter can\n be based on a key name prefix, object tags, or a combination of both.

                        \n
                      • \n
                      • \n

                        Status whether the rule is in effect.

                        \n
                      • \n
                      • \n

                        One or more lifecycle transition and expiration actions that you want Amazon S3 to\n perform on the objects identified by the filter. If the state of your bucket is\n versioning-enabled or versioning-suspended, you can have many versions of the same\n object (one current version and zero or more noncurrent versions). Amazon S3 provides\n predefined actions that you can specify for current and noncurrent object\n versions.

                        \n
                      • \n
                      \n\n

                      For more information, see Object\n Lifecycle Management and Lifecycle Configuration Elements.

                      \n\n\n

                      \n Permissions\n

                      \n\n\n

                      By default, all Amazon S3 resources are private, including buckets, objects, and related\n subresources (for example, lifecycle configuration and website configuration). Only the\n resource owner (that is, the Amazon Web Services account that created it) can access the resource. The\n resource owner can optionally grant access permissions to others by writing an access\n policy. For this operation, a user must get the s3:PutLifecycleConfiguration\n permission.

                      \n\n

                      You can also explicitly deny permissions. Explicit deny also supersedes any other\n permissions. If you want to block users or accounts from removing or deleting objects from\n your bucket, you must deny them permissions for the following actions:

                      \n\n
                        \n
                      • \n

                        s3:DeleteObject

                        \n
                      • \n
                      • \n

                        s3:DeleteObjectVersion

                        \n
                      • \n
                      • \n

                        s3:PutLifecycleConfiguration

                        \n
                      • \n
                      \n\n\n

                      For more information about permissions, see Managing Access Permissions to Your Amazon S3\n Resources.

                      \n\n

                      The following are related to PutBucketLifecycleConfiguration:

                      \n ", + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, + "smithy.api#documentation": "

                      Creates a new lifecycle configuration for the bucket or replaces an existing lifecycle\n configuration. Keep in mind that this will overwrite an existing lifecycle configuration, so if\n you want to retain any configuration details, they must be included in the new lifecycle\n configuration. For information about lifecycle configuration, see Managing your storage\n lifecycle.

                      \n\n \n

                      Bucket lifecycle configuration now supports specifying a lifecycle rule using an\n object key name prefix, one or more object tags, or a combination of both. Accordingly,\n this section describes the latest API. The previous version of the API supported\n filtering based only on an object key name prefix, which is supported for backward\n compatibility. For the related API description, see PutBucketLifecycle.

                      \n
                      \n\n \n\n

                      \n Rules\n

                      \n

                      You specify the lifecycle configuration in your request body. The lifecycle\n configuration is specified as XML consisting of one or more rules. Each rule consists of\n the following:

                      \n\n
                        \n
                      • \n

                        Filter identifying a subset of objects to which the rule applies. The filter can\n be based on a key name prefix, object tags, or a combination of both.

                        \n
                      • \n
                      • \n

                        Status whether the rule is in effect.

                        \n
                      • \n
                      • \n

                        One or more lifecycle transition and expiration actions that you want Amazon S3 to\n perform on the objects identified by the filter. If the state of your bucket is\n versioning-enabled or versioning-suspended, you can have many versions of the same\n object (one current version and zero or more noncurrent versions). Amazon S3 provides\n predefined actions that you can specify for current and noncurrent object\n versions.

                        \n
                      • \n
                      \n\n

                      For more information, see Object\n Lifecycle Management and Lifecycle Configuration Elements.

                      \n\n\n

                      \n Permissions\n

                      \n\n\n

                      By default, all Amazon S3 resources are private, including buckets, objects, and related\n subresources (for example, lifecycle configuration and website configuration). Only the\n resource owner (that is, the Amazon Web Services account that created it) can access the resource. The\n resource owner can optionally grant access permissions to others by writing an access\n policy. For this operation, a user must get the s3:PutLifecycleConfiguration\n permission.

                      \n\n

                      You can also explicitly deny permissions. Explicit deny also supersedes any other\n permissions. If you want to block users or accounts from removing or deleting objects from\n your bucket, you must deny them permissions for the following actions:

                      \n\n
                        \n
                      • \n

                        \n s3:DeleteObject\n

                        \n
                      • \n
                      • \n

                        \n s3:DeleteObjectVersion\n

                        \n
                      • \n
                      • \n

                        \n s3:PutLifecycleConfiguration\n

                        \n
                      • \n
                      \n\n\n

                      For more information about permissions, see Managing Access Permissions to Your Amazon S3\n Resources.

                      \n\n

                      The following are related to PutBucketLifecycleConfiguration:

                      \n ", "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}?lifecycle", "code": 200 - }, - "smithy.api#httpChecksumRequired": {} + } } }, "com.amazonaws.s3#PutBucketLifecycleConfigurationRequest": { @@ -9739,6 +10495,13 @@ "smithy.api#required": {} } }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any\n additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

                      \n

                      If you provide an individual checksum, Amazon S3 ignores any provided\n ChecksumAlgorithm parameter.

                      ", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, "LifecycleConfiguration": { "target": "com.amazonaws.s3#BucketLifecycleConfiguration", "traits": { @@ -9750,7 +10513,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -9762,13 +10525,16 @@ "target": "com.amazonaws.s3#PutBucketLoggingRequest" }, "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, "smithy.api#documentation": "

                      Set the logging parameters for a bucket and to specify permissions for who can view and\n modify the logging parameters. All logs are saved to buckets in the same Amazon Web Services Region as the\n source bucket. To set the logging status of a bucket, you must be the bucket owner.

                      \n\n

                      The bucket owner is automatically granted FULL_CONTROL to all logs. You use the Grantee request element to grant access to other people. The\n Permissions request element specifies the kind of access the grantee has to\n the logs.

                      \n \n

                      If the target bucket for log delivery uses the bucket owner enforced\n setting for S3 Object Ownership, you can't use the Grantee request element\n to grant access to others. Permissions can only be granted using policies. For more information, see Permissions for server access log delivery in the\n Amazon S3 User Guide.

                      \n
                      \n\n

                      \n Grantee Values\n

                      \n

                      You can specify the person (grantee) to whom you're assigning access rights (using\n request elements) in the following ways:

                      \n\n
                        \n
                      • \n

                        By the person's ID:

                        \n

                        \n <>ID<><>GranteesEmail<>\n \n

                        \n

                        DisplayName is optional and ignored in the request.

                        \n
                      • \n
                      • \n

                        By Email address:

                        \n

                        \n <>Grantees@email.com<>\n

                        \n

                        The grantee is resolved to the CanonicalUser and, in a response to a GET Object\n acl request, appears as the CanonicalUser.

                        \n
                      • \n
                      • \n

                        By URI:

                        \n

                        \n <>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<>\n

                        \n
                      • \n
                      \n\n\n

                      To enable logging, you use LoggingEnabled and its children request elements. To disable\n logging, you use an empty BucketLoggingStatus request element:

                      \n\n

                      \n \n

                      \n\n

                      For more information about server access logging, see Server Access Logging in the Amazon S3 User Guide.

                      \n\n

                      For more information about creating a bucket, see CreateBucket. For more\n information about returning the logging status of a bucket, see GetBucketLogging.

                      \n\n

                      The following operations are related to PutBucketLogging:

                      \n ", "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}?logging", "code": 200 - }, - "smithy.api#httpChecksumRequired": {} + } } }, "com.amazonaws.s3#PutBucketLoggingRequest": { @@ -9798,10 +10564,17 @@ "smithy.api#httpHeader": "Content-MD5" } }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any\n additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

                      \n

                      If you provide an individual checksum, Amazon S3 ignores any provided\n ChecksumAlgorithm parameter.

                      ", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -9852,7 +10625,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -9864,7 +10637,7 @@ "target": "com.amazonaws.s3#PutBucketNotificationConfigurationRequest" }, "traits": { - "smithy.api#documentation": "

                      Enables notifications of specified events for a bucket. For more information about event\n notifications, see Configuring Event\n Notifications.

                      \n\n

                      Using this API, you can replace an existing notification configuration. The\n configuration is an XML file that defines the event types that you want Amazon S3 to publish and\n the destination where you want Amazon S3 to publish an event notification when it detects an\n event of the specified type.

                      \n\n

                      By default, your bucket has no event notifications configured. That is, the notification\n configuration will be an empty NotificationConfiguration.

                      \n\n

                      \n \n

                      \n

                      \n \n

                      \n

                      This action replaces the existing notification configuration with the configuration\n you include in the request body.

                      \n\n

                      After Amazon S3 receives this request, it first verifies that any Amazon Simple Notification\n Service (Amazon SNS) or Amazon Simple Queue Service (Amazon SQS) destination exists, and\n that the bucket owner has permission to publish to it by sending a test notification. In\n the case of Lambda destinations, Amazon S3 verifies that the Lambda function permissions\n grant Amazon S3 permission to invoke the function from the Amazon S3 bucket. For more information,\n see Configuring Notifications for Amazon S3\n Events.

                      \n\n

                      You can disable notifications by adding the empty NotificationConfiguration\n element.

                      \n\n

                      By default, only the bucket owner can configure notifications on a bucket. However,\n bucket owners can use a bucket policy to grant permission to other users to set this\n configuration with s3:PutBucketNotification permission.

                      \n\n \n

                      The PUT notification is an atomic operation. For example, suppose your notification\n configuration includes SNS topic, SQS queue, and Lambda function configurations. When\n you send a PUT request with this configuration, Amazon S3 sends test messages to your SNS\n topic. If the message fails, the entire PUT action will fail, and Amazon S3 will not add\n the configuration to your bucket.

                      \n
                      \n\n

                      \n Responses\n

                      \n

                      If the configuration in the request body includes only one\n TopicConfiguration specifying only the\n s3:ReducedRedundancyLostObject event type, the response will also include\n the x-amz-sns-test-message-id header containing the message ID of the test\n notification sent to the topic.

                      \n\n

                      The following action is related to\n PutBucketNotificationConfiguration:

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

                      Enables notifications of specified events for a bucket. For more information about event\n notifications, see Configuring Event\n Notifications.

                      \n\n

                      Using this API, you can replace an existing notification configuration. The\n configuration is an XML file that defines the event types that you want Amazon S3 to publish and\n the destination where you want Amazon S3 to publish an event notification when it detects an\n event of the specified type.

                      \n\n

                      By default, your bucket has no event notifications configured. That is, the notification\n configuration will be an empty NotificationConfiguration.

                      \n\n

                      \n \n

                      \n

                      \n \n

                      \n

                      This action replaces the existing notification configuration with the configuration\n you include in the request body.

                      \n\n

                      After Amazon S3 receives this request, it first verifies that any Amazon Simple Notification\n Service (Amazon SNS) or Amazon Simple Queue Service (Amazon SQS) destination exists, and\n that the bucket owner has permission to publish to it by sending a test notification. In\n the case of Lambda destinations, Amazon S3 verifies that the Lambda function permissions\n grant Amazon S3 permission to invoke the function from the Amazon S3 bucket. For more information,\n see Configuring Notifications for Amazon S3\n Events.

                      \n\n

                      You can disable notifications by adding the empty NotificationConfiguration\n element.

                      \n

                      For more information about the number of event notification configurations that you can create per bucket, see\n Amazon S3 service quotas in Amazon Web Services General Reference.

                      \n

                      By default, only the bucket owner can configure notifications on a bucket. However,\n bucket owners can use a bucket policy to grant permission to other users to set this\n configuration with s3:PutBucketNotification permission.

                      \n\n \n

                      The PUT notification is an atomic operation. For example, suppose your notification\n configuration includes SNS topic, SQS queue, and Lambda function configurations. When\n you send a PUT request with this configuration, Amazon S3 sends test messages to your SNS\n topic. If the message fails, the entire PUT action will fail, and Amazon S3 will not add\n the configuration to your bucket.

                      \n
                      \n\n

                      \n Responses\n

                      \n

                      If the configuration in the request body includes only one\n TopicConfiguration specifying only the\n s3:ReducedRedundancyLostObject event type, the response will also include\n the x-amz-sns-test-message-id header containing the message ID of the test\n notification sent to the topic.

                      \n\n

                      The following action is related to\n PutBucketNotificationConfiguration:

                      \n ", "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}?notification", @@ -9894,7 +10667,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } }, @@ -9913,13 +10686,15 @@ "target": "com.amazonaws.s3#PutBucketOwnershipControlsRequest" }, "traits": { + "aws.protocols#httpChecksum": { + "requestChecksumRequired": true + }, "smithy.api#documentation": "

                      Creates or modifies OwnershipControls for an Amazon S3 bucket. To use this\n operation, you must have the s3:PutBucketOwnershipControls permission. For\n more information about Amazon S3 permissions, see Specifying permissions in a policy.

                      \n

                      For information about Amazon S3 Object Ownership, see Using object ownership.

                      \n

                      The following operations are related to PutBucketOwnershipControls:

                      \n ", "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}?ownershipControls", "code": 200 - }, - "smithy.api#httpChecksumRequired": {} + } } }, "com.amazonaws.s3#PutBucketOwnershipControlsRequest": { @@ -9943,7 +10718,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } }, @@ -9964,13 +10739,16 @@ "target": "com.amazonaws.s3#PutBucketPolicyRequest" }, "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, "smithy.api#documentation": "

                      Applies an Amazon S3 bucket policy to an Amazon S3 bucket. If you are using an identity other than\n the root user of the Amazon Web Services account that owns the bucket, the calling identity must have the\n PutBucketPolicy permissions on the specified bucket and belong to the\n bucket owner's account in order to use this operation.

                      \n\n

                      If you don't have PutBucketPolicy permissions, Amazon S3 returns a 403\n Access Denied error. If you have the correct permissions, but you're not using an\n identity that belongs to the bucket owner's account, Amazon S3 returns a 405 Method Not\n Allowed error.

                      \n\n \n

                      As a security precaution, the root user of the Amazon Web Services account that owns a bucket can\n always use this operation, even if the policy explicitly denies the root user the\n ability to perform this action.

                      \n
                      \n

                      For more information, see Bucket policy examples.

                      \n\n

                      The following operations are related to PutBucketPolicy:

                      \n ", "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}?policy", "code": 200 - }, - "smithy.api#httpChecksumRequired": {} + } } }, "com.amazonaws.s3#PutBucketPolicyRequest": { @@ -9991,6 +10769,13 @@ "smithy.api#httpHeader": "Content-MD5" } }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any\n additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

                      \n

                      If you provide an individual checksum, Amazon S3 ignores any provided\n ChecksumAlgorithm parameter.

                      ", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, "ConfirmRemoveSelfBucketAccess": { "target": "com.amazonaws.s3#ConfirmRemoveSelfBucketAccess", "traits": { @@ -10009,7 +10794,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -10021,13 +10806,16 @@ "target": "com.amazonaws.s3#PutBucketReplicationRequest" }, "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, "smithy.api#documentation": "

                      Creates a replication configuration or replaces an existing one. For more information,\n see Replication in the Amazon S3 User Guide.

                      \n \n

                      Specify the replication configuration in the request body. In the replication\n configuration, you provide the name of the destination bucket or buckets where you want\n Amazon S3 to replicate objects, the IAM role that Amazon S3 can assume to replicate objects on your\n behalf, and other relevant information.

                      \n\n\n

                      A replication configuration must include at least one rule, and can contain a maximum of\n 1,000. Each rule identifies a subset of objects to replicate by filtering the objects in\n the source bucket. To choose additional subsets of objects to replicate, add a rule for\n each subset.

                      \n\n

                      To specify a subset of the objects in the source bucket to apply a replication rule to,\n add the Filter element as a child of the Rule element. You can filter objects based on an\n object key prefix, one or more object tags, or both. When you add the Filter element in the\n configuration, you must also add the following elements:\n DeleteMarkerReplication, Status, and\n Priority.

                      \n \n

                      If you are using an earlier version of the replication configuration, Amazon S3 handles\n replication of delete markers differently. For more information, see Backward Compatibility.

                      \n
                      \n

                      For information about enabling versioning on a bucket, see Using Versioning.

                      \n\n

                      \n Handling Replication of Encrypted Objects\n

                      \n

                      By default, Amazon S3 doesn't replicate objects that are stored at rest using server-side\n encryption with KMS keys. To replicate Amazon Web Services KMS-encrypted objects, add the\n following: SourceSelectionCriteria, SseKmsEncryptedObjects,\n Status, EncryptionConfiguration, and\n ReplicaKmsKeyID. For information about replication configuration, see\n Replicating Objects\n Created with SSE Using KMS keys.

                      \n\n

                      For information on PutBucketReplication errors, see List of\n replication-related error codes\n

                      \n\n

                      \n Permissions\n

                      \n

                      To create a PutBucketReplication request, you must have s3:PutReplicationConfiguration \n permissions for the bucket. \n

                      \n

                      By default, a resource owner, in this case the Amazon Web Services account that created the bucket, can\n perform this operation. The resource owner can also grant others permissions to perform the\n operation. For more information about permissions, see Specifying Permissions in a Policy\n and Managing Access Permissions to Your\n Amazon S3 Resources.

                      \n \n

                      To perform this operation, the user or role performing the action must have the\n iam:PassRole permission.

                      \n
                      \n\n

                      The following operations are related to PutBucketReplication:

                      \n ", "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}?replication", "code": 200 - }, - "smithy.api#httpChecksumRequired": {} + } } }, "com.amazonaws.s3#PutBucketReplicationRequest": { @@ -10048,6 +10836,13 @@ "smithy.api#httpHeader": "Content-MD5" } }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any\n additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

                      \n

                      If you provide an individual checksum, Amazon S3 ignores any provided\n ChecksumAlgorithm parameter.

                      ", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, "ReplicationConfiguration": { "target": "com.amazonaws.s3#ReplicationConfiguration", "traits": { @@ -10066,7 +10861,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -10078,13 +10873,16 @@ "target": "com.amazonaws.s3#PutBucketRequestPaymentRequest" }, "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, "smithy.api#documentation": "

                      Sets the request payment configuration for a bucket. By default, the bucket owner pays\n for downloads from the bucket. This configuration parameter enables the bucket owner (only)\n to specify that the person requesting the download will be charged for the download. For\n more information, see Requester Pays\n Buckets.

                      \n\n

                      The following operations are related to PutBucketRequestPayment:

                      \n ", "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}?requestPayment", "code": 200 - }, - "smithy.api#httpChecksumRequired": {} + } } }, "com.amazonaws.s3#PutBucketRequestPaymentRequest": { @@ -10105,6 +10903,13 @@ "smithy.api#httpHeader": "Content-MD5" } }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any\n additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

                      \n

                      If you provide an individual checksum, Amazon S3 ignores any provided\n ChecksumAlgorithm parameter.

                      ", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, "RequestPaymentConfiguration": { "target": "com.amazonaws.s3#RequestPaymentConfiguration", "traits": { @@ -10117,7 +10922,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -10129,13 +10934,16 @@ "target": "com.amazonaws.s3#PutBucketTaggingRequest" }, "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, "smithy.api#documentation": "

                      Sets the tags for a bucket.

                      \n

                      Use tags to organize your Amazon Web Services bill to reflect your own cost structure. To do this, sign\n up to get your Amazon Web Services account bill with tag key values included. Then, to see the cost of\n combined resources, organize your billing information according to resources with the same\n tag key values. For example, you can tag several resources with a specific application\n name, and then organize your billing information to see the total cost of that application\n across several services. For more information, see Cost Allocation\n and Tagging and Using Cost Allocation in Amazon S3 Bucket\n Tags.

                      \n\n \n

                      \n When this operation sets the tags for a bucket, it will overwrite any current tags the \n bucket already has. You cannot use this operation to add tags to an existing list of tags.

                      \n
                      \n

                      To use this operation, you must have permissions to perform the\n s3:PutBucketTagging action. The bucket owner has this permission by default\n and can grant this permission to others. For more information about 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
                      • \n

                        Error code: InvalidTagError\n

                        \n \n
                      • \n
                      • \n

                        Error code: MalformedXMLError\n

                        \n
                          \n
                        • \n

                          Description: The XML provided does not match the schema.

                          \n
                        • \n
                        \n
                      • \n
                      • \n

                        Error code: OperationAbortedError \n

                        \n
                          \n
                        • \n

                          Description: A conflicting conditional action is currently in progress\n against this resource. Please try again.

                          \n
                        • \n
                        \n
                      • \n
                      • \n

                        Error code: InternalError\n

                        \n
                          \n
                        • \n

                          Description: The service was unable to apply the provided tag to the\n bucket.

                          \n
                        • \n
                        \n
                      • \n
                      \n\n\n

                      The following operations are related to PutBucketTagging:

                      \n ", "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}?tagging", "code": 200 - }, - "smithy.api#httpChecksumRequired": {} + } } }, "com.amazonaws.s3#PutBucketTaggingRequest": { @@ -10156,6 +10964,13 @@ "smithy.api#httpHeader": "Content-MD5" } }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any\n additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

                      \n

                      If you provide an individual checksum, Amazon S3 ignores any provided\n ChecksumAlgorithm parameter.

                      ", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, "Tagging": { "target": "com.amazonaws.s3#Tagging", "traits": { @@ -10168,7 +10983,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -10180,13 +10995,16 @@ "target": "com.amazonaws.s3#PutBucketVersioningRequest" }, "traits": { - "smithy.api#documentation": "

                      Sets the versioning state of an existing bucket. To set the versioning state, you must\n be the bucket owner.

                      \n

                      You can set the versioning state with one of the following values:

                      \n\n

                      \n Enabled—Enables versioning for the objects in the\n bucket. All objects added to the bucket receive a unique version ID.

                      \n\n

                      \n Suspended—Disables versioning for the objects in the\n bucket. All objects added to the bucket receive the version ID null.

                      \n\n

                      If the versioning state has never been set on a bucket, it has no versioning state; a\n GetBucketVersioning request does not return a versioning state value.

                      \n\n

                      If the bucket owner enables MFA Delete in the bucket versioning configuration, the\n bucket owner must include the x-amz-mfa request header and the\n Status and the MfaDelete request elements in a request to set\n the versioning state of the bucket.

                      \n\n \n

                      If you have an object expiration lifecycle policy in your non-versioned bucket and\n you want to maintain the same permanent delete behavior when you enable versioning, you\n must add a noncurrent expiration policy. The noncurrent expiration lifecycle policy will\n manage the deletes of the noncurrent object versions in the version-enabled bucket. (A\n version-enabled bucket maintains one current and zero or more noncurrent object\n versions.) For more information, see Lifecycle and Versioning.

                      \n
                      \n\n

                      \n Related Resources\n

                      \n ", + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, + "smithy.api#documentation": "

                      Sets the versioning state of an existing bucket.

                      \n

                      You can set the versioning state with one of the following values:

                      \n\n

                      \n Enabled—Enables versioning for the objects in the\n bucket. All objects added to the bucket receive a unique version ID.

                      \n\n

                      \n Suspended—Disables versioning for the objects in the\n bucket. All objects added to the bucket receive the version ID null.

                      \n\n

                      If the versioning state has never been set on a bucket, it has no versioning state; a\n GetBucketVersioning request does not return a versioning state value.

                      \n\n

                      In order to enable MFA Delete, you must be the bucket owner. If you are the bucket owner\n and want to enable MFA Delete in the bucket versioning configuration, you must\n include the x-amz-mfa request header and the\n Status and the MfaDelete request elements in a request to set\n the versioning state of the bucket.

                      \n\n \n

                      If you have an object expiration lifecycle policy in your non-versioned bucket and\n you want to maintain the same permanent delete behavior when you enable versioning, you\n must add a noncurrent expiration policy. The noncurrent expiration lifecycle policy will\n manage the deletes of the noncurrent object versions in the version-enabled bucket. (A\n version-enabled bucket maintains one current and zero or more noncurrent object\n versions.) For more information, see Lifecycle and Versioning.

                      \n
                      \n\n

                      \n Related Resources\n

                      \n ", "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}?versioning", "code": 200 - }, - "smithy.api#httpChecksumRequired": {} + } } }, "com.amazonaws.s3#PutBucketVersioningRequest": { @@ -10207,6 +11025,13 @@ "smithy.api#httpHeader": "Content-MD5" } }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any\n additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

                      \n

                      If you provide an individual checksum, Amazon S3 ignores any provided\n ChecksumAlgorithm parameter.

                      ", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, "MFA": { "target": "com.amazonaws.s3#MFA", "traits": { @@ -10226,7 +11051,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -10238,13 +11063,16 @@ "target": "com.amazonaws.s3#PutBucketWebsiteRequest" }, "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, "smithy.api#documentation": "

                      Sets the configuration of the website that is specified in the website\n subresource. To configure a bucket as a website, you can add this subresource on the bucket\n with website configuration information such as the file name of the index document and any\n redirect rules. For more information, see Hosting Websites on Amazon S3.

                      \n\n

                      This PUT action requires the S3:PutBucketWebsite permission. By default,\n only the bucket owner can configure the website attached to a bucket; however, bucket\n owners can allow other users to set the website configuration by writing a bucket policy\n that grants them the S3:PutBucketWebsite permission.

                      \n\n

                      To redirect all website requests sent to the bucket's website endpoint, you add a\n website configuration with the following elements. Because all requests are sent to another\n website, you don't need to provide index document name for the bucket.

                      \n
                        \n
                      • \n

                        \n WebsiteConfiguration\n

                        \n
                      • \n
                      • \n

                        \n RedirectAllRequestsTo\n

                        \n
                      • \n
                      • \n

                        \n HostName\n

                        \n
                      • \n
                      • \n

                        \n Protocol\n

                        \n
                      • \n
                      \n\n

                      If you want granular control over redirects, you can use the following elements to add\n routing rules that describe conditions for redirecting requests and information about the\n redirect destination. In this case, the website configuration must provide an index\n document for the bucket, because some requests might not be redirected.

                      \n
                        \n
                      • \n

                        \n WebsiteConfiguration\n

                        \n
                      • \n
                      • \n

                        \n IndexDocument\n

                        \n
                      • \n
                      • \n

                        \n Suffix\n

                        \n
                      • \n
                      • \n

                        \n ErrorDocument\n

                        \n
                      • \n
                      • \n

                        \n Key\n

                        \n
                      • \n
                      • \n

                        \n RoutingRules\n

                        \n
                      • \n
                      • \n

                        \n RoutingRule\n

                        \n
                      • \n
                      • \n

                        \n Condition\n

                        \n
                      • \n
                      • \n

                        \n HttpErrorCodeReturnedEquals\n

                        \n
                      • \n
                      • \n

                        \n KeyPrefixEquals\n

                        \n
                      • \n
                      • \n

                        \n Redirect\n

                        \n
                      • \n
                      • \n

                        \n Protocol\n

                        \n
                      • \n
                      • \n

                        \n HostName\n

                        \n
                      • \n
                      • \n

                        \n ReplaceKeyPrefixWith\n

                        \n
                      • \n
                      • \n

                        \n ReplaceKeyWith\n

                        \n
                      • \n
                      • \n

                        \n HttpRedirectCode\n

                        \n
                      • \n
                      \n\n

                      Amazon S3 has a limitation of 50 routing rules per website configuration. If you require more\n than 50 routing rules, you can use object redirect. For more information, see Configuring an\n Object Redirect in the Amazon S3 User Guide.

                      ", "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}?website", "code": 200 - }, - "smithy.api#httpChecksumRequired": {} + } } }, "com.amazonaws.s3#PutBucketWebsiteRequest": { @@ -10265,6 +11093,13 @@ "smithy.api#httpHeader": "Content-MD5" } }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any\n additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

                      \n

                      If you provide an individual checksum, Amazon S3 ignores any provided\n ChecksumAlgorithm parameter.

                      ", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, "WebsiteConfiguration": { "target": "com.amazonaws.s3#WebsiteConfiguration", "traits": { @@ -10277,7 +11112,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -10292,6 +11127,9 @@ "target": "com.amazonaws.s3#PutObjectOutput" }, "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm" + }, "smithy.api#documentation": "

                      Adds an object to a bucket. You must have WRITE permissions on a bucket to add an object\n to it.

                      \n\n\n

                      Amazon S3 never adds partial objects; if you receive a success response, Amazon S3 added the\n entire object to the bucket.

                      \n\n

                      Amazon S3 is a distributed system. If it receives multiple write requests for the same object\n simultaneously, it overwrites all but the last object written. Amazon S3 does not provide object\n locking; if you need this, make sure to build it into your application layer or use\n versioning instead.

                      \n\n

                      To ensure that data is not corrupted traversing the network, use the\n Content-MD5 header. When you use this header, Amazon S3 checks the object\n against the provided MD5 value and, if they do not match, returns an error. Additionally,\n you can calculate the MD5 while putting an object to Amazon S3 and compare the returned ETag to\n the calculated MD5 value.

                      \n \n
                        \n
                      • \n

                        To successfully complete the PutObject request, you must have the \n s3:PutObject in your IAM permissions.

                        \n
                      • \n
                      • \n

                        To successfully change the objects acl of your PutObject request, \n you must have the s3:PutObjectAcl in your IAM permissions.

                        \n
                      • \n
                      • \n

                        The Content-MD5 header is required for any request to upload an object\n with a retention period configured using Amazon S3 Object Lock. For more information about\n Amazon S3 Object Lock, see Amazon S3 Object Lock Overview\n in the Amazon S3 User Guide.

                        \n
                      • \n
                      \n
                      \n

                      \n Server-side Encryption\n

                      \n

                      You can optionally request server-side encryption. With server-side encryption, Amazon S3 encrypts \n your data as it writes it to disks in its data centers and decrypts the data\n when you access it. You have the option to provide your own encryption key or use Amazon Web Services\n managed encryption keys (SSE-S3 or SSE-KMS). For more information, see Using Server-Side\n Encryption.

                      \n

                      If you request server-side encryption using Amazon Web Services Key Management Service (SSE-KMS), you can enable \n an S3 Bucket Key at the object-level. For more information, see Amazon S3 Bucket Keys in the \n Amazon S3 User Guide.

                      \n

                      \n Access Control List (ACL)-Specific Request\n Headers\n

                      \n

                      You can use headers to grant ACL- based permissions. By default, all objects are\n private. Only the owner has full access control. When adding a new object, you can grant\n permissions to individual Amazon Web Services accounts or to predefined groups defined by Amazon S3. These\n permissions are then added to the ACL on the object. For more information, see Access Control List\n (ACL) Overview and Managing ACLs Using the REST\n API.

                      \n

                      If the bucket that you're uploading objects to uses the bucket owner enforced setting\n for S3 Object Ownership, ACLs are disabled and no longer affect permissions. Buckets that\n use this setting only accept PUT requests that don't specify an ACL or PUT requests that\n specify bucket owner full control ACLs, such as the bucket-owner-full-control canned\n ACL or an equivalent form of this ACL expressed in the XML format. PUT requests that contain other\n ACLs (for example, custom grants to certain Amazon Web Services accounts) fail and return a\n 400 error with the error code\n AccessControlListNotSupported.

                      \n

                      For more information, see Controlling ownership of\n objects and disabling ACLs in the Amazon S3 User Guide.

                      \n \n

                      If your bucket uses the bucket owner enforced setting for Object Ownership, \n all objects written to the bucket by any account will be owned by the bucket owner.

                      \n
                      \n

                      \n Storage Class Options\n

                      \n

                      By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The\n STANDARD storage class provides high durability and high availability. Depending on\n performance needs, you can specify a different Storage Class. Amazon S3 on Outposts only uses\n the OUTPOSTS Storage Class. For more information, see Storage Classes in the\n Amazon S3 User Guide.

                      \n\n\n

                      \n Versioning\n

                      \n

                      If you enable versioning for a bucket, Amazon S3 automatically generates a unique version ID\n for the object being stored. Amazon S3 returns this ID in the response. When you enable\n versioning for a bucket, if Amazon S3 receives multiple write requests for the same object\n simultaneously, it stores all of the objects.

                      \n

                      For more information about versioning, see Adding Objects to\n Versioning Enabled Buckets. For information about returning the versioning state\n of a bucket, see GetBucketVersioning.

                      \n\n\n

                      \n Related Resources\n

                      \n ", "smithy.api#http": { "method": "PUT", @@ -10314,13 +11152,16 @@ } ], "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, "smithy.api#documentation": "

                      Uses the acl subresource to set the access control list (ACL) permissions\n for a new or existing object in an S3 bucket. You must have WRITE_ACP\n permission to set the ACL of an object. For more information, see What\n permissions can I grant? in the Amazon S3 User Guide.

                      \n

                      This action is not supported by Amazon S3 on Outposts.

                      \n

                      Depending on your application needs, you can choose to set\n the ACL on an object using either the request body or the headers. For example, if you have\n an existing application that updates a bucket ACL using the request body, you can continue\n to use that approach. For more information, see Access Control List (ACL) Overview in the Amazon S3 User Guide.

                      \n \n

                      If your bucket uses the bucket owner enforced setting for S3 Object Ownership, ACLs are disabled and no longer affect permissions. \n You must use policies to grant access to your bucket and the objects in it. Requests to set ACLs or update ACLs fail and \n return the AccessControlListNotSupported error code. Requests to read ACLs are still supported.\n For more information, see Controlling object ownership\n in the Amazon S3 User Guide.

                      \n
                      \n\n

                      \n Access Permissions\n

                      \n

                      You can set access permissions using one of the following methods:

                      \n
                        \n
                      • \n

                        Specify a canned ACL with the x-amz-acl request header. Amazon S3 supports\n a set of predefined ACLs, known as canned ACLs. Each canned ACL has a predefined set\n of grantees and permissions. Specify the canned ACL name as the value of\n x-amz-acl. If you use this header, you cannot use other access\n control-specific headers in your request. For more information, see Canned ACL.

                        \n
                      • \n
                      • \n

                        Specify access permissions explicitly with the x-amz-grant-read,\n x-amz-grant-read-acp, x-amz-grant-write-acp, and\n x-amz-grant-full-control headers. When using these headers, you\n specify explicit access permissions and grantees (Amazon Web Services accounts or Amazon S3 groups) who\n will receive the permission. If you use these ACL-specific headers, you cannot use\n x-amz-acl header to set a canned ACL. These parameters map to the set\n of permissions that Amazon S3 supports in an ACL. For more information, see Access Control List (ACL)\n Overview.

                        \n\n

                        You specify each grantee as a type=value pair, where the type is one of the\n following:

                        \n
                          \n
                        • \n

                          \n id – if the value specified is the canonical user ID of an Amazon Web Services account

                          \n
                        • \n
                        • \n

                          \n uri – if you are granting permissions to a predefined\n group

                          \n
                        • \n
                        • \n

                          \n emailAddress – if the value specified is the email address of\n an Amazon Web Services account

                          \n \n

                          Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:

                          \n
                            \n
                          • \n

                            US East (N. Virginia)

                            \n
                          • \n
                          • \n

                            US West (N. California)

                            \n
                          • \n
                          • \n

                            US West (Oregon)

                            \n
                          • \n
                          • \n

                            Asia Pacific (Singapore)

                            \n
                          • \n
                          • \n

                            Asia Pacific (Sydney)

                            \n
                          • \n
                          • \n

                            Asia Pacific (Tokyo)

                            \n
                          • \n
                          • \n

                            Europe (Ireland)

                            \n
                          • \n
                          • \n

                            South America (São Paulo)

                            \n
                          • \n
                          \n

                          For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the Amazon Web Services General Reference.

                          \n
                          \n
                        • \n
                        \n

                        For example, the following x-amz-grant-read header grants list\n objects permission to the two Amazon Web Services accounts identified by their email\n addresses.

                        \n

                        \n x-amz-grant-read: emailAddress=\"xyz@amazon.com\",\n emailAddress=\"abc@amazon.com\" \n

                        \n\n
                      • \n
                      \n

                      You can use either a canned ACL or specify access permissions explicitly. You cannot do\n both.

                      \n

                      \n Grantee Values\n

                      \n

                      You can specify the person (grantee) to whom you're assigning access rights (using\n request elements) in the following ways:

                      \n
                        \n
                      • \n

                        By the person's ID:

                        \n

                        \n <>ID<><>GranteesEmail<>\n \n

                        \n

                        DisplayName is optional and ignored in the request.

                        \n
                      • \n
                      • \n

                        By URI:

                        \n

                        \n <>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<>\n

                        \n
                      • \n
                      • \n

                        By Email address:

                        \n

                        \n <>Grantees@email.com<>lt;/Grantee>\n

                        \n

                        The grantee is resolved to the CanonicalUser and, in a response to a GET Object\n acl request, appears as the CanonicalUser.

                        \n \n

                        Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:

                        \n
                          \n
                        • \n

                          US East (N. Virginia)

                          \n
                        • \n
                        • \n

                          US West (N. California)

                          \n
                        • \n
                        • \n

                          US West (Oregon)

                          \n
                        • \n
                        • \n

                          Asia Pacific (Singapore)

                          \n
                        • \n
                        • \n

                          Asia Pacific (Sydney)

                          \n
                        • \n
                        • \n

                          Asia Pacific (Tokyo)

                          \n
                        • \n
                        • \n

                          Europe (Ireland)

                          \n
                        • \n
                        • \n

                          South America (São Paulo)

                          \n
                        • \n
                        \n

                        For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the Amazon Web Services General Reference.

                        \n
                        \n
                      • \n
                      \n

                      \n Versioning\n

                      \n

                      The ACL of an object is set at the object version level. By default, PUT sets the ACL of\n the current version of an object. To set the ACL of a different version, use the\n versionId subresource.

                      \n

                      \n Related Resources\n

                      \n ", "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}/{Key+}?acl", "code": 200 - }, - "smithy.api#httpChecksumRequired": {} + } } }, "com.amazonaws.s3#PutObjectAclOutput": { @@ -10367,6 +11208,13 @@ "smithy.api#httpHeader": "Content-MD5" } }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any\n additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

                      \n

                      If you provide an individual checksum, Amazon S3 ignores any provided\n ChecksumAlgorithm parameter.

                      ", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, "GrantFullControl": { "target": "com.amazonaws.s3#GrantFullControl", "traits": { @@ -10405,7 +11253,7 @@ "Key": { "target": "com.amazonaws.s3#ObjectKey", "traits": { - "smithy.api#documentation": "

                      Key for which the PUT action was initiated.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

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

                      Key for which the PUT action was initiated.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -10426,7 +11274,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -10441,13 +11289,16 @@ "target": "com.amazonaws.s3#PutObjectLegalHoldOutput" }, "traits": { - "smithy.api#documentation": "

                      Applies a Legal Hold configuration to the specified object. For more information, see\n Locking\n Objects.

                      \n

                      This action is not supported by Amazon S3 on Outposts.

                      ", + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, + "smithy.api#documentation": "

                      Applies a legal hold configuration to the specified object. For more information, see\n Locking\n Objects.

                      \n

                      This action is not supported by Amazon S3 on Outposts.

                      ", "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}/{Key+}?legal-hold", "code": 200 - }, - "smithy.api#httpChecksumRequired": {} + } } }, "com.amazonaws.s3#PutObjectLegalHoldOutput": { @@ -10467,7 +11318,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

                      The bucket name containing the object that you want to place a Legal Hold on.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

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

                      The bucket name containing the object that you want to place a legal hold on.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -10475,7 +11326,7 @@ "Key": { "target": "com.amazonaws.s3#ObjectKey", "traits": { - "smithy.api#documentation": "

                      The key name for the object that you want to place a Legal Hold on.

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

                      The key name for the object that you want to place a legal hold on.

                      ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -10483,7 +11334,7 @@ "LegalHold": { "target": "com.amazonaws.s3#ObjectLockLegalHold", "traits": { - "smithy.api#documentation": "

                      Container element for the Legal Hold configuration you want to apply to the specified\n object.

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

                      Container element for the legal hold configuration you want to apply to the specified\n object.

                      ", "smithy.api#httpPayload": {}, "smithy.api#xmlName": "LegalHold" } @@ -10497,7 +11348,7 @@ "VersionId": { "target": "com.amazonaws.s3#ObjectVersionId", "traits": { - "smithy.api#documentation": "

                      The version ID of the object that you want to place a Legal Hold on.

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

                      The version ID of the object that you want to place a legal hold on.

                      ", "smithy.api#httpQuery": "versionId" } }, @@ -10508,10 +11359,17 @@ "smithy.api#httpHeader": "Content-MD5" } }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any\n additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

                      \n

                      If you provide an individual checksum, Amazon S3 ignores any provided\n ChecksumAlgorithm parameter.

                      ", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -10526,13 +11384,16 @@ "target": "com.amazonaws.s3#PutObjectLockConfigurationOutput" }, "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, "smithy.api#documentation": "

                      Places an Object Lock configuration on the specified bucket. The rule specified in the\n Object Lock configuration will be applied by default to every new object placed in the\n specified bucket. For more information, see Locking Objects.\n

                      \n \n
                        \n
                      • \n

                        The DefaultRetention settings require both a mode and a\n period.

                        \n
                      • \n
                      • \n

                        The DefaultRetention period can be either Days\n or Years but you must select one. You cannot specify Days\n and Years at the same time.

                        \n
                      • \n
                      • \n

                        You can only enable Object Lock for new buckets. If you want to turn on\n Object Lock for an existing bucket, contact Amazon Web Services Support.

                        \n
                      • \n
                      \n
                      ", "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}?object-lock", "code": 200 - }, - "smithy.api#httpChecksumRequired": {} + } } }, "com.amazonaws.s3#PutObjectLockConfigurationOutput": { @@ -10585,10 +11446,17 @@ "smithy.api#httpHeader": "Content-MD5" } }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any\n additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

                      \n

                      If you provide an individual checksum, Amazon S3 ignores any provided\n ChecksumAlgorithm parameter.

                      ", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -10600,7 +11468,7 @@ "Expiration": { "target": "com.amazonaws.s3#Expiration", "traits": { - "smithy.api#documentation": "

                      If the expiration is configured for the object (see PutBucketLifecycleConfiguration), the response includes this header. It\n includes the expiry-date and rule-id key-value pairs that provide information about object\n expiration. The value of the rule-id is URL encoded.

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

                      If the expiration is configured for the object (see PutBucketLifecycleConfiguration), the response includes this header. It\n includes the expiry-date and rule-id key-value pairs that provide\n information about object expiration. The value of the rule-id is\n URL-encoded.

                      ", "smithy.api#httpHeader": "x-amz-expiration" } }, @@ -10611,6 +11479,34 @@ "smithy.api#httpHeader": "ETag" } }, + "ChecksumCRC32": { + "target": "com.amazonaws.s3#ChecksumCRC32", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-checksum-crc32" + } + }, + "ChecksumCRC32C": { + "target": "com.amazonaws.s3#ChecksumCRC32C", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-checksum-crc32c" + } + }, + "ChecksumSHA1": { + "target": "com.amazonaws.s3#ChecksumSHA1", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-checksum-sha1" + } + }, + "ChecksumSHA256": { + "target": "com.amazonaws.s3#ChecksumSHA256", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-checksum-sha256" + } + }, "ServerSideEncryption": { "target": "com.amazonaws.s3#ServerSideEncryption", "traits": { @@ -10688,7 +11584,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

                      The bucket name to which the PUT action was initiated.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

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

                      The bucket name to which the PUT action was initiated.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -10742,6 +11638,41 @@ "smithy.api#httpHeader": "Content-Type" } }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any\n additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

                      \n

                      If you provide an individual checksum, Amazon S3 ignores any provided\n ChecksumAlgorithm parameter.

                      ", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, + "ChecksumCRC32": { + "target": "com.amazonaws.s3#ChecksumCRC32", + "traits": { + "smithy.api#documentation": "

                      This header can be used as a data integrity check to verify that the data received is the same data that was originally sent.\n This header specifies the base64-encoded, 32-bit CRC32 checksum of the object. For more information, see\n Checking object integrity in the\n Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-checksum-crc32" + } + }, + "ChecksumCRC32C": { + "target": "com.amazonaws.s3#ChecksumCRC32C", + "traits": { + "smithy.api#documentation": "

                      This header can be used as a data integrity check to verify that the data received is the same data that was originally sent.\n This header specifies the base64-encoded, 32-bit CRC32C checksum of the object. For more information, see\n Checking object integrity in the\n Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-checksum-crc32c" + } + }, + "ChecksumSHA1": { + "target": "com.amazonaws.s3#ChecksumSHA1", + "traits": { + "smithy.api#documentation": "

                      This header can be used as a data integrity check to verify that the data received is the same data that was originally sent.\n This header specifies the base64-encoded, 160-bit SHA-1 digest of the object. For more information, see\n Checking object integrity in the\n Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-checksum-sha1" + } + }, + "ChecksumSHA256": { + "target": "com.amazonaws.s3#ChecksumSHA256", + "traits": { + "smithy.api#documentation": "

                      This header can be used as a data integrity check to verify that the data received is the same data that was originally sent.\n This header specifies the base64-encoded, 256-bit SHA-256 digest of the object. For more information, see\n Checking object integrity in the\n Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-checksum-sha256" + } + }, "Expires": { "target": "com.amazonaws.s3#Expires", "traits": { @@ -10892,7 +11823,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -10907,13 +11838,16 @@ "target": "com.amazonaws.s3#PutObjectRetentionOutput" }, "traits": { - "smithy.api#documentation": "

                      Places an Object Retention configuration on an object. For more information, see Locking Objects.\n Users or accounts require the s3:PutObjectRetention permission in order to place\n an Object Retention configuration on objects. Bypassing a Governance Retention configuration\n requires the s3:BypassGovernanceRetention permission.\n

                      \n

                      This action is not supported by Amazon S3 on Outposts.

                      \n\n

                      \n Permissions\n

                      \n

                      When the Object Lock retention mode is set to compliance, you need s3:PutObjectRetention and \n s3:BypassGovernanceRetention permissions. For other requests to PutObjectRetention, \n only s3:PutObjectRetention permissions are required.

                      ", + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, + "smithy.api#documentation": "

                      Places an Object Retention configuration on an object. For more information, see Locking Objects.\n Users or accounts require the s3:PutObjectRetention permission in order to place\n an Object Retention configuration on objects. Bypassing a Governance Retention configuration\n requires the s3:BypassGovernanceRetention permission.\n

                      \n

                      This action is not supported by Amazon S3 on Outposts.

                      ", "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}/{Key+}?retention", "code": 200 - }, - "smithy.api#httpChecksumRequired": {} + } } }, "com.amazonaws.s3#PutObjectRetentionOutput": { @@ -10981,10 +11915,17 @@ "smithy.api#httpHeader": "Content-MD5" } }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any\n additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

                      \n

                      If you provide an individual checksum, Amazon S3 ignores any provided\n ChecksumAlgorithm parameter.

                      ", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -10999,13 +11940,16 @@ "target": "com.amazonaws.s3#PutObjectTaggingOutput" }, "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, "smithy.api#documentation": "

                      Sets the supplied tag-set to an object that already exists in a bucket.

                      \n

                      A tag is a key-value pair. You can associate tags with an object by sending a PUT\n request against the tagging subresource that is associated with the object. You can\n retrieve tags by sending a GET request. For more information, see GetObjectTagging.

                      \n\n

                      For tagging-related restrictions related to characters and encodings, see Tag\n Restrictions. Note that Amazon S3 limits the maximum number of tags to 10 tags per\n object.

                      \n\n

                      To use this operation, you must have permission to perform the\n s3:PutObjectTagging action. By default, the bucket owner has this\n permission and can grant this permission to others.

                      \n\n

                      To put tags of any other version, use the versionId query parameter. You\n also need permission for the s3:PutObjectVersionTagging action.

                      \n\n

                      For information about the Amazon S3 object tagging feature, see Object Tagging.

                      \n\n\n

                      \n Special Errors\n

                      \n
                        \n
                      • \n
                          \n
                        • \n

                          \n Code: InvalidTagError \n

                          \n
                        • \n
                        • \n

                          \n Cause: The tag provided was not a valid tag. This error can occur\n if the tag did not pass input validation. For more information, see Object Tagging.\n

                          \n
                        • \n
                        \n
                      • \n
                      • \n
                          \n
                        • \n

                          \n Code: MalformedXMLError \n

                          \n
                        • \n
                        • \n

                          \n Cause: The XML provided does not match the schema.\n

                          \n
                        • \n
                        \n
                      • \n
                      • \n
                          \n
                        • \n

                          \n Code: OperationAbortedError \n

                          \n
                        • \n
                        • \n

                          \n Cause: A conflicting conditional action is currently in\n progress against this resource. Please try again.\n

                          \n
                        • \n
                        \n
                      • \n
                      • \n
                          \n
                        • \n

                          \n Code: InternalError\n

                          \n
                        • \n
                        • \n

                          \n Cause: The service was unable to apply the provided tag to the\n object.\n

                          \n
                        • \n
                        \n
                      • \n
                      \n\n \n\n\n\n\n

                      \n Related Resources\n

                      \n ", "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}/{Key+}?tagging", "code": 200 - }, - "smithy.api#httpChecksumRequired": {} + } } }, "com.amazonaws.s3#PutObjectTaggingOutput": { @@ -11026,7 +11970,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

                      The bucket name containing the object.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

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

                      The bucket name containing the object.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -11053,6 +11997,13 @@ "smithy.api#httpHeader": "Content-MD5" } }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any\n additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

                      \n

                      If you provide an individual checksum, Amazon S3 ignores any provided\n ChecksumAlgorithm parameter.

                      ", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, "Tagging": { "target": "com.amazonaws.s3#Tagging", "traits": { @@ -11065,7 +12016,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } }, @@ -11083,13 +12034,16 @@ "target": "com.amazonaws.s3#PutPublicAccessBlockRequest" }, "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm", + "requestChecksumRequired": true + }, "smithy.api#documentation": "

                      Creates or modifies the PublicAccessBlock configuration for an Amazon S3 bucket.\n To use this operation, you must have the s3:PutBucketPublicAccessBlock\n permission. For more information about Amazon S3 permissions, see Specifying Permissions in a\n Policy.

                      \n\n \n

                      When Amazon S3 evaluates the PublicAccessBlock configuration for a bucket or\n an object, it checks the PublicAccessBlock configuration for both the\n bucket (or the bucket that contains the object) and the bucket owner's account. If the\n PublicAccessBlock configurations are different between the bucket and\n the account, Amazon S3 uses the most restrictive combination of the bucket-level and\n account-level settings.

                      \n
                      \n\n\n

                      For more information about when Amazon S3 considers a bucket or an object public, see The Meaning of \"Public\".

                      \n\n\n\n

                      \n Related Resources\n

                      \n ", "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}?publicAccessBlock", "code": 200 - }, - "smithy.api#httpChecksumRequired": {} + } } }, "com.amazonaws.s3#PutPublicAccessBlockRequest": { @@ -11110,6 +12064,13 @@ "smithy.api#httpHeader": "Content-MD5" } }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any\n additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

                      \n

                      If you provide an individual checksum, Amazon S3 ignores any provided\n ChecksumAlgorithm parameter.

                      ", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, "PublicAccessBlockConfiguration": { "target": "com.amazonaws.s3#PublicAccessBlockConfiguration", "traits": { @@ -11122,7 +12083,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -11552,7 +12513,7 @@ "com.amazonaws.s3#RequestPayer": { "type": "string", "traits": { - "smithy.api#documentation": "

                      Confirms that the requester knows that they will be charged for the request. Bucket\n owners need not specify this parameter in their requests. For information about downloading\n objects from requester pays buckets, see Downloading Objects in\n Requestor Pays Buckets in the Amazon S3 User Guide.

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

                      Confirms that the requester knows that they will be charged for the request. Bucket\n owners need not specify this parameter in their requests. For information about downloading\n objects from Requester Pays buckets, see Downloading Objects in\n Requester Pays Buckets in the Amazon S3 User Guide.

                      ", "smithy.api#enum": [ { "value": "requester", @@ -11634,7 +12595,10 @@ } ], "traits": { - "smithy.api#documentation": "

                      Restores an archived copy of an object back into Amazon S3

                      \n

                      This action is not supported by Amazon S3 on Outposts.

                      \n

                      This action performs the following types of requests:

                      \n
                        \n
                      • \n

                        \n select - Perform a select query on an archived object

                        \n
                      • \n
                      • \n

                        \n restore an archive - Restore an archived object

                        \n
                      • \n
                      \n

                      To use this operation, you must have permissions to perform the\n s3:RestoreObject action. The bucket owner has this permission by default\n and can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3\n Resources in the Amazon S3 User Guide.

                      \n

                      \n Querying Archives with Select Requests\n

                      \n

                      You use a select type of request to perform SQL queries on archived objects. The\n archived objects that are being queried by the select request must be formatted as\n uncompressed comma-separated values (CSV) files. You can run queries and custom analytics\n on your archived data without having to restore your data to a hotter Amazon S3 tier. For an\n overview about select requests, see Querying Archived Objects in the Amazon S3 User Guide.

                      \n

                      When making a select request, do the following:

                      \n
                        \n
                      • \n

                        Define an output location for the select query's output. This must be an Amazon S3\n bucket in the same Amazon Web Services Region as the bucket that contains the archive object that is\n being queried. The Amazon Web Services account that initiates the job must have permissions to write\n to the S3 bucket. You can specify the storage class and encryption for the output\n objects stored in the bucket. For more information about output, see Querying Archived Objects\n in the Amazon S3 User Guide.

                        \n

                        For more information about the S3 structure in the request body, see\n the following:

                        \n \n
                      • \n
                      • \n

                        Define the SQL expression for the SELECT type of restoration for your\n query in the request body's SelectParameters structure. You can use\n expressions like the following examples.

                        \n
                          \n
                        • \n

                          The following expression returns all records from the specified\n object.

                          \n

                          \n SELECT * FROM Object\n

                          \n
                        • \n
                        • \n

                          Assuming that you are not using any headers for data stored in the object,\n you can specify columns with positional headers.

                          \n

                          \n SELECT s._1, s._2 FROM Object s WHERE s._3 > 100\n

                          \n
                        • \n
                        • \n

                          If you have headers and you set the fileHeaderInfo in the\n CSV structure in the request body to USE, you can\n specify headers in the query. (If you set the fileHeaderInfo field\n to IGNORE, the first row is skipped for the query.) You cannot mix\n ordinal positions with header column names.

                          \n

                          \n SELECT s.Id, s.FirstName, s.SSN FROM S3Object s\n

                          \n
                        • \n
                        \n
                      • \n
                      \n

                      For more information about using SQL with S3 Glacier Select restore, see SQL Reference for Amazon S3 Select and\n S3 Glacier Select in the Amazon S3 User Guide.

                      \n

                      When making a select request, you can also do the following:

                      \n
                        \n
                      • \n

                        To expedite your queries, specify the Expedited tier. For more\n information about tiers, see \"Restoring Archives,\" later in this topic.

                        \n
                      • \n
                      • \n

                        Specify details about the data serialization format of both the input object that\n is being queried and the serialization of the CSV-encoded query results.

                        \n
                      • \n
                      \n

                      The following are additional important facts about the select feature:

                      \n
                        \n
                      • \n

                        The output results are new Amazon S3 objects. Unlike archive retrievals, they are\n stored until explicitly deleted-manually or through a lifecycle policy.

                        \n
                      • \n
                      • \n

                        You can issue more than one select request on the same Amazon S3 object. Amazon S3 doesn't\n deduplicate requests, so avoid issuing duplicate requests.

                        \n
                      • \n
                      • \n

                        Amazon S3 accepts a select request even if the object has already been restored. A\n select request doesn’t return error response 409.

                        \n
                      • \n
                      \n

                      \n Restoring objects\n

                      \n

                      Objects that you archive to the S3 Glacier or\n S3 Glacier Deep Archive storage class, and S3 Intelligent-Tiering Archive or\n S3 Intelligent-Tiering Deep Archive tiers are not accessible in real time. For objects in\n Archive Access or Deep Archive Access tiers you must first initiate a restore request, and\n then wait until the object is moved into the Frequent Access tier. For objects in\n S3 Glacier or S3 Glacier Deep Archive storage classes you must\n first initiate a restore request, and then wait until a temporary copy of the object is\n available. To access an archived object, you must restore the object for the duration\n (number of days) that you specify.

                      \n

                      To restore a specific object version, you can provide a version ID. If you don't provide\n a version ID, Amazon S3 restores the current version.

                      \n

                      When restoring an archived object (or using a select request), you can specify one of\n the following data access tier options in the Tier element of the request\n body:

                      \n
                        \n
                      • \n

                        \n \n Expedited\n - Expedited retrievals\n allow you to quickly access your data stored in the S3 Glacier\n storage class or S3 Intelligent-Tiering Archive tier when occasional urgent requests for a\n subset of archives are required. For all but the largest archived objects (250 MB+),\n data accessed using Expedited retrievals is typically made available within 1–5\n minutes. Provisioned capacity ensures that retrieval capacity for Expedited\n retrievals is available when you need it. Expedited retrievals and provisioned\n capacity are not available for objects stored in the S3 Glacier Deep Archive\n storage class or S3 Intelligent-Tiering Deep Archive tier.

                        \n
                      • \n
                      • \n

                        \n \n Standard\n - Standard retrievals allow\n you to access any of your archived objects within several hours. This is the default\n option for retrieval requests that do not specify the retrieval option. Standard\n retrievals typically finish within 3–5 hours for objects stored in the\n S3 Glacier storage class or S3 Intelligent-Tiering Archive tier. They\n typically finish within 12 hours for objects stored in the\n S3 Glacier Deep Archive storage class or S3 Intelligent-Tiering Deep Archive tier.\n Standard retrievals are free for objects stored in S3 Intelligent-Tiering.

                        \n
                      • \n
                      • \n

                        \n \n Bulk\n - Bulk retrievals are the\n lowest-cost retrieval option in S3 Glacier, enabling you to retrieve large amounts,\n even petabytes, of data inexpensively. Bulk retrievals typically finish within 5–12\n hours for objects stored in the S3 Glacier storage class or\n S3 Intelligent-Tiering Archive tier. They typically finish within 48 hours for objects stored\n in the S3 Glacier Deep Archive storage class or S3 Intelligent-Tiering Deep Archive tier.\n Bulk retrievals are free for objects stored in S3 Intelligent-Tiering.

                        \n
                      • \n
                      \n

                      For more information about archive retrieval options and provisioned capacity for\n Expedited data access, see Restoring Archived Objects in the Amazon S3 User Guide.

                      \n

                      You can use Amazon S3 restore speed upgrade to change the restore speed to a faster speed\n while it is in progress. For more information, see \n Upgrading the speed of an in-progress restore in the\n Amazon S3 User Guide.

                      \n

                      To get the status of object restoration, you can send a HEAD request.\n Operations return the x-amz-restore header, which provides information about\n the restoration status, in the response. You can use Amazon S3 event notifications to notify you\n when a restore is initiated or completed. For more information, see Configuring Amazon S3 Event Notifications in\n the Amazon S3 User Guide.

                      \n

                      After restoring an archived object, you can update the restoration period by reissuing\n the request with a new period. Amazon S3 updates the restoration period relative to the current\n time and charges only for the request-there are no data transfer charges. You cannot\n update the restoration period when Amazon S3 is actively processing your current restore request\n for the object.

                      \n

                      If your bucket has a lifecycle configuration with a rule that includes an expiration\n action, the object expiration overrides the life span that you specify in a restore\n request. For example, if you restore an object copy for 10 days, but the object is\n scheduled to expire in 3 days, Amazon S3 deletes the object in 3 days. For more information\n about lifecycle configuration, see PutBucketLifecycleConfiguration and Object Lifecycle Management in\n Amazon S3 User Guide.

                      \n

                      \n Responses\n

                      \n

                      A successful action returns either the 200 OK or 202\n Accepted status code.

                      \n
                        \n
                      • \n

                        If the object is not previously restored, then Amazon S3 returns 202\n Accepted in the response.

                        \n
                      • \n
                      • \n

                        If the object is previously restored, Amazon S3 returns 200 OK in the\n response.

                        \n
                      • \n
                      \n

                      \n Special Errors\n

                      \n
                        \n
                      • \n
                          \n
                        • \n

                          \n Code: RestoreAlreadyInProgress\n

                          \n
                        • \n
                        • \n

                          \n Cause: Object restore is already in progress. (This error does not\n apply to SELECT type requests.)\n

                          \n
                        • \n
                        • \n

                          \n HTTP Status Code: 409 Conflict\n

                          \n
                        • \n
                        • \n

                          \n SOAP Fault Code Prefix: Client\n

                          \n
                        • \n
                        \n
                      • \n
                      • \n
                          \n
                        • \n

                          \n Code: GlacierExpeditedRetrievalNotAvailable\n

                          \n
                        • \n
                        • \n

                          \n Cause: expedited retrievals are currently not available. Try again\n later. (Returned if there is insufficient capacity to process the Expedited\n request. This error applies only to Expedited retrievals and not to\n S3 Standard or Bulk retrievals.)\n

                          \n
                        • \n
                        • \n

                          \n HTTP Status Code: 503\n

                          \n
                        • \n
                        • \n

                          \n SOAP Fault Code Prefix: N/A\n

                          \n
                        • \n
                        \n
                      • \n
                      \n \n

                      \n Related Resources\n

                      \n ", + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm" + }, + "smithy.api#documentation": "

                      Restores an archived copy of an object back into Amazon S3

                      \n

                      This action is not supported by Amazon S3 on Outposts.

                      \n

                      This action performs the following types of requests:

                      \n
                        \n
                      • \n

                        \n select - Perform a select query on an archived object

                        \n
                      • \n
                      • \n

                        \n restore an archive - Restore an archived object

                        \n
                      • \n
                      \n

                      To use this operation, you must have permissions to perform the\n s3:RestoreObject action. The bucket owner has this permission by default\n and can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3\n Resources in the Amazon S3 User Guide.

                      \n

                      \n Querying Archives with Select Requests\n

                      \n

                      You use a select type of request to perform SQL queries on archived objects. The\n archived objects that are being queried by the select request must be formatted as\n uncompressed comma-separated values (CSV) files. You can run queries and custom analytics\n on your archived data without having to restore your data to a hotter Amazon S3 tier. For an\n overview about select requests, see Querying Archived Objects in the Amazon S3 User Guide.

                      \n

                      When making a select request, do the following:

                      \n
                        \n
                      • \n

                        Define an output location for the select query's output. This must be an Amazon S3\n bucket in the same Amazon Web Services Region as the bucket that contains the archive object that is\n being queried. The Amazon Web Services account that initiates the job must have permissions to write\n to the S3 bucket. You can specify the storage class and encryption for the output\n objects stored in the bucket. For more information about output, see Querying Archived Objects\n in the Amazon S3 User Guide.

                        \n

                        For more information about the S3 structure in the request body, see\n the following:

                        \n \n
                      • \n
                      • \n

                        Define the SQL expression for the SELECT type of restoration for your\n query in the request body's SelectParameters structure. You can use\n expressions like the following examples.

                        \n
                          \n
                        • \n

                          The following expression returns all records from the specified\n object.

                          \n

                          \n SELECT * FROM Object\n

                          \n
                        • \n
                        • \n

                          Assuming that you are not using any headers for data stored in the object,\n you can specify columns with positional headers.

                          \n

                          \n SELECT s._1, s._2 FROM Object s WHERE s._3 > 100\n

                          \n
                        • \n
                        • \n

                          If you have headers and you set the fileHeaderInfo in the\n CSV structure in the request body to USE, you can\n specify headers in the query. (If you set the fileHeaderInfo field\n to IGNORE, the first row is skipped for the query.) You cannot mix\n ordinal positions with header column names.

                          \n

                          \n SELECT s.Id, s.FirstName, s.SSN FROM S3Object s\n

                          \n
                        • \n
                        \n
                      • \n
                      \n

                      For more information about using SQL with S3 Glacier Select restore, see SQL Reference for Amazon S3 Select and\n S3 Glacier Select in the Amazon S3 User Guide.

                      \n

                      When making a select request, you can also do the following:

                      \n
                        \n
                      • \n

                        To expedite your queries, specify the Expedited tier. For more\n information about tiers, see \"Restoring Archives,\" later in this topic.

                        \n
                      • \n
                      • \n

                        Specify details about the data serialization format of both the input object that\n is being queried and the serialization of the CSV-encoded query results.

                        \n
                      • \n
                      \n

                      The following are additional important facts about the select feature:

                      \n
                        \n
                      • \n

                        The output results are new Amazon S3 objects. Unlike archive retrievals, they are\n stored until explicitly deleted-manually or through a lifecycle policy.

                        \n
                      • \n
                      • \n

                        You can issue more than one select request on the same Amazon S3 object. Amazon S3 doesn't\n deduplicate requests, so avoid issuing duplicate requests.

                        \n
                      • \n
                      • \n

                        Amazon S3 accepts a select request even if the object has already been restored. A\n select request doesn’t return error response 409.

                        \n
                      • \n
                      \n

                      \n Restoring objects\n

                      \n

                      Objects that you archive to the S3 Glacier or\n S3 Glacier Deep Archive storage class, and S3 Intelligent-Tiering Archive or\n S3 Intelligent-Tiering Deep Archive tiers are not accessible in real time. For objects in\n Archive Access or Deep Archive Access tiers you must first initiate a restore request, and\n then wait until the object is moved into the Frequent Access tier. For objects in\n S3 Glacier or S3 Glacier Deep Archive storage classes you must\n first initiate a restore request, and then wait until a temporary copy of the object is\n available. To access an archived object, you must restore the object for the duration\n (number of days) that you specify.

                      \n

                      To restore a specific object version, you can provide a version ID. If you don't provide\n a version ID, Amazon S3 restores the current version.

                      \n

                      When restoring an archived object (or using a select request), you can specify one of\n the following data access tier options in the Tier element of the request\n body:

                      \n
                        \n
                      • \n

                        \n Expedited - Expedited retrievals allow you to quickly access your\n data stored in the S3 Glacier storage class or S3 Intelligent-Tiering Archive\n tier when occasional urgent requests for a subset of archives are required. For all\n but the largest archived objects (250 MB+), data accessed using Expedited retrievals\n is typically made available within 1–5 minutes. Provisioned capacity ensures that\n retrieval capacity for Expedited retrievals is available when you need it. Expedited\n retrievals and provisioned capacity are not available for objects stored in the\n S3 Glacier Deep Archive storage class or S3 Intelligent-Tiering Deep Archive tier.

                        \n
                      • \n
                      • \n

                        \n Standard - Standard retrievals allow you to access any of your\n archived objects within several hours. This is the default option for retrieval\n requests that do not specify the retrieval option. Standard retrievals typically\n finish within 3–5 hours for objects stored in the S3 Glacier storage\n class or S3 Intelligent-Tiering Archive tier. They typically finish within 12 hours for\n objects stored in the S3 Glacier Deep Archive storage class or\n S3 Intelligent-Tiering Deep Archive tier. Standard retrievals are free for objects stored in\n S3 Intelligent-Tiering.

                        \n
                      • \n
                      • \n

                        \n Bulk - Bulk retrievals are the lowest-cost retrieval option in\n S3 Glacier, enabling you to retrieve large amounts, even petabytes, of data\n inexpensively. Bulk retrievals typically finish within 5–12 hours for objects stored\n in the S3 Glacier storage class or S3 Intelligent-Tiering Archive tier. They\n typically finish within 48 hours for objects stored in the\n S3 Glacier Deep Archive storage class or S3 Intelligent-Tiering Deep Archive tier. Bulk\n retrievals are free for objects stored in S3 Intelligent-Tiering.

                        \n
                      • \n
                      \n

                      For more information about archive retrieval options and provisioned capacity for\n Expedited data access, see Restoring Archived Objects in the Amazon S3 User Guide.

                      \n

                      You can use Amazon S3 restore speed upgrade to change the restore speed to a faster speed\n while it is in progress. For more information, see \n Upgrading the speed of an in-progress restore in the\n Amazon S3 User Guide.

                      \n

                      To get the status of object restoration, you can send a HEAD request.\n Operations return the x-amz-restore header, which provides information about\n the restoration status, in the response. You can use Amazon S3 event notifications to notify you\n when a restore is initiated or completed. For more information, see Configuring Amazon S3 Event Notifications in\n the Amazon S3 User Guide.

                      \n

                      After restoring an archived object, you can update the restoration period by reissuing\n the request with a new period. Amazon S3 updates the restoration period relative to the current\n time and charges only for the request-there are no data transfer charges. You cannot\n update the restoration period when Amazon S3 is actively processing your current restore request\n for the object.

                      \n

                      If your bucket has a lifecycle configuration with a rule that includes an expiration\n action, the object expiration overrides the life span that you specify in a restore\n request. For example, if you restore an object copy for 10 days, but the object is\n scheduled to expire in 3 days, Amazon S3 deletes the object in 3 days. For more information\n about lifecycle configuration, see PutBucketLifecycleConfiguration and Object Lifecycle Management in\n Amazon S3 User Guide.

                      \n

                      \n Responses\n

                      \n

                      A successful action returns either the 200 OK or 202\n Accepted status code.

                      \n
                        \n
                      • \n

                        If the object is not previously restored, then Amazon S3 returns 202\n Accepted in the response.

                        \n
                      • \n
                      • \n

                        If the object is previously restored, Amazon S3 returns 200 OK in the\n response.

                        \n
                      • \n
                      \n

                      \n Special Errors\n

                      \n
                        \n
                      • \n
                          \n
                        • \n

                          \n Code: RestoreAlreadyInProgress\n

                          \n
                        • \n
                        • \n

                          \n Cause: Object restore is already in progress. (This error does not\n apply to SELECT type requests.)\n

                          \n
                        • \n
                        • \n

                          \n HTTP Status Code: 409 Conflict\n

                          \n
                        • \n
                        • \n

                          \n SOAP Fault Code Prefix: Client\n

                          \n
                        • \n
                        \n
                      • \n
                      • \n
                          \n
                        • \n

                          \n Code: GlacierExpeditedRetrievalNotAvailable\n

                          \n
                        • \n
                        • \n

                          \n Cause: expedited retrievals are currently not available. Try again\n later. (Returned if there is insufficient capacity to process the Expedited\n request. This error applies only to Expedited retrievals and not to\n S3 Standard or Bulk retrievals.)\n

                          \n
                        • \n
                        • \n

                          \n HTTP Status Code: 503\n

                          \n
                        • \n
                        • \n

                          \n SOAP Fault Code Prefix: N/A\n

                          \n
                        • \n
                        \n
                      • \n
                      \n \n

                      \n Related Resources\n

                      \n ", "smithy.api#http": { "method": "POST", "uri": "/{Bucket}/{Key+}?restore&x-id=RestoreObject", @@ -11666,7 +12630,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

                      The bucket name containing the object to restore.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

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

                      The bucket name containing the object to restore.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -11699,10 +12663,17 @@ "smithy.api#httpHeader": "x-amz-request-payer" } }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any\n additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

                      \n

                      If you provide an individual checksum, Amazon S3 ignores any provided\n ChecksumAlgorithm parameter.

                      ", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -11929,7 +12900,7 @@ "Start": { "target": "com.amazonaws.s3#Start", "traits": { - "smithy.api#documentation": "

                      Specifies the start of the byte range. This parameter is optional. Valid values:\n non-negative integers. The default value is 0. If only start is supplied, it means scan\n from that point to the end of the file.For example;\n 50 means scan\n from byte 50 until the end of the file.

                      " + "smithy.api#documentation": "

                      Specifies the start of the byte range. This parameter is optional. Valid values:\n non-negative integers. The default value is 0. If only start is supplied, it\n means scan from that point to the end of the file. For example,\n 50 means scan\n from byte 50 until the end of the file.

                      " } }, "End": { @@ -12033,21 +13004,21 @@ "SSECustomerAlgorithm": { "target": "com.amazonaws.s3#SSECustomerAlgorithm", "traits": { - "smithy.api#documentation": "

                      The SSE Algorithm used to encrypt the object. For more information, see Server-Side Encryption (Using Customer-Provided Encryption Keys.

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

                      The server-side encryption (SSE) algorithm used to encrypt the object. This parameter is needed only when the object was created \n using a checksum algorithm. For more information,\n see Protecting data using SSE-C keys in the\n Amazon S3 User Guide.

                      ", "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-algorithm" } }, "SSECustomerKey": { "target": "com.amazonaws.s3#SSECustomerKey", "traits": { - "smithy.api#documentation": "

                      The SSE Customer Key. For more information, see Server-Side Encryption\n (Using Customer-Provided Encryption Keys.

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

                      The server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. \n For more information, see\n Protecting data using SSE-C keys in the\n Amazon S3 User Guide.

                      ", "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key" } }, "SSECustomerKeyMD5": { "target": "com.amazonaws.s3#SSECustomerKeyMD5", "traits": { - "smithy.api#documentation": "

                      The SSE Customer Key MD5. For more information, see Server-Side Encryption\n (Using Customer-Provided Encryption Keys.

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

                      The MD5 server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum \n algorithm. For more information,\n see Protecting data using SSE-C keys in the\n Amazon S3 User Guide.

                      ", "smithy.api#httpHeader": "x-amz-server-side-encryption-customer-key-MD5" } }, @@ -12094,7 +13065,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -12716,6 +13687,9 @@ "target": "com.amazonaws.s3#UploadPartOutput" }, "traits": { + "aws.protocols#httpChecksum": { + "requestAlgorithmMember": "ChecksumAlgorithm" + }, "smithy.api#documentation": "

                      Uploads a part in a multipart upload.

                      \n \n

                      In this operation, you provide part data in your request. However, you have an option\n to specify your existing Amazon S3 object as a data source for the part you are uploading. To\n upload a part from an existing object, you use the UploadPartCopy operation.\n

                      \n
                      \n\n

                      You must initiate a multipart upload (see CreateMultipartUpload)\n before you can upload any part. In response to your initiate request, Amazon S3 returns an\n upload ID, a unique identifier, that you must include in your upload part request.

                      \n

                      Part numbers can be any number from 1 to 10,000, inclusive. A part number uniquely\n identifies a part and also defines its position within the object being created. If you\n upload a new part using the same part number that was used with a previous part, the\n previously uploaded part is overwritten. Each part must be at least 5 MB in size, except\n the last part. There is no size limit on the last part of your multipart upload.

                      \n

                      To ensure that data is not corrupted when traversing the network, specify the\n Content-MD5 header in the upload part request. Amazon S3 checks the part data\n against the provided MD5 value. If they do not match, Amazon S3 returns an error.

                      \n\n

                      If the upload request is signed with Signature Version 4, then Amazon Web Services S3 uses the\n x-amz-content-sha256 header as a checksum instead of\n Content-MD5. For more information see Authenticating Requests: Using the Authorization Header (Amazon Web Services Signature Version\n 4).

                      \n\n\n\n

                      \n Note: After you initiate multipart upload and upload\n one or more parts, you must either complete or abort multipart upload in order to stop\n getting charged for storage of the uploaded parts. Only after you either complete or abort\n multipart upload, Amazon S3 frees up the parts storage and stops charging you for the parts\n storage.

                      \n\n

                      For more information on multipart uploads, go to Multipart Upload Overview in the\n Amazon S3 User Guide .

                      \n

                      For information on the permissions required to use the multipart upload API, go to\n Multipart Upload and\n Permissions in the Amazon S3 User Guide.

                      \n\n

                      You can optionally request server-side encryption where Amazon S3 encrypts your data as it\n writes it to disks in its data centers and decrypts it for you when you access it. You have\n the option of providing your own encryption key, or you can use the Amazon Web Services managed encryption\n keys. If you choose to provide your own encryption key, the request headers you provide in\n the request must match the headers you used in the request to initiate the upload by using\n CreateMultipartUpload. For more information, go to Using Server-Side Encryption in\n the Amazon S3 User Guide.

                      \n\n

                      Server-side encryption is supported by the S3 Multipart Upload actions. Unless you are\n using a customer-provided encryption key, you don't need to specify the encryption\n parameters in each UploadPart request. Instead, you only need to specify the server-side\n encryption parameters in the initial Initiate Multipart request. For more information, see\n CreateMultipartUpload.

                      \n\n

                      If you requested server-side encryption using a customer-provided encryption key in your\n initiate multipart upload request, you must provide identical encryption information in\n each part upload using the following headers.

                      \n\n\n
                        \n
                      • \n

                        x-amz-server-side-encryption-customer-algorithm

                        \n
                      • \n
                      • \n

                        x-amz-server-side-encryption-customer-key

                        \n
                      • \n
                      • \n

                        x-amz-server-side-encryption-customer-key-MD5

                        \n
                      • \n
                      \n\n

                      \n Special Errors\n

                      \n
                        \n
                      • \n
                          \n
                        • \n

                          \n Code: NoSuchUpload\n

                          \n
                        • \n
                        • \n

                          \n Cause: The specified multipart upload does not exist. The upload\n ID might be invalid, or the multipart upload might have been aborted or\n completed.\n

                          \n
                        • \n
                        • \n

                          \n HTTP Status Code: 404 Not Found \n

                          \n
                        • \n
                        • \n

                          \n SOAP Fault Code Prefix: Client\n

                          \n
                        • \n
                        \n
                      • \n
                      \n\n \n\n\n\n\n

                      \n Related Resources\n

                      \n ", "smithy.api#http": { "method": "PUT", @@ -12733,7 +13707,7 @@ "target": "com.amazonaws.s3#UploadPartCopyOutput" }, "traits": { - "smithy.api#documentation": "

                      Uploads a part by copying data from an existing object as data source. You specify the\n data source by adding the request header x-amz-copy-source in your request and\n a byte range by adding the request header x-amz-copy-source-range in your\n request.

                      \n

                      The minimum allowable part size for a multipart upload is 5 MB. For more information\n about multipart upload limits, go to Quick\n Facts in the Amazon S3 User Guide.

                      \n \n

                      Instead of using an existing object as part data, you might use the UploadPart\n action and provide data in your request.

                      \n
                      \n\n

                      You must initiate a multipart upload before you can upload any part. In response to your\n initiate request. Amazon S3 returns a unique identifier, the upload ID, that you must include in\n your upload part request.

                      \n

                      For more information about using the UploadPartCopy operation, see the\n following:

                      \n\n
                        \n
                      • \n

                        For conceptual information about multipart uploads, see Uploading Objects Using Multipart\n Upload in the Amazon S3 User Guide.

                        \n
                      • \n
                      • \n

                        For information about permissions required to use the multipart upload API, see\n Multipart Upload and\n Permissions in the Amazon S3 User Guide.

                        \n
                      • \n
                      • \n

                        For information about copying objects using a single atomic action vs. the\n multipart upload, see Operations on\n Objects in the Amazon S3 User Guide.

                        \n
                      • \n
                      • \n

                        For information about using server-side encryption with customer-provided\n encryption keys with the UploadPartCopy operation, see CopyObject and UploadPart.

                        \n
                      • \n
                      \n

                      Note the following additional considerations about the request headers\n x-amz-copy-source-if-match, x-amz-copy-source-if-none-match,\n x-amz-copy-source-if-unmodified-since, and\n x-amz-copy-source-if-modified-since:

                      \n

                      \n
                        \n
                      • \n

                        \n Consideration 1 - If both of the\n x-amz-copy-source-if-match and\n x-amz-copy-source-if-unmodified-since headers are present in the\n request as follows:

                        \n

                        \n x-amz-copy-source-if-match condition evaluates to true,\n and;

                        \n

                        \n x-amz-copy-source-if-unmodified-since condition evaluates to\n false;

                        \n

                        Amazon S3 returns 200 OK and copies the data.\n

                        \n\n
                      • \n
                      • \n

                        \n Consideration 2 - If both of the\n x-amz-copy-source-if-none-match and\n x-amz-copy-source-if-modified-since headers are present in the\n request as follows:

                        \n

                        \n x-amz-copy-source-if-none-match condition evaluates to\n false, and;

                        \n

                        \n x-amz-copy-source-if-modified-since condition evaluates to\n true;

                        \n

                        Amazon S3 returns 412 Precondition Failed response code.\n

                        \n
                      • \n
                      \n

                      \n Versioning\n

                      \n

                      If your bucket has versioning enabled, you could have multiple versions of the same\n object. By default, x-amz-copy-source identifies the current version of the\n object to copy. If the current version is a delete marker and you don't specify a versionId\n in the x-amz-copy-source, Amazon S3 returns a 404 error, because the object does\n not exist. If you specify versionId in the x-amz-copy-source and the versionId\n is a delete marker, Amazon S3 returns an HTTP 400 error, because you are not allowed to specify\n a delete marker as a version for the x-amz-copy-source.

                      \n

                      You can optionally specify a specific version of the source object to copy by adding the\n versionId subresource as shown in the following example:

                      \n

                      \n x-amz-copy-source: /bucket/object?versionId=version id\n

                      \n\n

                      \n Special Errors\n

                      \n
                        \n
                      • \n
                          \n
                        • \n

                          \n Code: NoSuchUpload\n

                          \n
                        • \n
                        • \n

                          \n Cause: The specified multipart upload does not exist. The upload\n ID might be invalid, or the multipart upload might have been aborted or\n completed.\n

                          \n
                        • \n
                        • \n

                          \n HTTP Status Code: 404 Not Found\n

                          \n
                        • \n
                        \n
                      • \n
                      • \n
                          \n
                        • \n

                          \n Code: InvalidRequest\n

                          \n
                        • \n
                        • \n

                          \n Cause: The specified copy source is not supported as a byte-range\n copy source.\n

                          \n
                        • \n
                        • \n

                          \n HTTP Status Code: 400 Bad Request\n

                          \n
                        • \n
                        \n
                      • \n
                      \n\n \n\n\n\n\n

                      \n Related Resources\n

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

                      Uploads a part by copying data from an existing object as data source. You specify the\n data source by adding the request header x-amz-copy-source in your request and\n a byte range by adding the request header x-amz-copy-source-range in your\n request.

                      \n

                      The minimum allowable part size for a multipart upload is 5 MB. For more information\n about multipart upload limits, go to Quick\n Facts in the Amazon S3 User Guide.

                      \n \n

                      Instead of using an existing object as part data, you might use the UploadPart\n action and provide data in your request.

                      \n
                      \n\n

                      You must initiate a multipart upload before you can upload any part. In response to your\n initiate request. Amazon S3 returns a unique identifier, the upload ID, that you must include in\n your upload part request.

                      \n

                      For more information about using the UploadPartCopy operation, see the\n following:

                      \n\n
                        \n
                      • \n

                        For conceptual information about multipart uploads, see Uploading Objects Using Multipart\n Upload in the Amazon S3 User Guide.

                        \n
                      • \n
                      • \n

                        For information about permissions required to use the multipart upload API, see\n Multipart Upload and\n Permissions in the Amazon S3 User Guide.

                        \n
                      • \n
                      • \n

                        For information about copying objects using a single atomic action vs. a multipart\n upload, see Operations on Objects in\n the Amazon S3 User Guide.

                        \n
                      • \n
                      • \n

                        For information about using server-side encryption with customer-provided\n encryption keys with the UploadPartCopy operation, see CopyObject and UploadPart.

                        \n
                      • \n
                      \n

                      Note the following additional considerations about the request headers\n x-amz-copy-source-if-match, x-amz-copy-source-if-none-match,\n x-amz-copy-source-if-unmodified-since, and\n x-amz-copy-source-if-modified-since:

                      \n

                      \n
                        \n
                      • \n

                        \n Consideration 1 - If both of the\n x-amz-copy-source-if-match and\n x-amz-copy-source-if-unmodified-since headers are present in the\n request as follows:

                        \n

                        \n x-amz-copy-source-if-match condition evaluates to true,\n and;

                        \n

                        \n x-amz-copy-source-if-unmodified-since condition evaluates to\n false;

                        \n

                        Amazon S3 returns 200 OK and copies the data.\n

                        \n\n
                      • \n
                      • \n

                        \n Consideration 2 - If both of the\n x-amz-copy-source-if-none-match and\n x-amz-copy-source-if-modified-since headers are present in the\n request as follows:

                        \n

                        \n x-amz-copy-source-if-none-match condition evaluates to\n false, and;

                        \n

                        \n x-amz-copy-source-if-modified-since condition evaluates to\n true;

                        \n

                        Amazon S3 returns 412 Precondition Failed response code.\n

                        \n
                      • \n
                      \n

                      \n Versioning\n

                      \n

                      If your bucket has versioning enabled, you could have multiple versions of the same\n object. By default, x-amz-copy-source identifies the current version of the\n object to copy. If the current version is a delete marker and you don't specify a versionId\n in the x-amz-copy-source, Amazon S3 returns a 404 error, because the object does\n not exist. If you specify versionId in the x-amz-copy-source and the versionId\n is a delete marker, Amazon S3 returns an HTTP 400 error, because you are not allowed to specify\n a delete marker as a version for the x-amz-copy-source.

                      \n

                      You can optionally specify a specific version of the source object to copy by adding the\n versionId subresource as shown in the following example:

                      \n

                      \n x-amz-copy-source: /bucket/object?versionId=version id\n

                      \n\n

                      \n Special Errors\n

                      \n
                        \n
                      • \n
                          \n
                        • \n

                          \n Code: NoSuchUpload\n

                          \n
                        • \n
                        • \n

                          \n Cause: The specified multipart upload does not exist. The upload\n ID might be invalid, or the multipart upload might have been aborted or\n completed.\n

                          \n
                        • \n
                        • \n

                          \n HTTP Status Code: 404 Not Found\n

                          \n
                        • \n
                        \n
                      • \n
                      • \n
                          \n
                        • \n

                          \n Code: InvalidRequest\n

                          \n
                        • \n
                        • \n

                          \n Cause: The specified copy source is not supported as a byte-range\n copy source.\n

                          \n
                        • \n
                        • \n

                          \n HTTP Status Code: 400 Bad Request\n

                          \n
                        • \n
                        \n
                      • \n
                      \n\n \n\n\n\n\n

                      \n Related Resources\n

                      \n ", "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}/{Key+}?x-id=UploadPartCopy", @@ -12807,7 +13781,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

                      The bucket name.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

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

                      The bucket name.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -12815,7 +13789,7 @@ "CopySource": { "target": "com.amazonaws.s3#CopySource", "traits": { - "smithy.api#documentation": "

                      Specifies the source object for the copy operation. You specify the value in one of two\n formats, depending on whether you want to access the source object through an access point:

                      \n
                        \n
                      • \n

                        For objects not accessed through an access point, specify the name of the source\n bucket and key of the source object, separated by a slash (/). For example, to copy\n the object reports/january.pdf from the bucket\n awsexamplebucket, use\n awsexamplebucket/reports/january.pdf. The value must be URL\n encoded.

                        \n
                      • \n
                      • \n

                        For objects accessed through access points, specify the Amazon Resource Name (ARN) of the object as accessed through the access point, in the format arn:aws:s3:::accesspoint//object/. For example, to copy the object reports/january.pdf through access point my-access-point owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf. The value must be URL encoded.

                        \n \n

                        Amazon S3 supports copy operations using access points only when the source and destination buckets are in the same Amazon Web Services Region.

                        \n
                        \n

                        Alternatively, for objects accessed through Amazon S3 on Outposts, specify the ARN of the object as accessed in the format arn:aws:s3-outposts:::outpost//object/. For example, to copy the object reports/january.pdf through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf. The value must be URL encoded.

                        \n
                      • \n
                      \n

                      To copy a specific version of an object, append ?versionId=\n to the value (for example,\n awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893).\n If you don't specify a version ID, Amazon S3 copies the latest version of the source\n object.

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

                      Specifies the source object for the copy operation. You specify the value in one of two\n formats, depending on whether you want to access the source object through an access point:

                      \n
                        \n
                      • \n

                        For objects not accessed through an access point, specify the name of the source bucket\n and key of the source object, separated by a slash (/). For example, to copy the\n object reports/january.pdf from the bucket\n awsexamplebucket, use awsexamplebucket/reports/january.pdf.\n The value must be URL-encoded.

                        \n
                      • \n
                      • \n

                        For objects accessed through access points, specify the Amazon Resource Name (ARN) of the object as accessed through the access point, in the format arn:aws:s3:::accesspoint//object/. For example, to copy the object reports/january.pdf through access point my-access-point owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf. The value must be URL encoded.

                        \n \n

                        Amazon S3 supports copy operations using access points only when the source and destination buckets are in the same Amazon Web Services Region.

                        \n
                        \n

                        Alternatively, for objects accessed through Amazon S3 on Outposts, specify the ARN of the object as accessed in the format arn:aws:s3-outposts:::outpost//object/. For example, to copy the object reports/january.pdf through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf. The value must be URL-encoded.

                        \n
                      • \n
                      \n

                      To copy a specific version of an object, append ?versionId=\n to the value (for example,\n awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893).\n If you don't specify a version ID, Amazon S3 copies the latest version of the source\n object.

                      ", "smithy.api#httpHeader": "x-amz-copy-source", "smithy.api#required": {} } @@ -12930,14 +13904,14 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected destination bucket owner. If the destination bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected destination bucket owner. If the destination bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } }, "ExpectedSourceBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected source bucket owner. If the source bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected source bucket owner. If the source bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-source-expected-bucket-owner" } } @@ -12960,6 +13934,34 @@ "smithy.api#httpHeader": "ETag" } }, + "ChecksumCRC32": { + "target": "com.amazonaws.s3#ChecksumCRC32", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-checksum-crc32" + } + }, + "ChecksumCRC32C": { + "target": "com.amazonaws.s3#ChecksumCRC32C", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-checksum-crc32c" + } + }, + "ChecksumSHA1": { + "target": "com.amazonaws.s3#ChecksumSHA1", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-checksum-sha1" + } + }, + "ChecksumSHA256": { + "target": "com.amazonaws.s3#ChecksumSHA256", + "traits": { + "smithy.api#documentation": "

                      The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded\n with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated\n with multipart uploads, see \n Checking object integrity in the Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-checksum-sha256" + } + }, "SSECustomerAlgorithm": { "target": "com.amazonaws.s3#SSECustomerAlgorithm", "traits": { @@ -13009,7 +14011,7 @@ "Bucket": { "target": "com.amazonaws.s3#BucketName", "traits": { - "smithy.api#documentation": "

                      The name of the bucket to which the multipart upload was initiated.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action using S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon S3 User Guide.

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

                      The name of the bucket to which the multipart upload was initiated.

                      \n

                      When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

                      \n

                      When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form \n AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

                      ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -13028,6 +14030,41 @@ "smithy.api#httpHeader": "Content-MD5" } }, + "ChecksumAlgorithm": { + "target": "com.amazonaws.s3#ChecksumAlgorithm", + "traits": { + "smithy.api#documentation": "

                      Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any\n additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or\n x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more\n information, see Checking object integrity in\n the Amazon S3 User Guide.

                      \n

                      If you provide an individual checksum, Amazon S3 ignores any provided\n ChecksumAlgorithm parameter.

                      \n

                      This checksum algorithm must be the same for all parts and it match the checksum\n value supplied in the CreateMultipartUpload request.

                      ", + "smithy.api#httpHeader": "x-amz-sdk-checksum-algorithm" + } + }, + "ChecksumCRC32": { + "target": "com.amazonaws.s3#ChecksumCRC32", + "traits": { + "smithy.api#documentation": "

                      This header can be used as a data integrity check to verify that the data received is the same data that was originally sent.\n This header specifies the base64-encoded, 32-bit CRC32 checksum of the object. For more information, see\n Checking object integrity in the\n Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-checksum-crc32" + } + }, + "ChecksumCRC32C": { + "target": "com.amazonaws.s3#ChecksumCRC32C", + "traits": { + "smithy.api#documentation": "

                      This header can be used as a data integrity check to verify that the data received is the same data that was originally sent.\n This header specifies the base64-encoded, 32-bit CRC32C checksum of the object. For more information, see\n Checking object integrity in the\n Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-checksum-crc32c" + } + }, + "ChecksumSHA1": { + "target": "com.amazonaws.s3#ChecksumSHA1", + "traits": { + "smithy.api#documentation": "

                      This header can be used as a data integrity check to verify that the data received is the same data that was originally sent.\n This header specifies the base64-encoded, 160-bit SHA-1 digest of the object. For more information, see\n Checking object integrity in the\n Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-checksum-sha1" + } + }, + "ChecksumSHA256": { + "target": "com.amazonaws.s3#ChecksumSHA256", + "traits": { + "smithy.api#documentation": "

                      This header can be used as a data integrity check to verify that the data received is the same data that was originally sent.\n This header specifies the base64-encoded, 256-bit SHA-256 digest of the object. For more information, see\n Checking object integrity in the\n Amazon S3 User Guide.

                      ", + "smithy.api#httpHeader": "x-amz-checksum-sha256" + } + }, "Key": { "target": "com.amazonaws.s3#ObjectKey", "traits": { @@ -13082,7 +14119,7 @@ "ExpectedBucketOwner": { "target": "com.amazonaws.s3#AccountId", "traits": { - "smithy.api#documentation": "

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

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

                      The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

                      ", "smithy.api#httpHeader": "x-amz-expected-bucket-owner" } } @@ -13211,14 +14248,14 @@ "StatusCode": { "target": "com.amazonaws.s3#GetObjectResponseStatusCode", "traits": { - "smithy.api#documentation": "

                      The integer status code for an HTTP response of a corresponding GetObject\n request.

                      \n

                      \n Status Codes\n

                      \n
                        \n
                      • \n

                        \n 200 - OK\n

                        \n
                      • \n
                      • \n

                        \n 206 - Partial Content\n

                        \n
                      • \n
                      • \n

                        \n 304 - Not Modified\n

                        \n
                      • \n
                      • \n

                        \n 400 - Bad Request\n

                        \n
                      • \n
                      • \n

                        \n 401 - Unauthorized\n

                        \n
                      • \n
                      • \n

                        \n 403 - Forbidden\n

                        \n
                      • \n
                      • \n

                        \n 404 - Not Found\n

                        \n
                      • \n
                      • \n

                        \n 405 - Method Not Allowed\n

                        \n
                      • \n
                      • \n

                        \n 409 - Conflict\n

                        \n
                      • \n
                      • \n

                        \n 411 - Length Required\n

                        \n
                      • \n
                      • \n

                        \n 412 - Precondition Failed\n

                        \n
                      • \n
                      • \n

                        \n 416 - Range Not Satisfiable\n

                        \n
                      • \n
                      • \n

                        \n 500 - Internal Server Error\n

                        \n
                      • \n
                      • \n

                        \n 503 - Service Unavailable\n

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

                      The integer status code for an HTTP response of a corresponding GetObject\n request.

                      \n

                      \n Status Codes\n

                      \n
                        \n
                      • \n

                        \n 200 - OK\n

                        \n
                      • \n
                      • \n

                        \n 206 - Partial Content\n

                        \n
                      • \n
                      • \n

                        \n 304 - Not Modified\n

                        \n
                      • \n
                      • \n

                        \n 400 - Bad Request\n

                        \n
                      • \n
                      • \n

                        \n 401 - Unauthorized\n

                        \n
                      • \n
                      • \n

                        \n 403 - Forbidden\n

                        \n
                      • \n
                      • \n

                        \n 404 - Not Found\n

                        \n
                      • \n
                      • \n

                        \n 405 - Method Not Allowed\n

                        \n
                      • \n
                      • \n

                        \n 409 - Conflict\n

                        \n
                      • \n
                      • \n

                        \n 411 - Length Required\n

                        \n
                      • \n
                      • \n

                        \n 412 - Precondition Failed\n

                        \n
                      • \n
                      • \n

                        \n 416 - Range Not Satisfiable\n

                        \n
                      • \n
                      • \n

                        \n 500 - Internal Server Error\n

                        \n
                      • \n
                      • \n

                        \n 503 - Service Unavailable\n

                        \n
                      • \n
                      ", "smithy.api#httpHeader": "x-amz-fwd-status" } }, "ErrorCode": { "target": "com.amazonaws.s3#ErrorCode", "traits": { - "smithy.api#documentation": "

                      A string that uniquely identifies an error condition. Returned in the tag\n of the error XML response for a corresponding GetObject call. Cannot be used\n with a successful StatusCode header or when the transformed object is provided\n in the body. All error codes from S3 are sentence-cased. Regex value is \"^[A-Z][a-zA-Z]+$\".

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

                      A string that uniquely identifies an error condition. Returned in the tag\n of the error XML response for a corresponding GetObject call. Cannot be used\n with a successful StatusCode header or when the transformed object is provided\n in the body. All error codes from S3 are sentence-cased. The regular expression (regex)\n value is \"^[A-Z][a-zA-Z]+$\".

                      ", "smithy.api#httpHeader": "x-amz-fwd-error-code" } }, @@ -13285,6 +14322,34 @@ "smithy.api#httpHeader": "x-amz-fwd-header-Content-Type" } }, + "ChecksumCRC32": { + "target": "com.amazonaws.s3#ChecksumCRC32", + "traits": { + "smithy.api#documentation": "

                      This header can be used as a data integrity check to verify that the data received is the\n same data that was originally sent. This specifies the base64-encoded, 32-bit CRC32 checksum\n of the object returned by the Object Lambda function. This may not match the checksum for the\n object stored in Amazon S3. Amazon S3 will perform validation of the checksum values only when the original\n GetObject request required checksum validation. For more information about checksums, see\n Checking\n object integrity in the Amazon S3 User Guide.

                      \n

                      Only one checksum header can be specified at a time. If you supply multiple\n checksum headers, this request will fail.

                      \n

                      ", + "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-checksum-crc32" + } + }, + "ChecksumCRC32C": { + "target": "com.amazonaws.s3#ChecksumCRC32C", + "traits": { + "smithy.api#documentation": "

                      This header can be used as a data integrity check to verify that the data received is the\n same data that was originally sent. This specifies the base64-encoded, 32-bit CRC32C checksum\n of the object returned by the Object Lambda function. This may not match the checksum for the\n object stored in Amazon S3. Amazon S3 will perform validation of the checksum values only when the original\n GetObject request required checksum validation. For more information about checksums, see\n Checking\n object integrity in the Amazon S3 User Guide.

                      \n

                      Only one checksum header can be specified at a time. If you supply multiple\n checksum headers, this request will fail.

                      ", + "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-checksum-crc32c" + } + }, + "ChecksumSHA1": { + "target": "com.amazonaws.s3#ChecksumSHA1", + "traits": { + "smithy.api#documentation": "

                      This header can be used as a data integrity check to verify that the data received is the\n same data that was originally sent. This specifies the base64-encoded, 160-bit SHA-1 digest\n of the object returned by the Object Lambda function. This may not match the checksum for the\n object stored in Amazon S3. Amazon S3 will perform validation of the checksum values only when the original\n GetObject request required checksum validation. For more information about checksums, see\n Checking\n object integrity in the Amazon S3 User Guide.

                      \n

                      Only one checksum header can be specified at a time. If you supply multiple\n checksum headers, this request will fail.

                      ", + "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-checksum-sha1" + } + }, + "ChecksumSHA256": { + "target": "com.amazonaws.s3#ChecksumSHA256", + "traits": { + "smithy.api#documentation": "

                      This header can be used as a data integrity check to verify that the data received is the\n same data that was originally sent. This specifies the base64-encoded, 256-bit SHA-256 digest\n of the object returned by the Object Lambda function. This may not match the checksum for the\n object stored in Amazon S3. Amazon S3 will perform validation of the checksum values only when the original\n GetObject request required checksum validation. For more information about checksums, see\n Checking\n object integrity in the Amazon S3 User Guide.

                      \n

                      Only one checksum header can be specified at a time. If you supply multiple\n checksum headers, this request will fail.

                      ", + "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-checksum-sha256" + } + }, "DeleteMarker": { "target": "com.amazonaws.s3#DeleteMarker", "traits": { @@ -13309,7 +14374,7 @@ "Expiration": { "target": "com.amazonaws.s3#Expiration", "traits": { - "smithy.api#documentation": "

                      If object stored in Amazon S3 expiration is configured (see PUT Bucket lifecycle) it includes expiry-date and rule-id key-value pairs providing object expiration information. The value of the rule-id is URL encoded.

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

                      If the object expiration is configured (see PUT Bucket lifecycle), the response\n includes this header. It includes the expiry-date and rule-id\n key-value pairs that provide the object expiration information. The value of the\n rule-id is URL-encoded.

                      ", "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-expiration" } }, @@ -13413,7 +14478,7 @@ "StorageClass": { "target": "com.amazonaws.s3#StorageClass", "traits": { - "smithy.api#documentation": "

                      The class of storage used to store object in Amazon S3.

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

                      Provides storage class information of the object. Amazon S3 returns this header for all\n objects except for S3 Standard storage class objects.

                      \n \n

                      For more information, see Storage\n Classes.

                      ", "smithy.api#httpHeader": "x-amz-fwd-header-x-amz-storage-class" } }, diff --git a/codegen/sdk-codegen/aws-models/transfer.json b/codegen/sdk-codegen/aws-models/transfer.json index 131f95cca58e..08295710f6a7 100644 --- a/codegen/sdk-codegen/aws-models/transfer.json +++ b/codegen/sdk-codegen/aws-models/transfer.json @@ -2187,6 +2187,7 @@ "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", + "items": "Accesses", "pageSize": "MaxResults" } } @@ -2270,6 +2271,7 @@ "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", + "items": "Executions", "pageSize": "MaxResults" } } @@ -2350,6 +2352,7 @@ "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", + "items": "SecurityPolicyNames", "pageSize": "MaxResults" } } @@ -2416,6 +2419,7 @@ "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", + "items": "Servers", "pageSize": "MaxResults" } } @@ -2482,6 +2486,7 @@ "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", + "items": "Tags", "pageSize": "MaxResults" } } @@ -2563,6 +2568,7 @@ "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", + "items": "Users", "pageSize": "MaxResults" } } @@ -2643,6 +2649,7 @@ "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", + "items": "Workflows", "pageSize": "MaxResults" } }