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  }