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// Updates fleet properties, including name and description, for a fleet. To update
15// metadata, specify the fleet ID and the property values that you want to change.
16// If successful, the fleet ID for the updated fleet is returned. Learn more
17// Setting up GameLift Fleets
18// (https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-intro.html)
19// Related operations
20//
21// * CreateFleet
22//
23// * ListFleets
24//
25// * DeleteFleet
26//
27// *
28// DescribeFleetAttributes
29//
30// * Update fleets:
31//
32// * UpdateFleetAttributes
33//
34// *
35// UpdateFleetCapacity
36//
37// * UpdateFleetPortSettings
38//
39// * UpdateRuntimeConfiguration
40//
41// *
42// StartFleetActions or StopFleetActions
43func (c *Client) UpdateFleetAttributes(ctx context.Context, params *UpdateFleetAttributesInput, optFns ...func(*Options)) (*UpdateFleetAttributesOutput, error) {
44	if params == nil {
45		params = &UpdateFleetAttributesInput{}
46	}
47
48	result, metadata, err := c.invokeOperation(ctx, "UpdateFleetAttributes", params, optFns, addOperationUpdateFleetAttributesMiddlewares)
49	if err != nil {
50		return nil, err
51	}
52
53	out := result.(*UpdateFleetAttributesOutput)
54	out.ResultMetadata = metadata
55	return out, nil
56}
57
58// Represents the input for a request operation.
59type UpdateFleetAttributesInput struct {
60
61	// A unique identifier for a fleet to update attribute metadata for. You can use
62	// either the fleet ID or ARN value.
63	//
64	// This member is required.
65	FleetId *string
66
67	// Human-readable description of a fleet.
68	Description *string
69
70	// Names of metric groups to include this fleet in. Amazon CloudWatch uses a fleet
71	// metric group is to aggregate metrics from multiple fleets. Use an existing
72	// metric group name to add this fleet to the group. Or use a new name to create a
73	// new metric group. A fleet can only be included in one metric group at a time.
74	MetricGroups []string
75
76	// A descriptive label that is associated with a fleet. Fleet names do not need to
77	// be unique.
78	Name *string
79
80	// Game session protection policy to apply to all new instances created in this
81	// fleet. Instances that already exist are not affected. You can set protection for
82	// individual instances using UpdateGameSession.
83	//
84	// * NoProtection -- The game
85	// session can be terminated during a scale-down event.
86	//
87	// * FullProtection -- If the
88	// game session is in an ACTIVE status, it cannot be terminated during a scale-down
89	// event.
90	NewGameSessionProtectionPolicy types.ProtectionPolicy
91
92	// Policy that limits the number of game sessions an individual player can create
93	// over a span of time.
94	ResourceCreationLimitPolicy *types.ResourceCreationLimitPolicy
95}
96
97// Represents the returned data in response to a request operation.
98type UpdateFleetAttributesOutput struct {
99
100	// A unique identifier for a fleet that was updated. Use either the fleet ID or ARN
101	// value.
102	FleetId *string
103
104	// Metadata pertaining to the operation's result.
105	ResultMetadata middleware.Metadata
106}
107
108func addOperationUpdateFleetAttributesMiddlewares(stack *middleware.Stack, options Options) (err error) {
109	err = stack.Serialize.Add(&awsAwsjson11_serializeOpUpdateFleetAttributes{}, middleware.After)
110	if err != nil {
111		return err
112	}
113	err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpUpdateFleetAttributes{}, middleware.After)
114	if err != nil {
115		return err
116	}
117	if err = addSetLoggerMiddleware(stack, options); err != nil {
118		return err
119	}
120	if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil {
121		return err
122	}
123	if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil {
124		return err
125	}
126	if err = addResolveEndpointMiddleware(stack, options); err != nil {
127		return err
128	}
129	if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil {
130		return err
131	}
132	if err = addRetryMiddlewares(stack, options); err != nil {
133		return err
134	}
135	if err = addHTTPSignerV4Middleware(stack, options); err != nil {
136		return err
137	}
138	if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil {
139		return err
140	}
141	if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil {
142		return err
143	}
144	if err = addClientUserAgent(stack); err != nil {
145		return err
146	}
147	if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
148		return err
149	}
150	if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
151		return err
152	}
153	if err = addOpUpdateFleetAttributesValidationMiddleware(stack); err != nil {
154		return err
155	}
156	if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdateFleetAttributes(options.Region), middleware.Before); err != nil {
157		return err
158	}
159	if err = addRequestIDRetrieverMiddleware(stack); err != nil {
160		return err
161	}
162	if err = addResponseErrorMiddleware(stack); err != nil {
163		return err
164	}
165	if err = addRequestResponseLogging(stack, options); err != nil {
166		return err
167	}
168	return nil
169}
170
171func newServiceMetadataMiddleware_opUpdateFleetAttributes(region string) *awsmiddleware.RegisterServiceMetadata {
172	return &awsmiddleware.RegisterServiceMetadata{
173		Region:        region,
174		ServiceID:     ServiceID,
175		SigningName:   "gamelift",
176		OperationName: "UpdateFleetAttributes",
177	}
178}
179