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 }