Skip to content

Commit a8ba37c

Browse files
author
awstools
committed
feat(client-lightsail): Amazon Lightsail now supports the ability to configure a Lightsail Container Service to pull images from Amazon ECR private repositories in your account.
1 parent 58efcc5 commit a8ba37c

File tree

6 files changed

+368
-96
lines changed

6 files changed

+368
-96
lines changed

clients/client-lightsail/src/commands/GetExportSnapshotRecordsCommand.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import {
1313
} from "@aws-sdk/types";
1414

1515
import { LightsailClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../LightsailClient";
16-
import { GetExportSnapshotRecordsRequest, GetExportSnapshotRecordsResult } from "../models/models_0";
16+
import { GetExportSnapshotRecordsRequest, GetExportSnapshotRecordsResult } from "../models/models_1";
1717
import {
1818
deserializeAws_json1_1GetExportSnapshotRecordsCommand,
1919
serializeAws_json1_1GetExportSnapshotRecordsCommand,

clients/client-lightsail/src/commands/GetInstanceCommand.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@ import {
1313
} from "@aws-sdk/types";
1414

1515
import { LightsailClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../LightsailClient";
16-
import { GetInstanceRequest } from "../models/models_0";
17-
import { GetInstanceResult } from "../models/models_1";
16+
import { GetInstanceRequest, GetInstanceResult } from "../models/models_1";
1817
import {
1918
deserializeAws_json1_1GetInstanceCommand,
2019
serializeAws_json1_1GetInstanceCommand,

clients/client-lightsail/src/models/models_0.ts

Lines changed: 124 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -3467,6 +3467,62 @@ export enum ContainerServicePowerName {
34673467
xlarge = "xlarge",
34683468
}
34693469

3470+
/**
3471+
* <p>Describes the activation status of the role that you can use to grant an Amazon Lightsail container service access to Amazon Elastic Container Registry (Amazon ECR)
3472+
* private repositories.</p>
3473+
*
3474+
* <p>When activated, Lightsail creates an Identity and Access Management (IAM) role
3475+
* for the specified Lightsail container service. You can use the ARN of the role to create a
3476+
* trust relationship between your Lightsail container service and an Amazon ECR private repository in your Amazon Web Services account. This allows your container
3477+
* service to pull images from Amazon ECR private repositories. For more information, see
3478+
* <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-container-service-ecr-private-repo-access">Configuring access to an Amazon ECR private repository for an Amazon Lightsail container service</a> in the <i>Amazon Lightsail Developer Guide</i>.</p>
3479+
*/
3480+
export interface ContainerServiceECRImagePullerRole {
3481+
/**
3482+
* <p>A Boolean value that indicates whether the role is activated.</p>
3483+
*/
3484+
isActive?: boolean;
3485+
3486+
/**
3487+
* <p>The Amazon Resource Name (ARN) of the role, if it is activated.</p>
3488+
*/
3489+
principalArn?: string;
3490+
}
3491+
3492+
export namespace ContainerServiceECRImagePullerRole {
3493+
/**
3494+
* @internal
3495+
*/
3496+
export const filterSensitiveLog = (obj: ContainerServiceECRImagePullerRole): any => ({
3497+
...obj,
3498+
});
3499+
}
3500+
3501+
/**
3502+
* <p>Describes the configuration for an Amazon Lightsail container service to
3503+
* access private container image repositories, such as Amazon Elastic Container Registry (Amazon ECR) private repositories.</p>
3504+
*
3505+
* <p>For more information, see <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-container-service-ecr-private-repo-access">Configuring access to an Amazon ECR private repository for an Amazon Lightsail container service</a> in the <i>Amazon Lightsail Developer Guide</i>.</p>
3506+
*/
3507+
export interface PrivateRegistryAccess {
3508+
/**
3509+
* <p>An object that describes the activation status of the role that you can use to grant a
3510+
* Lightsail container service access to Amazon ECR private
3511+
* repositories. If the role is activated, the Amazon Resource Name (ARN) of the role is also
3512+
* listed.</p>
3513+
*/
3514+
ecrImagePullerRole?: ContainerServiceECRImagePullerRole;
3515+
}
3516+
3517+
export namespace PrivateRegistryAccess {
3518+
/**
3519+
* @internal
3520+
*/
3521+
export const filterSensitiveLog = (obj: PrivateRegistryAccess): any => ({
3522+
...obj,
3523+
});
3524+
}
3525+
34703526
export enum ContainerServiceState {
34713527
DELETING = "DELETING",
34723528
DEPLOYING = "DEPLOYING",
@@ -3747,6 +3803,15 @@ export interface ContainerService {
37473803
* a 404 response.</p>
37483804
*/
37493805
url?: string;
3806+
3807+
/**
3808+
* <p>An object that describes the configuration for the container service to access private
3809+
* container image repositories, such as Amazon Elastic Container Registry (Amazon ECR) private
3810+
* repositories.</p>
3811+
*
3812+
* <p>For more information, see <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-container-service-ecr-private-repo-access">Configuring access to an Amazon ECR private repository for an Amazon Lightsail container service</a> in the <i>Amazon Lightsail Developer Guide</i>.</p>
3813+
*/
3814+
privateRegistryAccess?: PrivateRegistryAccess;
37503815
}
37513816

37523817
export namespace ContainerService {
@@ -3816,6 +3881,32 @@ export namespace ContainerServiceDeploymentRequest {
38163881
});
38173882
}
38183883

3884+
/**
3885+
* <p>Describes a request to activate or deactivate the role that you can use to grant an
3886+
* Amazon Lightsail container service access to Amazon Elastic Container Registry (Amazon ECR) private repositories.</p>
3887+
*
3888+
* <p>When activated, Lightsail creates an Identity and Access Management (IAM) role
3889+
* for the specified Lightsail container service. You can use the ARN of the role to create a
3890+
* trust relationship between your Lightsail container service and an Amazon ECR private repository in your Amazon Web Services account. This allows your container
3891+
* service to pull images from Amazon ECR private repositories. For more information, see
3892+
* <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-container-service-ecr-private-repo-access">Configuring access to an Amazon ECR private repository for an Amazon Lightsail container service</a> in the <i>Amazon Lightsail Developer Guide</i>.</p>
3893+
*/
3894+
export interface ContainerServiceECRImagePullerRoleRequest {
3895+
/**
3896+
* <p>A Boolean value that indicates whether to activate the role.</p>
3897+
*/
3898+
isActive?: boolean;
3899+
}
3900+
3901+
export namespace ContainerServiceECRImagePullerRoleRequest {
3902+
/**
3903+
* @internal
3904+
*/
3905+
export const filterSensitiveLog = (obj: ContainerServiceECRImagePullerRoleRequest): any => ({
3906+
...obj,
3907+
});
3908+
}
3909+
38193910
/**
38203911
* <p>Describes the log events of a container of an Amazon Lightsail container service.</p>
38213912
*/
@@ -4422,6 +4513,30 @@ export namespace CreateContactMethodResult {
44224513
});
44234514
}
44244515

4516+
/**
4517+
* <p>Describes a request to configure an Amazon Lightsail container service to
4518+
* access private container image repositories, such as Amazon Elastic Container Registry (Amazon ECR) private repositories.</p>
4519+
*
4520+
* <p>For more information, see <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-container-service-ecr-private-repo-access">Configuring access to an Amazon ECR private repository for an Amazon Lightsail container service</a> in the <i>Amazon Lightsail Developer Guide</i>.</p>
4521+
*/
4522+
export interface PrivateRegistryAccessRequest {
4523+
/**
4524+
* <p>An object to describe a request to activate or deactivate the role that you can use to
4525+
* grant an Amazon Lightsail container service access to Amazon Elastic Container Registry
4526+
* (Amazon ECR) private repositories.</p>
4527+
*/
4528+
ecrImagePullerRole?: ContainerServiceECRImagePullerRoleRequest;
4529+
}
4530+
4531+
export namespace PrivateRegistryAccessRequest {
4532+
/**
4533+
* @internal
4534+
*/
4535+
export const filterSensitiveLog = (obj: PrivateRegistryAccessRequest): any => ({
4536+
...obj,
4537+
});
4538+
}
4539+
44254540
export interface CreateContainerServiceRequest {
44264541
/**
44274542
* <p>The name for the container service.</p>
@@ -4519,6 +4634,15 @@ export interface CreateContainerServiceRequest {
45194634
* configuration.</p>
45204635
*/
45214636
deployment?: ContainerServiceDeploymentRequest;
4637+
4638+
/**
4639+
* <p>An object to describe the configuration for the container service to access private
4640+
* container image repositories, such as Amazon Elastic Container Registry (Amazon ECR) private
4641+
* repositories.</p>
4642+
*
4643+
* <p>For more information, see <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-container-service-ecr-private-repo-access">Configuring access to an Amazon ECR private repository for an Amazon Lightsail container service</a> in the <i>Amazon Lightsail Developer Guide</i>.</p>
4644+
*/
4645+
privateRegistryAccess?: PrivateRegistryAccessRequest;
45224646
}
45234647

45244648
export namespace CreateContainerServiceRequest {
@@ -9631,91 +9755,3 @@ export namespace GetDomainsResult {
96319755
...obj,
96329756
});
96339757
}
9634-
9635-
export interface GetExportSnapshotRecordsRequest {
9636-
/**
9637-
* <p>The token to advance to the next page of results from your request.</p>
9638-
* <p>To get a page token, perform an initial <code>GetExportSnapshotRecords</code> request. If
9639-
* your results are paginated, the response will return a next page token that you can specify as
9640-
* the page token in a subsequent request.</p>
9641-
*/
9642-
pageToken?: string;
9643-
}
9644-
9645-
export namespace GetExportSnapshotRecordsRequest {
9646-
/**
9647-
* @internal
9648-
*/
9649-
export const filterSensitiveLog = (obj: GetExportSnapshotRecordsRequest): any => ({
9650-
...obj,
9651-
});
9652-
}
9653-
9654-
export interface GetExportSnapshotRecordsResult {
9655-
/**
9656-
* <p>A list of objects describing the export snapshot records.</p>
9657-
*/
9658-
exportSnapshotRecords?: ExportSnapshotRecord[];
9659-
9660-
/**
9661-
* <p>The token to advance to the next page of results from your request.</p>
9662-
* <p>A next page token is not returned if there are no more results to display.</p>
9663-
* <p>To get the next page of results, perform another <code>GetExportSnapshotRecords</code>
9664-
* request and specify the next page token using the <code>pageToken</code> parameter.</p>
9665-
*/
9666-
nextPageToken?: string;
9667-
}
9668-
9669-
export namespace GetExportSnapshotRecordsResult {
9670-
/**
9671-
* @internal
9672-
*/
9673-
export const filterSensitiveLog = (obj: GetExportSnapshotRecordsResult): any => ({
9674-
...obj,
9675-
});
9676-
}
9677-
9678-
export interface GetInstanceRequest {
9679-
/**
9680-
* <p>The name of the instance.</p>
9681-
*/
9682-
instanceName: string | undefined;
9683-
}
9684-
9685-
export namespace GetInstanceRequest {
9686-
/**
9687-
* @internal
9688-
*/
9689-
export const filterSensitiveLog = (obj: GetInstanceRequest): any => ({
9690-
...obj,
9691-
});
9692-
}
9693-
9694-
/**
9695-
* <p>Describes the hardware for the instance.</p>
9696-
*/
9697-
export interface InstanceHardware {
9698-
/**
9699-
* <p>The number of vCPUs the instance has.</p>
9700-
*/
9701-
cpuCount?: number;
9702-
9703-
/**
9704-
* <p>The disks attached to the instance.</p>
9705-
*/
9706-
disks?: Disk[];
9707-
9708-
/**
9709-
* <p>The amount of RAM in GB on the instance (e.g., <code>1.0</code>).</p>
9710-
*/
9711-
ramSizeInGb?: number;
9712-
}
9713-
9714-
export namespace InstanceHardware {
9715-
/**
9716-
* @internal
9717-
*/
9718-
export const filterSensitiveLog = (obj: InstanceHardware): any => ({
9719-
...obj,
9720-
});
9721-
}

clients/client-lightsail/src/models/models_1.ts

Lines changed: 99 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ import {
2020
ContainerServicePowerName,
2121
Disk,
2222
DomainEntry,
23+
ExportSnapshotRecord,
2324
InputOrigin,
24-
InstanceHardware,
2525
IpAddressType,
2626
KeyPair,
2727
MetricDatapoint,
@@ -31,13 +31,102 @@ import {
3131
NetworkProtocol,
3232
Operation,
3333
PortInfo,
34+
PrivateRegistryAccessRequest,
3435
RegionName,
3536
ResourceLocation,
3637
ResourceType,
3738
Tag,
3839
TreatMissingData,
3940
} from "./models_0";
4041

42+
export interface GetExportSnapshotRecordsRequest {
43+
/**
44+
* <p>The token to advance to the next page of results from your request.</p>
45+
* <p>To get a page token, perform an initial <code>GetExportSnapshotRecords</code> request. If
46+
* your results are paginated, the response will return a next page token that you can specify as
47+
* the page token in a subsequent request.</p>
48+
*/
49+
pageToken?: string;
50+
}
51+
52+
export namespace GetExportSnapshotRecordsRequest {
53+
/**
54+
* @internal
55+
*/
56+
export const filterSensitiveLog = (obj: GetExportSnapshotRecordsRequest): any => ({
57+
...obj,
58+
});
59+
}
60+
61+
export interface GetExportSnapshotRecordsResult {
62+
/**
63+
* <p>A list of objects describing the export snapshot records.</p>
64+
*/
65+
exportSnapshotRecords?: ExportSnapshotRecord[];
66+
67+
/**
68+
* <p>The token to advance to the next page of results from your request.</p>
69+
* <p>A next page token is not returned if there are no more results to display.</p>
70+
* <p>To get the next page of results, perform another <code>GetExportSnapshotRecords</code>
71+
* request and specify the next page token using the <code>pageToken</code> parameter.</p>
72+
*/
73+
nextPageToken?: string;
74+
}
75+
76+
export namespace GetExportSnapshotRecordsResult {
77+
/**
78+
* @internal
79+
*/
80+
export const filterSensitiveLog = (obj: GetExportSnapshotRecordsResult): any => ({
81+
...obj,
82+
});
83+
}
84+
85+
export interface GetInstanceRequest {
86+
/**
87+
* <p>The name of the instance.</p>
88+
*/
89+
instanceName: string | undefined;
90+
}
91+
92+
export namespace GetInstanceRequest {
93+
/**
94+
* @internal
95+
*/
96+
export const filterSensitiveLog = (obj: GetInstanceRequest): any => ({
97+
...obj,
98+
});
99+
}
100+
101+
/**
102+
* <p>Describes the hardware for the instance.</p>
103+
*/
104+
export interface InstanceHardware {
105+
/**
106+
* <p>The number of vCPUs the instance has.</p>
107+
*/
108+
cpuCount?: number;
109+
110+
/**
111+
* <p>The disks attached to the instance.</p>
112+
*/
113+
disks?: Disk[];
114+
115+
/**
116+
* <p>The amount of RAM in GB on the instance (e.g., <code>1.0</code>).</p>
117+
*/
118+
ramSizeInGb?: number;
119+
}
120+
121+
export namespace InstanceHardware {
122+
/**
123+
* @internal
124+
*/
125+
export const filterSensitiveLog = (obj: InstanceHardware): any => ({
126+
...obj,
127+
});
128+
}
129+
41130
/**
42131
* <p>Describes the monthly data transfer in and out of your virtual private server (or
43132
* <i>instance</i>).</p>
@@ -5662,6 +5751,15 @@ export interface UpdateContainerServiceRequest {
56625751
* later on this page.</p>
56635752
*/
56645753
publicDomainNames?: { [key: string]: string[] };
5754+
5755+
/**
5756+
* <p>An object to describe the configuration for the container service to access private
5757+
* container image repositories, such as Amazon Elastic Container Registry (Amazon ECR) private
5758+
* repositories.</p>
5759+
*
5760+
* <p>For more information, see <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-container-service-ecr-private-repo-access">Configuring access to an Amazon ECR private repository for an Amazon Lightsail container service</a> in the <i>Amazon Lightsail Developer Guide</i>.</p>
5761+
*/
5762+
privateRegistryAccess?: PrivateRegistryAccessRequest;
56655763
}
56665764

56675765
export namespace UpdateContainerServiceRequest {

0 commit comments

Comments
 (0)