Skip to content

Commit 7b5617c

Browse files
author
awstools
committed
feat(client-ssm-incidents): Add support for PagerDuty integrations on ResponsePlan, IncidentRecord, and RelatedItem APIs
1 parent 1d04c01 commit 7b5617c

File tree

2 files changed

+299
-4
lines changed

2 files changed

+299
-4
lines changed

clients/client-ssm-incidents/src/models/models_0.ts

Lines changed: 173 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -615,6 +615,70 @@ export interface IncidentTemplate {
615615
incidentTags?: Record<string, string>;
616616
}
617617

618+
/**
619+
* <p>Details about the PagerDuty service where the response plan creates an
620+
* incident.</p>
621+
*/
622+
export interface PagerDutyIncidentConfiguration {
623+
/**
624+
* <p>The ID of the PagerDuty service that the response plan associates with an incident
625+
* when it launches.</p>
626+
*/
627+
serviceId: string | undefined;
628+
}
629+
630+
/**
631+
* <p>Details about the PagerDuty configuration for a response plan.</p>
632+
*/
633+
export interface PagerDutyConfiguration {
634+
/**
635+
* <p>The name of the PagerDuty configuration.</p>
636+
*/
637+
name: string | undefined;
638+
639+
/**
640+
* <p>The ID of the Amazon Web Services Secrets Manager secret that stores your PagerDuty key, either a General Access REST API Key or
641+
* User Token REST API Key, and other user credentials.</p>
642+
*/
643+
secretId: string | undefined;
644+
645+
/**
646+
* <p>Details about the PagerDuty service associated with the configuration.</p>
647+
*/
648+
pagerDutyIncidentConfiguration: PagerDutyIncidentConfiguration | undefined;
649+
}
650+
651+
/**
652+
* <p>Information about third-party services integrated into a response plan.</p>
653+
*/
654+
export type Integration = Integration.PagerDutyConfigurationMember | Integration.$UnknownMember;
655+
656+
export namespace Integration {
657+
/**
658+
* <p>Information about the PagerDuty service where the response plan creates an
659+
* incident.</p>
660+
*/
661+
export interface PagerDutyConfigurationMember {
662+
pagerDutyConfiguration: PagerDutyConfiguration;
663+
$unknown?: never;
664+
}
665+
666+
export interface $UnknownMember {
667+
pagerDutyConfiguration?: never;
668+
$unknown: [string, any];
669+
}
670+
671+
export interface Visitor<T> {
672+
pagerDutyConfiguration: (value: PagerDutyConfiguration) => T;
673+
_: (name: string, value: any) => T;
674+
}
675+
676+
export const visit = <T>(value: Integration, visitor: Visitor<T>): T => {
677+
if (value.pagerDutyConfiguration !== undefined) return visitor.pagerDutyConfiguration(value.pagerDutyConfiguration);
678+
return visitor._(value.$unknown[0], value.$unknown[1]);
679+
};
680+
}
681+
618682
export interface CreateResponsePlanInput {
619683
/**
620684
* <p>A token ensuring that the operation is called only once with the specified
@@ -658,6 +722,11 @@ export interface CreateResponsePlanInput {
658722
* <p>A list of tags that you are adding to the response plan.</p>
659723
*/
660724
tags?: Record<string, string>;
725+
726+
/**
727+
* <p>Information about third-party services integrated into the response plan.</p>
728+
*/
729+
integrations?: Integration[];
661730
}
662731

663732
export interface CreateResponsePlanOutput {
@@ -700,8 +769,7 @@ export class ResourceNotFoundException extends __BaseException {
700769

701770
/**
702771
* <p>An item referenced in a <code>TimelineEvent</code> that is involved in or somehow
703-
* associated with an incident. You can specify an Amazon Resource Name (ARN) for an Amazon Web Services
704-
* resource or a <code>RelatedItem</code> ID.</p>
772+
* associated with an incident. You can specify an Amazon Resource Name (ARN) for an Amazon Web Services resource or a <code>RelatedItem</code> ID.</p>
705773
*/
706774
export type EventReference =
707775
| EventReference.RelatedItemIdMember
@@ -777,7 +845,13 @@ export interface CreateTimelineEventInput {
777845
eventData: string | undefined;
778846

779847
/**
780-
* <p>Adds one or more references to the <code>TimelineEvent</code>. A reference can be an Amazon Web Services resource involved in the incident or in some way associated with it. When you specify a reference, you enter the Amazon Resource Name (ARN) of the resource. You can also specify a related item. As an example, you could specify the ARN of an Amazon DynamoDB (DynamoDB) table. The table for this example is the resource. You could also specify a Amazon CloudWatch metric for that table. The metric is the related item.</p>
848+
* <p>Adds one or more references to the <code>TimelineEvent</code>. A reference can be an
849+
* Amazon Web Services resource involved in the incident or in some way associated with
850+
* it. When you specify a reference, you enter the Amazon Resource Name (ARN) of the
851+
* resource. You can also specify a related item. As an example, you could specify the ARN
852+
* of an Amazon DynamoDB (DynamoDB) table. The table for this example is
853+
* the resource. You could also specify a Amazon CloudWatch metric for that table. The
854+
* metric is the related item.</p>
781855
*/
782856
eventReferences?: EventReference[];
783857
}
@@ -1264,6 +1338,12 @@ export interface GetResponsePlanOutput {
12641338
* <p>The actions that this response plan takes at the beginning of the incident.</p>
12651339
*/
12661340
actions?: Action[];
1341+
1342+
/**
1343+
* <p>Information about third-party services integrated into the Incident Manager response
1344+
* plan.</p>
1345+
*/
1346+
integrations?: Integration[];
12671347
}
12681348

12691349
export interface GetTimelineEventInput {
@@ -1381,12 +1461,37 @@ export enum ItemType {
13811461
TASK = "TASK",
13821462
}
13831463

1464+
/**
1465+
* <p>Details about the PagerDuty incident associated with an incident created by an
1466+
* Incident Manager response plan.</p>
1467+
*/
1468+
export interface PagerDutyIncidentDetail {
1469+
/**
1470+
* <p>The ID of the incident associated with the PagerDuty service for the response
1471+
* plan.</p>
1472+
*/
1473+
id: string | undefined;
1474+
1475+
/**
1476+
* <p>Indicates whether to resolve the PagerDuty incident when you resolve the associated
1477+
* Incident Manager incident.</p>
1478+
*/
1479+
autoResolve?: boolean;
1480+
1481+
/**
1482+
* <p>The ID of the Amazon Web Services Secrets Manager secret that stores your PagerDuty key, either a General Access REST API Key or
1483+
* User Token REST API Key, and other user credentials.</p>
1484+
*/
1485+
secretId?: string;
1486+
}
1487+
13841488
/**
13851489
* <p>Describes a related item.</p>
13861490
*/
13871491
export type ItemValue =
13881492
| ItemValue.ArnMember
13891493
| ItemValue.MetricDefinitionMember
1494+
| ItemValue.PagerDutyIncidentDetailMember
13901495
| ItemValue.UrlMember
13911496
| ItemValue.$UnknownMember;
13921497

@@ -1399,6 +1504,7 @@ export namespace ItemValue {
13991504
arn: string;
14001505
url?: never;
14011506
metricDefinition?: never;
1507+
pagerDutyIncidentDetail?: never;
14021508
$unknown?: never;
14031509
}
14041510

@@ -1409,6 +1515,7 @@ export namespace ItemValue {
14091515
arn?: never;
14101516
url: string;
14111517
metricDefinition?: never;
1518+
pagerDutyIncidentDetail?: never;
14121519
$unknown?: never;
14131520
}
14141521

@@ -1419,27 +1526,43 @@ export namespace ItemValue {
14191526
arn?: never;
14201527
url?: never;
14211528
metricDefinition: string;
1529+
pagerDutyIncidentDetail?: never;
1530+
$unknown?: never;
1531+
}
1532+
1533+
/**
1534+
* <p>Details about an incident that is associated with a PagerDuty incident.</p>
1535+
*/
1536+
export interface PagerDutyIncidentDetailMember {
1537+
arn?: never;
1538+
url?: never;
1539+
metricDefinition?: never;
1540+
pagerDutyIncidentDetail: PagerDutyIncidentDetail;
14221541
$unknown?: never;
14231542
}
14241543

14251544
export interface $UnknownMember {
14261545
arn?: never;
14271546
url?: never;
14281547
metricDefinition?: never;
1548+
pagerDutyIncidentDetail?: never;
14291549
$unknown: [string, any];
14301550
}
14311551

14321552
export interface Visitor<T> {
14331553
arn: (value: string) => T;
14341554
url: (value: string) => T;
14351555
metricDefinition: (value: string) => T;
1556+
pagerDutyIncidentDetail: (value: PagerDutyIncidentDetail) => T;
14361557
_: (name: string, value: any) => T;
14371558
}
14381559

14391560
export const visit = <T>(value: ItemValue, visitor: Visitor<T>): T => {
14401561
if (value.arn !== undefined) return visitor.arn(value.arn);
14411562
if (value.url !== undefined) return visitor.url(value.url);
14421563
if (value.metricDefinition !== undefined) return visitor.metricDefinition(value.metricDefinition);
1564+
if (value.pagerDutyIncidentDetail !== undefined)
1565+
return visitor.pagerDutyIncidentDetail(value.pagerDutyIncidentDetail);
14431566
return visitor._(value.$unknown[0], value.$unknown[1]);
14441567
};
14451568
}
@@ -2227,6 +2350,11 @@ export interface UpdateResponsePlanInput {
22272350
* <code>TagResource</code> API action for the incident record resource.</p>
22282351
*/
22292352
incidentTemplateTags?: Record<string, string>;
2353+
2354+
/**
2355+
* <p>Information about third-party services integrated into the response plan.</p>
2356+
*/
2357+
integrations?: Integration[];
22302358
}
22312359

22322360
export interface UpdateResponsePlanOutput {}
@@ -2266,7 +2394,13 @@ export interface UpdateTimelineEventInput {
22662394
eventData?: string;
22672395

22682396
/**
2269-
* <p>Updates all existing references in a <code>TimelineEvent</code>. A reference can be an Amazon Web Services resource involved in the incident or in some way associated with it. When you specify a reference, you enter the Amazon Resource Name (ARN) of the resource. You can also specify a related item. As an example, you could specify the ARN of an Amazon DynamoDB (DynamoDB) table. The table for this example is the resource. You could also specify a Amazon CloudWatch metric for that table. The metric is the related item.</p>
2397+
* <p>Updates all existing references in a <code>TimelineEvent</code>. A reference can be an
2398+
* Amazon Web Services resource involved in the incident or in some way associated with
2399+
* it. When you specify a reference, you enter the Amazon Resource Name (ARN) of the
2400+
* resource. You can also specify a related item. As an example, you could specify the ARN
2401+
* of an Amazon DynamoDB (DynamoDB) table. The table for this example is
2402+
* the resource. You could also specify a Amazon CloudWatch metric for that table. The
2403+
* metric is the related item.</p>
22702404
* <important>
22712405
* <p>This update action overrides all existing references. If you want to keep existing
22722406
* references, you must specify them in the call. If you don't, this action removes
@@ -2398,6 +2532,29 @@ export const IncidentTemplateFilterSensitiveLog = (obj: IncidentTemplate): any =
23982532
}),
23992533
});
24002534

2535+
/**
2536+
* @internal
2537+
*/
2538+
export const PagerDutyIncidentConfigurationFilterSensitiveLog = (obj: PagerDutyIncidentConfiguration): any => ({
2539+
...obj,
2540+
});
2541+
2542+
/**
2543+
* @internal
2544+
*/
2545+
export const PagerDutyConfigurationFilterSensitiveLog = (obj: PagerDutyConfiguration): any => ({
2546+
...obj,
2547+
});
2548+
2549+
/**
2550+
* @internal
2551+
*/
2552+
export const IntegrationFilterSensitiveLog = (obj: Integration): any => {
2553+
if (obj.pagerDutyConfiguration !== undefined)
2554+
return { pagerDutyConfiguration: PagerDutyConfigurationFilterSensitiveLog(obj.pagerDutyConfiguration) };
2555+
if (obj.$unknown !== undefined) return { [obj.$unknown[0]]: "UNKNOWN" };
2556+
};
2557+
24012558
/**
24022559
* @internal
24032560
*/
@@ -2406,6 +2563,7 @@ export const CreateResponsePlanInputFilterSensitiveLog = (obj: CreateResponsePla
24062563
...(obj.incidentTemplate && { incidentTemplate: IncidentTemplateFilterSensitiveLog(obj.incidentTemplate) }),
24072564
...(obj.chatChannel && { chatChannel: ChatChannelFilterSensitiveLog(obj.chatChannel) }),
24082565
...(obj.actions && { actions: obj.actions.map((item) => ActionFilterSensitiveLog(item)) }),
2566+
...(obj.integrations && { integrations: obj.integrations.map((item) => IntegrationFilterSensitiveLog(item)) }),
24092567
});
24102568

24112569
/**
@@ -2636,6 +2794,7 @@ export const GetResponsePlanOutputFilterSensitiveLog = (obj: GetResponsePlanOutp
26362794
...(obj.incidentTemplate && { incidentTemplate: IncidentTemplateFilterSensitiveLog(obj.incidentTemplate) }),
26372795
...(obj.chatChannel && { chatChannel: ChatChannelFilterSensitiveLog(obj.chatChannel) }),
26382796
...(obj.actions && { actions: obj.actions.map((item) => ActionFilterSensitiveLog(item)) }),
2797+
...(obj.integrations && { integrations: obj.integrations.map((item) => IntegrationFilterSensitiveLog(item)) }),
26392798
});
26402799

26412800
/**
@@ -2670,13 +2829,22 @@ export const IncidentRecordSummaryFilterSensitiveLog = (obj: IncidentRecordSumma
26702829
...obj,
26712830
});
26722831

2832+
/**
2833+
* @internal
2834+
*/
2835+
export const PagerDutyIncidentDetailFilterSensitiveLog = (obj: PagerDutyIncidentDetail): any => ({
2836+
...obj,
2837+
});
2838+
26732839
/**
26742840
* @internal
26752841
*/
26762842
export const ItemValueFilterSensitiveLog = (obj: ItemValue): any => {
26772843
if (obj.arn !== undefined) return { arn: obj.arn };
26782844
if (obj.url !== undefined) return { url: obj.url };
26792845
if (obj.metricDefinition !== undefined) return { metricDefinition: obj.metricDefinition };
2846+
if (obj.pagerDutyIncidentDetail !== undefined)
2847+
return { pagerDutyIncidentDetail: PagerDutyIncidentDetailFilterSensitiveLog(obj.pagerDutyIncidentDetail) };
26802848
if (obj.$unknown !== undefined) return { [obj.$unknown[0]]: "UNKNOWN" };
26812849
};
26822850

@@ -2949,6 +3117,7 @@ export const UpdateResponsePlanInputFilterSensitiveLog = (obj: UpdateResponsePla
29493117
}),
29503118
...(obj.chatChannel && { chatChannel: ChatChannelFilterSensitiveLog(obj.chatChannel) }),
29513119
...(obj.actions && { actions: obj.actions.map((item) => ActionFilterSensitiveLog(item)) }),
3120+
...(obj.integrations && { integrations: obj.integrations.map((item) => IntegrationFilterSensitiveLog(item)) }),
29523121
});
29533122

29543123
/**

0 commit comments

Comments
 (0)