1// Code generated by smithy-go-codegen DO NOT EDIT. 2 3package cloudformation 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/cloudformation/types" 11 "github.com/aws/smithy-go/middleware" 12 smithyhttp "github.com/aws/smithy-go/transport/http" 13) 14 15// Deletes stack instances for the specified accounts, in the specified Regions. 16func (c *Client) DeleteStackInstances(ctx context.Context, params *DeleteStackInstancesInput, optFns ...func(*Options)) (*DeleteStackInstancesOutput, error) { 17 if params == nil { 18 params = &DeleteStackInstancesInput{} 19 } 20 21 result, metadata, err := c.invokeOperation(ctx, "DeleteStackInstances", params, optFns, c.addOperationDeleteStackInstancesMiddlewares) 22 if err != nil { 23 return nil, err 24 } 25 26 out := result.(*DeleteStackInstancesOutput) 27 out.ResultMetadata = metadata 28 return out, nil 29} 30 31type DeleteStackInstancesInput struct { 32 33 // The Regions where you want to delete stack set instances. 34 // 35 // This member is required. 36 Regions []string 37 38 // Removes the stack instances from the specified stack set, but doesn't delete the 39 // stacks. You can't reassociate a retained stack or add an existing, saved stack 40 // to a new stack set. For more information, see Stack set operation options 41 // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options). 42 // 43 // This member is required. 44 RetainStacks bool 45 46 // The name or unique ID of the stack set that you want to delete stack instances 47 // for. 48 // 49 // This member is required. 50 StackSetName *string 51 52 // [Self-managed permissions] The names of the Amazon Web Services accounts that 53 // you want to delete stack instances for. You can specify Accounts or 54 // DeploymentTargets, but not both. 55 Accounts []string 56 57 // [Service-managed permissions] Specifies whether you are acting as an account 58 // administrator in the organization's management account or as a delegated 59 // administrator in a member account. By default, SELF is specified. Use SELF for 60 // stack sets with self-managed permissions. 61 // 62 // * If you are signed in to the 63 // management account, specify SELF. 64 // 65 // * If you are signed in to a delegated 66 // administrator account, specify DELEGATED_ADMIN. Your Amazon Web Services account 67 // must be registered as a delegated administrator in the management account. For 68 // more information, see Register a delegated administrator 69 // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) 70 // in the CloudFormation User Guide. 71 CallAs types.CallAs 72 73 // [Service-managed permissions] The Organizations accounts from which to delete 74 // stack instances. You can specify Accounts or DeploymentTargets, but not both. 75 DeploymentTargets *types.DeploymentTargets 76 77 // The unique identifier for this stack set operation. If you don't specify an 78 // operation ID, the SDK generates one automatically. The operation ID also 79 // functions as an idempotency token, to ensure that CloudFormation performs the 80 // stack set operation only once, even if you retry the request multiple times. You 81 // can retry stack set operation requests to ensure that CloudFormation 82 // successfully received them. Repeating this stack set operation with a new 83 // operation ID retries all stack instances whose status is OUTDATED. 84 OperationId *string 85 86 // Preferences for how CloudFormation performs this stack set operation. 87 OperationPreferences *types.StackSetOperationPreferences 88 89 noSmithyDocumentSerde 90} 91 92type DeleteStackInstancesOutput struct { 93 94 // The unique identifier for this stack set operation. 95 OperationId *string 96 97 // Metadata pertaining to the operation's result. 98 ResultMetadata middleware.Metadata 99 100 noSmithyDocumentSerde 101} 102 103func (c *Client) addOperationDeleteStackInstancesMiddlewares(stack *middleware.Stack, options Options) (err error) { 104 err = stack.Serialize.Add(&awsAwsquery_serializeOpDeleteStackInstances{}, middleware.After) 105 if err != nil { 106 return err 107 } 108 err = stack.Deserialize.Add(&awsAwsquery_deserializeOpDeleteStackInstances{}, middleware.After) 109 if err != nil { 110 return err 111 } 112 if err = addSetLoggerMiddleware(stack, options); err != nil { 113 return err 114 } 115 if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { 116 return err 117 } 118 if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { 119 return err 120 } 121 if err = addResolveEndpointMiddleware(stack, options); err != nil { 122 return err 123 } 124 if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { 125 return err 126 } 127 if err = addRetryMiddlewares(stack, options); err != nil { 128 return err 129 } 130 if err = addHTTPSignerV4Middleware(stack, options); err != nil { 131 return err 132 } 133 if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { 134 return err 135 } 136 if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { 137 return err 138 } 139 if err = addClientUserAgent(stack); err != nil { 140 return err 141 } 142 if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { 143 return err 144 } 145 if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { 146 return err 147 } 148 if err = addIdempotencyToken_opDeleteStackInstancesMiddleware(stack, options); err != nil { 149 return err 150 } 151 if err = addOpDeleteStackInstancesValidationMiddleware(stack); err != nil { 152 return err 153 } 154 if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteStackInstances(options.Region), middleware.Before); err != nil { 155 return err 156 } 157 if err = addRequestIDRetrieverMiddleware(stack); err != nil { 158 return err 159 } 160 if err = addResponseErrorMiddleware(stack); err != nil { 161 return err 162 } 163 if err = addRequestResponseLogging(stack, options); err != nil { 164 return err 165 } 166 return nil 167} 168 169type idempotencyToken_initializeOpDeleteStackInstances struct { 170 tokenProvider IdempotencyTokenProvider 171} 172 173func (*idempotencyToken_initializeOpDeleteStackInstances) ID() string { 174 return "OperationIdempotencyTokenAutoFill" 175} 176 177func (m *idempotencyToken_initializeOpDeleteStackInstances) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( 178 out middleware.InitializeOutput, metadata middleware.Metadata, err error, 179) { 180 if m.tokenProvider == nil { 181 return next.HandleInitialize(ctx, in) 182 } 183 184 input, ok := in.Parameters.(*DeleteStackInstancesInput) 185 if !ok { 186 return out, metadata, fmt.Errorf("expected middleware input to be of type *DeleteStackInstancesInput ") 187 } 188 189 if input.OperationId == nil { 190 t, err := m.tokenProvider.GetIdempotencyToken() 191 if err != nil { 192 return out, metadata, err 193 } 194 input.OperationId = &t 195 } 196 return next.HandleInitialize(ctx, in) 197} 198func addIdempotencyToken_opDeleteStackInstancesMiddleware(stack *middleware.Stack, cfg Options) error { 199 return stack.Initialize.Add(&idempotencyToken_initializeOpDeleteStackInstances{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) 200} 201 202func newServiceMetadataMiddleware_opDeleteStackInstances(region string) *awsmiddleware.RegisterServiceMetadata { 203 return &awsmiddleware.RegisterServiceMetadata{ 204 Region: region, 205 ServiceID: ServiceID, 206 SigningName: "cloudformation", 207 OperationName: "DeleteStackInstances", 208 } 209} 210