1// Code generated by smithy-go-codegen DO NOT EDIT. 2 3package gamelift 4 5import ( 6 "context" 7 awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" 8 "github.com/aws/aws-sdk-go-v2/aws/signer/v4" 9 "github.com/aws/aws-sdk-go-v2/service/gamelift/types" 10 "github.com/aws/smithy-go/middleware" 11 smithyhttp "github.com/aws/smithy-go/transport/http" 12) 13 14// This operation is used with the GameLift FleetIQ solution and game server 15// groups. Terminates a game server group and permanently deletes the game server 16// group record. You have several options for how these resources are impacted when 17// deleting the game server group. Depending on the type of delete operation 18// selected, this operation might affect these resources: 19// 20// * The game server 21// group 22// 23// * The corresponding Auto Scaling group 24// 25// * All game servers that are 26// currently running in the group 27// 28// To delete a game server group, identify the game 29// server group to delete and specify the type of delete operation to initiate. 30// Game server groups can only be deleted if they are in ACTIVE or ERROR status. If 31// the delete request is successful, a series of operations are kicked off. The 32// game server group status is changed to DELETE_SCHEDULED, which prevents new game 33// servers from being registered and stops automatic scaling activity. Once all 34// game servers in the game server group are deregistered, GameLift FleetIQ can 35// begin deleting resources. If any of the delete operations fail, the game server 36// group is placed in ERROR status. GameLift FleetIQ emits delete events to Amazon 37// CloudWatch. Learn more GameLift FleetIQ Guide 38// (https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/gsg-intro.html) 39// Related actions CreateGameServerGroup | ListGameServerGroups | 40// DescribeGameServerGroup | UpdateGameServerGroup | DeleteGameServerGroup | 41// ResumeGameServerGroup | SuspendGameServerGroup | DescribeGameServerInstances | 42// All APIs by task 43// (https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/reference-awssdk-fleetiq.html) 44func (c *Client) DeleteGameServerGroup(ctx context.Context, params *DeleteGameServerGroupInput, optFns ...func(*Options)) (*DeleteGameServerGroupOutput, error) { 45 if params == nil { 46 params = &DeleteGameServerGroupInput{} 47 } 48 49 result, metadata, err := c.invokeOperation(ctx, "DeleteGameServerGroup", params, optFns, addOperationDeleteGameServerGroupMiddlewares) 50 if err != nil { 51 return nil, err 52 } 53 54 out := result.(*DeleteGameServerGroupOutput) 55 out.ResultMetadata = metadata 56 return out, nil 57} 58 59type DeleteGameServerGroupInput struct { 60 61 // A unique identifier for the game server group. Use either the GameServerGroup 62 // name or ARN value. 63 // 64 // This member is required. 65 GameServerGroupName *string 66 67 // The type of delete to perform. Options include the following: 68 // 69 // * SAFE_DELETE – 70 // (default) Terminates the game server group and EC2 Auto Scaling group only when 71 // it has no game servers that are in UTILIZED status. 72 // 73 // * FORCE_DELETE – Terminates 74 // the game server group, including all active game servers regardless of their 75 // utilization status, and the EC2 Auto Scaling group. 76 // 77 // * RETAIN – Does a safe 78 // delete of the game server group but retains the EC2 Auto Scaling group as is. 79 DeleteOption types.GameServerGroupDeleteOption 80} 81 82type DeleteGameServerGroupOutput struct { 83 84 // An object that describes the deleted game server group resource, with status 85 // updated to DELETE_SCHEDULED. 86 GameServerGroup *types.GameServerGroup 87 88 // Metadata pertaining to the operation's result. 89 ResultMetadata middleware.Metadata 90} 91 92func addOperationDeleteGameServerGroupMiddlewares(stack *middleware.Stack, options Options) (err error) { 93 err = stack.Serialize.Add(&awsAwsjson11_serializeOpDeleteGameServerGroup{}, middleware.After) 94 if err != nil { 95 return err 96 } 97 err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDeleteGameServerGroup{}, middleware.After) 98 if err != nil { 99 return err 100 } 101 if err = addSetLoggerMiddleware(stack, options); err != nil { 102 return err 103 } 104 if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { 105 return err 106 } 107 if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { 108 return err 109 } 110 if err = addResolveEndpointMiddleware(stack, options); err != nil { 111 return err 112 } 113 if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { 114 return err 115 } 116 if err = addRetryMiddlewares(stack, options); err != nil { 117 return err 118 } 119 if err = addHTTPSignerV4Middleware(stack, options); err != nil { 120 return err 121 } 122 if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { 123 return err 124 } 125 if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { 126 return err 127 } 128 if err = addClientUserAgent(stack); err != nil { 129 return err 130 } 131 if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { 132 return err 133 } 134 if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { 135 return err 136 } 137 if err = addOpDeleteGameServerGroupValidationMiddleware(stack); err != nil { 138 return err 139 } 140 if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteGameServerGroup(options.Region), middleware.Before); err != nil { 141 return err 142 } 143 if err = addRequestIDRetrieverMiddleware(stack); err != nil { 144 return err 145 } 146 if err = addResponseErrorMiddleware(stack); err != nil { 147 return err 148 } 149 if err = addRequestResponseLogging(stack, options); err != nil { 150 return err 151 } 152 return nil 153} 154 155func newServiceMetadataMiddleware_opDeleteGameServerGroup(region string) *awsmiddleware.RegisterServiceMetadata { 156 return &awsmiddleware.RegisterServiceMetadata{ 157 Region: region, 158 ServiceID: ServiceID, 159 SigningName: "gamelift", 160 OperationName: "DeleteGameServerGroup", 161 } 162} 163