github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ec2/imageBlockPublicAccess.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 ec2
     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  // Provides a regional public access block for AMIs. This prevents AMIs from being made publicly accessible.
    16  // If you already have public AMIs, they will remain publicly available.
    17  //
    18  // > **NOTE:** Deleting this resource does not change the block public access value, the resource in simply removed from state instead.
    19  //
    20  // ## Example Usage
    21  //
    22  // <!--Start PulumiCodeChooser -->
    23  // ```go
    24  // package main
    25  //
    26  // import (
    27  //
    28  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
    29  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    30  //
    31  // )
    32  //
    33  //	func main() {
    34  //		pulumi.Run(func(ctx *pulumi.Context) error {
    35  //			// Prevent making AMIs publicly accessible in the region and account for which the provider is configured
    36  //			_, err := ec2.NewImageBlockPublicAccess(ctx, "test", &ec2.ImageBlockPublicAccessArgs{
    37  //				State: pulumi.String("block-new-sharing"),
    38  //			})
    39  //			if err != nil {
    40  //				return err
    41  //			}
    42  //			return nil
    43  //		})
    44  //	}
    45  //
    46  // ```
    47  // <!--End PulumiCodeChooser -->
    48  //
    49  // ## Import
    50  //
    51  // You cannot import this resource.
    52  type ImageBlockPublicAccess struct {
    53  	pulumi.CustomResourceState
    54  
    55  	// The state of block public access for AMIs at the account level in the configured AWS Region. Valid values: `unblocked` and `block-new-sharing`.
    56  	State pulumi.StringOutput `pulumi:"state"`
    57  }
    58  
    59  // NewImageBlockPublicAccess registers a new resource with the given unique name, arguments, and options.
    60  func NewImageBlockPublicAccess(ctx *pulumi.Context,
    61  	name string, args *ImageBlockPublicAccessArgs, opts ...pulumi.ResourceOption) (*ImageBlockPublicAccess, error) {
    62  	if args == nil {
    63  		return nil, errors.New("missing one or more required arguments")
    64  	}
    65  
    66  	if args.State == nil {
    67  		return nil, errors.New("invalid value for required argument 'State'")
    68  	}
    69  	opts = internal.PkgResourceDefaultOpts(opts)
    70  	var resource ImageBlockPublicAccess
    71  	err := ctx.RegisterResource("aws:ec2/imageBlockPublicAccess:ImageBlockPublicAccess", name, args, &resource, opts...)
    72  	if err != nil {
    73  		return nil, err
    74  	}
    75  	return &resource, nil
    76  }
    77  
    78  // GetImageBlockPublicAccess gets an existing ImageBlockPublicAccess resource's state with the given name, ID, and optional
    79  // state properties that are used to uniquely qualify the lookup (nil if not required).
    80  func GetImageBlockPublicAccess(ctx *pulumi.Context,
    81  	name string, id pulumi.IDInput, state *ImageBlockPublicAccessState, opts ...pulumi.ResourceOption) (*ImageBlockPublicAccess, error) {
    82  	var resource ImageBlockPublicAccess
    83  	err := ctx.ReadResource("aws:ec2/imageBlockPublicAccess:ImageBlockPublicAccess", name, id, state, &resource, opts...)
    84  	if err != nil {
    85  		return nil, err
    86  	}
    87  	return &resource, nil
    88  }
    89  
    90  // Input properties used for looking up and filtering ImageBlockPublicAccess resources.
    91  type imageBlockPublicAccessState struct {
    92  	// The state of block public access for AMIs at the account level in the configured AWS Region. Valid values: `unblocked` and `block-new-sharing`.
    93  	State *string `pulumi:"state"`
    94  }
    95  
    96  type ImageBlockPublicAccessState struct {
    97  	// The state of block public access for AMIs at the account level in the configured AWS Region. Valid values: `unblocked` and `block-new-sharing`.
    98  	State pulumi.StringPtrInput
    99  }
   100  
   101  func (ImageBlockPublicAccessState) ElementType() reflect.Type {
   102  	return reflect.TypeOf((*imageBlockPublicAccessState)(nil)).Elem()
   103  }
   104  
   105  type imageBlockPublicAccessArgs struct {
   106  	// The state of block public access for AMIs at the account level in the configured AWS Region. Valid values: `unblocked` and `block-new-sharing`.
   107  	State string `pulumi:"state"`
   108  }
   109  
   110  // The set of arguments for constructing a ImageBlockPublicAccess resource.
   111  type ImageBlockPublicAccessArgs struct {
   112  	// The state of block public access for AMIs at the account level in the configured AWS Region. Valid values: `unblocked` and `block-new-sharing`.
   113  	State pulumi.StringInput
   114  }
   115  
   116  func (ImageBlockPublicAccessArgs) ElementType() reflect.Type {
   117  	return reflect.TypeOf((*imageBlockPublicAccessArgs)(nil)).Elem()
   118  }
   119  
   120  type ImageBlockPublicAccessInput interface {
   121  	pulumi.Input
   122  
   123  	ToImageBlockPublicAccessOutput() ImageBlockPublicAccessOutput
   124  	ToImageBlockPublicAccessOutputWithContext(ctx context.Context) ImageBlockPublicAccessOutput
   125  }
   126  
   127  func (*ImageBlockPublicAccess) ElementType() reflect.Type {
   128  	return reflect.TypeOf((**ImageBlockPublicAccess)(nil)).Elem()
   129  }
   130  
   131  func (i *ImageBlockPublicAccess) ToImageBlockPublicAccessOutput() ImageBlockPublicAccessOutput {
   132  	return i.ToImageBlockPublicAccessOutputWithContext(context.Background())
   133  }
   134  
   135  func (i *ImageBlockPublicAccess) ToImageBlockPublicAccessOutputWithContext(ctx context.Context) ImageBlockPublicAccessOutput {
   136  	return pulumi.ToOutputWithContext(ctx, i).(ImageBlockPublicAccessOutput)
   137  }
   138  
   139  // ImageBlockPublicAccessArrayInput is an input type that accepts ImageBlockPublicAccessArray and ImageBlockPublicAccessArrayOutput values.
   140  // You can construct a concrete instance of `ImageBlockPublicAccessArrayInput` via:
   141  //
   142  //	ImageBlockPublicAccessArray{ ImageBlockPublicAccessArgs{...} }
   143  type ImageBlockPublicAccessArrayInput interface {
   144  	pulumi.Input
   145  
   146  	ToImageBlockPublicAccessArrayOutput() ImageBlockPublicAccessArrayOutput
   147  	ToImageBlockPublicAccessArrayOutputWithContext(context.Context) ImageBlockPublicAccessArrayOutput
   148  }
   149  
   150  type ImageBlockPublicAccessArray []ImageBlockPublicAccessInput
   151  
   152  func (ImageBlockPublicAccessArray) ElementType() reflect.Type {
   153  	return reflect.TypeOf((*[]*ImageBlockPublicAccess)(nil)).Elem()
   154  }
   155  
   156  func (i ImageBlockPublicAccessArray) ToImageBlockPublicAccessArrayOutput() ImageBlockPublicAccessArrayOutput {
   157  	return i.ToImageBlockPublicAccessArrayOutputWithContext(context.Background())
   158  }
   159  
   160  func (i ImageBlockPublicAccessArray) ToImageBlockPublicAccessArrayOutputWithContext(ctx context.Context) ImageBlockPublicAccessArrayOutput {
   161  	return pulumi.ToOutputWithContext(ctx, i).(ImageBlockPublicAccessArrayOutput)
   162  }
   163  
   164  // ImageBlockPublicAccessMapInput is an input type that accepts ImageBlockPublicAccessMap and ImageBlockPublicAccessMapOutput values.
   165  // You can construct a concrete instance of `ImageBlockPublicAccessMapInput` via:
   166  //
   167  //	ImageBlockPublicAccessMap{ "key": ImageBlockPublicAccessArgs{...} }
   168  type ImageBlockPublicAccessMapInput interface {
   169  	pulumi.Input
   170  
   171  	ToImageBlockPublicAccessMapOutput() ImageBlockPublicAccessMapOutput
   172  	ToImageBlockPublicAccessMapOutputWithContext(context.Context) ImageBlockPublicAccessMapOutput
   173  }
   174  
   175  type ImageBlockPublicAccessMap map[string]ImageBlockPublicAccessInput
   176  
   177  func (ImageBlockPublicAccessMap) ElementType() reflect.Type {
   178  	return reflect.TypeOf((*map[string]*ImageBlockPublicAccess)(nil)).Elem()
   179  }
   180  
   181  func (i ImageBlockPublicAccessMap) ToImageBlockPublicAccessMapOutput() ImageBlockPublicAccessMapOutput {
   182  	return i.ToImageBlockPublicAccessMapOutputWithContext(context.Background())
   183  }
   184  
   185  func (i ImageBlockPublicAccessMap) ToImageBlockPublicAccessMapOutputWithContext(ctx context.Context) ImageBlockPublicAccessMapOutput {
   186  	return pulumi.ToOutputWithContext(ctx, i).(ImageBlockPublicAccessMapOutput)
   187  }
   188  
   189  type ImageBlockPublicAccessOutput struct{ *pulumi.OutputState }
   190  
   191  func (ImageBlockPublicAccessOutput) ElementType() reflect.Type {
   192  	return reflect.TypeOf((**ImageBlockPublicAccess)(nil)).Elem()
   193  }
   194  
   195  func (o ImageBlockPublicAccessOutput) ToImageBlockPublicAccessOutput() ImageBlockPublicAccessOutput {
   196  	return o
   197  }
   198  
   199  func (o ImageBlockPublicAccessOutput) ToImageBlockPublicAccessOutputWithContext(ctx context.Context) ImageBlockPublicAccessOutput {
   200  	return o
   201  }
   202  
   203  // The state of block public access for AMIs at the account level in the configured AWS Region. Valid values: `unblocked` and `block-new-sharing`.
   204  func (o ImageBlockPublicAccessOutput) State() pulumi.StringOutput {
   205  	return o.ApplyT(func(v *ImageBlockPublicAccess) pulumi.StringOutput { return v.State }).(pulumi.StringOutput)
   206  }
   207  
   208  type ImageBlockPublicAccessArrayOutput struct{ *pulumi.OutputState }
   209  
   210  func (ImageBlockPublicAccessArrayOutput) ElementType() reflect.Type {
   211  	return reflect.TypeOf((*[]*ImageBlockPublicAccess)(nil)).Elem()
   212  }
   213  
   214  func (o ImageBlockPublicAccessArrayOutput) ToImageBlockPublicAccessArrayOutput() ImageBlockPublicAccessArrayOutput {
   215  	return o
   216  }
   217  
   218  func (o ImageBlockPublicAccessArrayOutput) ToImageBlockPublicAccessArrayOutputWithContext(ctx context.Context) ImageBlockPublicAccessArrayOutput {
   219  	return o
   220  }
   221  
   222  func (o ImageBlockPublicAccessArrayOutput) Index(i pulumi.IntInput) ImageBlockPublicAccessOutput {
   223  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ImageBlockPublicAccess {
   224  		return vs[0].([]*ImageBlockPublicAccess)[vs[1].(int)]
   225  	}).(ImageBlockPublicAccessOutput)
   226  }
   227  
   228  type ImageBlockPublicAccessMapOutput struct{ *pulumi.OutputState }
   229  
   230  func (ImageBlockPublicAccessMapOutput) ElementType() reflect.Type {
   231  	return reflect.TypeOf((*map[string]*ImageBlockPublicAccess)(nil)).Elem()
   232  }
   233  
   234  func (o ImageBlockPublicAccessMapOutput) ToImageBlockPublicAccessMapOutput() ImageBlockPublicAccessMapOutput {
   235  	return o
   236  }
   237  
   238  func (o ImageBlockPublicAccessMapOutput) ToImageBlockPublicAccessMapOutputWithContext(ctx context.Context) ImageBlockPublicAccessMapOutput {
   239  	return o
   240  }
   241  
   242  func (o ImageBlockPublicAccessMapOutput) MapIndex(k pulumi.StringInput) ImageBlockPublicAccessOutput {
   243  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ImageBlockPublicAccess {
   244  		return vs[0].(map[string]*ImageBlockPublicAccess)[vs[1].(string)]
   245  	}).(ImageBlockPublicAccessOutput)
   246  }
   247  
   248  func init() {
   249  	pulumi.RegisterInputType(reflect.TypeOf((*ImageBlockPublicAccessInput)(nil)).Elem(), &ImageBlockPublicAccess{})
   250  	pulumi.RegisterInputType(reflect.TypeOf((*ImageBlockPublicAccessArrayInput)(nil)).Elem(), ImageBlockPublicAccessArray{})
   251  	pulumi.RegisterInputType(reflect.TypeOf((*ImageBlockPublicAccessMapInput)(nil)).Elem(), ImageBlockPublicAccessMap{})
   252  	pulumi.RegisterOutputType(ImageBlockPublicAccessOutput{})
   253  	pulumi.RegisterOutputType(ImageBlockPublicAccessArrayOutput{})
   254  	pulumi.RegisterOutputType(ImageBlockPublicAccessMapOutput{})
   255  }