1// Code generated by smithy-go-codegen DO NOT EDIT. 2 3package ssmincidents 4 5import ( 6 "context" 7 "fmt" 8 awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" 9 "github.com/aws/aws-sdk-go-v2/aws/signer/v4" 10 "github.com/aws/aws-sdk-go-v2/service/ssmincidents/types" 11 "github.com/aws/smithy-go/middleware" 12 smithyhttp "github.com/aws/smithy-go/transport/http" 13) 14 15// Used to start an incident from CloudWatch alarms, EventBridge events, or 16// manually. 17func (c *Client) StartIncident(ctx context.Context, params *StartIncidentInput, optFns ...func(*Options)) (*StartIncidentOutput, error) { 18 if params == nil { 19 params = &StartIncidentInput{} 20 } 21 22 result, metadata, err := c.invokeOperation(ctx, "StartIncident", params, optFns, c.addOperationStartIncidentMiddlewares) 23 if err != nil { 24 return nil, err 25 } 26 27 out := result.(*StartIncidentOutput) 28 out.ResultMetadata = metadata 29 return out, nil 30} 31 32type StartIncidentInput struct { 33 34 // The Amazon Resource Name (ARN) of the response plan that pre-defines summary, 35 // chat channels, SNS topics, runbooks, title, and impact of the incident. 36 // 37 // This member is required. 38 ResponsePlanArn *string 39 40 // A token ensuring that the action is called only once with the specified details. 41 ClientToken *string 42 43 // Defines the impact to the customers. Providing an impact overwrites the impact 44 // provided by a response plan. Possible impacts: 45 // 46 // * 1 - Critical impact, this 47 // typically relates to full application failure that impacts many to all 48 // customers. 49 // 50 // * 2 - High impact, partial application failure with impact to many 51 // customers. 52 // 53 // * 3 - Medium impact, the application is providing reduced service to 54 // customers. 55 // 56 // * 4 - Low impact, customer might aren't impacted by the problem 57 // yet. 58 // 59 // * 5 - No impact, customers aren't currently impacted but urgent action is 60 // needed to avoid impact. 61 Impact *int32 62 63 // Add related items to the incident for other responders to use. Related items are 64 // AWS resources, external links, or files uploaded to an S3 bucket. 65 RelatedItems []types.RelatedItem 66 67 // Provide a title for the incident. Providing a title overwrites the title 68 // provided by the response plan. 69 Title *string 70 71 // Details of what created the incident record in Incident Manager. 72 TriggerDetails *types.TriggerDetails 73 74 noSmithyDocumentSerde 75} 76 77type StartIncidentOutput struct { 78 79 // The ARN of the newly created incident record. 80 // 81 // This member is required. 82 IncidentRecordArn *string 83 84 // Metadata pertaining to the operation's result. 85 ResultMetadata middleware.Metadata 86 87 noSmithyDocumentSerde 88} 89 90func (c *Client) addOperationStartIncidentMiddlewares(stack *middleware.Stack, options Options) (err error) { 91 err = stack.Serialize.Add(&awsRestjson1_serializeOpStartIncident{}, middleware.After) 92 if err != nil { 93 return err 94 } 95 err = stack.Deserialize.Add(&awsRestjson1_deserializeOpStartIncident{}, middleware.After) 96 if err != nil { 97 return err 98 } 99 if err = addSetLoggerMiddleware(stack, options); err != nil { 100 return err 101 } 102 if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { 103 return err 104 } 105 if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { 106 return err 107 } 108 if err = addResolveEndpointMiddleware(stack, options); err != nil { 109 return err 110 } 111 if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { 112 return err 113 } 114 if err = addRetryMiddlewares(stack, options); err != nil { 115 return err 116 } 117 if err = addHTTPSignerV4Middleware(stack, options); err != nil { 118 return err 119 } 120 if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { 121 return err 122 } 123 if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { 124 return err 125 } 126 if err = addClientUserAgent(stack); err != nil { 127 return err 128 } 129 if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { 130 return err 131 } 132 if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { 133 return err 134 } 135 if err = addIdempotencyToken_opStartIncidentMiddleware(stack, options); err != nil { 136 return err 137 } 138 if err = addOpStartIncidentValidationMiddleware(stack); err != nil { 139 return err 140 } 141 if err = stack.Initialize.Add(newServiceMetadataMiddleware_opStartIncident(options.Region), middleware.Before); err != nil { 142 return err 143 } 144 if err = addRequestIDRetrieverMiddleware(stack); err != nil { 145 return err 146 } 147 if err = addResponseErrorMiddleware(stack); err != nil { 148 return err 149 } 150 if err = addRequestResponseLogging(stack, options); err != nil { 151 return err 152 } 153 return nil 154} 155 156type idempotencyToken_initializeOpStartIncident struct { 157 tokenProvider IdempotencyTokenProvider 158} 159 160func (*idempotencyToken_initializeOpStartIncident) ID() string { 161 return "OperationIdempotencyTokenAutoFill" 162} 163 164func (m *idempotencyToken_initializeOpStartIncident) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( 165 out middleware.InitializeOutput, metadata middleware.Metadata, err error, 166) { 167 if m.tokenProvider == nil { 168 return next.HandleInitialize(ctx, in) 169 } 170 171 input, ok := in.Parameters.(*StartIncidentInput) 172 if !ok { 173 return out, metadata, fmt.Errorf("expected middleware input to be of type *StartIncidentInput ") 174 } 175 176 if input.ClientToken == nil { 177 t, err := m.tokenProvider.GetIdempotencyToken() 178 if err != nil { 179 return out, metadata, err 180 } 181 input.ClientToken = &t 182 } 183 return next.HandleInitialize(ctx, in) 184} 185func addIdempotencyToken_opStartIncidentMiddleware(stack *middleware.Stack, cfg Options) error { 186 return stack.Initialize.Add(&idempotencyToken_initializeOpStartIncident{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) 187} 188 189func newServiceMetadataMiddleware_opStartIncident(region string) *awsmiddleware.RegisterServiceMetadata { 190 return &awsmiddleware.RegisterServiceMetadata{ 191 Region: region, 192 ServiceID: ServiceID, 193 SigningName: "ssm-incidents", 194 OperationName: "StartIncident", 195 } 196} 197