github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/cleanrooms/collaboration.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 cleanrooms
     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 AWS Clean Rooms collaboration.  All members included in the definition will be invited to
    16  // join the collaboration and can create memberships.
    17  //
    18  // ## Example Usage
    19  //
    20  // ### Collaboration with tags
    21  //
    22  // <!--Start PulumiCodeChooser -->
    23  // ```go
    24  // package main
    25  //
    26  // import (
    27  //
    28  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cleanrooms"
    29  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    30  //
    31  // )
    32  //
    33  //	func main() {
    34  //		pulumi.Run(func(ctx *pulumi.Context) error {
    35  //			_, err := cleanrooms.NewCollaboration(ctx, "test_collaboration", &cleanrooms.CollaborationArgs{
    36  //				Name: pulumi.String("pulumi-example-collaboration"),
    37  //				CreatorMemberAbilities: pulumi.StringArray{
    38  //					pulumi.String("CAN_QUERY"),
    39  //					pulumi.String("CAN_RECEIVE_RESULTS"),
    40  //				},
    41  //				CreatorDisplayName: pulumi.String("Creator "),
    42  //				Description:        pulumi.String("I made this collaboration with Pulumi!"),
    43  //				QueryLogStatus:     pulumi.String("DISABLED"),
    44  //				DataEncryptionMetadata: &cleanrooms.CollaborationDataEncryptionMetadataArgs{
    45  //					AllowClearText:                        pulumi.Bool(true),
    46  //					AllowDuplicates:                       pulumi.Bool(true),
    47  //					AllowJoinsOnColumnsWithDifferentNames: pulumi.Bool(true),
    48  //					PreserveNulls:                         pulumi.Bool(false),
    49  //				},
    50  //				Members: cleanrooms.CollaborationMemberArray{
    51  //					&cleanrooms.CollaborationMemberArgs{
    52  //						AccountId:       pulumi.String("123456789012"),
    53  //						DisplayName:     pulumi.String("Other member"),
    54  //						MemberAbilities: pulumi.StringArray{},
    55  //					},
    56  //				},
    57  //				Tags: pulumi.StringMap{
    58  //					"Project": pulumi.String("Pulumi"),
    59  //				},
    60  //			})
    61  //			if err != nil {
    62  //				return err
    63  //			}
    64  //			return nil
    65  //		})
    66  //	}
    67  //
    68  // ```
    69  // <!--End PulumiCodeChooser -->
    70  //
    71  // ## Import
    72  //
    73  // Using `pulumi import`, import `aws_cleanrooms_collaboration` using the `id`. For example:
    74  //
    75  // ```sh
    76  // $ pulumi import aws:cleanrooms/collaboration:Collaboration collaboration 1234abcd-12ab-34cd-56ef-1234567890ab
    77  // ```
    78  type Collaboration struct {
    79  	pulumi.CustomResourceState
    80  
    81  	// The arn of the collaboration.
    82  	Arn pulumi.StringOutput `pulumi:"arn"`
    83  	// The date and time the collaboration was created.
    84  	// * `member status` - For each member included in the collaboration an additional computed attribute of status is added. These values [may be found here](https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_MemberSummary.html#API-Type-MemberSummary-status).
    85  	CreateTime pulumi.StringOutput `pulumi:"createTime"`
    86  	// The name for the member record for the collaboration creator.
    87  	CreatorDisplayName pulumi.StringOutput `pulumi:"creatorDisplayName"`
    88  	// The list of member abilities for the creator of the collaboration.  Valid values [may be found here](https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_CreateCollaboration.html#API-CreateCollaboration-request-creatorMemberAbilities).
    89  	CreatorMemberAbilities pulumi.StringArrayOutput `pulumi:"creatorMemberAbilities"`
    90  	// a collection of settings which determine how the [c3r client](https://docs.aws.amazon.com/clean-rooms/latest/userguide/crypto-computing.html) will encrypt data for use within this collaboration.
    91  	// * `data_encryption_metadata.allow_clear_text` - (Required - Forces new resource) - Indicates whether encrypted tables can contain cleartext data. This is a boolea
    92  	//   field.
    93  	// * `data_encryption_metadata.allow_duplicates` - (Required - Forces new resource ) - Indicates whether Fingerprint columns can contain duplicate entries. This is a
    94  	//   boolean field.
    95  	// * `data_encryption_metadata.allow_joins_on_columns_with_different_names` - (Required - Forces new resource) - Indicates whether Fingerprint columns can be joined
    96  	//   n any other Fingerprint column with a different name. This is a boolean field.
    97  	// * `data_encryption_metadata.preserve_nulls` - (Required - Forces new resource) - Indicates whether NULL values are to be copied as NULL to encrypted tables (true)
    98  	//   or cryptographically processed (false).
    99  	DataEncryptionMetadata CollaborationDataEncryptionMetadataPtrOutput `pulumi:"dataEncryptionMetadata"`
   100  	// A description for a collaboration.
   101  	Description pulumi.StringOutput `pulumi:"description"`
   102  	// Additional members of the collaboration which will be invited to join the collaboration.
   103  	// * `member.account_id` - (Required - Forces new resource) - The account id for the invited member.
   104  	// * `member.display_name` - (Required - Forces new resource) - The display name for the invited member.
   105  	// * `member.member_abilities` - (Required - Forces new resource) - The list of abilities for the invited member. Valid values [may be found here](https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_CreateCollaboration.html#API-CreateCollaboration-request-creatorMemberAbilities).
   106  	Members CollaborationMemberArrayOutput `pulumi:"members"`
   107  	// The name of the collaboration.  Collaboration names do not need to be unique.
   108  	Name pulumi.StringOutput `pulumi:"name"`
   109  	// Determines if members of the collaboration can enable query logs within their own.
   110  	// emberships. Valid values [may be found here](https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_CreateCollaboration.html#API-CreateCollaboration-request-queryLogStatus).
   111  	QueryLogStatus pulumi.StringOutput `pulumi:"queryLogStatus"`
   112  	// Key value pairs which tag the collaboration.
   113  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   114  	// Deprecated: Please use `tags` instead.
   115  	TagsAll    pulumi.StringMapOutput `pulumi:"tagsAll"`
   116  	UpdateTime pulumi.StringOutput    `pulumi:"updateTime"`
   117  }
   118  
   119  // NewCollaboration registers a new resource with the given unique name, arguments, and options.
   120  func NewCollaboration(ctx *pulumi.Context,
   121  	name string, args *CollaborationArgs, opts ...pulumi.ResourceOption) (*Collaboration, error) {
   122  	if args == nil {
   123  		return nil, errors.New("missing one or more required arguments")
   124  	}
   125  
   126  	if args.CreatorDisplayName == nil {
   127  		return nil, errors.New("invalid value for required argument 'CreatorDisplayName'")
   128  	}
   129  	if args.CreatorMemberAbilities == nil {
   130  		return nil, errors.New("invalid value for required argument 'CreatorMemberAbilities'")
   131  	}
   132  	if args.Description == nil {
   133  		return nil, errors.New("invalid value for required argument 'Description'")
   134  	}
   135  	if args.QueryLogStatus == nil {
   136  		return nil, errors.New("invalid value for required argument 'QueryLogStatus'")
   137  	}
   138  	opts = internal.PkgResourceDefaultOpts(opts)
   139  	var resource Collaboration
   140  	err := ctx.RegisterResource("aws:cleanrooms/collaboration:Collaboration", name, args, &resource, opts...)
   141  	if err != nil {
   142  		return nil, err
   143  	}
   144  	return &resource, nil
   145  }
   146  
   147  // GetCollaboration gets an existing Collaboration resource's state with the given name, ID, and optional
   148  // state properties that are used to uniquely qualify the lookup (nil if not required).
   149  func GetCollaboration(ctx *pulumi.Context,
   150  	name string, id pulumi.IDInput, state *CollaborationState, opts ...pulumi.ResourceOption) (*Collaboration, error) {
   151  	var resource Collaboration
   152  	err := ctx.ReadResource("aws:cleanrooms/collaboration:Collaboration", name, id, state, &resource, opts...)
   153  	if err != nil {
   154  		return nil, err
   155  	}
   156  	return &resource, nil
   157  }
   158  
   159  // Input properties used for looking up and filtering Collaboration resources.
   160  type collaborationState struct {
   161  	// The arn of the collaboration.
   162  	Arn *string `pulumi:"arn"`
   163  	// The date and time the collaboration was created.
   164  	// * `member status` - For each member included in the collaboration an additional computed attribute of status is added. These values [may be found here](https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_MemberSummary.html#API-Type-MemberSummary-status).
   165  	CreateTime *string `pulumi:"createTime"`
   166  	// The name for the member record for the collaboration creator.
   167  	CreatorDisplayName *string `pulumi:"creatorDisplayName"`
   168  	// The list of member abilities for the creator of the collaboration.  Valid values [may be found here](https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_CreateCollaboration.html#API-CreateCollaboration-request-creatorMemberAbilities).
   169  	CreatorMemberAbilities []string `pulumi:"creatorMemberAbilities"`
   170  	// a collection of settings which determine how the [c3r client](https://docs.aws.amazon.com/clean-rooms/latest/userguide/crypto-computing.html) will encrypt data for use within this collaboration.
   171  	// * `data_encryption_metadata.allow_clear_text` - (Required - Forces new resource) - Indicates whether encrypted tables can contain cleartext data. This is a boolea
   172  	//   field.
   173  	// * `data_encryption_metadata.allow_duplicates` - (Required - Forces new resource ) - Indicates whether Fingerprint columns can contain duplicate entries. This is a
   174  	//   boolean field.
   175  	// * `data_encryption_metadata.allow_joins_on_columns_with_different_names` - (Required - Forces new resource) - Indicates whether Fingerprint columns can be joined
   176  	//   n any other Fingerprint column with a different name. This is a boolean field.
   177  	// * `data_encryption_metadata.preserve_nulls` - (Required - Forces new resource) - Indicates whether NULL values are to be copied as NULL to encrypted tables (true)
   178  	//   or cryptographically processed (false).
   179  	DataEncryptionMetadata *CollaborationDataEncryptionMetadata `pulumi:"dataEncryptionMetadata"`
   180  	// A description for a collaboration.
   181  	Description *string `pulumi:"description"`
   182  	// Additional members of the collaboration which will be invited to join the collaboration.
   183  	// * `member.account_id` - (Required - Forces new resource) - The account id for the invited member.
   184  	// * `member.display_name` - (Required - Forces new resource) - The display name for the invited member.
   185  	// * `member.member_abilities` - (Required - Forces new resource) - The list of abilities for the invited member. Valid values [may be found here](https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_CreateCollaboration.html#API-CreateCollaboration-request-creatorMemberAbilities).
   186  	Members []CollaborationMember `pulumi:"members"`
   187  	// The name of the collaboration.  Collaboration names do not need to be unique.
   188  	Name *string `pulumi:"name"`
   189  	// Determines if members of the collaboration can enable query logs within their own.
   190  	// emberships. Valid values [may be found here](https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_CreateCollaboration.html#API-CreateCollaboration-request-queryLogStatus).
   191  	QueryLogStatus *string `pulumi:"queryLogStatus"`
   192  	// Key value pairs which tag the collaboration.
   193  	Tags map[string]string `pulumi:"tags"`
   194  	// Deprecated: Please use `tags` instead.
   195  	TagsAll    map[string]string `pulumi:"tagsAll"`
   196  	UpdateTime *string           `pulumi:"updateTime"`
   197  }
   198  
   199  type CollaborationState struct {
   200  	// The arn of the collaboration.
   201  	Arn pulumi.StringPtrInput
   202  	// The date and time the collaboration was created.
   203  	// * `member status` - For each member included in the collaboration an additional computed attribute of status is added. These values [may be found here](https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_MemberSummary.html#API-Type-MemberSummary-status).
   204  	CreateTime pulumi.StringPtrInput
   205  	// The name for the member record for the collaboration creator.
   206  	CreatorDisplayName pulumi.StringPtrInput
   207  	// The list of member abilities for the creator of the collaboration.  Valid values [may be found here](https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_CreateCollaboration.html#API-CreateCollaboration-request-creatorMemberAbilities).
   208  	CreatorMemberAbilities pulumi.StringArrayInput
   209  	// a collection of settings which determine how the [c3r client](https://docs.aws.amazon.com/clean-rooms/latest/userguide/crypto-computing.html) will encrypt data for use within this collaboration.
   210  	// * `data_encryption_metadata.allow_clear_text` - (Required - Forces new resource) - Indicates whether encrypted tables can contain cleartext data. This is a boolea
   211  	//   field.
   212  	// * `data_encryption_metadata.allow_duplicates` - (Required - Forces new resource ) - Indicates whether Fingerprint columns can contain duplicate entries. This is a
   213  	//   boolean field.
   214  	// * `data_encryption_metadata.allow_joins_on_columns_with_different_names` - (Required - Forces new resource) - Indicates whether Fingerprint columns can be joined
   215  	//   n any other Fingerprint column with a different name. This is a boolean field.
   216  	// * `data_encryption_metadata.preserve_nulls` - (Required - Forces new resource) - Indicates whether NULL values are to be copied as NULL to encrypted tables (true)
   217  	//   or cryptographically processed (false).
   218  	DataEncryptionMetadata CollaborationDataEncryptionMetadataPtrInput
   219  	// A description for a collaboration.
   220  	Description pulumi.StringPtrInput
   221  	// Additional members of the collaboration which will be invited to join the collaboration.
   222  	// * `member.account_id` - (Required - Forces new resource) - The account id for the invited member.
   223  	// * `member.display_name` - (Required - Forces new resource) - The display name for the invited member.
   224  	// * `member.member_abilities` - (Required - Forces new resource) - The list of abilities for the invited member. Valid values [may be found here](https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_CreateCollaboration.html#API-CreateCollaboration-request-creatorMemberAbilities).
   225  	Members CollaborationMemberArrayInput
   226  	// The name of the collaboration.  Collaboration names do not need to be unique.
   227  	Name pulumi.StringPtrInput
   228  	// Determines if members of the collaboration can enable query logs within their own.
   229  	// emberships. Valid values [may be found here](https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_CreateCollaboration.html#API-CreateCollaboration-request-queryLogStatus).
   230  	QueryLogStatus pulumi.StringPtrInput
   231  	// Key value pairs which tag the collaboration.
   232  	Tags pulumi.StringMapInput
   233  	// Deprecated: Please use `tags` instead.
   234  	TagsAll    pulumi.StringMapInput
   235  	UpdateTime pulumi.StringPtrInput
   236  }
   237  
   238  func (CollaborationState) ElementType() reflect.Type {
   239  	return reflect.TypeOf((*collaborationState)(nil)).Elem()
   240  }
   241  
   242  type collaborationArgs struct {
   243  	// The name for the member record for the collaboration creator.
   244  	CreatorDisplayName string `pulumi:"creatorDisplayName"`
   245  	// The list of member abilities for the creator of the collaboration.  Valid values [may be found here](https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_CreateCollaboration.html#API-CreateCollaboration-request-creatorMemberAbilities).
   246  	CreatorMemberAbilities []string `pulumi:"creatorMemberAbilities"`
   247  	// a collection of settings which determine how the [c3r client](https://docs.aws.amazon.com/clean-rooms/latest/userguide/crypto-computing.html) will encrypt data for use within this collaboration.
   248  	// * `data_encryption_metadata.allow_clear_text` - (Required - Forces new resource) - Indicates whether encrypted tables can contain cleartext data. This is a boolea
   249  	//   field.
   250  	// * `data_encryption_metadata.allow_duplicates` - (Required - Forces new resource ) - Indicates whether Fingerprint columns can contain duplicate entries. This is a
   251  	//   boolean field.
   252  	// * `data_encryption_metadata.allow_joins_on_columns_with_different_names` - (Required - Forces new resource) - Indicates whether Fingerprint columns can be joined
   253  	//   n any other Fingerprint column with a different name. This is a boolean field.
   254  	// * `data_encryption_metadata.preserve_nulls` - (Required - Forces new resource) - Indicates whether NULL values are to be copied as NULL to encrypted tables (true)
   255  	//   or cryptographically processed (false).
   256  	DataEncryptionMetadata *CollaborationDataEncryptionMetadata `pulumi:"dataEncryptionMetadata"`
   257  	// A description for a collaboration.
   258  	Description string `pulumi:"description"`
   259  	// Additional members of the collaboration which will be invited to join the collaboration.
   260  	// * `member.account_id` - (Required - Forces new resource) - The account id for the invited member.
   261  	// * `member.display_name` - (Required - Forces new resource) - The display name for the invited member.
   262  	// * `member.member_abilities` - (Required - Forces new resource) - The list of abilities for the invited member. Valid values [may be found here](https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_CreateCollaboration.html#API-CreateCollaboration-request-creatorMemberAbilities).
   263  	Members []CollaborationMember `pulumi:"members"`
   264  	// The name of the collaboration.  Collaboration names do not need to be unique.
   265  	Name *string `pulumi:"name"`
   266  	// Determines if members of the collaboration can enable query logs within their own.
   267  	// emberships. Valid values [may be found here](https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_CreateCollaboration.html#API-CreateCollaboration-request-queryLogStatus).
   268  	QueryLogStatus string `pulumi:"queryLogStatus"`
   269  	// Key value pairs which tag the collaboration.
   270  	Tags map[string]string `pulumi:"tags"`
   271  }
   272  
   273  // The set of arguments for constructing a Collaboration resource.
   274  type CollaborationArgs struct {
   275  	// The name for the member record for the collaboration creator.
   276  	CreatorDisplayName pulumi.StringInput
   277  	// The list of member abilities for the creator of the collaboration.  Valid values [may be found here](https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_CreateCollaboration.html#API-CreateCollaboration-request-creatorMemberAbilities).
   278  	CreatorMemberAbilities pulumi.StringArrayInput
   279  	// a collection of settings which determine how the [c3r client](https://docs.aws.amazon.com/clean-rooms/latest/userguide/crypto-computing.html) will encrypt data for use within this collaboration.
   280  	// * `data_encryption_metadata.allow_clear_text` - (Required - Forces new resource) - Indicates whether encrypted tables can contain cleartext data. This is a boolea
   281  	//   field.
   282  	// * `data_encryption_metadata.allow_duplicates` - (Required - Forces new resource ) - Indicates whether Fingerprint columns can contain duplicate entries. This is a
   283  	//   boolean field.
   284  	// * `data_encryption_metadata.allow_joins_on_columns_with_different_names` - (Required - Forces new resource) - Indicates whether Fingerprint columns can be joined
   285  	//   n any other Fingerprint column with a different name. This is a boolean field.
   286  	// * `data_encryption_metadata.preserve_nulls` - (Required - Forces new resource) - Indicates whether NULL values are to be copied as NULL to encrypted tables (true)
   287  	//   or cryptographically processed (false).
   288  	DataEncryptionMetadata CollaborationDataEncryptionMetadataPtrInput
   289  	// A description for a collaboration.
   290  	Description pulumi.StringInput
   291  	// Additional members of the collaboration which will be invited to join the collaboration.
   292  	// * `member.account_id` - (Required - Forces new resource) - The account id for the invited member.
   293  	// * `member.display_name` - (Required - Forces new resource) - The display name for the invited member.
   294  	// * `member.member_abilities` - (Required - Forces new resource) - The list of abilities for the invited member. Valid values [may be found here](https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_CreateCollaboration.html#API-CreateCollaboration-request-creatorMemberAbilities).
   295  	Members CollaborationMemberArrayInput
   296  	// The name of the collaboration.  Collaboration names do not need to be unique.
   297  	Name pulumi.StringPtrInput
   298  	// Determines if members of the collaboration can enable query logs within their own.
   299  	// emberships. Valid values [may be found here](https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_CreateCollaboration.html#API-CreateCollaboration-request-queryLogStatus).
   300  	QueryLogStatus pulumi.StringInput
   301  	// Key value pairs which tag the collaboration.
   302  	Tags pulumi.StringMapInput
   303  }
   304  
   305  func (CollaborationArgs) ElementType() reflect.Type {
   306  	return reflect.TypeOf((*collaborationArgs)(nil)).Elem()
   307  }
   308  
   309  type CollaborationInput interface {
   310  	pulumi.Input
   311  
   312  	ToCollaborationOutput() CollaborationOutput
   313  	ToCollaborationOutputWithContext(ctx context.Context) CollaborationOutput
   314  }
   315  
   316  func (*Collaboration) ElementType() reflect.Type {
   317  	return reflect.TypeOf((**Collaboration)(nil)).Elem()
   318  }
   319  
   320  func (i *Collaboration) ToCollaborationOutput() CollaborationOutput {
   321  	return i.ToCollaborationOutputWithContext(context.Background())
   322  }
   323  
   324  func (i *Collaboration) ToCollaborationOutputWithContext(ctx context.Context) CollaborationOutput {
   325  	return pulumi.ToOutputWithContext(ctx, i).(CollaborationOutput)
   326  }
   327  
   328  // CollaborationArrayInput is an input type that accepts CollaborationArray and CollaborationArrayOutput values.
   329  // You can construct a concrete instance of `CollaborationArrayInput` via:
   330  //
   331  //	CollaborationArray{ CollaborationArgs{...} }
   332  type CollaborationArrayInput interface {
   333  	pulumi.Input
   334  
   335  	ToCollaborationArrayOutput() CollaborationArrayOutput
   336  	ToCollaborationArrayOutputWithContext(context.Context) CollaborationArrayOutput
   337  }
   338  
   339  type CollaborationArray []CollaborationInput
   340  
   341  func (CollaborationArray) ElementType() reflect.Type {
   342  	return reflect.TypeOf((*[]*Collaboration)(nil)).Elem()
   343  }
   344  
   345  func (i CollaborationArray) ToCollaborationArrayOutput() CollaborationArrayOutput {
   346  	return i.ToCollaborationArrayOutputWithContext(context.Background())
   347  }
   348  
   349  func (i CollaborationArray) ToCollaborationArrayOutputWithContext(ctx context.Context) CollaborationArrayOutput {
   350  	return pulumi.ToOutputWithContext(ctx, i).(CollaborationArrayOutput)
   351  }
   352  
   353  // CollaborationMapInput is an input type that accepts CollaborationMap and CollaborationMapOutput values.
   354  // You can construct a concrete instance of `CollaborationMapInput` via:
   355  //
   356  //	CollaborationMap{ "key": CollaborationArgs{...} }
   357  type CollaborationMapInput interface {
   358  	pulumi.Input
   359  
   360  	ToCollaborationMapOutput() CollaborationMapOutput
   361  	ToCollaborationMapOutputWithContext(context.Context) CollaborationMapOutput
   362  }
   363  
   364  type CollaborationMap map[string]CollaborationInput
   365  
   366  func (CollaborationMap) ElementType() reflect.Type {
   367  	return reflect.TypeOf((*map[string]*Collaboration)(nil)).Elem()
   368  }
   369  
   370  func (i CollaborationMap) ToCollaborationMapOutput() CollaborationMapOutput {
   371  	return i.ToCollaborationMapOutputWithContext(context.Background())
   372  }
   373  
   374  func (i CollaborationMap) ToCollaborationMapOutputWithContext(ctx context.Context) CollaborationMapOutput {
   375  	return pulumi.ToOutputWithContext(ctx, i).(CollaborationMapOutput)
   376  }
   377  
   378  type CollaborationOutput struct{ *pulumi.OutputState }
   379  
   380  func (CollaborationOutput) ElementType() reflect.Type {
   381  	return reflect.TypeOf((**Collaboration)(nil)).Elem()
   382  }
   383  
   384  func (o CollaborationOutput) ToCollaborationOutput() CollaborationOutput {
   385  	return o
   386  }
   387  
   388  func (o CollaborationOutput) ToCollaborationOutputWithContext(ctx context.Context) CollaborationOutput {
   389  	return o
   390  }
   391  
   392  // The arn of the collaboration.
   393  func (o CollaborationOutput) Arn() pulumi.StringOutput {
   394  	return o.ApplyT(func(v *Collaboration) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   395  }
   396  
   397  // The date and time the collaboration was created.
   398  // * `member status` - For each member included in the collaboration an additional computed attribute of status is added. These values [may be found here](https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_MemberSummary.html#API-Type-MemberSummary-status).
   399  func (o CollaborationOutput) CreateTime() pulumi.StringOutput {
   400  	return o.ApplyT(func(v *Collaboration) pulumi.StringOutput { return v.CreateTime }).(pulumi.StringOutput)
   401  }
   402  
   403  // The name for the member record for the collaboration creator.
   404  func (o CollaborationOutput) CreatorDisplayName() pulumi.StringOutput {
   405  	return o.ApplyT(func(v *Collaboration) pulumi.StringOutput { return v.CreatorDisplayName }).(pulumi.StringOutput)
   406  }
   407  
   408  // The list of member abilities for the creator of the collaboration.  Valid values [may be found here](https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_CreateCollaboration.html#API-CreateCollaboration-request-creatorMemberAbilities).
   409  func (o CollaborationOutput) CreatorMemberAbilities() pulumi.StringArrayOutput {
   410  	return o.ApplyT(func(v *Collaboration) pulumi.StringArrayOutput { return v.CreatorMemberAbilities }).(pulumi.StringArrayOutput)
   411  }
   412  
   413  // a collection of settings which determine how the [c3r client](https://docs.aws.amazon.com/clean-rooms/latest/userguide/crypto-computing.html) will encrypt data for use within this collaboration.
   414  //   - `data_encryption_metadata.allow_clear_text` - (Required - Forces new resource) - Indicates whether encrypted tables can contain cleartext data. This is a boolea
   415  //     field.
   416  //   - `data_encryption_metadata.allow_duplicates` - (Required - Forces new resource ) - Indicates whether Fingerprint columns can contain duplicate entries. This is a
   417  //     boolean field.
   418  //   - `data_encryption_metadata.allow_joins_on_columns_with_different_names` - (Required - Forces new resource) - Indicates whether Fingerprint columns can be joined
   419  //     n any other Fingerprint column with a different name. This is a boolean field.
   420  //   - `data_encryption_metadata.preserve_nulls` - (Required - Forces new resource) - Indicates whether NULL values are to be copied as NULL to encrypted tables (true)
   421  //     or cryptographically processed (false).
   422  func (o CollaborationOutput) DataEncryptionMetadata() CollaborationDataEncryptionMetadataPtrOutput {
   423  	return o.ApplyT(func(v *Collaboration) CollaborationDataEncryptionMetadataPtrOutput { return v.DataEncryptionMetadata }).(CollaborationDataEncryptionMetadataPtrOutput)
   424  }
   425  
   426  // A description for a collaboration.
   427  func (o CollaborationOutput) Description() pulumi.StringOutput {
   428  	return o.ApplyT(func(v *Collaboration) pulumi.StringOutput { return v.Description }).(pulumi.StringOutput)
   429  }
   430  
   431  // Additional members of the collaboration which will be invited to join the collaboration.
   432  // * `member.account_id` - (Required - Forces new resource) - The account id for the invited member.
   433  // * `member.display_name` - (Required - Forces new resource) - The display name for the invited member.
   434  // * `member.member_abilities` - (Required - Forces new resource) - The list of abilities for the invited member. Valid values [may be found here](https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_CreateCollaboration.html#API-CreateCollaboration-request-creatorMemberAbilities).
   435  func (o CollaborationOutput) Members() CollaborationMemberArrayOutput {
   436  	return o.ApplyT(func(v *Collaboration) CollaborationMemberArrayOutput { return v.Members }).(CollaborationMemberArrayOutput)
   437  }
   438  
   439  // The name of the collaboration.  Collaboration names do not need to be unique.
   440  func (o CollaborationOutput) Name() pulumi.StringOutput {
   441  	return o.ApplyT(func(v *Collaboration) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   442  }
   443  
   444  // Determines if members of the collaboration can enable query logs within their own.
   445  // emberships. Valid values [may be found here](https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_CreateCollaboration.html#API-CreateCollaboration-request-queryLogStatus).
   446  func (o CollaborationOutput) QueryLogStatus() pulumi.StringOutput {
   447  	return o.ApplyT(func(v *Collaboration) pulumi.StringOutput { return v.QueryLogStatus }).(pulumi.StringOutput)
   448  }
   449  
   450  // Key value pairs which tag the collaboration.
   451  func (o CollaborationOutput) Tags() pulumi.StringMapOutput {
   452  	return o.ApplyT(func(v *Collaboration) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   453  }
   454  
   455  // Deprecated: Please use `tags` instead.
   456  func (o CollaborationOutput) TagsAll() pulumi.StringMapOutput {
   457  	return o.ApplyT(func(v *Collaboration) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   458  }
   459  
   460  func (o CollaborationOutput) UpdateTime() pulumi.StringOutput {
   461  	return o.ApplyT(func(v *Collaboration) pulumi.StringOutput { return v.UpdateTime }).(pulumi.StringOutput)
   462  }
   463  
   464  type CollaborationArrayOutput struct{ *pulumi.OutputState }
   465  
   466  func (CollaborationArrayOutput) ElementType() reflect.Type {
   467  	return reflect.TypeOf((*[]*Collaboration)(nil)).Elem()
   468  }
   469  
   470  func (o CollaborationArrayOutput) ToCollaborationArrayOutput() CollaborationArrayOutput {
   471  	return o
   472  }
   473  
   474  func (o CollaborationArrayOutput) ToCollaborationArrayOutputWithContext(ctx context.Context) CollaborationArrayOutput {
   475  	return o
   476  }
   477  
   478  func (o CollaborationArrayOutput) Index(i pulumi.IntInput) CollaborationOutput {
   479  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Collaboration {
   480  		return vs[0].([]*Collaboration)[vs[1].(int)]
   481  	}).(CollaborationOutput)
   482  }
   483  
   484  type CollaborationMapOutput struct{ *pulumi.OutputState }
   485  
   486  func (CollaborationMapOutput) ElementType() reflect.Type {
   487  	return reflect.TypeOf((*map[string]*Collaboration)(nil)).Elem()
   488  }
   489  
   490  func (o CollaborationMapOutput) ToCollaborationMapOutput() CollaborationMapOutput {
   491  	return o
   492  }
   493  
   494  func (o CollaborationMapOutput) ToCollaborationMapOutputWithContext(ctx context.Context) CollaborationMapOutput {
   495  	return o
   496  }
   497  
   498  func (o CollaborationMapOutput) MapIndex(k pulumi.StringInput) CollaborationOutput {
   499  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Collaboration {
   500  		return vs[0].(map[string]*Collaboration)[vs[1].(string)]
   501  	}).(CollaborationOutput)
   502  }
   503  
   504  func init() {
   505  	pulumi.RegisterInputType(reflect.TypeOf((*CollaborationInput)(nil)).Elem(), &Collaboration{})
   506  	pulumi.RegisterInputType(reflect.TypeOf((*CollaborationArrayInput)(nil)).Elem(), CollaborationArray{})
   507  	pulumi.RegisterInputType(reflect.TypeOf((*CollaborationMapInput)(nil)).Elem(), CollaborationMap{})
   508  	pulumi.RegisterOutputType(CollaborationOutput{})
   509  	pulumi.RegisterOutputType(CollaborationArrayOutput{})
   510  	pulumi.RegisterOutputType(CollaborationMapOutput{})
   511  }