Skip to content

Commit

Permalink
feat(client-inspector2): This release adds support for Inspector V2 s…
Browse files Browse the repository at this point in the history
…can 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.
  • Loading branch information
awstools committed Jul 14, 2022
1 parent f47fa13 commit 36bccb8
Show file tree
Hide file tree
Showing 8 changed files with 954 additions and 101 deletions.
74 changes: 74 additions & 0 deletions clients/client-inspector2/src/Inspector2.ts
Expand Up @@ -58,6 +58,11 @@ import {
EnableDelegatedAdminAccountCommandInput,
EnableDelegatedAdminAccountCommandOutput,
} from "./commands/EnableDelegatedAdminAccountCommand";
import {
GetConfigurationCommand,
GetConfigurationCommandInput,
GetConfigurationCommandOutput,
} from "./commands/GetConfigurationCommand";
import {
GetDelegatedAdminAccountCommand,
GetDelegatedAdminAccountCommandInput,
Expand Down Expand Up @@ -117,6 +122,11 @@ import {
UntagResourceCommandInput,
UntagResourceCommandOutput,
} from "./commands/UntagResourceCommand";
import {
UpdateConfigurationCommand,
UpdateConfigurationCommandInput,
UpdateConfigurationCommandOutput,
} from "./commands/UpdateConfigurationCommand";
import {
UpdateFilterCommand,
UpdateFilterCommandInput,
Expand Down Expand Up @@ -533,6 +543,38 @@ export class Inspector2 extends Inspector2Client {
}
}

/**
* <p>Retrieves setting configurations for Inspector scans.</p>
*/
public getConfiguration(
args: GetConfigurationCommandInput,
options?: __HttpHandlerOptions
): Promise<GetConfigurationCommandOutput>;
public getConfiguration(
args: GetConfigurationCommandInput,
cb: (err: any, data?: GetConfigurationCommandOutput) => void
): void;
public getConfiguration(
args: GetConfigurationCommandInput,
options: __HttpHandlerOptions,
cb: (err: any, data?: GetConfigurationCommandOutput) => void
): void;
public getConfiguration(
args: GetConfigurationCommandInput,
optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetConfigurationCommandOutput) => void),
cb?: (err: any, data?: GetConfigurationCommandOutput) => void
): Promise<GetConfigurationCommandOutput> | void {
const command = new GetConfigurationCommand(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);
}
}

/**
* <p>Retrieves information about the Amazon Inspector delegated administrator for your
* organization.</p>
Expand Down Expand Up @@ -986,6 +1028,38 @@ export class Inspector2 extends Inspector2Client {
}
}

/**
* <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>
*/
public updateConfiguration(
args: UpdateConfigurationCommandInput,
options?: __HttpHandlerOptions
): Promise<UpdateConfigurationCommandOutput>;
public updateConfiguration(
args: UpdateConfigurationCommandInput,
cb: (err: any, data?: UpdateConfigurationCommandOutput) => void
): void;
public updateConfiguration(
args: UpdateConfigurationCommandInput,
options: __HttpHandlerOptions,
cb: (err: any, data?: UpdateConfigurationCommandOutput) => void
): void;
public updateConfiguration(
args: UpdateConfigurationCommandInput,
optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UpdateConfigurationCommandOutput) => void),
cb?: (err: any, data?: UpdateConfigurationCommandOutput) => void
): Promise<UpdateConfigurationCommandOutput> | void {
const command = new UpdateConfigurationCommand(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);
}
}

/**
* <p>Specifies the action that is to be applied to the findings that match the filter.</p>
*/
Expand Down
9 changes: 9 additions & 0 deletions clients/client-inspector2/src/Inspector2Client.ts
Expand Up @@ -87,6 +87,7 @@ import {
EnableDelegatedAdminAccountCommandInput,
EnableDelegatedAdminAccountCommandOutput,
} from "./commands/EnableDelegatedAdminAccountCommand";
import { GetConfigurationCommandInput, GetConfigurationCommandOutput } from "./commands/GetConfigurationCommand";
import {
GetDelegatedAdminAccountCommandInput,
GetDelegatedAdminAccountCommandOutput,
Expand Down Expand Up @@ -123,6 +124,10 @@ import {
import { ListUsageTotalsCommandInput, ListUsageTotalsCommandOutput } from "./commands/ListUsageTotalsCommand";
import { TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand";
import { UntagResourceCommandInput, UntagResourceCommandOutput } from "./commands/UntagResourceCommand";
import {
UpdateConfigurationCommandInput,
UpdateConfigurationCommandOutput,
} from "./commands/UpdateConfigurationCommand";
import { UpdateFilterCommandInput, UpdateFilterCommandOutput } from "./commands/UpdateFilterCommand";
import {
UpdateOrganizationConfigurationCommandInput,
Expand All @@ -144,6 +149,7 @@ export type ServiceInputTypes =
| DisassociateMemberCommandInput
| EnableCommandInput
| EnableDelegatedAdminAccountCommandInput
| GetConfigurationCommandInput
| GetDelegatedAdminAccountCommandInput
| GetFindingsReportStatusCommandInput
| GetMemberCommandInput
Expand All @@ -159,6 +165,7 @@ export type ServiceInputTypes =
| ListUsageTotalsCommandInput
| TagResourceCommandInput
| UntagResourceCommandInput
| UpdateConfigurationCommandInput
| UpdateFilterCommandInput
| UpdateOrganizationConfigurationCommandInput;

Expand All @@ -176,6 +183,7 @@ export type ServiceOutputTypes =
| DisassociateMemberCommandOutput
| EnableCommandOutput
| EnableDelegatedAdminAccountCommandOutput
| GetConfigurationCommandOutput
| GetDelegatedAdminAccountCommandOutput
| GetFindingsReportStatusCommandOutput
| GetMemberCommandOutput
Expand All @@ -191,6 +199,7 @@ export type ServiceOutputTypes =
| ListUsageTotalsCommandOutput
| TagResourceCommandOutput
| UntagResourceCommandOutput
| UpdateConfigurationCommandOutput
| UpdateFilterCommandOutput
| UpdateOrganizationConfigurationCommandOutput;

Expand Down
96 changes: 96 additions & 0 deletions clients/client-inspector2/src/commands/GetConfigurationCommand.ts
@@ -0,0 +1,96 @@
// smithy-typescript generated code
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";
import {
FinalizeHandlerArguments,
Handler,
HandlerExecutionContext,
HttpHandlerOptions as __HttpHandlerOptions,
MetadataBearer as __MetadataBearer,
MiddlewareStack,
SerdeContext as __SerdeContext,
} from "@aws-sdk/types";

import { Inspector2ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../Inspector2Client";
import { GetConfigurationRequest, GetConfigurationResponse } from "../models/models_0";
import {
deserializeAws_restJson1GetConfigurationCommand,
serializeAws_restJson1GetConfigurationCommand,
} from "../protocols/Aws_restJson1";

export interface GetConfigurationCommandInput extends GetConfigurationRequest {}
export interface GetConfigurationCommandOutput extends GetConfigurationResponse, __MetadataBearer {}

/**
* <p>Retrieves setting configurations for Inspector scans.</p>
* @example
* Use a bare-bones client and the command you need to make an API call.
* ```javascript
* import { Inspector2Client, GetConfigurationCommand } from "@aws-sdk/client-inspector2"; // ES Modules import
* // const { Inspector2Client, GetConfigurationCommand } = require("@aws-sdk/client-inspector2"); // CommonJS import
* const client = new Inspector2Client(config);
* const command = new GetConfigurationCommand(input);
* const response = await client.send(command);
* ```
*
* @see {@link GetConfigurationCommandInput} for command's `input` shape.
* @see {@link GetConfigurationCommandOutput} for command's `response` shape.
* @see {@link Inspector2ClientResolvedConfig | config} for Inspector2Client's `config` shape.
*
*/
export class GetConfigurationCommand extends $Command<
GetConfigurationCommandInput,
GetConfigurationCommandOutput,
Inspector2ClientResolvedConfig
> {
// Start section: command_properties
// End section: command_properties

constructor(readonly input: GetConfigurationCommandInput) {
// Start section: command_constructor
super();
// End section: command_constructor
}

/**
* @internal
*/
resolveMiddleware(
clientStack: MiddlewareStack<ServiceInputTypes, ServiceOutputTypes>,
configuration: Inspector2ClientResolvedConfig,
options?: __HttpHandlerOptions
): Handler<GetConfigurationCommandInput, GetConfigurationCommandOutput> {
this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));

const stack = clientStack.concat(this.middlewareStack);

const { logger } = configuration;
const clientName = "Inspector2Client";
const commandName = "GetConfigurationCommand";
const handlerExecutionContext: HandlerExecutionContext = {
logger,
clientName,
commandName,
inputFilterSensitiveLog: GetConfigurationRequest.filterSensitiveLog,
outputFilterSensitiveLog: GetConfigurationResponse.filterSensitiveLog,
};
const { requestHandler } = configuration;
return stack.resolve(
(request: FinalizeHandlerArguments<any>) =>
requestHandler.handle(request.request as __HttpRequest, options || {}),
handlerExecutionContext
);
}

private serialize(input: GetConfigurationCommandInput, context: __SerdeContext): Promise<__HttpRequest> {
return serializeAws_restJson1GetConfigurationCommand(input, context);
}

private deserialize(output: __HttpResponse, context: __SerdeContext): Promise<GetConfigurationCommandOutput> {
return deserializeAws_restJson1GetConfigurationCommand(output, context);
}

// Start section: command_body_extra
// End section: command_body_extra
}
@@ -0,0 +1,96 @@
// smithy-typescript generated code
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";
import {
FinalizeHandlerArguments,
Handler,
HandlerExecutionContext,
HttpHandlerOptions as __HttpHandlerOptions,
MetadataBearer as __MetadataBearer,
MiddlewareStack,
SerdeContext as __SerdeContext,
} from "@aws-sdk/types";

import { Inspector2ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../Inspector2Client";
import { UpdateConfigurationRequest, UpdateConfigurationResponse } from "../models/models_0";
import {
deserializeAws_restJson1UpdateConfigurationCommand,
serializeAws_restJson1UpdateConfigurationCommand,
} from "../protocols/Aws_restJson1";

export interface UpdateConfigurationCommandInput extends UpdateConfigurationRequest {}
export interface UpdateConfigurationCommandOutput extends UpdateConfigurationResponse, __MetadataBearer {}

/**
* <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>
* @example
* Use a bare-bones client and the command you need to make an API call.
* ```javascript
* import { Inspector2Client, UpdateConfigurationCommand } from "@aws-sdk/client-inspector2"; // ES Modules import
* // const { Inspector2Client, UpdateConfigurationCommand } = require("@aws-sdk/client-inspector2"); // CommonJS import
* const client = new Inspector2Client(config);
* const command = new UpdateConfigurationCommand(input);
* const response = await client.send(command);
* ```
*
* @see {@link UpdateConfigurationCommandInput} for command's `input` shape.
* @see {@link UpdateConfigurationCommandOutput} for command's `response` shape.
* @see {@link Inspector2ClientResolvedConfig | config} for Inspector2Client's `config` shape.
*
*/
export class UpdateConfigurationCommand extends $Command<
UpdateConfigurationCommandInput,
UpdateConfigurationCommandOutput,
Inspector2ClientResolvedConfig
> {
// Start section: command_properties
// End section: command_properties

constructor(readonly input: UpdateConfigurationCommandInput) {
// Start section: command_constructor
super();
// End section: command_constructor
}

/**
* @internal
*/
resolveMiddleware(
clientStack: MiddlewareStack<ServiceInputTypes, ServiceOutputTypes>,
configuration: Inspector2ClientResolvedConfig,
options?: __HttpHandlerOptions
): Handler<UpdateConfigurationCommandInput, UpdateConfigurationCommandOutput> {
this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));

const stack = clientStack.concat(this.middlewareStack);

const { logger } = configuration;
const clientName = "Inspector2Client";
const commandName = "UpdateConfigurationCommand";
const handlerExecutionContext: HandlerExecutionContext = {
logger,
clientName,
commandName,
inputFilterSensitiveLog: UpdateConfigurationRequest.filterSensitiveLog,
outputFilterSensitiveLog: UpdateConfigurationResponse.filterSensitiveLog,
};
const { requestHandler } = configuration;
return stack.resolve(
(request: FinalizeHandlerArguments<any>) =>
requestHandler.handle(request.request as __HttpRequest, options || {}),
handlerExecutionContext
);
}

private serialize(input: UpdateConfigurationCommandInput, context: __SerdeContext): Promise<__HttpRequest> {
return serializeAws_restJson1UpdateConfigurationCommand(input, context);
}

private deserialize(output: __HttpResponse, context: __SerdeContext): Promise<UpdateConfigurationCommandOutput> {
return deserializeAws_restJson1UpdateConfigurationCommand(output, context);
}

// Start section: command_body_extra
// End section: command_body_extra
}
2 changes: 2 additions & 0 deletions clients/client-inspector2/src/commands/index.ts
Expand Up @@ -12,6 +12,7 @@ export * from "./DisableDelegatedAdminAccountCommand";
export * from "./DisassociateMemberCommand";
export * from "./EnableCommand";
export * from "./EnableDelegatedAdminAccountCommand";
export * from "./GetConfigurationCommand";
export * from "./GetDelegatedAdminAccountCommand";
export * from "./GetFindingsReportStatusCommand";
export * from "./GetMemberCommand";
Expand All @@ -27,5 +28,6 @@ export * from "./ListTagsForResourceCommand";
export * from "./ListUsageTotalsCommand";
export * from "./TagResourceCommand";
export * from "./UntagResourceCommand";
export * from "./UpdateConfigurationCommand";
export * from "./UpdateFilterCommand";
export * from "./UpdateOrganizationConfigurationCommand";

0 comments on commit 36bccb8

Please sign in to comment.