github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/s3control/accessGrantsInstanceResourcePolicy.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 s3control 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 resource to manage an S3 Access Grants instance resource policy. 16 // Use a resource policy to manage cross-account access to your S3 Access Grants instance. 17 // 18 // ## Example Usage 19 // 20 // <!--Start PulumiCodeChooser --> 21 // ```go 22 // package main 23 // 24 // import ( 25 // 26 // "fmt" 27 // 28 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3control" 29 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 30 // 31 // ) 32 // 33 // func main() { 34 // pulumi.Run(func(ctx *pulumi.Context) error { 35 // example, err := s3control.NewAccessGrantsInstance(ctx, "example", nil) 36 // if err != nil { 37 // return err 38 // } 39 // _, err = s3control.NewAccessGrantsInstanceResourcePolicy(ctx, "example", &s3control.AccessGrantsInstanceResourcePolicyArgs{ 40 // Policy: example.AccessGrantsInstanceArn.ApplyT(func(accessGrantsInstanceArn string) (string, error) { 41 // return fmt.Sprintf(`{ 42 // "Version": "2012-10-17", 43 // "Id": "S3AccessGrantsPolicy", 44 // "Statement": [{ 45 // "Sid": "AllowAccessToS3AccessGrants", 46 // "Effect": "Allow", 47 // "Principal": { 48 // "AWS": "123456789456" 49 // }, 50 // "Action": [ 51 // "s3:ListAccessGrants", 52 // "s3:ListAccessGrantsLocations", 53 // "s3:GetDataAccess" 54 // ], 55 // "Resource": "%v" 56 // }] 57 // } 58 // 59 // `, accessGrantsInstanceArn), nil 60 // 61 // }).(pulumi.StringOutput), 62 // }) 63 // if err != nil { 64 // return err 65 // } 66 // return nil 67 // }) 68 // } 69 // 70 // ``` 71 // <!--End PulumiCodeChooser --> 72 // 73 // ## Import 74 // 75 // Using `pulumi import`, import S3 Access Grants instance resource policies using the `account_id`. For example: 76 // 77 // ```sh 78 // $ pulumi import aws:s3control/accessGrantsInstanceResourcePolicy:AccessGrantsInstanceResourcePolicy example 123456789012 79 // ``` 80 type AccessGrantsInstanceResourcePolicy struct { 81 pulumi.CustomResourceState 82 83 AccountId pulumi.StringOutput `pulumi:"accountId"` 84 // The policy document. 85 Policy pulumi.StringOutput `pulumi:"policy"` 86 } 87 88 // NewAccessGrantsInstanceResourcePolicy registers a new resource with the given unique name, arguments, and options. 89 func NewAccessGrantsInstanceResourcePolicy(ctx *pulumi.Context, 90 name string, args *AccessGrantsInstanceResourcePolicyArgs, opts ...pulumi.ResourceOption) (*AccessGrantsInstanceResourcePolicy, error) { 91 if args == nil { 92 return nil, errors.New("missing one or more required arguments") 93 } 94 95 if args.Policy == nil { 96 return nil, errors.New("invalid value for required argument 'Policy'") 97 } 98 opts = internal.PkgResourceDefaultOpts(opts) 99 var resource AccessGrantsInstanceResourcePolicy 100 err := ctx.RegisterResource("aws:s3control/accessGrantsInstanceResourcePolicy:AccessGrantsInstanceResourcePolicy", name, args, &resource, opts...) 101 if err != nil { 102 return nil, err 103 } 104 return &resource, nil 105 } 106 107 // GetAccessGrantsInstanceResourcePolicy gets an existing AccessGrantsInstanceResourcePolicy resource's state with the given name, ID, and optional 108 // state properties that are used to uniquely qualify the lookup (nil if not required). 109 func GetAccessGrantsInstanceResourcePolicy(ctx *pulumi.Context, 110 name string, id pulumi.IDInput, state *AccessGrantsInstanceResourcePolicyState, opts ...pulumi.ResourceOption) (*AccessGrantsInstanceResourcePolicy, error) { 111 var resource AccessGrantsInstanceResourcePolicy 112 err := ctx.ReadResource("aws:s3control/accessGrantsInstanceResourcePolicy:AccessGrantsInstanceResourcePolicy", name, id, state, &resource, opts...) 113 if err != nil { 114 return nil, err 115 } 116 return &resource, nil 117 } 118 119 // Input properties used for looking up and filtering AccessGrantsInstanceResourcePolicy resources. 120 type accessGrantsInstanceResourcePolicyState struct { 121 AccountId *string `pulumi:"accountId"` 122 // The policy document. 123 Policy *string `pulumi:"policy"` 124 } 125 126 type AccessGrantsInstanceResourcePolicyState struct { 127 AccountId pulumi.StringPtrInput 128 // The policy document. 129 Policy pulumi.StringPtrInput 130 } 131 132 func (AccessGrantsInstanceResourcePolicyState) ElementType() reflect.Type { 133 return reflect.TypeOf((*accessGrantsInstanceResourcePolicyState)(nil)).Elem() 134 } 135 136 type accessGrantsInstanceResourcePolicyArgs struct { 137 AccountId *string `pulumi:"accountId"` 138 // The policy document. 139 Policy string `pulumi:"policy"` 140 } 141 142 // The set of arguments for constructing a AccessGrantsInstanceResourcePolicy resource. 143 type AccessGrantsInstanceResourcePolicyArgs struct { 144 AccountId pulumi.StringPtrInput 145 // The policy document. 146 Policy pulumi.StringInput 147 } 148 149 func (AccessGrantsInstanceResourcePolicyArgs) ElementType() reflect.Type { 150 return reflect.TypeOf((*accessGrantsInstanceResourcePolicyArgs)(nil)).Elem() 151 } 152 153 type AccessGrantsInstanceResourcePolicyInput interface { 154 pulumi.Input 155 156 ToAccessGrantsInstanceResourcePolicyOutput() AccessGrantsInstanceResourcePolicyOutput 157 ToAccessGrantsInstanceResourcePolicyOutputWithContext(ctx context.Context) AccessGrantsInstanceResourcePolicyOutput 158 } 159 160 func (*AccessGrantsInstanceResourcePolicy) ElementType() reflect.Type { 161 return reflect.TypeOf((**AccessGrantsInstanceResourcePolicy)(nil)).Elem() 162 } 163 164 func (i *AccessGrantsInstanceResourcePolicy) ToAccessGrantsInstanceResourcePolicyOutput() AccessGrantsInstanceResourcePolicyOutput { 165 return i.ToAccessGrantsInstanceResourcePolicyOutputWithContext(context.Background()) 166 } 167 168 func (i *AccessGrantsInstanceResourcePolicy) ToAccessGrantsInstanceResourcePolicyOutputWithContext(ctx context.Context) AccessGrantsInstanceResourcePolicyOutput { 169 return pulumi.ToOutputWithContext(ctx, i).(AccessGrantsInstanceResourcePolicyOutput) 170 } 171 172 // AccessGrantsInstanceResourcePolicyArrayInput is an input type that accepts AccessGrantsInstanceResourcePolicyArray and AccessGrantsInstanceResourcePolicyArrayOutput values. 173 // You can construct a concrete instance of `AccessGrantsInstanceResourcePolicyArrayInput` via: 174 // 175 // AccessGrantsInstanceResourcePolicyArray{ AccessGrantsInstanceResourcePolicyArgs{...} } 176 type AccessGrantsInstanceResourcePolicyArrayInput interface { 177 pulumi.Input 178 179 ToAccessGrantsInstanceResourcePolicyArrayOutput() AccessGrantsInstanceResourcePolicyArrayOutput 180 ToAccessGrantsInstanceResourcePolicyArrayOutputWithContext(context.Context) AccessGrantsInstanceResourcePolicyArrayOutput 181 } 182 183 type AccessGrantsInstanceResourcePolicyArray []AccessGrantsInstanceResourcePolicyInput 184 185 func (AccessGrantsInstanceResourcePolicyArray) ElementType() reflect.Type { 186 return reflect.TypeOf((*[]*AccessGrantsInstanceResourcePolicy)(nil)).Elem() 187 } 188 189 func (i AccessGrantsInstanceResourcePolicyArray) ToAccessGrantsInstanceResourcePolicyArrayOutput() AccessGrantsInstanceResourcePolicyArrayOutput { 190 return i.ToAccessGrantsInstanceResourcePolicyArrayOutputWithContext(context.Background()) 191 } 192 193 func (i AccessGrantsInstanceResourcePolicyArray) ToAccessGrantsInstanceResourcePolicyArrayOutputWithContext(ctx context.Context) AccessGrantsInstanceResourcePolicyArrayOutput { 194 return pulumi.ToOutputWithContext(ctx, i).(AccessGrantsInstanceResourcePolicyArrayOutput) 195 } 196 197 // AccessGrantsInstanceResourcePolicyMapInput is an input type that accepts AccessGrantsInstanceResourcePolicyMap and AccessGrantsInstanceResourcePolicyMapOutput values. 198 // You can construct a concrete instance of `AccessGrantsInstanceResourcePolicyMapInput` via: 199 // 200 // AccessGrantsInstanceResourcePolicyMap{ "key": AccessGrantsInstanceResourcePolicyArgs{...} } 201 type AccessGrantsInstanceResourcePolicyMapInput interface { 202 pulumi.Input 203 204 ToAccessGrantsInstanceResourcePolicyMapOutput() AccessGrantsInstanceResourcePolicyMapOutput 205 ToAccessGrantsInstanceResourcePolicyMapOutputWithContext(context.Context) AccessGrantsInstanceResourcePolicyMapOutput 206 } 207 208 type AccessGrantsInstanceResourcePolicyMap map[string]AccessGrantsInstanceResourcePolicyInput 209 210 func (AccessGrantsInstanceResourcePolicyMap) ElementType() reflect.Type { 211 return reflect.TypeOf((*map[string]*AccessGrantsInstanceResourcePolicy)(nil)).Elem() 212 } 213 214 func (i AccessGrantsInstanceResourcePolicyMap) ToAccessGrantsInstanceResourcePolicyMapOutput() AccessGrantsInstanceResourcePolicyMapOutput { 215 return i.ToAccessGrantsInstanceResourcePolicyMapOutputWithContext(context.Background()) 216 } 217 218 func (i AccessGrantsInstanceResourcePolicyMap) ToAccessGrantsInstanceResourcePolicyMapOutputWithContext(ctx context.Context) AccessGrantsInstanceResourcePolicyMapOutput { 219 return pulumi.ToOutputWithContext(ctx, i).(AccessGrantsInstanceResourcePolicyMapOutput) 220 } 221 222 type AccessGrantsInstanceResourcePolicyOutput struct{ *pulumi.OutputState } 223 224 func (AccessGrantsInstanceResourcePolicyOutput) ElementType() reflect.Type { 225 return reflect.TypeOf((**AccessGrantsInstanceResourcePolicy)(nil)).Elem() 226 } 227 228 func (o AccessGrantsInstanceResourcePolicyOutput) ToAccessGrantsInstanceResourcePolicyOutput() AccessGrantsInstanceResourcePolicyOutput { 229 return o 230 } 231 232 func (o AccessGrantsInstanceResourcePolicyOutput) ToAccessGrantsInstanceResourcePolicyOutputWithContext(ctx context.Context) AccessGrantsInstanceResourcePolicyOutput { 233 return o 234 } 235 236 func (o AccessGrantsInstanceResourcePolicyOutput) AccountId() pulumi.StringOutput { 237 return o.ApplyT(func(v *AccessGrantsInstanceResourcePolicy) pulumi.StringOutput { return v.AccountId }).(pulumi.StringOutput) 238 } 239 240 // The policy document. 241 func (o AccessGrantsInstanceResourcePolicyOutput) Policy() pulumi.StringOutput { 242 return o.ApplyT(func(v *AccessGrantsInstanceResourcePolicy) pulumi.StringOutput { return v.Policy }).(pulumi.StringOutput) 243 } 244 245 type AccessGrantsInstanceResourcePolicyArrayOutput struct{ *pulumi.OutputState } 246 247 func (AccessGrantsInstanceResourcePolicyArrayOutput) ElementType() reflect.Type { 248 return reflect.TypeOf((*[]*AccessGrantsInstanceResourcePolicy)(nil)).Elem() 249 } 250 251 func (o AccessGrantsInstanceResourcePolicyArrayOutput) ToAccessGrantsInstanceResourcePolicyArrayOutput() AccessGrantsInstanceResourcePolicyArrayOutput { 252 return o 253 } 254 255 func (o AccessGrantsInstanceResourcePolicyArrayOutput) ToAccessGrantsInstanceResourcePolicyArrayOutputWithContext(ctx context.Context) AccessGrantsInstanceResourcePolicyArrayOutput { 256 return o 257 } 258 259 func (o AccessGrantsInstanceResourcePolicyArrayOutput) Index(i pulumi.IntInput) AccessGrantsInstanceResourcePolicyOutput { 260 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *AccessGrantsInstanceResourcePolicy { 261 return vs[0].([]*AccessGrantsInstanceResourcePolicy)[vs[1].(int)] 262 }).(AccessGrantsInstanceResourcePolicyOutput) 263 } 264 265 type AccessGrantsInstanceResourcePolicyMapOutput struct{ *pulumi.OutputState } 266 267 func (AccessGrantsInstanceResourcePolicyMapOutput) ElementType() reflect.Type { 268 return reflect.TypeOf((*map[string]*AccessGrantsInstanceResourcePolicy)(nil)).Elem() 269 } 270 271 func (o AccessGrantsInstanceResourcePolicyMapOutput) ToAccessGrantsInstanceResourcePolicyMapOutput() AccessGrantsInstanceResourcePolicyMapOutput { 272 return o 273 } 274 275 func (o AccessGrantsInstanceResourcePolicyMapOutput) ToAccessGrantsInstanceResourcePolicyMapOutputWithContext(ctx context.Context) AccessGrantsInstanceResourcePolicyMapOutput { 276 return o 277 } 278 279 func (o AccessGrantsInstanceResourcePolicyMapOutput) MapIndex(k pulumi.StringInput) AccessGrantsInstanceResourcePolicyOutput { 280 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *AccessGrantsInstanceResourcePolicy { 281 return vs[0].(map[string]*AccessGrantsInstanceResourcePolicy)[vs[1].(string)] 282 }).(AccessGrantsInstanceResourcePolicyOutput) 283 } 284 285 func init() { 286 pulumi.RegisterInputType(reflect.TypeOf((*AccessGrantsInstanceResourcePolicyInput)(nil)).Elem(), &AccessGrantsInstanceResourcePolicy{}) 287 pulumi.RegisterInputType(reflect.TypeOf((*AccessGrantsInstanceResourcePolicyArrayInput)(nil)).Elem(), AccessGrantsInstanceResourcePolicyArray{}) 288 pulumi.RegisterInputType(reflect.TypeOf((*AccessGrantsInstanceResourcePolicyMapInput)(nil)).Elem(), AccessGrantsInstanceResourcePolicyMap{}) 289 pulumi.RegisterOutputType(AccessGrantsInstanceResourcePolicyOutput{}) 290 pulumi.RegisterOutputType(AccessGrantsInstanceResourcePolicyArrayOutput{}) 291 pulumi.RegisterOutputType(AccessGrantsInstanceResourcePolicyMapOutput{}) 292 }