diff --git a/clients/client-health/README.md b/clients/client-health/README.md index 1a07d9e330f0..21053379fefb 100644 --- a/clients/client-health/README.md +++ b/clients/client-health/README.md @@ -277,6 +277,14 @@ DescribeEntityAggregates [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-health/classes/describeentityaggregatescommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-health/interfaces/describeentityaggregatescommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-health/interfaces/describeentityaggregatescommandoutput.html) + +
+ +DescribeEntityAggregatesForOrganization + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-health/classes/describeentityaggregatesfororganizationcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-health/interfaces/describeentityaggregatesfororganizationcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-health/interfaces/describeentityaggregatesfororganizationcommandoutput.html) +
diff --git a/clients/client-health/src/Health.ts b/clients/client-health/src/Health.ts index 3e7f9dee9192..e4f7f2f2976a 100644 --- a/clients/client-health/src/Health.ts +++ b/clients/client-health/src/Health.ts @@ -22,6 +22,11 @@ import { DescribeEntityAggregatesCommandInput, DescribeEntityAggregatesCommandOutput, } from "./commands/DescribeEntityAggregatesCommand"; +import { + DescribeEntityAggregatesForOrganizationCommand, + DescribeEntityAggregatesForOrganizationCommandInput, + DescribeEntityAggregatesForOrganizationCommandOutput, +} from "./commands/DescribeEntityAggregatesForOrganizationCommand"; import { DescribeEventAggregatesCommand, DescribeEventAggregatesCommandInput, @@ -74,6 +79,7 @@ const commands = { DescribeAffectedEntitiesCommand, DescribeAffectedEntitiesForOrganizationCommand, DescribeEntityAggregatesCommand, + DescribeEntityAggregatesForOrganizationCommand, DescribeEventAggregatesCommand, DescribeEventDetailsCommand, DescribeEventDetailsForOrganizationCommand, @@ -154,6 +160,23 @@ export interface Health { cb: (err: any, data?: DescribeEntityAggregatesCommandOutput) => void ): void; + /** + * @see {@link DescribeEntityAggregatesForOrganizationCommand} + */ + describeEntityAggregatesForOrganization( + args: DescribeEntityAggregatesForOrganizationCommandInput, + options?: __HttpHandlerOptions + ): Promise; + describeEntityAggregatesForOrganization( + args: DescribeEntityAggregatesForOrganizationCommandInput, + cb: (err: any, data?: DescribeEntityAggregatesForOrganizationCommandOutput) => void + ): void; + describeEntityAggregatesForOrganization( + args: DescribeEntityAggregatesForOrganizationCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeEntityAggregatesForOrganizationCommandOutput) => void + ): void; + /** * @see {@link DescribeEventAggregatesCommand} */ diff --git a/clients/client-health/src/HealthClient.ts b/clients/client-health/src/HealthClient.ts index 3fcfbc4ea2c8..990faff4980d 100644 --- a/clients/client-health/src/HealthClient.ts +++ b/clients/client-health/src/HealthClient.ts @@ -66,6 +66,10 @@ import { DescribeEntityAggregatesCommandInput, DescribeEntityAggregatesCommandOutput, } from "./commands/DescribeEntityAggregatesCommand"; +import { + DescribeEntityAggregatesForOrganizationCommandInput, + DescribeEntityAggregatesForOrganizationCommandOutput, +} from "./commands/DescribeEntityAggregatesForOrganizationCommand"; import { DescribeEventAggregatesCommandInput, DescribeEventAggregatesCommandOutput, @@ -115,6 +119,7 @@ export type ServiceInputTypes = | DescribeAffectedEntitiesCommandInput | DescribeAffectedEntitiesForOrganizationCommandInput | DescribeEntityAggregatesCommandInput + | DescribeEntityAggregatesForOrganizationCommandInput | DescribeEventAggregatesCommandInput | DescribeEventDetailsCommandInput | DescribeEventDetailsForOrganizationCommandInput @@ -133,6 +138,7 @@ export type ServiceOutputTypes = | DescribeAffectedEntitiesCommandOutput | DescribeAffectedEntitiesForOrganizationCommandOutput | DescribeEntityAggregatesCommandOutput + | DescribeEntityAggregatesForOrganizationCommandOutput | DescribeEventAggregatesCommandOutput | DescribeEventDetailsCommandOutput | DescribeEventDetailsForOrganizationCommandOutput diff --git a/clients/client-health/src/commands/DescribeAffectedEntitiesCommand.ts b/clients/client-health/src/commands/DescribeAffectedEntitiesCommand.ts index 90e048dc462d..b69665bf413e 100644 --- a/clients/client-health/src/commands/DescribeAffectedEntitiesCommand.ts +++ b/clients/client-health/src/commands/DescribeAffectedEntitiesCommand.ts @@ -82,7 +82,7 @@ export interface DescribeAffectedEntitiesCommandOutput extends DescribeAffectedE * }, * ], * statusCodes: [ // entityStatusCodeList - * "IMPAIRED" || "UNIMPAIRED" || "UNKNOWN", + * "IMPAIRED" || "UNIMPAIRED" || "UNKNOWN" || "PENDING" || "RESOLVED", * ], * }, * locale: "STRING_VALUE", @@ -100,7 +100,7 @@ export interface DescribeAffectedEntitiesCommandOutput extends DescribeAffectedE * // entityUrl: "STRING_VALUE", * // awsAccountId: "STRING_VALUE", * // lastUpdatedTime: new Date("TIMESTAMP"), - * // statusCode: "IMPAIRED" || "UNIMPAIRED" || "UNKNOWN", + * // statusCode: "IMPAIRED" || "UNIMPAIRED" || "UNKNOWN" || "PENDING" || "RESOLVED", * // tags: { // tagSet * // "": "STRING_VALUE", * // }, diff --git a/clients/client-health/src/commands/DescribeAffectedEntitiesForOrganizationCommand.ts b/clients/client-health/src/commands/DescribeAffectedEntitiesForOrganizationCommand.ts index ed65bfdea465..4ab41f7a8c36 100644 --- a/clients/client-health/src/commands/DescribeAffectedEntitiesForOrganizationCommand.ts +++ b/clients/client-health/src/commands/DescribeAffectedEntitiesForOrganizationCommand.ts @@ -71,7 +71,7 @@ export interface DescribeAffectedEntitiesForOrganizationCommandOutput * // const { HealthClient, DescribeAffectedEntitiesForOrganizationCommand } = require("@aws-sdk/client-health"); // CommonJS import * const client = new HealthClient(config); * const input = { // DescribeAffectedEntitiesForOrganizationRequest - * organizationEntityFilters: [ // OrganizationEntityFiltersList // required + * organizationEntityFilters: [ // OrganizationEntityFiltersList * { // EventAccountFilter * eventArn: "STRING_VALUE", // required * awsAccountId: "STRING_VALUE", @@ -80,6 +80,15 @@ export interface DescribeAffectedEntitiesForOrganizationCommandOutput * locale: "STRING_VALUE", * nextToken: "STRING_VALUE", * maxResults: Number("int"), + * organizationEntityAccountFilters: [ // OrganizationEntityAccountFiltersList + * { // EntityAccountFilter + * eventArn: "STRING_VALUE", // required + * awsAccountId: "STRING_VALUE", + * statusCodes: [ // entityStatusCodeList + * "IMPAIRED" || "UNIMPAIRED" || "UNKNOWN" || "PENDING" || "RESOLVED", + * ], + * }, + * ], * }; * const command = new DescribeAffectedEntitiesForOrganizationCommand(input); * const response = await client.send(command); @@ -92,7 +101,7 @@ export interface DescribeAffectedEntitiesForOrganizationCommandOutput * // entityUrl: "STRING_VALUE", * // awsAccountId: "STRING_VALUE", * // lastUpdatedTime: new Date("TIMESTAMP"), - * // statusCode: "IMPAIRED" || "UNIMPAIRED" || "UNKNOWN", + * // statusCode: "IMPAIRED" || "UNIMPAIRED" || "UNKNOWN" || "PENDING" || "RESOLVED", * // tags: { // tagSet * // "": "STRING_VALUE", * // }, diff --git a/clients/client-health/src/commands/DescribeEntityAggregatesCommand.ts b/clients/client-health/src/commands/DescribeEntityAggregatesCommand.ts index 0263fddf9984..4370e9fa4001 100644 --- a/clients/client-health/src/commands/DescribeEntityAggregatesCommand.ts +++ b/clients/client-health/src/commands/DescribeEntityAggregatesCommand.ts @@ -55,6 +55,9 @@ export interface DescribeEntityAggregatesCommandOutput extends DescribeEntityAgg * // { // EntityAggregate * // eventArn: "STRING_VALUE", * // count: Number("int"), + * // statuses: { // entityStatuses + * // "": Number("int"), + * // }, * // }, * // ], * // }; diff --git a/clients/client-health/src/commands/DescribeEntityAggregatesForOrganizationCommand.ts b/clients/client-health/src/commands/DescribeEntityAggregatesForOrganizationCommand.ts new file mode 100644 index 000000000000..ee461c887bb2 --- /dev/null +++ b/clients/client-health/src/commands/DescribeEntityAggregatesForOrganizationCommand.ts @@ -0,0 +1,185 @@ +// smithy-typescript generated code +import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; +import { Command as $Command } from "@smithy/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@smithy/types"; + +import { HealthClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../HealthClient"; +import { + DescribeEntityAggregatesForOrganizationRequest, + DescribeEntityAggregatesForOrganizationResponse, +} from "../models/models_0"; +import { + de_DescribeEntityAggregatesForOrganizationCommand, + se_DescribeEntityAggregatesForOrganizationCommand, +} from "../protocols/Aws_json1_1"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link DescribeEntityAggregatesForOrganizationCommand}. + */ +export interface DescribeEntityAggregatesForOrganizationCommandInput + extends DescribeEntityAggregatesForOrganizationRequest {} +/** + * @public + * + * The output of {@link DescribeEntityAggregatesForOrganizationCommand}. + */ +export interface DescribeEntityAggregatesForOrganizationCommandOutput + extends DescribeEntityAggregatesForOrganizationResponse, + __MetadataBearer {} + +/** + * @public + *

Returns a list of entity aggregates for your Organizations that are affected by each of the specified events.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { HealthClient, DescribeEntityAggregatesForOrganizationCommand } from "@aws-sdk/client-health"; // ES Modules import + * // const { HealthClient, DescribeEntityAggregatesForOrganizationCommand } = require("@aws-sdk/client-health"); // CommonJS import + * const client = new HealthClient(config); + * const input = { // DescribeEntityAggregatesForOrganizationRequest + * eventArns: [ // OrganizationEventArnsList // required + * "STRING_VALUE", + * ], + * awsAccountIds: [ // OrganizationAccountIdsList + * "STRING_VALUE", + * ], + * }; + * const command = new DescribeEntityAggregatesForOrganizationCommand(input); + * const response = await client.send(command); + * // { // DescribeEntityAggregatesForOrganizationResponse + * // organizationEntityAggregates: [ // OrganizationEntityAggregatesList + * // { // OrganizationEntityAggregate + * // eventArn: "STRING_VALUE", + * // count: Number("int"), + * // statuses: { // entityStatuses + * // "": Number("int"), + * // }, + * // accounts: [ // AccountEntityAggregatesList + * // { // AccountEntityAggregate + * // accountId: "STRING_VALUE", + * // count: Number("int"), + * // statuses: { + * // "": Number("int"), + * // }, + * // }, + * // ], + * // }, + * // ], + * // }; + * + * ``` + * + * @param DescribeEntityAggregatesForOrganizationCommandInput - {@link DescribeEntityAggregatesForOrganizationCommandInput} + * @returns {@link DescribeEntityAggregatesForOrganizationCommandOutput} + * @see {@link DescribeEntityAggregatesForOrganizationCommandInput} for command's `input` shape. + * @see {@link DescribeEntityAggregatesForOrganizationCommandOutput} for command's `response` shape. + * @see {@link HealthClientResolvedConfig | config} for HealthClient's `config` shape. + * + * @throws {@link HealthServiceException} + *

Base exception class for all service exceptions from Health service.

+ * + */ +export class DescribeEntityAggregatesForOrganizationCommand extends $Command< + DescribeEntityAggregatesForOrganizationCommandInput, + DescribeEntityAggregatesForOrganizationCommandOutput, + HealthClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + public static getEndpointParameterInstructions(): EndpointParameterInstructions { + return { + UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, + Endpoint: { type: "builtInParams", name: "endpoint" }, + Region: { type: "builtInParams", name: "region" }, + UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }, + }; + } + + /** + * @public + */ + constructor(readonly input: DescribeEntityAggregatesForOrganizationCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: HealthClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler< + DescribeEntityAggregatesForOrganizationCommandInput, + DescribeEntityAggregatesForOrganizationCommandOutput + > { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use( + getEndpointPlugin( + configuration, + DescribeEntityAggregatesForOrganizationCommand.getEndpointParameterInstructions() + ) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "HealthClient"; + const commandName = "DescribeEntityAggregatesForOrganizationCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: (_: any) => _, + outputFilterSensitiveLog: (_: any) => _, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + /** + * @internal + */ + private serialize( + input: DescribeEntityAggregatesForOrganizationCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return se_DescribeEntityAggregatesForOrganizationCommand(input, context); + } + + /** + * @internal + */ + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return de_DescribeEntityAggregatesForOrganizationCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-health/src/commands/index.ts b/clients/client-health/src/commands/index.ts index df3b74870de3..6265fa088ea0 100644 --- a/clients/client-health/src/commands/index.ts +++ b/clients/client-health/src/commands/index.ts @@ -3,6 +3,7 @@ export * from "./DescribeAffectedAccountsForOrganizationCommand"; export * from "./DescribeAffectedEntitiesCommand"; export * from "./DescribeAffectedEntitiesForOrganizationCommand"; export * from "./DescribeEntityAggregatesCommand"; +export * from "./DescribeEntityAggregatesForOrganizationCommand"; export * from "./DescribeEventAggregatesCommand"; export * from "./DescribeEventDetailsCommand"; export * from "./DescribeEventDetailsForOrganizationCommand"; diff --git a/clients/client-health/src/endpoint/ruleset.ts b/clients/client-health/src/endpoint/ruleset.ts index 3b36818b0747..713e8a605d2a 100644 --- a/clients/client-health/src/endpoint/ruleset.ts +++ b/clients/client-health/src/endpoint/ruleset.ts @@ -30,5 +30,5 @@ q={[v]:"booleanEquals",[w]:[true,{[v]:"getAttr",[w]:[{[x]:e},"supportsDualStack" r=[l], s=[m], t=[o]; -const _data={version:"1.0",parameters:{Region:i,UseDualStack:j,UseFIPS:j,Endpoint:i},rules:[{conditions:[{[v]:a,[w]:[k]}],type:b,rules:[{conditions:r,error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:c},{type:b,rules:[{conditions:s,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:c},{endpoint:{url:k,properties:n,headers:n},type:d}]}]},{type:b,rules:[{conditions:[{[v]:a,[w]:t}],type:b,rules:[{conditions:[{[v]:"aws.partition",[w]:t,assign:e}],type:b,rules:[{conditions:[l,m],type:b,rules:[{conditions:[p,q],type:b,rules:[{type:b,rules:[{endpoint:{url:"https://health-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:n,headers:n},type:d}]}]},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:c}]},{conditions:r,type:b,rules:[{conditions:[p],type:b,rules:[{type:b,rules:[{endpoint:{url:"https://health-fips.{Region}.{PartitionResult#dnsSuffix}",properties:n,headers:n},type:d}]}]},{error:"FIPS is enabled but this partition does not support FIPS",type:c}]},{conditions:s,type:b,rules:[{conditions:[q],type:b,rules:[{type:b,rules:[{endpoint:{url:"https://health.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:n,headers:n},type:d}]}]},{error:"DualStack is enabled but this partition does not support DualStack",type:c}]},{type:b,rules:[{conditions:[{[v]:f,[w]:[o,"aws-global"]}],endpoint:{url:"https://global.health.amazonaws.com",properties:{authSchemes:[{name:g,signingName:h,signingRegion:"us-east-1"}]},headers:n},type:d},{conditions:[{[v]:f,[w]:[o,"aws-cn-global"]}],endpoint:{url:"https://global.health.amazonaws.com.cn",properties:{authSchemes:[{name:g,signingName:h,signingRegion:"cn-northwest-1"}]},headers:n},type:d},{endpoint:{url:"https://health.{Region}.{PartitionResult#dnsSuffix}",properties:n,headers:n},type:d}]}]}]},{error:"Invalid Configuration: Missing Region",type:c}]}]}; +const _data={version:"1.0",parameters:{Region:i,UseDualStack:j,UseFIPS:j,Endpoint:i},rules:[{conditions:[{[v]:a,[w]:[k]}],type:b,rules:[{conditions:r,error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:c},{conditions:s,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:c},{endpoint:{url:k,properties:n,headers:n},type:d}]},{conditions:[{[v]:a,[w]:t}],type:b,rules:[{conditions:[{[v]:"aws.partition",[w]:t,assign:e}],type:b,rules:[{conditions:[l,m],type:b,rules:[{conditions:[p,q],type:b,rules:[{endpoint:{url:"https://health-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:n,headers:n},type:d}]},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:c}]},{conditions:r,type:b,rules:[{conditions:[p],type:b,rules:[{endpoint:{url:"https://health-fips.{Region}.{PartitionResult#dnsSuffix}",properties:n,headers:n},type:d}]},{error:"FIPS is enabled but this partition does not support FIPS",type:c}]},{conditions:s,type:b,rules:[{conditions:[q],type:b,rules:[{endpoint:{url:"https://health.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:n,headers:n},type:d}]},{error:"DualStack is enabled but this partition does not support DualStack",type:c}]},{conditions:[{[v]:f,[w]:[o,"aws-global"]}],endpoint:{url:"https://global.health.amazonaws.com",properties:{authSchemes:[{name:g,signingName:h,signingRegion:"us-east-1"}]},headers:n},type:d},{conditions:[{[v]:f,[w]:[o,"aws-cn-global"]}],endpoint:{url:"https://global.health.amazonaws.com.cn",properties:{authSchemes:[{name:g,signingName:h,signingRegion:"cn-northwest-1"}]},headers:n},type:d},{endpoint:{url:"https://health.{Region}.{PartitionResult#dnsSuffix}",properties:n,headers:n},type:d}]}]},{error:"Invalid Configuration: Missing Region",type:c}]}; export const ruleSet: RuleSetObject = _data; diff --git a/clients/client-health/src/models/models_0.ts b/clients/client-health/src/models/models_0.ts index 57aca5970e5c..15c52c37ca3e 100644 --- a/clients/client-health/src/models/models_0.ts +++ b/clients/client-health/src/models/models_0.ts @@ -9,6 +9,8 @@ import { HealthServiceException as __BaseException } from "./HealthServiceExcept */ export const EntityStatusCode = { IMPAIRED: "IMPAIRED", + PENDING: "PENDING", + RESOLVED: "RESOLVED", UNIMPAIRED: "UNIMPAIRED", UNKNOWN: "UNKNOWN", } as const; @@ -18,6 +20,30 @@ export const EntityStatusCode = { */ export type EntityStatusCode = (typeof EntityStatusCode)[keyof typeof EntityStatusCode]; +/** + * @public + *

The number of entities in an account that are impacted by a specific event aggregated by the entity status codes.

+ */ +export interface AccountEntityAggregate { + /** + * @public + *

The 12-digit Amazon Web Services account numbers that contains the affected entities.

+ */ + accountId?: string; + + /** + * @public + *

The number of entities that match the filter criteria for the specified events.

+ */ + count?: number; + + /** + * @public + *

The number of affected entities aggregated by the entity status codes.

+ */ + statuses?: Record; +} + /** * @public *

Information about an entity that is affected by a Health event.

@@ -340,6 +366,37 @@ export class UnsupportedLocale extends __BaseException { } } +/** + * @public + *

A JSON set of elements including the awsAccountId, eventArn and a set of statusCodes.

+ */ +export interface EntityAccountFilter { + /** + * @public + *

The unique identifier for the event. The event ARN has the + * arn:aws:health:event-region::event/SERVICE/EVENT_TYPE_CODE/EVENT_TYPE_PLUS_ID + * + * format.

+ *

For example, an event ARN might look like the following:

+ *

+ * arn:aws:health:us-east-1::event/EC2/EC2_INSTANCE_RETIREMENT_SCHEDULED/EC2_INSTANCE_RETIREMENT_SCHEDULED_ABC123-DEF456 + *

+ */ + eventArn: string | undefined; + + /** + * @public + *

The 12-digit Amazon Web Services account numbers that contains the affected entities.

+ */ + awsAccountId?: string; + + /** + * @public + *

A list of entity status codes.

+ */ + statusCodes?: (EntityStatusCode | string)[]; +} + /** * @public *

The values used to filter results from the DescribeEventDetailsForOrganization and DescribeAffectedEntitiesForOrganization operations.

@@ -371,10 +428,12 @@ export interface EventAccountFilter { export interface DescribeAffectedEntitiesForOrganizationRequest { /** * @public + * @deprecated + * *

A JSON set of elements including the awsAccountId and the * eventArn.

*/ - organizationEntityFilters: EventAccountFilter[] | undefined; + organizationEntityFilters?: EventAccountFilter[]; /** * @public @@ -396,6 +455,12 @@ export interface DescribeAffectedEntitiesForOrganizationRequest { *

The maximum number of items to return in one batch, between 10 and 100, inclusive.

*/ maxResults?: number; + + /** + * @public + *

A JSON set of elements including the awsAccountId, eventArn and a set of statusCodes.

+ */ + organizationEntityAccountFilters?: EntityAccountFilter[]; } /** @@ -504,6 +569,12 @@ export interface EntityAggregate { *

The number of entities that match the criteria for the specified events.

*/ count?: number; + + /** + * @public + *

The number of affected entities aggregated by the entity status codes.

+ */ + statuses?: Record; } /** @@ -517,6 +588,68 @@ export interface DescribeEntityAggregatesResponse { entityAggregates?: EntityAggregate[]; } +/** + * @public + */ +export interface DescribeEntityAggregatesForOrganizationRequest { + /** + * @public + *

A list of event ARNs (unique identifiers). For example: "arn:aws:health:us-east-1::event/EC2/EC2_INSTANCE_RETIREMENT_SCHEDULED/EC2_INSTANCE_RETIREMENT_SCHEDULED_ABC123-CDE456", "arn:aws:health:us-west-1::event/EBS/AWS_EBS_LOST_VOLUME/AWS_EBS_LOST_VOLUME_CHI789_JKL101" + *

+ */ + eventArns: string[] | undefined; + + /** + * @public + *

A list of 12-digit Amazon Web Services account numbers that contains the affected entities.

+ */ + awsAccountIds?: string[]; +} + +/** + * @public + *

The aggregate results of entities affected by the specified event in your organization. + * The results are aggregated by the entity status codes for the specified set of accountsIDs.

+ */ +export interface OrganizationEntityAggregate { + /** + * @public + *

A list of event ARNs (unique identifiers). For example: "arn:aws:health:us-east-1::event/EC2/EC2_INSTANCE_RETIREMENT_SCHEDULED/EC2_INSTANCE_RETIREMENT_SCHEDULED_ABC123-CDE456", "arn:aws:health:us-west-1::event/EBS/AWS_EBS_LOST_VOLUME/AWS_EBS_LOST_VOLUME_CHI789_JKL101" + *

+ */ + eventArn?: string; + + /** + * @public + *

The number of entities for the organization that match the filter criteria for the specified events.

+ */ + count?: number; + + /** + * @public + *

The number of affected entities aggregated by the entitiy status codes.

+ */ + statuses?: Record; + + /** + * @public + *

A list of entity aggregates for each of the specified accounts in your organization that are affected by + * a specific event. If there are no awsAccountIds provided in the request, this field will be empty in the response.

+ */ + accounts?: AccountEntityAggregate[]; +} + +/** + * @public + */ +export interface DescribeEntityAggregatesForOrganizationResponse { + /** + * @public + *

The list of entity aggregates for each of the specified accounts that are affected by each of the specified events.

+ */ + organizationEntityAggregates?: OrganizationEntityAggregate[]; +} + /** * @public * @enum diff --git a/clients/client-health/src/protocols/Aws_json1_1.ts b/clients/client-health/src/protocols/Aws_json1_1.ts index faf7e5c4f0c8..63ac6485459a 100644 --- a/clients/client-health/src/protocols/Aws_json1_1.ts +++ b/clients/client-health/src/protocols/Aws_json1_1.ts @@ -34,6 +34,10 @@ import { DescribeEntityAggregatesCommandInput, DescribeEntityAggregatesCommandOutput, } from "../commands/DescribeEntityAggregatesCommand"; +import { + DescribeEntityAggregatesForOrganizationCommandInput, + DescribeEntityAggregatesForOrganizationCommandOutput, +} from "../commands/DescribeEntityAggregatesForOrganizationCommand"; import { DescribeEventAggregatesCommandInput, DescribeEventAggregatesCommandOutput, @@ -74,6 +78,7 @@ import { DescribeAffectedEntitiesForOrganizationResponse, DescribeAffectedEntitiesRequest, DescribeAffectedEntitiesResponse, + DescribeEntityAggregatesForOrganizationRequest, DescribeEntityAggregatesRequest, DescribeEventAggregatesRequest, DescribeEventDetailsForOrganizationRequest, @@ -85,6 +90,7 @@ import { DescribeEventsRequest, DescribeEventsResponse, DescribeEventTypesRequest, + EntityAccountFilter, EntityFilter, EntityStatusCode, Event, @@ -153,6 +159,19 @@ export const se_DescribeEntityAggregatesCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +/** + * serializeAws_json1_1DescribeEntityAggregatesForOrganizationCommand + */ +export const se_DescribeEntityAggregatesForOrganizationCommand = async ( + input: DescribeEntityAggregatesForOrganizationCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("DescribeEntityAggregatesForOrganization"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + /** * serializeAws_json1_1DescribeEventAggregatesCommand */ @@ -451,6 +470,46 @@ const de_DescribeEntityAggregatesCommandError = async ( }); }; +/** + * deserializeAws_json1_1DescribeEntityAggregatesForOrganizationCommand + */ +export const de_DescribeEntityAggregatesForOrganizationCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_DescribeEntityAggregatesForOrganizationCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = _json(data); + const response: DescribeEntityAggregatesForOrganizationCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_1DescribeEntityAggregatesForOrganizationCommandError + */ +const de_DescribeEntityAggregatesForOrganizationCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseErrorBody(output.body, context), + }; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody, + errorCode, + }); +}; + /** * deserializeAws_json1_1DescribeEventAggregatesCommand */ @@ -948,6 +1007,8 @@ const se_DescribeAffectedEntitiesRequest = (input: DescribeAffectedEntitiesReque }); }; +// se_DescribeEntityAggregatesForOrganizationRequest omitted. + // se_DescribeEntityAggregatesRequest omitted. /** @@ -995,6 +1056,8 @@ const se_DescribeEventsRequest = (input: DescribeEventsRequest, context: __Serde // se_DescribeEventTypesRequest omitted. +// se_EntityAccountFilter omitted. + // se_entityArnList omitted. /** @@ -1054,8 +1117,14 @@ const se_EventFilter = (input: EventFilter, context: __SerdeContext): any => { // se_eventTypeList2 omitted. +// se_OrganizationAccountIdsList omitted. + +// se_OrganizationEntityAccountFiltersList omitted. + // se_OrganizationEntityFiltersList omitted. +// se_OrganizationEventArnsList omitted. + // se_OrganizationEventDetailFiltersList omitted. /** @@ -1085,6 +1154,10 @@ const se_OrganizationEventFilter = (input: OrganizationEventFilter, context: __S // se_tagSet omitted. +// de_AccountEntityAggregate omitted. + +// de_AccountEntityAggregatesList omitted. + // de_affectedAccountsList omitted. /** @@ -1136,6 +1209,8 @@ const de_DescribeAffectedEntitiesResponse = ( }) as any; }; +// de_DescribeEntityAggregatesForOrganizationResponse omitted. + // de_DescribeEntityAggregatesResponse omitted. // de_DescribeEventAggregatesResponse omitted. @@ -1237,6 +1312,8 @@ const de_EntityList = (output: any, context: __SerdeContext): AffectedEntity[] = return retVal; }; +// de_entityStatuses omitted. + /** * deserializeAws_json1_1Event */ @@ -1297,6 +1374,10 @@ const de_EventList = (output: any, context: __SerdeContext): Event[] => { // de_OrganizationAffectedEntitiesErrorItem omitted. +// de_OrganizationEntityAggregate omitted. + +// de_OrganizationEntityAggregatesList omitted. + /** * deserializeAws_json1_1OrganizationEvent */ diff --git a/codegen/sdk-codegen/aws-models/health.json b/codegen/sdk-codegen/aws-models/health.json index 77c68a70fd68..b47f3c92a2b2 100644 --- a/codegen/sdk-codegen/aws-models/health.json +++ b/codegen/sdk-codegen/aws-models/health.json @@ -45,6 +45,9 @@ { "target": "com.amazonaws.health#DescribeEntityAggregates" }, + { + "target": "com.amazonaws.health#DescribeEntityAggregatesForOrganization" + }, { "target": "com.amazonaws.health#DescribeEventAggregates" }, @@ -147,52 +150,56 @@ "type": "error" }, { - "conditions": [], - "type": "tree", - "rules": [ + "conditions": [ { - "conditions": [ + "fn": "booleanEquals", + "argv": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" - }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" + "ref": "UseDualStack" }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" + true + ] } - ] + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] }, { - "conditions": [], + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "isSet", + "fn": "aws.partition", "argv": [ { "ref": "Region" } - ] + ], + "assign": "PartitionResult" } ], "type": "tree", @@ -200,13 +207,22 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "booleanEquals", "argv": [ { - "ref": "Region" - } - ], - "assign": "PartitionResult" + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] } ], "type": "tree", @@ -216,278 +232,229 @@ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", + "fn": "getAttr", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://health-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + "ref": "PartitionResult" + }, + "supportsFIPS" ] } ] }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", + "fn": "getAttr", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://health-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + "ref": "PartitionResult" + }, + "supportsDualStack" ] } ] - }, + } + ], + "type": "tree", + "rules": [ { "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" + "endpoint": { + "url": "https://health-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", + "fn": "getAttr", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://health.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + "ref": "PartitionResult" + }, + "supportsFIPS" ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } - ] - }, - { - "conditions": [], + ], "type": "tree", "rules": [ { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "aws-global" - ] - } - ], + "conditions": [], "endpoint": { - "url": "https://global.health.amazonaws.com", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "health", - "signingRegion": "us-east-1" - } - ] - }, + "url": "https://health-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, "headers": {} }, "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ { - "conditions": [ + "fn": "booleanEquals", + "argv": [ + true, { - "fn": "stringEquals", + "fn": "getAttr", "argv": [ { - "ref": "Region" + "ref": "PartitionResult" }, - "aws-cn-global" + "supportsDualStack" ] } - ], - "endpoint": { - "url": "https://global.health.amazonaws.com.cn", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "health", - "signingRegion": "cn-northwest-1" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - }, + ] + } + ], + "type": "tree", + "rules": [ { "conditions": [], "endpoint": { - "url": "https://health.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://health.{Region}.{PartitionResult#dualStackDnsSuffix}", "properties": {}, "headers": {} }, "type": "endpoint" } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://global.health.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "health", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-cn-global" + ] + } + ], + "endpoint": { + "url": "https://global.health.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "health", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://health.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, - { - "conditions": [], - "error": "Invalid Configuration: Missing Region", - "type": "error" } ] + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] }, @@ -851,6 +818,39 @@ } } }, + "com.amazonaws.health#AccountEntityAggregate": { + "type": "structure", + "members": { + "accountId": { + "target": "com.amazonaws.health#eventArn", + "traits": { + "smithy.api#documentation": "

The 12-digit Amazon Web Services account numbers that contains the affected entities.

" + } + }, + "count": { + "target": "com.amazonaws.health#count", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of entities that match the filter criteria for the specified events.

" + } + }, + "statuses": { + "target": "com.amazonaws.health#entityStatuses", + "traits": { + "smithy.api#documentation": "

The number of affected entities aggregated by the entity status codes.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The number of entities in an account that are impacted by a specific event aggregated by the entity status codes.

" + } + }, + "com.amazonaws.health#AccountEntityAggregatesList": { + "type": "list", + "member": { + "target": "com.amazonaws.health#AccountEntityAggregate" + } + }, "com.amazonaws.health#AffectedEntity": { "type": "structure", "members": { @@ -1082,8 +1082,10 @@ "organizationEntityFilters": { "target": "com.amazonaws.health#OrganizationEntityFiltersList", "traits": { - "smithy.api#documentation": "

A JSON set of elements including the awsAccountId and the\n eventArn.

", - "smithy.api#required": {} + "smithy.api#deprecated": { + "message": "This property is deprecated, use organizationEntityAccountFilters instead." + }, + "smithy.api#documentation": "

A JSON set of elements including the awsAccountId and the\n eventArn.

" } }, "locale": { @@ -1103,6 +1105,12 @@ "traits": { "smithy.api#documentation": "

The maximum number of items to return in one batch, between 10 and 100, inclusive.

" } + }, + "organizationEntityAccountFilters": { + "target": "com.amazonaws.health#OrganizationEntityAccountFiltersList", + "traits": { + "smithy.api#documentation": "

A JSON set of elements including the awsAccountId, eventArn and a set of statusCodes.

" + } } }, "traits": { @@ -1201,6 +1209,54 @@ "smithy.api#idempotent": {} } }, + "com.amazonaws.health#DescribeEntityAggregatesForOrganization": { + "type": "operation", + "input": { + "target": "com.amazonaws.health#DescribeEntityAggregatesForOrganizationRequest" + }, + "output": { + "target": "com.amazonaws.health#DescribeEntityAggregatesForOrganizationResponse" + }, + "traits": { + "smithy.api#documentation": "

Returns a list of entity aggregates for your Organizations that are affected by each of the specified events.

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.health#DescribeEntityAggregatesForOrganizationRequest": { + "type": "structure", + "members": { + "eventArns": { + "target": "com.amazonaws.health#OrganizationEventArnsList", + "traits": { + "smithy.api#documentation": "

A list of event ARNs (unique identifiers). For example: \"arn:aws:health:us-east-1::event/EC2/EC2_INSTANCE_RETIREMENT_SCHEDULED/EC2_INSTANCE_RETIREMENT_SCHEDULED_ABC123-CDE456\", \"arn:aws:health:us-west-1::event/EBS/AWS_EBS_LOST_VOLUME/AWS_EBS_LOST_VOLUME_CHI789_JKL101\"\n

", + "smithy.api#required": {} + } + }, + "awsAccountIds": { + "target": "com.amazonaws.health#OrganizationAccountIdsList", + "traits": { + "smithy.api#documentation": "

A list of 12-digit Amazon Web Services account numbers that contains the affected entities.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.health#DescribeEntityAggregatesForOrganizationResponse": { + "type": "structure", + "members": { + "organizationEntityAggregates": { + "target": "com.amazonaws.health#OrganizationEntityAggregatesList", + "traits": { + "smithy.api#documentation": "

The list of entity aggregates for each of the specified accounts that are affected by each of the specified events.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.health#DescribeEntityAggregatesRequest": { "type": "structure", "members": { @@ -1748,6 +1804,33 @@ "smithy.api#idempotent": {} } }, + "com.amazonaws.health#EntityAccountFilter": { + "type": "structure", + "members": { + "eventArn": { + "target": "com.amazonaws.health#eventArn", + "traits": { + "smithy.api#documentation": "

The unique identifier for the event. The event ARN has the\narn:aws:health:event-region::event/SERVICE/EVENT_TYPE_CODE/EVENT_TYPE_PLUS_ID\n \nformat.

\n

For example, an event ARN might look like the following:

\n

\n arn:aws:health:us-east-1::event/EC2/EC2_INSTANCE_RETIREMENT_SCHEDULED/EC2_INSTANCE_RETIREMENT_SCHEDULED_ABC123-DEF456\n

", + "smithy.api#required": {} + } + }, + "awsAccountId": { + "target": "com.amazonaws.health#accountId", + "traits": { + "smithy.api#documentation": "

The 12-digit Amazon Web Services account numbers that contains the affected entities.

" + } + }, + "statusCodes": { + "target": "com.amazonaws.health#entityStatusCodeList", + "traits": { + "smithy.api#documentation": "

A list of entity status codes.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A JSON set of elements including the awsAccountId, eventArn and a set of statusCodes.

" + } + }, "com.amazonaws.health#EntityAggregate": { "type": "structure", "members": { @@ -1763,6 +1846,12 @@ "smithy.api#default": 0, "smithy.api#documentation": "

The number of entities that match the criteria for the specified events.

" } + }, + "statuses": { + "target": "com.amazonaws.health#entityStatuses", + "traits": { + "smithy.api#documentation": "

The number of affected entities aggregated by the entity status codes.

" + } } }, "traits": { @@ -2225,6 +2314,18 @@ "smithy.api#error": "client" } }, + "com.amazonaws.health#OrganizationAccountIdsList": { + "type": "list", + "member": { + "target": "com.amazonaws.health#accountId" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 25 + } + } + }, "com.amazonaws.health#OrganizationAffectedEntitiesErrorItem": { "type": "structure", "members": { @@ -2257,6 +2358,57 @@ "smithy.api#documentation": "

Error information returned when a DescribeAffectedEntitiesForOrganization operation can't find or process a\n specific entity.

" } }, + "com.amazonaws.health#OrganizationEntityAccountFiltersList": { + "type": "list", + "member": { + "target": "com.amazonaws.health#EntityAccountFilter" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } + } + }, + "com.amazonaws.health#OrganizationEntityAggregate": { + "type": "structure", + "members": { + "eventArn": { + "target": "com.amazonaws.health#eventArn", + "traits": { + "smithy.api#documentation": "

A list of event ARNs (unique identifiers). For example: \"arn:aws:health:us-east-1::event/EC2/EC2_INSTANCE_RETIREMENT_SCHEDULED/EC2_INSTANCE_RETIREMENT_SCHEDULED_ABC123-CDE456\", \"arn:aws:health:us-west-1::event/EBS/AWS_EBS_LOST_VOLUME/AWS_EBS_LOST_VOLUME_CHI789_JKL101\"\n

" + } + }, + "count": { + "target": "com.amazonaws.health#count", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of entities for the organization that match the filter criteria for the specified events.

" + } + }, + "statuses": { + "target": "com.amazonaws.health#entityStatuses", + "traits": { + "smithy.api#documentation": "

The number of affected entities aggregated by the entitiy status codes.

" + } + }, + "accounts": { + "target": "com.amazonaws.health#AccountEntityAggregatesList", + "traits": { + "smithy.api#documentation": "

A list of entity aggregates for each of the specified accounts in your organization that are affected by\n a specific event. If there are no awsAccountIds provided in the request, this field will be empty in the response.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The aggregate results of entities affected by the specified event in your organization.\n The results are aggregated by the entity status codes for the specified set of accountsIDs.

" + } + }, + "com.amazonaws.health#OrganizationEntityAggregatesList": { + "type": "list", + "member": { + "target": "com.amazonaws.health#OrganizationEntityAggregate" + } + }, "com.amazonaws.health#OrganizationEntityFiltersList": { "type": "list", "member": { @@ -2337,6 +2489,18 @@ "smithy.api#documentation": "

Summary information about an event, returned by the DescribeEventsForOrganization operation.

" } }, + "com.amazonaws.health#OrganizationEventArnsList": { + "type": "list", + "member": { + "target": "com.amazonaws.health#eventArn" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 25 + } + } + }, "com.amazonaws.health#OrganizationEventDetailFiltersList": { "type": "list", "member": { @@ -2597,6 +2761,18 @@ "traits": { "smithy.api#enumValue": "UNKNOWN" } + }, + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PENDING" + } + }, + "RESOLVED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RESOLVED" + } } } }, @@ -2608,10 +2784,19 @@ "traits": { "smithy.api#length": { "min": 1, - "max": 3 + "max": 5 } } }, + "com.amazonaws.health#entityStatuses": { + "type": "map", + "key": { + "target": "com.amazonaws.health#entityStatusCode" + }, + "value": { + "target": "com.amazonaws.health#count" + } + }, "com.amazonaws.health#entityUrl": { "type": "string" },