github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ebs/fastSnapshotRestore.go (about) 1 // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. 2 // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** 3 4 package ebs 5 6 import ( 7 "context" 8 "reflect" 9 10 "errors" 11 "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" 12 "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 13 ) 14 15 // Resource for managing an EBS (Elastic Block Storage) Fast Snapshot Restore. 16 // 17 // ## Example Usage 18 // 19 // ### Basic Usage 20 // 21 // <!--Start PulumiCodeChooser --> 22 // ```go 23 // package main 24 // 25 // import ( 26 // 27 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ebs" 28 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 29 // 30 // ) 31 // 32 // func main() { 33 // pulumi.Run(func(ctx *pulumi.Context) error { 34 // _, err := ebs.NewFastSnapshotRestore(ctx, "example", &ebs.FastSnapshotRestoreArgs{ 35 // AvailabilityZone: pulumi.String("us-west-2a"), 36 // SnapshotId: pulumi.Any(exampleAwsEbsSnapshot.Id), 37 // }) 38 // if err != nil { 39 // return err 40 // } 41 // return nil 42 // }) 43 // } 44 // 45 // ``` 46 // <!--End PulumiCodeChooser --> 47 // 48 // ## Import 49 // 50 // Using `pulumi import`, import EC2 (Elastic Compute Cloud) EBS Fast Snapshot Restore using the `id`. For example: 51 // 52 // ```sh 53 // $ pulumi import aws:ebs/fastSnapshotRestore:FastSnapshotRestore example us-west-2a,snap-abcdef123456 54 // ``` 55 type FastSnapshotRestore struct { 56 pulumi.CustomResourceState 57 58 // Availability zone in which to enable fast snapshot restores. 59 AvailabilityZone pulumi.StringOutput `pulumi:"availabilityZone"` 60 // ID of the snapshot. 61 SnapshotId pulumi.StringOutput `pulumi:"snapshotId"` 62 // State of fast snapshot restores. Valid values are `enabling`, `optimizing`, `enabled`, `disabling`, `disabled`. 63 State pulumi.StringOutput `pulumi:"state"` 64 Timeouts FastSnapshotRestoreTimeoutsPtrOutput `pulumi:"timeouts"` 65 } 66 67 // NewFastSnapshotRestore registers a new resource with the given unique name, arguments, and options. 68 func NewFastSnapshotRestore(ctx *pulumi.Context, 69 name string, args *FastSnapshotRestoreArgs, opts ...pulumi.ResourceOption) (*FastSnapshotRestore, error) { 70 if args == nil { 71 return nil, errors.New("missing one or more required arguments") 72 } 73 74 if args.AvailabilityZone == nil { 75 return nil, errors.New("invalid value for required argument 'AvailabilityZone'") 76 } 77 if args.SnapshotId == nil { 78 return nil, errors.New("invalid value for required argument 'SnapshotId'") 79 } 80 opts = internal.PkgResourceDefaultOpts(opts) 81 var resource FastSnapshotRestore 82 err := ctx.RegisterResource("aws:ebs/fastSnapshotRestore:FastSnapshotRestore", name, args, &resource, opts...) 83 if err != nil { 84 return nil, err 85 } 86 return &resource, nil 87 } 88 89 // GetFastSnapshotRestore gets an existing FastSnapshotRestore resource's state with the given name, ID, and optional 90 // state properties that are used to uniquely qualify the lookup (nil if not required). 91 func GetFastSnapshotRestore(ctx *pulumi.Context, 92 name string, id pulumi.IDInput, state *FastSnapshotRestoreState, opts ...pulumi.ResourceOption) (*FastSnapshotRestore, error) { 93 var resource FastSnapshotRestore 94 err := ctx.ReadResource("aws:ebs/fastSnapshotRestore:FastSnapshotRestore", name, id, state, &resource, opts...) 95 if err != nil { 96 return nil, err 97 } 98 return &resource, nil 99 } 100 101 // Input properties used for looking up and filtering FastSnapshotRestore resources. 102 type fastSnapshotRestoreState struct { 103 // Availability zone in which to enable fast snapshot restores. 104 AvailabilityZone *string `pulumi:"availabilityZone"` 105 // ID of the snapshot. 106 SnapshotId *string `pulumi:"snapshotId"` 107 // State of fast snapshot restores. Valid values are `enabling`, `optimizing`, `enabled`, `disabling`, `disabled`. 108 State *string `pulumi:"state"` 109 Timeouts *FastSnapshotRestoreTimeouts `pulumi:"timeouts"` 110 } 111 112 type FastSnapshotRestoreState struct { 113 // Availability zone in which to enable fast snapshot restores. 114 AvailabilityZone pulumi.StringPtrInput 115 // ID of the snapshot. 116 SnapshotId pulumi.StringPtrInput 117 // State of fast snapshot restores. Valid values are `enabling`, `optimizing`, `enabled`, `disabling`, `disabled`. 118 State pulumi.StringPtrInput 119 Timeouts FastSnapshotRestoreTimeoutsPtrInput 120 } 121 122 func (FastSnapshotRestoreState) ElementType() reflect.Type { 123 return reflect.TypeOf((*fastSnapshotRestoreState)(nil)).Elem() 124 } 125 126 type fastSnapshotRestoreArgs struct { 127 // Availability zone in which to enable fast snapshot restores. 128 AvailabilityZone string `pulumi:"availabilityZone"` 129 // ID of the snapshot. 130 SnapshotId string `pulumi:"snapshotId"` 131 Timeouts *FastSnapshotRestoreTimeouts `pulumi:"timeouts"` 132 } 133 134 // The set of arguments for constructing a FastSnapshotRestore resource. 135 type FastSnapshotRestoreArgs struct { 136 // Availability zone in which to enable fast snapshot restores. 137 AvailabilityZone pulumi.StringInput 138 // ID of the snapshot. 139 SnapshotId pulumi.StringInput 140 Timeouts FastSnapshotRestoreTimeoutsPtrInput 141 } 142 143 func (FastSnapshotRestoreArgs) ElementType() reflect.Type { 144 return reflect.TypeOf((*fastSnapshotRestoreArgs)(nil)).Elem() 145 } 146 147 type FastSnapshotRestoreInput interface { 148 pulumi.Input 149 150 ToFastSnapshotRestoreOutput() FastSnapshotRestoreOutput 151 ToFastSnapshotRestoreOutputWithContext(ctx context.Context) FastSnapshotRestoreOutput 152 } 153 154 func (*FastSnapshotRestore) ElementType() reflect.Type { 155 return reflect.TypeOf((**FastSnapshotRestore)(nil)).Elem() 156 } 157 158 func (i *FastSnapshotRestore) ToFastSnapshotRestoreOutput() FastSnapshotRestoreOutput { 159 return i.ToFastSnapshotRestoreOutputWithContext(context.Background()) 160 } 161 162 func (i *FastSnapshotRestore) ToFastSnapshotRestoreOutputWithContext(ctx context.Context) FastSnapshotRestoreOutput { 163 return pulumi.ToOutputWithContext(ctx, i).(FastSnapshotRestoreOutput) 164 } 165 166 // FastSnapshotRestoreArrayInput is an input type that accepts FastSnapshotRestoreArray and FastSnapshotRestoreArrayOutput values. 167 // You can construct a concrete instance of `FastSnapshotRestoreArrayInput` via: 168 // 169 // FastSnapshotRestoreArray{ FastSnapshotRestoreArgs{...} } 170 type FastSnapshotRestoreArrayInput interface { 171 pulumi.Input 172 173 ToFastSnapshotRestoreArrayOutput() FastSnapshotRestoreArrayOutput 174 ToFastSnapshotRestoreArrayOutputWithContext(context.Context) FastSnapshotRestoreArrayOutput 175 } 176 177 type FastSnapshotRestoreArray []FastSnapshotRestoreInput 178 179 func (FastSnapshotRestoreArray) ElementType() reflect.Type { 180 return reflect.TypeOf((*[]*FastSnapshotRestore)(nil)).Elem() 181 } 182 183 func (i FastSnapshotRestoreArray) ToFastSnapshotRestoreArrayOutput() FastSnapshotRestoreArrayOutput { 184 return i.ToFastSnapshotRestoreArrayOutputWithContext(context.Background()) 185 } 186 187 func (i FastSnapshotRestoreArray) ToFastSnapshotRestoreArrayOutputWithContext(ctx context.Context) FastSnapshotRestoreArrayOutput { 188 return pulumi.ToOutputWithContext(ctx, i).(FastSnapshotRestoreArrayOutput) 189 } 190 191 // FastSnapshotRestoreMapInput is an input type that accepts FastSnapshotRestoreMap and FastSnapshotRestoreMapOutput values. 192 // You can construct a concrete instance of `FastSnapshotRestoreMapInput` via: 193 // 194 // FastSnapshotRestoreMap{ "key": FastSnapshotRestoreArgs{...} } 195 type FastSnapshotRestoreMapInput interface { 196 pulumi.Input 197 198 ToFastSnapshotRestoreMapOutput() FastSnapshotRestoreMapOutput 199 ToFastSnapshotRestoreMapOutputWithContext(context.Context) FastSnapshotRestoreMapOutput 200 } 201 202 type FastSnapshotRestoreMap map[string]FastSnapshotRestoreInput 203 204 func (FastSnapshotRestoreMap) ElementType() reflect.Type { 205 return reflect.TypeOf((*map[string]*FastSnapshotRestore)(nil)).Elem() 206 } 207 208 func (i FastSnapshotRestoreMap) ToFastSnapshotRestoreMapOutput() FastSnapshotRestoreMapOutput { 209 return i.ToFastSnapshotRestoreMapOutputWithContext(context.Background()) 210 } 211 212 func (i FastSnapshotRestoreMap) ToFastSnapshotRestoreMapOutputWithContext(ctx context.Context) FastSnapshotRestoreMapOutput { 213 return pulumi.ToOutputWithContext(ctx, i).(FastSnapshotRestoreMapOutput) 214 } 215 216 type FastSnapshotRestoreOutput struct{ *pulumi.OutputState } 217 218 func (FastSnapshotRestoreOutput) ElementType() reflect.Type { 219 return reflect.TypeOf((**FastSnapshotRestore)(nil)).Elem() 220 } 221 222 func (o FastSnapshotRestoreOutput) ToFastSnapshotRestoreOutput() FastSnapshotRestoreOutput { 223 return o 224 } 225 226 func (o FastSnapshotRestoreOutput) ToFastSnapshotRestoreOutputWithContext(ctx context.Context) FastSnapshotRestoreOutput { 227 return o 228 } 229 230 // Availability zone in which to enable fast snapshot restores. 231 func (o FastSnapshotRestoreOutput) AvailabilityZone() pulumi.StringOutput { 232 return o.ApplyT(func(v *FastSnapshotRestore) pulumi.StringOutput { return v.AvailabilityZone }).(pulumi.StringOutput) 233 } 234 235 // ID of the snapshot. 236 func (o FastSnapshotRestoreOutput) SnapshotId() pulumi.StringOutput { 237 return o.ApplyT(func(v *FastSnapshotRestore) pulumi.StringOutput { return v.SnapshotId }).(pulumi.StringOutput) 238 } 239 240 // State of fast snapshot restores. Valid values are `enabling`, `optimizing`, `enabled`, `disabling`, `disabled`. 241 func (o FastSnapshotRestoreOutput) State() pulumi.StringOutput { 242 return o.ApplyT(func(v *FastSnapshotRestore) pulumi.StringOutput { return v.State }).(pulumi.StringOutput) 243 } 244 245 func (o FastSnapshotRestoreOutput) Timeouts() FastSnapshotRestoreTimeoutsPtrOutput { 246 return o.ApplyT(func(v *FastSnapshotRestore) FastSnapshotRestoreTimeoutsPtrOutput { return v.Timeouts }).(FastSnapshotRestoreTimeoutsPtrOutput) 247 } 248 249 type FastSnapshotRestoreArrayOutput struct{ *pulumi.OutputState } 250 251 func (FastSnapshotRestoreArrayOutput) ElementType() reflect.Type { 252 return reflect.TypeOf((*[]*FastSnapshotRestore)(nil)).Elem() 253 } 254 255 func (o FastSnapshotRestoreArrayOutput) ToFastSnapshotRestoreArrayOutput() FastSnapshotRestoreArrayOutput { 256 return o 257 } 258 259 func (o FastSnapshotRestoreArrayOutput) ToFastSnapshotRestoreArrayOutputWithContext(ctx context.Context) FastSnapshotRestoreArrayOutput { 260 return o 261 } 262 263 func (o FastSnapshotRestoreArrayOutput) Index(i pulumi.IntInput) FastSnapshotRestoreOutput { 264 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *FastSnapshotRestore { 265 return vs[0].([]*FastSnapshotRestore)[vs[1].(int)] 266 }).(FastSnapshotRestoreOutput) 267 } 268 269 type FastSnapshotRestoreMapOutput struct{ *pulumi.OutputState } 270 271 func (FastSnapshotRestoreMapOutput) ElementType() reflect.Type { 272 return reflect.TypeOf((*map[string]*FastSnapshotRestore)(nil)).Elem() 273 } 274 275 func (o FastSnapshotRestoreMapOutput) ToFastSnapshotRestoreMapOutput() FastSnapshotRestoreMapOutput { 276 return o 277 } 278 279 func (o FastSnapshotRestoreMapOutput) ToFastSnapshotRestoreMapOutputWithContext(ctx context.Context) FastSnapshotRestoreMapOutput { 280 return o 281 } 282 283 func (o FastSnapshotRestoreMapOutput) MapIndex(k pulumi.StringInput) FastSnapshotRestoreOutput { 284 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *FastSnapshotRestore { 285 return vs[0].(map[string]*FastSnapshotRestore)[vs[1].(string)] 286 }).(FastSnapshotRestoreOutput) 287 } 288 289 func init() { 290 pulumi.RegisterInputType(reflect.TypeOf((*FastSnapshotRestoreInput)(nil)).Elem(), &FastSnapshotRestore{}) 291 pulumi.RegisterInputType(reflect.TypeOf((*FastSnapshotRestoreArrayInput)(nil)).Elem(), FastSnapshotRestoreArray{}) 292 pulumi.RegisterInputType(reflect.TypeOf((*FastSnapshotRestoreMapInput)(nil)).Elem(), FastSnapshotRestoreMap{}) 293 pulumi.RegisterOutputType(FastSnapshotRestoreOutput{}) 294 pulumi.RegisterOutputType(FastSnapshotRestoreArrayOutput{}) 295 pulumi.RegisterOutputType(FastSnapshotRestoreMapOutput{}) 296 }