1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235
|
// Code generated by smithy-go-codegen DO NOT EDIT.
package ec2
import (
"context"
"fmt"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
"github.com/aws/aws-sdk-go-v2/service/ec2/types"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
)
// Modifies the specified attribute of the specified instance. You can specify
// only one attribute at a time. Note: Using this action to change the security
// groups associated with an elastic network interface (ENI) attached to an
// instance can result in an error if the instance has more than one ENI. To change
// the security groups associated with an ENI attached to an instance that has
// multiple ENIs, we recommend that you use the ModifyNetworkInterfaceAttribute
// action. To modify some attributes, the instance must be stopped. For more
// information, see Modify a stopped instance (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_ChangingAttributesWhileInstanceStopped.html)
// in the Amazon EC2 User Guide.
func (c *Client) ModifyInstanceAttribute(ctx context.Context, params *ModifyInstanceAttributeInput, optFns ...func(*Options)) (*ModifyInstanceAttributeOutput, error) {
if params == nil {
params = &ModifyInstanceAttributeInput{}
}
result, metadata, err := c.invokeOperation(ctx, "ModifyInstanceAttribute", params, optFns, c.addOperationModifyInstanceAttributeMiddlewares)
if err != nil {
return nil, err
}
out := result.(*ModifyInstanceAttributeOutput)
out.ResultMetadata = metadata
return out, nil
}
type ModifyInstanceAttributeInput struct {
// The ID of the instance.
//
// This member is required.
InstanceId *string
// The name of the attribute to modify. You can modify the following attributes
// only: disableApiTermination | instanceType | kernel | ramdisk |
// instanceInitiatedShutdownBehavior | blockDeviceMapping | userData |
// sourceDestCheck | groupSet | ebsOptimized | sriovNetSupport | enaSupport |
// nvmeSupport | disableApiStop | enclaveOptions
Attribute types.InstanceAttributeName
// Modifies the DeleteOnTermination attribute for volumes that are currently
// attached. The volume must be owned by the caller. If no value is specified for
// DeleteOnTermination , the default is true and the volume is deleted when the
// instance is terminated. To add instance store volumes to an Amazon EBS-backed
// instance, you must add them when you launch the instance. For more information,
// see Update the block device mapping when launching an instance (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html#Using_OverridingAMIBDM)
// in the Amazon EC2 User Guide.
BlockDeviceMappings []types.InstanceBlockDeviceMappingSpecification
// Indicates whether an instance is enabled for stop protection. For more
// information, see Stop Protection (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection)
// .
DisableApiStop *types.AttributeBooleanValue
// If the value is true , you can't terminate the instance using the Amazon EC2
// console, CLI, or API; otherwise, you can. You cannot use this parameter for Spot
// Instances.
DisableApiTermination *types.AttributeBooleanValue
// Checks whether you have the required permissions for the action, without
// actually making the request, and provides an error response. If you have the
// required permissions, the error response is DryRunOperation . Otherwise, it is
// UnauthorizedOperation .
DryRun *bool
// Specifies whether the instance is optimized for Amazon EBS I/O. This
// optimization provides dedicated throughput to Amazon EBS and an optimized
// configuration stack to provide optimal EBS I/O performance. This optimization
// isn't available with all instance types. Additional usage charges apply when
// using an EBS Optimized instance.
EbsOptimized *types.AttributeBooleanValue
// Set to true to enable enhanced networking with ENA for the instance. This
// option is supported only for HVM instances. Specifying this option with a PV
// instance can make it unreachable.
EnaSupport *types.AttributeBooleanValue
// Replaces the security groups of the instance with the specified security
// groups. You must specify the ID of at least one security group, even if it's
// just the default security group for the VPC.
Groups []string
// Specifies whether an instance stops or terminates when you initiate shutdown
// from the instance (using the operating system command for system shutdown).
InstanceInitiatedShutdownBehavior *types.AttributeValue
// Changes the instance type to the specified value. For more information, see
// Instance types (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html)
// in the Amazon EC2 User Guide. If the instance type is not valid, the error
// returned is InvalidInstanceAttributeValue .
InstanceType *types.AttributeValue
// Changes the instance's kernel to the specified value. We recommend that you use
// PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedKernels.html)
// .
Kernel *types.AttributeValue
// Changes the instance's RAM disk to the specified value. We recommend that you
// use PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedKernels.html)
// .
Ramdisk *types.AttributeValue
// Enable or disable source/destination checks, which ensure that the instance is
// either the source or the destination of any traffic that it receives. If the
// value is true , source/destination checks are enabled; otherwise, they are
// disabled. The default value is true . You must disable source/destination checks
// if the instance runs services such as network address translation, routing, or
// firewalls.
SourceDestCheck *types.AttributeBooleanValue
// Set to simple to enable enhanced networking with the Intel 82599 Virtual
// Function interface for the instance. There is no way to disable enhanced
// networking with the Intel 82599 Virtual Function interface at this time. This
// option is supported only for HVM instances. Specifying this option with a PV
// instance can make it unreachable.
SriovNetSupport *types.AttributeValue
// Changes the instance's user data to the specified value. If you are using an
// Amazon Web Services SDK or command line tool, base64-encoding is performed for
// you, and you can load the text from a file. Otherwise, you must provide
// base64-encoded text.
UserData *types.BlobAttributeValue
// A new value for the attribute. Use only with the kernel , ramdisk , userData ,
// disableApiTermination , or instanceInitiatedShutdownBehavior attribute.
Value *string
noSmithyDocumentSerde
}
type ModifyInstanceAttributeOutput struct {
// Metadata pertaining to the operation's result.
ResultMetadata middleware.Metadata
noSmithyDocumentSerde
}
func (c *Client) addOperationModifyInstanceAttributeMiddlewares(stack *middleware.Stack, options Options) (err error) {
if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil {
return err
}
err = stack.Serialize.Add(&awsEc2query_serializeOpModifyInstanceAttribute{}, middleware.After)
if err != nil {
return err
}
err = stack.Deserialize.Add(&awsEc2query_deserializeOpModifyInstanceAttribute{}, middleware.After)
if err != nil {
return err
}
if err := addProtocolFinalizerMiddlewares(stack, options, "ModifyInstanceAttribute"); err != nil {
return fmt.Errorf("add protocol finalizers: %v", err)
}
if err = addlegacyEndpointContextSetter(stack, options); err != nil {
return err
}
if err = addSetLoggerMiddleware(stack, options); err != nil {
return err
}
if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil {
return err
}
if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil {
return err
}
if err = addResolveEndpointMiddleware(stack, options); err != nil {
return err
}
if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil {
return err
}
if err = addRetryMiddlewares(stack, options); err != nil {
return err
}
if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil {
return err
}
if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil {
return err
}
if err = addClientUserAgent(stack, options); err != nil {
return err
}
if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
return err
}
if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
return err
}
if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil {
return err
}
if err = addOpModifyInstanceAttributeValidationMiddleware(stack); err != nil {
return err
}
if err = stack.Initialize.Add(newServiceMetadataMiddleware_opModifyInstanceAttribute(options.Region), middleware.Before); err != nil {
return err
}
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addRequestIDRetrieverMiddleware(stack); err != nil {
return err
}
if err = addResponseErrorMiddleware(stack); err != nil {
return err
}
if err = addRequestResponseLogging(stack, options); err != nil {
return err
}
if err = addDisableHTTPSMiddleware(stack, options); err != nil {
return err
}
return nil
}
func newServiceMetadataMiddleware_opModifyInstanceAttribute(region string) *awsmiddleware.RegisterServiceMetadata {
return &awsmiddleware.RegisterServiceMetadata{
Region: region,
ServiceID: ServiceID,
OperationName: "ModifyInstanceAttribute",
}
}
|