github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/codeartifact/domainPermissions.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 codeartifact 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 CodeArtifact Domains Permissions Policy Resource. 16 // 17 // ## Example Usage 18 // 19 // <!--Start PulumiCodeChooser --> 20 // ```go 21 // package main 22 // 23 // import ( 24 // 25 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/codeartifact" 26 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" 27 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kms" 28 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 29 // 30 // ) 31 // 32 // func main() { 33 // pulumi.Run(func(ctx *pulumi.Context) error { 34 // example, err := kms.NewKey(ctx, "example", &kms.KeyArgs{ 35 // Description: pulumi.String("domain key"), 36 // }) 37 // if err != nil { 38 // return err 39 // } 40 // exampleDomain, err := codeartifact.NewDomain(ctx, "example", &codeartifact.DomainArgs{ 41 // Domain: pulumi.String("example"), 42 // EncryptionKey: example.Arn, 43 // }) 44 // if err != nil { 45 // return err 46 // } 47 // test := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{ 48 // Statements: iam.GetPolicyDocumentStatementArray{ 49 // &iam.GetPolicyDocumentStatementArgs{ 50 // Effect: pulumi.String("Allow"), 51 // Principals: iam.GetPolicyDocumentStatementPrincipalArray{ 52 // &iam.GetPolicyDocumentStatementPrincipalArgs{ 53 // Type: pulumi.String("*"), 54 // Identifiers: pulumi.StringArray{ 55 // pulumi.String("*"), 56 // }, 57 // }, 58 // }, 59 // Actions: pulumi.StringArray{ 60 // pulumi.String("codeartifact:CreateRepository"), 61 // }, 62 // Resources: pulumi.StringArray{ 63 // exampleDomain.Arn, 64 // }, 65 // }, 66 // }, 67 // }, nil) 68 // _, err = codeartifact.NewDomainPermissions(ctx, "test", &codeartifact.DomainPermissionsArgs{ 69 // Domain: exampleDomain.Domain, 70 // PolicyDocument: test.ApplyT(func(test iam.GetPolicyDocumentResult) (*string, error) { 71 // return &test.Json, nil 72 // }).(pulumi.StringPtrOutput), 73 // }) 74 // if err != nil { 75 // return err 76 // } 77 // return nil 78 // }) 79 // } 80 // 81 // ``` 82 // <!--End PulumiCodeChooser --> 83 // 84 // ## Import 85 // 86 // Using `pulumi import`, import CodeArtifact Domain Permissions Policies using the CodeArtifact Domain ARN. For example: 87 // 88 // ```sh 89 // $ pulumi import aws:codeartifact/domainPermissions:DomainPermissions example arn:aws:codeartifact:us-west-2:012345678912:domain/tf-acc-test-1928056699409417367 90 // ``` 91 type DomainPermissions struct { 92 pulumi.CustomResourceState 93 94 // The name of the domain on which to set the resource policy. 95 Domain pulumi.StringOutput `pulumi:"domain"` 96 // The account number of the AWS account that owns the domain. 97 DomainOwner pulumi.StringOutput `pulumi:"domainOwner"` 98 // A JSON policy string to be set as the access control resource policy on the provided domain. 99 PolicyDocument pulumi.StringOutput `pulumi:"policyDocument"` 100 // The current revision of the resource policy to be set. This revision is used for optimistic locking, which prevents others from overwriting your changes to the domain's resource policy. 101 PolicyRevision pulumi.StringOutput `pulumi:"policyRevision"` 102 // The ARN of the resource associated with the resource policy. 103 ResourceArn pulumi.StringOutput `pulumi:"resourceArn"` 104 } 105 106 // NewDomainPermissions registers a new resource with the given unique name, arguments, and options. 107 func NewDomainPermissions(ctx *pulumi.Context, 108 name string, args *DomainPermissionsArgs, opts ...pulumi.ResourceOption) (*DomainPermissions, error) { 109 if args == nil { 110 return nil, errors.New("missing one or more required arguments") 111 } 112 113 if args.Domain == nil { 114 return nil, errors.New("invalid value for required argument 'Domain'") 115 } 116 if args.PolicyDocument == nil { 117 return nil, errors.New("invalid value for required argument 'PolicyDocument'") 118 } 119 opts = internal.PkgResourceDefaultOpts(opts) 120 var resource DomainPermissions 121 err := ctx.RegisterResource("aws:codeartifact/domainPermissions:DomainPermissions", name, args, &resource, opts...) 122 if err != nil { 123 return nil, err 124 } 125 return &resource, nil 126 } 127 128 // GetDomainPermissions gets an existing DomainPermissions resource's state with the given name, ID, and optional 129 // state properties that are used to uniquely qualify the lookup (nil if not required). 130 func GetDomainPermissions(ctx *pulumi.Context, 131 name string, id pulumi.IDInput, state *DomainPermissionsState, opts ...pulumi.ResourceOption) (*DomainPermissions, error) { 132 var resource DomainPermissions 133 err := ctx.ReadResource("aws:codeartifact/domainPermissions:DomainPermissions", name, id, state, &resource, opts...) 134 if err != nil { 135 return nil, err 136 } 137 return &resource, nil 138 } 139 140 // Input properties used for looking up and filtering DomainPermissions resources. 141 type domainPermissionsState struct { 142 // The name of the domain on which to set the resource policy. 143 Domain *string `pulumi:"domain"` 144 // The account number of the AWS account that owns the domain. 145 DomainOwner *string `pulumi:"domainOwner"` 146 // A JSON policy string to be set as the access control resource policy on the provided domain. 147 PolicyDocument *string `pulumi:"policyDocument"` 148 // The current revision of the resource policy to be set. This revision is used for optimistic locking, which prevents others from overwriting your changes to the domain's resource policy. 149 PolicyRevision *string `pulumi:"policyRevision"` 150 // The ARN of the resource associated with the resource policy. 151 ResourceArn *string `pulumi:"resourceArn"` 152 } 153 154 type DomainPermissionsState struct { 155 // The name of the domain on which to set the resource policy. 156 Domain pulumi.StringPtrInput 157 // The account number of the AWS account that owns the domain. 158 DomainOwner pulumi.StringPtrInput 159 // A JSON policy string to be set as the access control resource policy on the provided domain. 160 PolicyDocument pulumi.StringPtrInput 161 // The current revision of the resource policy to be set. This revision is used for optimistic locking, which prevents others from overwriting your changes to the domain's resource policy. 162 PolicyRevision pulumi.StringPtrInput 163 // The ARN of the resource associated with the resource policy. 164 ResourceArn pulumi.StringPtrInput 165 } 166 167 func (DomainPermissionsState) ElementType() reflect.Type { 168 return reflect.TypeOf((*domainPermissionsState)(nil)).Elem() 169 } 170 171 type domainPermissionsArgs struct { 172 // The name of the domain on which to set the resource policy. 173 Domain string `pulumi:"domain"` 174 // The account number of the AWS account that owns the domain. 175 DomainOwner *string `pulumi:"domainOwner"` 176 // A JSON policy string to be set as the access control resource policy on the provided domain. 177 PolicyDocument string `pulumi:"policyDocument"` 178 // The current revision of the resource policy to be set. This revision is used for optimistic locking, which prevents others from overwriting your changes to the domain's resource policy. 179 PolicyRevision *string `pulumi:"policyRevision"` 180 } 181 182 // The set of arguments for constructing a DomainPermissions resource. 183 type DomainPermissionsArgs struct { 184 // The name of the domain on which to set the resource policy. 185 Domain pulumi.StringInput 186 // The account number of the AWS account that owns the domain. 187 DomainOwner pulumi.StringPtrInput 188 // A JSON policy string to be set as the access control resource policy on the provided domain. 189 PolicyDocument pulumi.StringInput 190 // The current revision of the resource policy to be set. This revision is used for optimistic locking, which prevents others from overwriting your changes to the domain's resource policy. 191 PolicyRevision pulumi.StringPtrInput 192 } 193 194 func (DomainPermissionsArgs) ElementType() reflect.Type { 195 return reflect.TypeOf((*domainPermissionsArgs)(nil)).Elem() 196 } 197 198 type DomainPermissionsInput interface { 199 pulumi.Input 200 201 ToDomainPermissionsOutput() DomainPermissionsOutput 202 ToDomainPermissionsOutputWithContext(ctx context.Context) DomainPermissionsOutput 203 } 204 205 func (*DomainPermissions) ElementType() reflect.Type { 206 return reflect.TypeOf((**DomainPermissions)(nil)).Elem() 207 } 208 209 func (i *DomainPermissions) ToDomainPermissionsOutput() DomainPermissionsOutput { 210 return i.ToDomainPermissionsOutputWithContext(context.Background()) 211 } 212 213 func (i *DomainPermissions) ToDomainPermissionsOutputWithContext(ctx context.Context) DomainPermissionsOutput { 214 return pulumi.ToOutputWithContext(ctx, i).(DomainPermissionsOutput) 215 } 216 217 // DomainPermissionsArrayInput is an input type that accepts DomainPermissionsArray and DomainPermissionsArrayOutput values. 218 // You can construct a concrete instance of `DomainPermissionsArrayInput` via: 219 // 220 // DomainPermissionsArray{ DomainPermissionsArgs{...} } 221 type DomainPermissionsArrayInput interface { 222 pulumi.Input 223 224 ToDomainPermissionsArrayOutput() DomainPermissionsArrayOutput 225 ToDomainPermissionsArrayOutputWithContext(context.Context) DomainPermissionsArrayOutput 226 } 227 228 type DomainPermissionsArray []DomainPermissionsInput 229 230 func (DomainPermissionsArray) ElementType() reflect.Type { 231 return reflect.TypeOf((*[]*DomainPermissions)(nil)).Elem() 232 } 233 234 func (i DomainPermissionsArray) ToDomainPermissionsArrayOutput() DomainPermissionsArrayOutput { 235 return i.ToDomainPermissionsArrayOutputWithContext(context.Background()) 236 } 237 238 func (i DomainPermissionsArray) ToDomainPermissionsArrayOutputWithContext(ctx context.Context) DomainPermissionsArrayOutput { 239 return pulumi.ToOutputWithContext(ctx, i).(DomainPermissionsArrayOutput) 240 } 241 242 // DomainPermissionsMapInput is an input type that accepts DomainPermissionsMap and DomainPermissionsMapOutput values. 243 // You can construct a concrete instance of `DomainPermissionsMapInput` via: 244 // 245 // DomainPermissionsMap{ "key": DomainPermissionsArgs{...} } 246 type DomainPermissionsMapInput interface { 247 pulumi.Input 248 249 ToDomainPermissionsMapOutput() DomainPermissionsMapOutput 250 ToDomainPermissionsMapOutputWithContext(context.Context) DomainPermissionsMapOutput 251 } 252 253 type DomainPermissionsMap map[string]DomainPermissionsInput 254 255 func (DomainPermissionsMap) ElementType() reflect.Type { 256 return reflect.TypeOf((*map[string]*DomainPermissions)(nil)).Elem() 257 } 258 259 func (i DomainPermissionsMap) ToDomainPermissionsMapOutput() DomainPermissionsMapOutput { 260 return i.ToDomainPermissionsMapOutputWithContext(context.Background()) 261 } 262 263 func (i DomainPermissionsMap) ToDomainPermissionsMapOutputWithContext(ctx context.Context) DomainPermissionsMapOutput { 264 return pulumi.ToOutputWithContext(ctx, i).(DomainPermissionsMapOutput) 265 } 266 267 type DomainPermissionsOutput struct{ *pulumi.OutputState } 268 269 func (DomainPermissionsOutput) ElementType() reflect.Type { 270 return reflect.TypeOf((**DomainPermissions)(nil)).Elem() 271 } 272 273 func (o DomainPermissionsOutput) ToDomainPermissionsOutput() DomainPermissionsOutput { 274 return o 275 } 276 277 func (o DomainPermissionsOutput) ToDomainPermissionsOutputWithContext(ctx context.Context) DomainPermissionsOutput { 278 return o 279 } 280 281 // The name of the domain on which to set the resource policy. 282 func (o DomainPermissionsOutput) Domain() pulumi.StringOutput { 283 return o.ApplyT(func(v *DomainPermissions) pulumi.StringOutput { return v.Domain }).(pulumi.StringOutput) 284 } 285 286 // The account number of the AWS account that owns the domain. 287 func (o DomainPermissionsOutput) DomainOwner() pulumi.StringOutput { 288 return o.ApplyT(func(v *DomainPermissions) pulumi.StringOutput { return v.DomainOwner }).(pulumi.StringOutput) 289 } 290 291 // A JSON policy string to be set as the access control resource policy on the provided domain. 292 func (o DomainPermissionsOutput) PolicyDocument() pulumi.StringOutput { 293 return o.ApplyT(func(v *DomainPermissions) pulumi.StringOutput { return v.PolicyDocument }).(pulumi.StringOutput) 294 } 295 296 // The current revision of the resource policy to be set. This revision is used for optimistic locking, which prevents others from overwriting your changes to the domain's resource policy. 297 func (o DomainPermissionsOutput) PolicyRevision() pulumi.StringOutput { 298 return o.ApplyT(func(v *DomainPermissions) pulumi.StringOutput { return v.PolicyRevision }).(pulumi.StringOutput) 299 } 300 301 // The ARN of the resource associated with the resource policy. 302 func (o DomainPermissionsOutput) ResourceArn() pulumi.StringOutput { 303 return o.ApplyT(func(v *DomainPermissions) pulumi.StringOutput { return v.ResourceArn }).(pulumi.StringOutput) 304 } 305 306 type DomainPermissionsArrayOutput struct{ *pulumi.OutputState } 307 308 func (DomainPermissionsArrayOutput) ElementType() reflect.Type { 309 return reflect.TypeOf((*[]*DomainPermissions)(nil)).Elem() 310 } 311 312 func (o DomainPermissionsArrayOutput) ToDomainPermissionsArrayOutput() DomainPermissionsArrayOutput { 313 return o 314 } 315 316 func (o DomainPermissionsArrayOutput) ToDomainPermissionsArrayOutputWithContext(ctx context.Context) DomainPermissionsArrayOutput { 317 return o 318 } 319 320 func (o DomainPermissionsArrayOutput) Index(i pulumi.IntInput) DomainPermissionsOutput { 321 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *DomainPermissions { 322 return vs[0].([]*DomainPermissions)[vs[1].(int)] 323 }).(DomainPermissionsOutput) 324 } 325 326 type DomainPermissionsMapOutput struct{ *pulumi.OutputState } 327 328 func (DomainPermissionsMapOutput) ElementType() reflect.Type { 329 return reflect.TypeOf((*map[string]*DomainPermissions)(nil)).Elem() 330 } 331 332 func (o DomainPermissionsMapOutput) ToDomainPermissionsMapOutput() DomainPermissionsMapOutput { 333 return o 334 } 335 336 func (o DomainPermissionsMapOutput) ToDomainPermissionsMapOutputWithContext(ctx context.Context) DomainPermissionsMapOutput { 337 return o 338 } 339 340 func (o DomainPermissionsMapOutput) MapIndex(k pulumi.StringInput) DomainPermissionsOutput { 341 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *DomainPermissions { 342 return vs[0].(map[string]*DomainPermissions)[vs[1].(string)] 343 }).(DomainPermissionsOutput) 344 } 345 346 func init() { 347 pulumi.RegisterInputType(reflect.TypeOf((*DomainPermissionsInput)(nil)).Elem(), &DomainPermissions{}) 348 pulumi.RegisterInputType(reflect.TypeOf((*DomainPermissionsArrayInput)(nil)).Elem(), DomainPermissionsArray{}) 349 pulumi.RegisterInputType(reflect.TypeOf((*DomainPermissionsMapInput)(nil)).Elem(), DomainPermissionsMap{}) 350 pulumi.RegisterOutputType(DomainPermissionsOutput{}) 351 pulumi.RegisterOutputType(DomainPermissionsArrayOutput{}) 352 pulumi.RegisterOutputType(DomainPermissionsMapOutput{}) 353 }