Skip to content

Commit 36bccb8

Browse files
author
awstools
committed
feat(client-inspector2): This release adds support for Inspector V2 scan configurations through the get and update configuration APIs. Currently this allows configuring ECR automated re-scan duration to lifetime or 180 days or 30 days.
1 parent f47fa13 commit 36bccb8

File tree

8 files changed

+954
-101
lines changed

8 files changed

+954
-101
lines changed

clients/client-inspector2/src/Inspector2.ts

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,11 @@ import {
5858
EnableDelegatedAdminAccountCommandInput,
5959
EnableDelegatedAdminAccountCommandOutput,
6060
} from "./commands/EnableDelegatedAdminAccountCommand";
61+
import {
62+
GetConfigurationCommand,
63+
GetConfigurationCommandInput,
64+
GetConfigurationCommandOutput,
65+
} from "./commands/GetConfigurationCommand";
6166
import {
6267
GetDelegatedAdminAccountCommand,
6368
GetDelegatedAdminAccountCommandInput,
@@ -117,6 +122,11 @@ import {
117122
UntagResourceCommandInput,
118123
UntagResourceCommandOutput,
119124
} from "./commands/UntagResourceCommand";
125+
import {
126+
UpdateConfigurationCommand,
127+
UpdateConfigurationCommandInput,
128+
UpdateConfigurationCommandOutput,
129+
} from "./commands/UpdateConfigurationCommand";
120130
import {
121131
UpdateFilterCommand,
122132
UpdateFilterCommandInput,
@@ -533,6 +543,38 @@ export class Inspector2 extends Inspector2Client {
533543
}
534544
}
535545

546+
/**
547+
* <p>Retrieves setting configurations for Inspector scans.</p>
548+
*/
549+
public getConfiguration(
550+
args: GetConfigurationCommandInput,
551+
options?: __HttpHandlerOptions
552+
): Promise<GetConfigurationCommandOutput>;
553+
public getConfiguration(
554+
args: GetConfigurationCommandInput,
555+
cb: (err: any, data?: GetConfigurationCommandOutput) => void
556+
): void;
557+
public getConfiguration(
558+
args: GetConfigurationCommandInput,
559+
options: __HttpHandlerOptions,
560+
cb: (err: any, data?: GetConfigurationCommandOutput) => void
561+
): void;
562+
public getConfiguration(
563+
args: GetConfigurationCommandInput,
564+
optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetConfigurationCommandOutput) => void),
565+
cb?: (err: any, data?: GetConfigurationCommandOutput) => void
566+
): Promise<GetConfigurationCommandOutput> | void {
567+
const command = new GetConfigurationCommand(args);
568+
if (typeof optionsOrCb === "function") {
569+
this.send(command, optionsOrCb);
570+
} else if (typeof cb === "function") {
571+
if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`);
572+
this.send(command, optionsOrCb || {}, cb);
573+
} else {
574+
return this.send(command, optionsOrCb);
575+
}
576+
}
577+
536578
/**
537579
* <p>Retrieves information about the Amazon Inspector delegated administrator for your
538580
* organization.</p>
@@ -986,6 +1028,38 @@ export class Inspector2 extends Inspector2Client {
9861028
}
9871029
}
9881030

1031+
/**
1032+
* <p>Updates setting configurations for your Amazon Inspector account. When you use this API as an Amazon Inspector delegated administrator this updates the setting for all accounts you manage. Member accounts in an organization cannot update this setting.</p>
1033+
*/
1034+
public updateConfiguration(
1035+
args: UpdateConfigurationCommandInput,
1036+
options?: __HttpHandlerOptions
1037+
): Promise<UpdateConfigurationCommandOutput>;
1038+
public updateConfiguration(
1039+
args: UpdateConfigurationCommandInput,
1040+
cb: (err: any, data?: UpdateConfigurationCommandOutput) => void
1041+
): void;
1042+
public updateConfiguration(
1043+
args: UpdateConfigurationCommandInput,
1044+
options: __HttpHandlerOptions,
1045+
cb: (err: any, data?: UpdateConfigurationCommandOutput) => void
1046+
): void;
1047+
public updateConfiguration(
1048+
args: UpdateConfigurationCommandInput,
1049+
optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UpdateConfigurationCommandOutput) => void),
1050+
cb?: (err: any, data?: UpdateConfigurationCommandOutput) => void
1051+
): Promise<UpdateConfigurationCommandOutput> | void {
1052+
const command = new UpdateConfigurationCommand(args);
1053+
if (typeof optionsOrCb === "function") {
1054+
this.send(command, optionsOrCb);
1055+
} else if (typeof cb === "function") {
1056+
if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`);
1057+
this.send(command, optionsOrCb || {}, cb);
1058+
} else {
1059+
return this.send(command, optionsOrCb);
1060+
}
1061+
}
1062+
9891063
/**
9901064
* <p>Specifies the action that is to be applied to the findings that match the filter.</p>
9911065
*/

clients/client-inspector2/src/Inspector2Client.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ import {
8787
EnableDelegatedAdminAccountCommandInput,
8888
EnableDelegatedAdminAccountCommandOutput,
8989
} from "./commands/EnableDelegatedAdminAccountCommand";
90+
import { GetConfigurationCommandInput, GetConfigurationCommandOutput } from "./commands/GetConfigurationCommand";
9091
import {
9192
GetDelegatedAdminAccountCommandInput,
9293
GetDelegatedAdminAccountCommandOutput,
@@ -123,6 +124,10 @@ import {
123124
import { ListUsageTotalsCommandInput, ListUsageTotalsCommandOutput } from "./commands/ListUsageTotalsCommand";
124125
import { TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand";
125126
import { UntagResourceCommandInput, UntagResourceCommandOutput } from "./commands/UntagResourceCommand";
127+
import {
128+
UpdateConfigurationCommandInput,
129+
UpdateConfigurationCommandOutput,
130+
} from "./commands/UpdateConfigurationCommand";
126131
import { UpdateFilterCommandInput, UpdateFilterCommandOutput } from "./commands/UpdateFilterCommand";
127132
import {
128133
UpdateOrganizationConfigurationCommandInput,
@@ -144,6 +149,7 @@ export type ServiceInputTypes =
144149
| DisassociateMemberCommandInput
145150
| EnableCommandInput
146151
| EnableDelegatedAdminAccountCommandInput
152+
| GetConfigurationCommandInput
147153
| GetDelegatedAdminAccountCommandInput
148154
| GetFindingsReportStatusCommandInput
149155
| GetMemberCommandInput
@@ -159,6 +165,7 @@ export type ServiceInputTypes =
159165
| ListUsageTotalsCommandInput
160166
| TagResourceCommandInput
161167
| UntagResourceCommandInput
168+
| UpdateConfigurationCommandInput
162169
| UpdateFilterCommandInput
163170
| UpdateOrganizationConfigurationCommandInput;
164171

@@ -176,6 +183,7 @@ export type ServiceOutputTypes =
176183
| DisassociateMemberCommandOutput
177184
| EnableCommandOutput
178185
| EnableDelegatedAdminAccountCommandOutput
186+
| GetConfigurationCommandOutput
179187
| GetDelegatedAdminAccountCommandOutput
180188
| GetFindingsReportStatusCommandOutput
181189
| GetMemberCommandOutput
@@ -191,6 +199,7 @@ export type ServiceOutputTypes =
191199
| ListUsageTotalsCommandOutput
192200
| TagResourceCommandOutput
193201
| UntagResourceCommandOutput
202+
| UpdateConfigurationCommandOutput
194203
| UpdateFilterCommandOutput
195204
| UpdateOrganizationConfigurationCommandOutput;
196205

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
// smithy-typescript generated code
2+
import { getSerdePlugin } from "@aws-sdk/middleware-serde";
3+
import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http";
4+
import { Command as $Command } from "@aws-sdk/smithy-client";
5+
import {
6+
FinalizeHandlerArguments,
7+
Handler,
8+
HandlerExecutionContext,
9+
HttpHandlerOptions as __HttpHandlerOptions,
10+
MetadataBearer as __MetadataBearer,
11+
MiddlewareStack,
12+
SerdeContext as __SerdeContext,
13+
} from "@aws-sdk/types";
14+
15+
import { Inspector2ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../Inspector2Client";
16+
import { GetConfigurationRequest, GetConfigurationResponse } from "../models/models_0";
17+
import {
18+
deserializeAws_restJson1GetConfigurationCommand,
19+
serializeAws_restJson1GetConfigurationCommand,
20+
} from "../protocols/Aws_restJson1";
21+
22+
export interface GetConfigurationCommandInput extends GetConfigurationRequest {}
23+
export interface GetConfigurationCommandOutput extends GetConfigurationResponse, __MetadataBearer {}
24+
25+
/**
26+
* <p>Retrieves setting configurations for Inspector scans.</p>
27+
* @example
28+
* Use a bare-bones client and the command you need to make an API call.
29+
* ```javascript
30+
* import { Inspector2Client, GetConfigurationCommand } from "@aws-sdk/client-inspector2"; // ES Modules import
31+
* // const { Inspector2Client, GetConfigurationCommand } = require("@aws-sdk/client-inspector2"); // CommonJS import
32+
* const client = new Inspector2Client(config);
33+
* const command = new GetConfigurationCommand(input);
34+
* const response = await client.send(command);
35+
* ```
36+
*
37+
* @see {@link GetConfigurationCommandInput} for command's `input` shape.
38+
* @see {@link GetConfigurationCommandOutput} for command's `response` shape.
39+
* @see {@link Inspector2ClientResolvedConfig | config} for Inspector2Client's `config` shape.
40+
*
41+
*/
42+
export class GetConfigurationCommand extends $Command<
43+
GetConfigurationCommandInput,
44+
GetConfigurationCommandOutput,
45+
Inspector2ClientResolvedConfig
46+
> {
47+
// Start section: command_properties
48+
// End section: command_properties
49+
50+
constructor(readonly input: GetConfigurationCommandInput) {
51+
// Start section: command_constructor
52+
super();
53+
// End section: command_constructor
54+
}
55+
56+
/**
57+
* @internal
58+
*/
59+
resolveMiddleware(
60+
clientStack: MiddlewareStack<ServiceInputTypes, ServiceOutputTypes>,
61+
configuration: Inspector2ClientResolvedConfig,
62+
options?: __HttpHandlerOptions
63+
): Handler<GetConfigurationCommandInput, GetConfigurationCommandOutput> {
64+
this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));
65+
66+
const stack = clientStack.concat(this.middlewareStack);
67+
68+
const { logger } = configuration;
69+
const clientName = "Inspector2Client";
70+
const commandName = "GetConfigurationCommand";
71+
const handlerExecutionContext: HandlerExecutionContext = {
72+
logger,
73+
clientName,
74+
commandName,
75+
inputFilterSensitiveLog: GetConfigurationRequest.filterSensitiveLog,
76+
outputFilterSensitiveLog: GetConfigurationResponse.filterSensitiveLog,
77+
};
78+
const { requestHandler } = configuration;
79+
return stack.resolve(
80+
(request: FinalizeHandlerArguments<any>) =>
81+
requestHandler.handle(request.request as __HttpRequest, options || {}),
82+
handlerExecutionContext
83+
);
84+
}
85+
86+
private serialize(input: GetConfigurationCommandInput, context: __SerdeContext): Promise<__HttpRequest> {
87+
return serializeAws_restJson1GetConfigurationCommand(input, context);
88+
}
89+
90+
private deserialize(output: __HttpResponse, context: __SerdeContext): Promise<GetConfigurationCommandOutput> {
91+
return deserializeAws_restJson1GetConfigurationCommand(output, context);
92+
}
93+
94+
// Start section: command_body_extra
95+
// End section: command_body_extra
96+
}
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
// smithy-typescript generated code
2+
import { getSerdePlugin } from "@aws-sdk/middleware-serde";
3+
import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http";
4+
import { Command as $Command } from "@aws-sdk/smithy-client";
5+
import {
6+
FinalizeHandlerArguments,
7+
Handler,
8+
HandlerExecutionContext,
9+
HttpHandlerOptions as __HttpHandlerOptions,
10+
MetadataBearer as __MetadataBearer,
11+
MiddlewareStack,
12+
SerdeContext as __SerdeContext,
13+
} from "@aws-sdk/types";
14+
15+
import { Inspector2ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../Inspector2Client";
16+
import { UpdateConfigurationRequest, UpdateConfigurationResponse } from "../models/models_0";
17+
import {
18+
deserializeAws_restJson1UpdateConfigurationCommand,
19+
serializeAws_restJson1UpdateConfigurationCommand,
20+
} from "../protocols/Aws_restJson1";
21+
22+
export interface UpdateConfigurationCommandInput extends UpdateConfigurationRequest {}
23+
export interface UpdateConfigurationCommandOutput extends UpdateConfigurationResponse, __MetadataBearer {}
24+
25+
/**
26+
* <p>Updates setting configurations for your Amazon Inspector account. When you use this API as an Amazon Inspector delegated administrator this updates the setting for all accounts you manage. Member accounts in an organization cannot update this setting.</p>
27+
* @example
28+
* Use a bare-bones client and the command you need to make an API call.
29+
* ```javascript
30+
* import { Inspector2Client, UpdateConfigurationCommand } from "@aws-sdk/client-inspector2"; // ES Modules import
31+
* // const { Inspector2Client, UpdateConfigurationCommand } = require("@aws-sdk/client-inspector2"); // CommonJS import
32+
* const client = new Inspector2Client(config);
33+
* const command = new UpdateConfigurationCommand(input);
34+
* const response = await client.send(command);
35+
* ```
36+
*
37+
* @see {@link UpdateConfigurationCommandInput} for command's `input` shape.
38+
* @see {@link UpdateConfigurationCommandOutput} for command's `response` shape.
39+
* @see {@link Inspector2ClientResolvedConfig | config} for Inspector2Client's `config` shape.
40+
*
41+
*/
42+
export class UpdateConfigurationCommand extends $Command<
43+
UpdateConfigurationCommandInput,
44+
UpdateConfigurationCommandOutput,
45+
Inspector2ClientResolvedConfig
46+
> {
47+
// Start section: command_properties
48+
// End section: command_properties
49+
50+
constructor(readonly input: UpdateConfigurationCommandInput) {
51+
// Start section: command_constructor
52+
super();
53+
// End section: command_constructor
54+
}
55+
56+
/**
57+
* @internal
58+
*/
59+
resolveMiddleware(
60+
clientStack: MiddlewareStack<ServiceInputTypes, ServiceOutputTypes>,
61+
configuration: Inspector2ClientResolvedConfig,
62+
options?: __HttpHandlerOptions
63+
): Handler<UpdateConfigurationCommandInput, UpdateConfigurationCommandOutput> {
64+
this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));
65+
66+
const stack = clientStack.concat(this.middlewareStack);
67+
68+
const { logger } = configuration;
69+
const clientName = "Inspector2Client";
70+
const commandName = "UpdateConfigurationCommand";
71+
const handlerExecutionContext: HandlerExecutionContext = {
72+
logger,
73+
clientName,
74+
commandName,
75+
inputFilterSensitiveLog: UpdateConfigurationRequest.filterSensitiveLog,
76+
outputFilterSensitiveLog: UpdateConfigurationResponse.filterSensitiveLog,
77+
};
78+
const { requestHandler } = configuration;
79+
return stack.resolve(
80+
(request: FinalizeHandlerArguments<any>) =>
81+
requestHandler.handle(request.request as __HttpRequest, options || {}),
82+
handlerExecutionContext
83+
);
84+
}
85+
86+
private serialize(input: UpdateConfigurationCommandInput, context: __SerdeContext): Promise<__HttpRequest> {
87+
return serializeAws_restJson1UpdateConfigurationCommand(input, context);
88+
}
89+
90+
private deserialize(output: __HttpResponse, context: __SerdeContext): Promise<UpdateConfigurationCommandOutput> {
91+
return deserializeAws_restJson1UpdateConfigurationCommand(output, context);
92+
}
93+
94+
// Start section: command_body_extra
95+
// End section: command_body_extra
96+
}

clients/client-inspector2/src/commands/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ export * from "./DisableDelegatedAdminAccountCommand";
1212
export * from "./DisassociateMemberCommand";
1313
export * from "./EnableCommand";
1414
export * from "./EnableDelegatedAdminAccountCommand";
15+
export * from "./GetConfigurationCommand";
1516
export * from "./GetDelegatedAdminAccountCommand";
1617
export * from "./GetFindingsReportStatusCommand";
1718
export * from "./GetMemberCommand";
@@ -27,5 +28,6 @@ export * from "./ListTagsForResourceCommand";
2728
export * from "./ListUsageTotalsCommand";
2829
export * from "./TagResourceCommand";
2930
export * from "./UntagResourceCommand";
31+
export * from "./UpdateConfigurationCommand";
3032
export * from "./UpdateFilterCommand";
3133
export * from "./UpdateOrganizationConfigurationCommand";

0 commit comments

Comments
 (0)