1// Code generated by smithy-go-codegen DO NOT EDIT. 2 3package ec2 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/ec2/types" 10 "github.com/aws/smithy-go/middleware" 11 smithyhttp "github.com/aws/smithy-go/transport/http" 12 "time" 13) 14 15// Modifies a Capacity Reservation's capacity and the conditions under which it is 16// to be released. You cannot change a Capacity Reservation's instance type, EBS 17// optimization, instance store settings, platform, Availability Zone, or instance 18// eligibility. If you need to modify any of these attributes, we recommend that 19// you cancel the Capacity Reservation, and then create a new one with the required 20// attributes. 21func (c *Client) ModifyCapacityReservation(ctx context.Context, params *ModifyCapacityReservationInput, optFns ...func(*Options)) (*ModifyCapacityReservationOutput, error) { 22 if params == nil { 23 params = &ModifyCapacityReservationInput{} 24 } 25 26 result, metadata, err := c.invokeOperation(ctx, "ModifyCapacityReservation", params, optFns, addOperationModifyCapacityReservationMiddlewares) 27 if err != nil { 28 return nil, err 29 } 30 31 out := result.(*ModifyCapacityReservationOutput) 32 out.ResultMetadata = metadata 33 return out, nil 34} 35 36type ModifyCapacityReservationInput struct { 37 38 // The ID of the Capacity Reservation. 39 // 40 // This member is required. 41 CapacityReservationId *string 42 43 // Reserved. Capacity Reservations you have created are accepted by default. 44 Accept bool 45 46 // Checks whether you have the required permissions for the action, without 47 // actually making the request, and provides an error response. If you have the 48 // required permissions, the error response is DryRunOperation. Otherwise, it is 49 // UnauthorizedOperation. 50 DryRun bool 51 52 // The date and time at which the Capacity Reservation expires. When a Capacity 53 // Reservation expires, the reserved capacity is released and you can no longer 54 // launch instances into it. The Capacity Reservation's state changes to expired 55 // when it reaches its end date and time. The Capacity Reservation is cancelled 56 // within an hour from the specified time. For example, if you specify 5/31/2019, 57 // 13:30:55, the Capacity Reservation is guaranteed to end between 13:30:55 and 58 // 14:30:55 on 5/31/2019. You must provide an EndDate value if EndDateType is 59 // limited. Omit EndDate if EndDateType is unlimited. 60 EndDate *time.Time 61 62 // Indicates the way in which the Capacity Reservation ends. A Capacity Reservation 63 // can have one of the following end types: 64 // 65 // * unlimited - The Capacity Reservation 66 // remains active until you explicitly cancel it. Do not provide an EndDate value 67 // if EndDateType is unlimited. 68 // 69 // * limited - The Capacity Reservation expires 70 // automatically at a specified date and time. You must provide an EndDate value if 71 // EndDateType is limited. 72 EndDateType types.EndDateType 73 74 // The number of instances for which to reserve capacity. 75 InstanceCount int32 76} 77 78type ModifyCapacityReservationOutput struct { 79 80 // Returns true if the request succeeds; otherwise, it returns an error. 81 Return bool 82 83 // Metadata pertaining to the operation's result. 84 ResultMetadata middleware.Metadata 85} 86 87func addOperationModifyCapacityReservationMiddlewares(stack *middleware.Stack, options Options) (err error) { 88 err = stack.Serialize.Add(&awsEc2query_serializeOpModifyCapacityReservation{}, middleware.After) 89 if err != nil { 90 return err 91 } 92 err = stack.Deserialize.Add(&awsEc2query_deserializeOpModifyCapacityReservation{}, middleware.After) 93 if err != nil { 94 return err 95 } 96 if err = addSetLoggerMiddleware(stack, options); err != nil { 97 return err 98 } 99 if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { 100 return err 101 } 102 if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { 103 return err 104 } 105 if err = addResolveEndpointMiddleware(stack, options); err != nil { 106 return err 107 } 108 if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { 109 return err 110 } 111 if err = addRetryMiddlewares(stack, options); err != nil { 112 return err 113 } 114 if err = addHTTPSignerV4Middleware(stack, options); err != nil { 115 return err 116 } 117 if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { 118 return err 119 } 120 if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { 121 return err 122 } 123 if err = addClientUserAgent(stack); err != nil { 124 return err 125 } 126 if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { 127 return err 128 } 129 if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { 130 return err 131 } 132 if err = addOpModifyCapacityReservationValidationMiddleware(stack); err != nil { 133 return err 134 } 135 if err = stack.Initialize.Add(newServiceMetadataMiddleware_opModifyCapacityReservation(options.Region), middleware.Before); err != nil { 136 return err 137 } 138 if err = addRequestIDRetrieverMiddleware(stack); err != nil { 139 return err 140 } 141 if err = addResponseErrorMiddleware(stack); err != nil { 142 return err 143 } 144 if err = addRequestResponseLogging(stack, options); err != nil { 145 return err 146 } 147 return nil 148} 149 150func newServiceMetadataMiddleware_opModifyCapacityReservation(region string) *awsmiddleware.RegisterServiceMetadata { 151 return &awsmiddleware.RegisterServiceMetadata{ 152 Region: region, 153 ServiceID: ServiceID, 154 SigningName: "ec2", 155 OperationName: "ModifyCapacityReservation", 156 } 157} 158