Skip to content

Commit

Permalink
feat(client-ec2): Adds support for Time-based Copy for EBS Snapshots …
Browse files Browse the repository at this point in the history
…and Cross Region PrivateLink. Time-based Copy ensures that EBS Snapshots are copied within and across AWS Regions in a specified timeframe. Cross Region PrivateLink enables customers to connect to VPC endpoint services hosted in other AWS Regions.
  • Loading branch information
awstools committed Nov 26, 2024
1 parent 9f83f11 commit a370f24
Show file tree
Hide file tree
Showing 28 changed files with 947 additions and 406 deletions.
1 change: 1 addition & 0 deletions clients/client-ec2/src/commands/CopySnapshotCommand.ts
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ export interface CopySnapshotCommandOutput extends CopySnapshotResult, __Metadat
* ],
* },
* ],
* CompletionDurationMinutes: Number("int"),
* DryRun: true || false,
* };
* const command = new CopySnapshotCommand(input);
Expand Down
3 changes: 3 additions & 0 deletions clients/client-ec2/src/commands/CreateSnapshotCommand.ts
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,9 @@ export interface CreateSnapshotCommandOutput extends Snapshot, __MetadataBearer
* // StorageTier: "archive" || "standard",
* // RestoreExpiryTime: new Date("TIMESTAMP"),
* // SseType: "sse-ebs" || "sse-kms" || "none",
* // TransferType: "time-based" || "standard",
* // CompletionDurationMinutes: Number("int"),
* // CompletionTime: new Date("TIMESTAMP"),
* // SnapshotId: "STRING_VALUE",
* // VolumeId: "STRING_VALUE",
* // State: "pending" || "completed" || "error" || "recoverable" || "recovering",
Expand Down
2 changes: 2 additions & 0 deletions clients/client-ec2/src/commands/CreateVpcEndpointCommand.ts
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ export interface CreateVpcEndpointCommandOutput extends CreateVpcEndpointResult,
* Ipv6: "STRING_VALUE",
* },
* ],
* ServiceRegion: "STRING_VALUE",
* };
* const command = new CreateVpcEndpointCommand(input);
* const response = await client.send(command);
Expand Down Expand Up @@ -129,6 +130,7 @@ export interface CreateVpcEndpointCommandOutput extends CreateVpcEndpointResult,
* // Message: "STRING_VALUE",
* // Code: "STRING_VALUE",
* // },
* // ServiceRegion: "STRING_VALUE",
* // },
* // ClientToken: "STRING_VALUE",
* // };
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ export interface CreateVpcEndpointConnectionNotificationCommandOutput
* // "STRING_VALUE",
* // ],
* // ConnectionNotificationState: "Enabled" || "Disabled",
* // ServiceRegion: "STRING_VALUE",
* // },
* // ClientToken: "STRING_VALUE",
* // };
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,9 @@ export interface CreateVpcEndpointServiceConfigurationCommandOutput
* SupportedIpAddressTypes: [
* "STRING_VALUE",
* ],
* SupportedRegions: [
* "STRING_VALUE",
* ],
* ClientToken: "STRING_VALUE",
* TagSpecifications: [ // TagSpecificationList
* { // TagSpecification
Expand Down Expand Up @@ -129,6 +132,13 @@ export interface CreateVpcEndpointServiceConfigurationCommandOutput
* // Value: "STRING_VALUE",
* // },
* // ],
* // SupportedRegions: [ // SupportedRegionSet
* // { // SupportedRegionDetail
* // Region: "STRING_VALUE",
* // ServiceState: "STRING_VALUE",
* // },
* // ],
* // RemoteAccessEnabled: true || false,
* // },
* // ClientToken: "STRING_VALUE",
* // };
Expand Down
3 changes: 2 additions & 1 deletion clients/client-ec2/src/commands/DeleteFlowLogsCommand.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types";

import { EC2ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EC2Client";
import { commonParams } from "../endpoint/EndpointParameters";
import { DeleteFlowLogsRequest, DeleteFlowLogsResult } from "../models/models_2";
import { DeleteFlowLogsRequest } from "../models/models_2";
import { DeleteFlowLogsResult } from "../models/models_3";
import { de_DeleteFlowLogsCommand, se_DeleteFlowLogsCommand } from "../protocols/Aws_ec2";

/**
Expand Down
3 changes: 1 addition & 2 deletions clients/client-ec2/src/commands/DeleteFpgaImageCommand.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types";

import { EC2ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EC2Client";
import { commonParams } from "../endpoint/EndpointParameters";
import { DeleteFpgaImageRequest } from "../models/models_2";
import { DeleteFpgaImageResult } from "../models/models_3";
import { DeleteFpgaImageRequest, DeleteFpgaImageResult } from "../models/models_3";
import { de_DeleteFpgaImageCommand, se_DeleteFpgaImageCommand } from "../protocols/Aws_ec2";

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types";

import { EC2ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EC2Client";
import { commonParams } from "../endpoint/EndpointParameters";
import { DescribeScheduledInstanceAvailabilityRequest } from "../models/models_4";
import { DescribeScheduledInstanceAvailabilityResult } from "../models/models_5";
import {
DescribeScheduledInstanceAvailabilityRequest,
DescribeScheduledInstanceAvailabilityResult,
} from "../models/models_5";
import {
de_DescribeScheduledInstanceAvailabilityCommand,
se_DescribeScheduledInstanceAvailabilityCommand,
Expand Down
3 changes: 3 additions & 0 deletions clients/client-ec2/src/commands/DescribeSnapshotsCommand.ts
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,9 @@ export interface DescribeSnapshotsCommandOutput extends DescribeSnapshotsResult,
* // StorageTier: "archive" || "standard",
* // RestoreExpiryTime: new Date("TIMESTAMP"),
* // SseType: "sse-ebs" || "sse-kms" || "none",
* // TransferType: "time-based" || "standard",
* // CompletionDurationMinutes: Number("int"),
* // CompletionTime: new Date("TIMESTAMP"),
* // SnapshotId: "STRING_VALUE",
* // VolumeId: "STRING_VALUE",
* // State: "pending" || "completed" || "error" || "recoverable" || "recovering",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ export interface DescribeVpcEndpointConnectionNotificationsCommandOutput
* // "STRING_VALUE",
* // ],
* // ConnectionNotificationState: "Enabled" || "Disabled",
* // ServiceRegion: "STRING_VALUE",
* // },
* // ],
* // NextToken: "STRING_VALUE",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ export interface DescribeVpcEndpointConnectionsCommandOutput
* // Value: "STRING_VALUE",
* // },
* // ],
* // VpcEndpointRegion: "STRING_VALUE",
* // },
* // ],
* // NextToken: "STRING_VALUE",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,13 @@ export interface DescribeVpcEndpointServiceConfigurationsCommandOutput
* // Value: "STRING_VALUE",
* // },
* // ],
* // SupportedRegions: [ // SupportedRegionSet
* // { // SupportedRegionDetail
* // Region: "STRING_VALUE",
* // ServiceState: "STRING_VALUE",
* // },
* // ],
* // RemoteAccessEnabled: true || false,
* // },
* // ],
* // NextToken: "STRING_VALUE",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,9 @@ export interface DescribeVpcEndpointServicesCommandOutput extends DescribeVpcEnd
* ],
* MaxResults: Number("int"),
* NextToken: "STRING_VALUE",
* ServiceRegions: [
* "STRING_VALUE",
* ],
* };
* const command = new DescribeVpcEndpointServicesCommand(input);
* const response = await client.send(command);
Expand All @@ -73,6 +76,7 @@ export interface DescribeVpcEndpointServicesCommandOutput extends DescribeVpcEnd
* // ServiceType: "Interface" || "Gateway" || "GatewayLoadBalancer",
* // },
* // ],
* // ServiceRegion: "STRING_VALUE",
* // AvailabilityZones: [
* // "STRING_VALUE",
* // ],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ export interface DescribeVpcEndpointsCommandOutput extends DescribeVpcEndpointsR
* // Message: "STRING_VALUE",
* // Code: "STRING_VALUE",
* // },
* // ServiceRegion: "STRING_VALUE",
* // },
* // ],
* // NextToken: "STRING_VALUE",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { commonParams } from "../endpoint/EndpointParameters";
import {
EnableTransitGatewayRouteTablePropagationRequest,
EnableTransitGatewayRouteTablePropagationResult,
} from "../models/models_5";
} from "../models/models_6";
import {
de_EnableTransitGatewayRouteTablePropagationCommand,
se_EnableTransitGatewayRouteTablePropagationCommand,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types";

import { EC2ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EC2Client";
import { commonParams } from "../endpoint/EndpointParameters";
import { ModifySpotFleetRequestRequest, ModifySpotFleetRequestResponse } from "../models/models_6";
import { ModifySpotFleetRequestRequest } from "../models/models_6";
import { ModifySpotFleetRequestResponse } from "../models/models_7";
import { de_ModifySpotFleetRequestCommand, se_ModifySpotFleetRequestCommand } from "../protocols/Aws_ec2";

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types";

import { EC2ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EC2Client";
import { commonParams } from "../endpoint/EndpointParameters";
import { ModifySubnetAttributeRequest } from "../models/models_6";
import { ModifySubnetAttributeRequest } from "../models/models_7";
import { de_ModifySubnetAttributeCommand, se_ModifySubnetAttributeCommand } from "../protocols/Aws_ec2";

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,7 @@ export interface ModifyVpcEndpointServiceConfigurationCommandOutput
__MetadataBearer {}

/**
* <p>Modifies the attributes of your VPC endpoint service configuration. You can change the
* Network Load Balancers or Gateway Load Balancers for your service, and you can specify whether acceptance is
* required for requests to connect to your endpoint service through an interface VPC
* endpoint.</p>
* <p>Modifies the attributes of the specified VPC endpoint service configuration.</p>
* <p>If you set or modify the private DNS name, you must prove that you own the private DNS
* domain name.</p>
* @example
Expand Down Expand Up @@ -71,6 +68,8 @@ export interface ModifyVpcEndpointServiceConfigurationCommandOutput
* "STRING_VALUE",
* ],
* RemoveSupportedIpAddressTypes: "<ValueStringList>",
* AddSupportedRegions: "<ValueStringList>",
* RemoveSupportedRegions: "<ValueStringList>",
* };
* const command = new ModifyVpcEndpointServiceConfigurationCommand(input);
* const response = await client.send(command);
Expand Down
11 changes: 11 additions & 0 deletions clients/client-ec2/src/models/models_0.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8337,6 +8337,17 @@ export interface CopySnapshotRequest {
*/
TagSpecifications?: TagSpecification[] | undefined;

/**
* <p>Specify a completion duration, in 15 minute increments, to initiate a time-based snapshot
* copy. Time-based snapshot copy operations complete within the specified duration. For more
* information, see <a href="https://docs.aws.amazon.com/ebs/latest/userguide/time-based-copies.html">
* Time-based copies</a>.</p>
* <p>If you do not specify a value, the snapshot copy operation is completed on a
* best-effort basis.</p>
* @public
*/
CompletionDurationMinutes?: number | undefined;

/**
* <p>Checks whether you have the required permissions for the action, without actually making the request,
* and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>.
Expand Down
18 changes: 15 additions & 3 deletions clients/client-ec2/src/models/models_1.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3672,6 +3672,9 @@ export interface InstanceRequirementsRequest {
* <li>
* <p>For instance types with Amazon Web Services CPUs, specify <code>amazon-web-services</code>.</p>
* </li>
* <li>
* <p>For instance types with Apple CPUs, specify <code>apple</code>.</p>
* </li>
* </ul>
* <note>
* <p>Don't confuse the CPU manufacturer with the CPU architecture. Instances will
Expand Down Expand Up @@ -4963,9 +4966,9 @@ export interface PerformanceFactorReference {
* <p>Ensure that you specify the correct value for the instance family. The instance
* family is everything before the period (<code>.</code>) in the instance type name. For
* example, in the instance type <code>c6i.large</code>, the instance family is
* <code>c6i</code>, not <code>c6</code>. For more information, see <a href="https://docs.aws.amazon.com/ec2/latest/instancetypes/instance-type-names.html">Amazon EC2
* <code>c6i</code>, not <code>c6</code>. For more information, see <a href="https://docs.aws.amazon.com/ec2/latest/instancetypes/instance-type-names.html">Amazon EC2
* instance type naming conventions</a> in <i>Amazon EC2 Instance
* Types</i>.</p>
* Types</i>.</p>
* </note>
* <p>The following instance families are <i>not supported</i> for performance
* protection:</p>
Expand Down Expand Up @@ -5249,6 +5252,9 @@ export interface InstanceRequirements {
* <li>
* <p>For instance types with Amazon Web Services CPUs, specify <code>amazon-web-services</code>.</p>
* </li>
* <li>
* <p>For instance types with Apple CPUs, specify <code>apple</code>.</p>
* </li>
* </ul>
* <note>
* <p>Don't confuse the CPU manufacturer with the CPU architecture. Instances will
Expand Down Expand Up @@ -8715,9 +8721,15 @@ export interface LaunchTemplateCapacityReservationSpecificationRequest {
* <ul>
* <li>
* <p>
* <code>capacity-reservations-only</code> - The instance will only run in a
* Capacity Reservation or Capacity Reservation group. If capacity isn't available,
* the instance will fail to launch.</p>
* </li>
* <li>
* <p>
* <code>open</code> - The instance can run in any <code>open</code> Capacity
* Reservation that has matching attributes (instance type, platform, Availability
* Zone).</p>
* Zone, tenancy).</p>
* </li>
* <li>
* <p>
Expand Down
Loading

0 comments on commit a370f24

Please sign in to comment.