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  }