github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/codegurureviewer/repositoryAssociation.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 codegurureviewer 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 AWS CodeGuru Reviewer Repository Association. 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/codecommit" 26 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/codegurureviewer" 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", nil) 35 // if err != nil { 36 // return err 37 // } 38 // exampleRepository, err := codecommit.NewRepository(ctx, "example", &codecommit.RepositoryArgs{ 39 // RepositoryName: pulumi.String("example-repo"), 40 // }) 41 // if err != nil { 42 // return err 43 // } 44 // _, err = codegurureviewer.NewRepositoryAssociation(ctx, "example", &codegurureviewer.RepositoryAssociationArgs{ 45 // Repository: &codegurureviewer.RepositoryAssociationRepositoryArgs{ 46 // Codecommit: &codegurureviewer.RepositoryAssociationRepositoryCodecommitArgs{ 47 // Name: exampleRepository.RepositoryName, 48 // }, 49 // }, 50 // KmsKeyDetails: &codegurureviewer.RepositoryAssociationKmsKeyDetailsArgs{ 51 // EncryptionOption: pulumi.String("CUSTOMER_MANAGED_CMK"), 52 // KmsKeyId: example.KeyId, 53 // }, 54 // }) 55 // if err != nil { 56 // return err 57 // } 58 // return nil 59 // }) 60 // } 61 // 62 // ``` 63 // <!--End PulumiCodeChooser --> 64 type RepositoryAssociation struct { 65 pulumi.CustomResourceState 66 67 // The Amazon Resource Name (ARN) identifying the repository association. 68 Arn pulumi.StringOutput `pulumi:"arn"` 69 // The ID of the repository association. 70 AssociationId pulumi.StringOutput `pulumi:"associationId"` 71 // The Amazon Resource Name (ARN) of an AWS CodeStar Connections connection. 72 ConnectionArn pulumi.StringOutput `pulumi:"connectionArn"` 73 // An object describing the KMS key to asssociate. Block is documented below. 74 KmsKeyDetails RepositoryAssociationKmsKeyDetailsPtrOutput `pulumi:"kmsKeyDetails"` 75 // The name of the third party source repository. 76 Name pulumi.StringOutput `pulumi:"name"` 77 // The username for the account that owns the repository. 78 Owner pulumi.StringOutput `pulumi:"owner"` 79 // The provider type of the repository association. 80 ProviderType pulumi.StringOutput `pulumi:"providerType"` 81 // An object describing the repository to associate. Valid values: `bitbucket`, `codecommit`, `githubEnterpriseServer`, or `s3Bucket`. Block is documented below. Note: for repositories that leverage CodeStar connections (ex. `bitbucket`, `githubEnterpriseServer`) the connection must be in `Available` status prior to creating this resource. 82 // 83 // The following arguments are optional: 84 Repository RepositoryAssociationRepositoryOutput `pulumi:"repository"` 85 S3RepositoryDetails RepositoryAssociationS3RepositoryDetailArrayOutput `pulumi:"s3RepositoryDetails"` 86 // The state of the repository association. 87 State pulumi.StringOutput `pulumi:"state"` 88 // A description of why the repository association is in the current state. 89 StateReason pulumi.StringOutput `pulumi:"stateReason"` 90 Tags pulumi.StringMapOutput `pulumi:"tags"` 91 // Deprecated: Please use `tags` instead. 92 TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` 93 } 94 95 // NewRepositoryAssociation registers a new resource with the given unique name, arguments, and options. 96 func NewRepositoryAssociation(ctx *pulumi.Context, 97 name string, args *RepositoryAssociationArgs, opts ...pulumi.ResourceOption) (*RepositoryAssociation, error) { 98 if args == nil { 99 return nil, errors.New("missing one or more required arguments") 100 } 101 102 if args.Repository == nil { 103 return nil, errors.New("invalid value for required argument 'Repository'") 104 } 105 opts = internal.PkgResourceDefaultOpts(opts) 106 var resource RepositoryAssociation 107 err := ctx.RegisterResource("aws:codegurureviewer/repositoryAssociation:RepositoryAssociation", name, args, &resource, opts...) 108 if err != nil { 109 return nil, err 110 } 111 return &resource, nil 112 } 113 114 // GetRepositoryAssociation gets an existing RepositoryAssociation resource's state with the given name, ID, and optional 115 // state properties that are used to uniquely qualify the lookup (nil if not required). 116 func GetRepositoryAssociation(ctx *pulumi.Context, 117 name string, id pulumi.IDInput, state *RepositoryAssociationState, opts ...pulumi.ResourceOption) (*RepositoryAssociation, error) { 118 var resource RepositoryAssociation 119 err := ctx.ReadResource("aws:codegurureviewer/repositoryAssociation:RepositoryAssociation", name, id, state, &resource, opts...) 120 if err != nil { 121 return nil, err 122 } 123 return &resource, nil 124 } 125 126 // Input properties used for looking up and filtering RepositoryAssociation resources. 127 type repositoryAssociationState struct { 128 // The Amazon Resource Name (ARN) identifying the repository association. 129 Arn *string `pulumi:"arn"` 130 // The ID of the repository association. 131 AssociationId *string `pulumi:"associationId"` 132 // The Amazon Resource Name (ARN) of an AWS CodeStar Connections connection. 133 ConnectionArn *string `pulumi:"connectionArn"` 134 // An object describing the KMS key to asssociate. Block is documented below. 135 KmsKeyDetails *RepositoryAssociationKmsKeyDetails `pulumi:"kmsKeyDetails"` 136 // The name of the third party source repository. 137 Name *string `pulumi:"name"` 138 // The username for the account that owns the repository. 139 Owner *string `pulumi:"owner"` 140 // The provider type of the repository association. 141 ProviderType *string `pulumi:"providerType"` 142 // An object describing the repository to associate. Valid values: `bitbucket`, `codecommit`, `githubEnterpriseServer`, or `s3Bucket`. Block is documented below. Note: for repositories that leverage CodeStar connections (ex. `bitbucket`, `githubEnterpriseServer`) the connection must be in `Available` status prior to creating this resource. 143 // 144 // The following arguments are optional: 145 Repository *RepositoryAssociationRepository `pulumi:"repository"` 146 S3RepositoryDetails []RepositoryAssociationS3RepositoryDetail `pulumi:"s3RepositoryDetails"` 147 // The state of the repository association. 148 State *string `pulumi:"state"` 149 // A description of why the repository association is in the current state. 150 StateReason *string `pulumi:"stateReason"` 151 Tags map[string]string `pulumi:"tags"` 152 // Deprecated: Please use `tags` instead. 153 TagsAll map[string]string `pulumi:"tagsAll"` 154 } 155 156 type RepositoryAssociationState struct { 157 // The Amazon Resource Name (ARN) identifying the repository association. 158 Arn pulumi.StringPtrInput 159 // The ID of the repository association. 160 AssociationId pulumi.StringPtrInput 161 // The Amazon Resource Name (ARN) of an AWS CodeStar Connections connection. 162 ConnectionArn pulumi.StringPtrInput 163 // An object describing the KMS key to asssociate. Block is documented below. 164 KmsKeyDetails RepositoryAssociationKmsKeyDetailsPtrInput 165 // The name of the third party source repository. 166 Name pulumi.StringPtrInput 167 // The username for the account that owns the repository. 168 Owner pulumi.StringPtrInput 169 // The provider type of the repository association. 170 ProviderType pulumi.StringPtrInput 171 // An object describing the repository to associate. Valid values: `bitbucket`, `codecommit`, `githubEnterpriseServer`, or `s3Bucket`. Block is documented below. Note: for repositories that leverage CodeStar connections (ex. `bitbucket`, `githubEnterpriseServer`) the connection must be in `Available` status prior to creating this resource. 172 // 173 // The following arguments are optional: 174 Repository RepositoryAssociationRepositoryPtrInput 175 S3RepositoryDetails RepositoryAssociationS3RepositoryDetailArrayInput 176 // The state of the repository association. 177 State pulumi.StringPtrInput 178 // A description of why the repository association is in the current state. 179 StateReason pulumi.StringPtrInput 180 Tags pulumi.StringMapInput 181 // Deprecated: Please use `tags` instead. 182 TagsAll pulumi.StringMapInput 183 } 184 185 func (RepositoryAssociationState) ElementType() reflect.Type { 186 return reflect.TypeOf((*repositoryAssociationState)(nil)).Elem() 187 } 188 189 type repositoryAssociationArgs struct { 190 // An object describing the KMS key to asssociate. Block is documented below. 191 KmsKeyDetails *RepositoryAssociationKmsKeyDetails `pulumi:"kmsKeyDetails"` 192 // An object describing the repository to associate. Valid values: `bitbucket`, `codecommit`, `githubEnterpriseServer`, or `s3Bucket`. Block is documented below. Note: for repositories that leverage CodeStar connections (ex. `bitbucket`, `githubEnterpriseServer`) the connection must be in `Available` status prior to creating this resource. 193 // 194 // The following arguments are optional: 195 Repository RepositoryAssociationRepository `pulumi:"repository"` 196 Tags map[string]string `pulumi:"tags"` 197 } 198 199 // The set of arguments for constructing a RepositoryAssociation resource. 200 type RepositoryAssociationArgs struct { 201 // An object describing the KMS key to asssociate. Block is documented below. 202 KmsKeyDetails RepositoryAssociationKmsKeyDetailsPtrInput 203 // An object describing the repository to associate. Valid values: `bitbucket`, `codecommit`, `githubEnterpriseServer`, or `s3Bucket`. Block is documented below. Note: for repositories that leverage CodeStar connections (ex. `bitbucket`, `githubEnterpriseServer`) the connection must be in `Available` status prior to creating this resource. 204 // 205 // The following arguments are optional: 206 Repository RepositoryAssociationRepositoryInput 207 Tags pulumi.StringMapInput 208 } 209 210 func (RepositoryAssociationArgs) ElementType() reflect.Type { 211 return reflect.TypeOf((*repositoryAssociationArgs)(nil)).Elem() 212 } 213 214 type RepositoryAssociationInput interface { 215 pulumi.Input 216 217 ToRepositoryAssociationOutput() RepositoryAssociationOutput 218 ToRepositoryAssociationOutputWithContext(ctx context.Context) RepositoryAssociationOutput 219 } 220 221 func (*RepositoryAssociation) ElementType() reflect.Type { 222 return reflect.TypeOf((**RepositoryAssociation)(nil)).Elem() 223 } 224 225 func (i *RepositoryAssociation) ToRepositoryAssociationOutput() RepositoryAssociationOutput { 226 return i.ToRepositoryAssociationOutputWithContext(context.Background()) 227 } 228 229 func (i *RepositoryAssociation) ToRepositoryAssociationOutputWithContext(ctx context.Context) RepositoryAssociationOutput { 230 return pulumi.ToOutputWithContext(ctx, i).(RepositoryAssociationOutput) 231 } 232 233 // RepositoryAssociationArrayInput is an input type that accepts RepositoryAssociationArray and RepositoryAssociationArrayOutput values. 234 // You can construct a concrete instance of `RepositoryAssociationArrayInput` via: 235 // 236 // RepositoryAssociationArray{ RepositoryAssociationArgs{...} } 237 type RepositoryAssociationArrayInput interface { 238 pulumi.Input 239 240 ToRepositoryAssociationArrayOutput() RepositoryAssociationArrayOutput 241 ToRepositoryAssociationArrayOutputWithContext(context.Context) RepositoryAssociationArrayOutput 242 } 243 244 type RepositoryAssociationArray []RepositoryAssociationInput 245 246 func (RepositoryAssociationArray) ElementType() reflect.Type { 247 return reflect.TypeOf((*[]*RepositoryAssociation)(nil)).Elem() 248 } 249 250 func (i RepositoryAssociationArray) ToRepositoryAssociationArrayOutput() RepositoryAssociationArrayOutput { 251 return i.ToRepositoryAssociationArrayOutputWithContext(context.Background()) 252 } 253 254 func (i RepositoryAssociationArray) ToRepositoryAssociationArrayOutputWithContext(ctx context.Context) RepositoryAssociationArrayOutput { 255 return pulumi.ToOutputWithContext(ctx, i).(RepositoryAssociationArrayOutput) 256 } 257 258 // RepositoryAssociationMapInput is an input type that accepts RepositoryAssociationMap and RepositoryAssociationMapOutput values. 259 // You can construct a concrete instance of `RepositoryAssociationMapInput` via: 260 // 261 // RepositoryAssociationMap{ "key": RepositoryAssociationArgs{...} } 262 type RepositoryAssociationMapInput interface { 263 pulumi.Input 264 265 ToRepositoryAssociationMapOutput() RepositoryAssociationMapOutput 266 ToRepositoryAssociationMapOutputWithContext(context.Context) RepositoryAssociationMapOutput 267 } 268 269 type RepositoryAssociationMap map[string]RepositoryAssociationInput 270 271 func (RepositoryAssociationMap) ElementType() reflect.Type { 272 return reflect.TypeOf((*map[string]*RepositoryAssociation)(nil)).Elem() 273 } 274 275 func (i RepositoryAssociationMap) ToRepositoryAssociationMapOutput() RepositoryAssociationMapOutput { 276 return i.ToRepositoryAssociationMapOutputWithContext(context.Background()) 277 } 278 279 func (i RepositoryAssociationMap) ToRepositoryAssociationMapOutputWithContext(ctx context.Context) RepositoryAssociationMapOutput { 280 return pulumi.ToOutputWithContext(ctx, i).(RepositoryAssociationMapOutput) 281 } 282 283 type RepositoryAssociationOutput struct{ *pulumi.OutputState } 284 285 func (RepositoryAssociationOutput) ElementType() reflect.Type { 286 return reflect.TypeOf((**RepositoryAssociation)(nil)).Elem() 287 } 288 289 func (o RepositoryAssociationOutput) ToRepositoryAssociationOutput() RepositoryAssociationOutput { 290 return o 291 } 292 293 func (o RepositoryAssociationOutput) ToRepositoryAssociationOutputWithContext(ctx context.Context) RepositoryAssociationOutput { 294 return o 295 } 296 297 // The Amazon Resource Name (ARN) identifying the repository association. 298 func (o RepositoryAssociationOutput) Arn() pulumi.StringOutput { 299 return o.ApplyT(func(v *RepositoryAssociation) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) 300 } 301 302 // The ID of the repository association. 303 func (o RepositoryAssociationOutput) AssociationId() pulumi.StringOutput { 304 return o.ApplyT(func(v *RepositoryAssociation) pulumi.StringOutput { return v.AssociationId }).(pulumi.StringOutput) 305 } 306 307 // The Amazon Resource Name (ARN) of an AWS CodeStar Connections connection. 308 func (o RepositoryAssociationOutput) ConnectionArn() pulumi.StringOutput { 309 return o.ApplyT(func(v *RepositoryAssociation) pulumi.StringOutput { return v.ConnectionArn }).(pulumi.StringOutput) 310 } 311 312 // An object describing the KMS key to asssociate. Block is documented below. 313 func (o RepositoryAssociationOutput) KmsKeyDetails() RepositoryAssociationKmsKeyDetailsPtrOutput { 314 return o.ApplyT(func(v *RepositoryAssociation) RepositoryAssociationKmsKeyDetailsPtrOutput { return v.KmsKeyDetails }).(RepositoryAssociationKmsKeyDetailsPtrOutput) 315 } 316 317 // The name of the third party source repository. 318 func (o RepositoryAssociationOutput) Name() pulumi.StringOutput { 319 return o.ApplyT(func(v *RepositoryAssociation) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) 320 } 321 322 // The username for the account that owns the repository. 323 func (o RepositoryAssociationOutput) Owner() pulumi.StringOutput { 324 return o.ApplyT(func(v *RepositoryAssociation) pulumi.StringOutput { return v.Owner }).(pulumi.StringOutput) 325 } 326 327 // The provider type of the repository association. 328 func (o RepositoryAssociationOutput) ProviderType() pulumi.StringOutput { 329 return o.ApplyT(func(v *RepositoryAssociation) pulumi.StringOutput { return v.ProviderType }).(pulumi.StringOutput) 330 } 331 332 // An object describing the repository to associate. Valid values: `bitbucket`, `codecommit`, `githubEnterpriseServer`, or `s3Bucket`. Block is documented below. Note: for repositories that leverage CodeStar connections (ex. `bitbucket`, `githubEnterpriseServer`) the connection must be in `Available` status prior to creating this resource. 333 // 334 // The following arguments are optional: 335 func (o RepositoryAssociationOutput) Repository() RepositoryAssociationRepositoryOutput { 336 return o.ApplyT(func(v *RepositoryAssociation) RepositoryAssociationRepositoryOutput { return v.Repository }).(RepositoryAssociationRepositoryOutput) 337 } 338 339 func (o RepositoryAssociationOutput) S3RepositoryDetails() RepositoryAssociationS3RepositoryDetailArrayOutput { 340 return o.ApplyT(func(v *RepositoryAssociation) RepositoryAssociationS3RepositoryDetailArrayOutput { 341 return v.S3RepositoryDetails 342 }).(RepositoryAssociationS3RepositoryDetailArrayOutput) 343 } 344 345 // The state of the repository association. 346 func (o RepositoryAssociationOutput) State() pulumi.StringOutput { 347 return o.ApplyT(func(v *RepositoryAssociation) pulumi.StringOutput { return v.State }).(pulumi.StringOutput) 348 } 349 350 // A description of why the repository association is in the current state. 351 func (o RepositoryAssociationOutput) StateReason() pulumi.StringOutput { 352 return o.ApplyT(func(v *RepositoryAssociation) pulumi.StringOutput { return v.StateReason }).(pulumi.StringOutput) 353 } 354 355 func (o RepositoryAssociationOutput) Tags() pulumi.StringMapOutput { 356 return o.ApplyT(func(v *RepositoryAssociation) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) 357 } 358 359 // Deprecated: Please use `tags` instead. 360 func (o RepositoryAssociationOutput) TagsAll() pulumi.StringMapOutput { 361 return o.ApplyT(func(v *RepositoryAssociation) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) 362 } 363 364 type RepositoryAssociationArrayOutput struct{ *pulumi.OutputState } 365 366 func (RepositoryAssociationArrayOutput) ElementType() reflect.Type { 367 return reflect.TypeOf((*[]*RepositoryAssociation)(nil)).Elem() 368 } 369 370 func (o RepositoryAssociationArrayOutput) ToRepositoryAssociationArrayOutput() RepositoryAssociationArrayOutput { 371 return o 372 } 373 374 func (o RepositoryAssociationArrayOutput) ToRepositoryAssociationArrayOutputWithContext(ctx context.Context) RepositoryAssociationArrayOutput { 375 return o 376 } 377 378 func (o RepositoryAssociationArrayOutput) Index(i pulumi.IntInput) RepositoryAssociationOutput { 379 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *RepositoryAssociation { 380 return vs[0].([]*RepositoryAssociation)[vs[1].(int)] 381 }).(RepositoryAssociationOutput) 382 } 383 384 type RepositoryAssociationMapOutput struct{ *pulumi.OutputState } 385 386 func (RepositoryAssociationMapOutput) ElementType() reflect.Type { 387 return reflect.TypeOf((*map[string]*RepositoryAssociation)(nil)).Elem() 388 } 389 390 func (o RepositoryAssociationMapOutput) ToRepositoryAssociationMapOutput() RepositoryAssociationMapOutput { 391 return o 392 } 393 394 func (o RepositoryAssociationMapOutput) ToRepositoryAssociationMapOutputWithContext(ctx context.Context) RepositoryAssociationMapOutput { 395 return o 396 } 397 398 func (o RepositoryAssociationMapOutput) MapIndex(k pulumi.StringInput) RepositoryAssociationOutput { 399 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *RepositoryAssociation { 400 return vs[0].(map[string]*RepositoryAssociation)[vs[1].(string)] 401 }).(RepositoryAssociationOutput) 402 } 403 404 func init() { 405 pulumi.RegisterInputType(reflect.TypeOf((*RepositoryAssociationInput)(nil)).Elem(), &RepositoryAssociation{}) 406 pulumi.RegisterInputType(reflect.TypeOf((*RepositoryAssociationArrayInput)(nil)).Elem(), RepositoryAssociationArray{}) 407 pulumi.RegisterInputType(reflect.TypeOf((*RepositoryAssociationMapInput)(nil)).Elem(), RepositoryAssociationMap{}) 408 pulumi.RegisterOutputType(RepositoryAssociationOutput{}) 409 pulumi.RegisterOutputType(RepositoryAssociationArrayOutput{}) 410 pulumi.RegisterOutputType(RepositoryAssociationMapOutput{}) 411 }