github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/securitylake/subscriber.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 securitylake
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    11  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    12  )
    13  
    14  // Resource for managing an AWS Security Lake Subscriber.
    15  //
    16  // ## Import
    17  //
    18  // Using `pulumi import`, import Security Lake subscriber using the subscriber ID. For example:
    19  //
    20  // ```sh
    21  // $ pulumi import aws:securitylake/subscriber:Subscriber example 9f3bfe79-d543-474d-a93c-f3846805d208
    22  // ```
    23  type Subscriber struct {
    24  	pulumi.CustomResourceState
    25  
    26  	AccessType pulumi.StringOutput `pulumi:"accessType"`
    27  	// ARN of the Data Lake.
    28  	Arn pulumi.StringOutput `pulumi:"arn"`
    29  	// The Amazon Resource Name (ARN) which uniquely defines the AWS RAM resource share. Before accepting the RAM resource share invitation, you can view details related to the RAM resource share.
    30  	ResourceShareArn pulumi.StringOutput `pulumi:"resourceShareArn"`
    31  	// The name of the resource share.
    32  	ResourceShareName pulumi.StringOutput `pulumi:"resourceShareName"`
    33  	// The ARN of the IAM role to be used by the entity putting logs into your custom source partition.
    34  	RoleArn pulumi.StringOutput `pulumi:"roleArn"`
    35  	// The ARN for the Amazon Security Lake Amazon S3 bucket.
    36  	S3BucketArn pulumi.StringOutput `pulumi:"s3BucketArn"`
    37  	// The supported AWS services from which logs and events are collected. Security Lake supports log and event collection for natively supported AWS services.
    38  	Source SubscriberSourcePtrOutput `pulumi:"source"`
    39  	// The description for your subscriber account in Security Lake.
    40  	SubscriberDescription pulumi.StringPtrOutput `pulumi:"subscriberDescription"`
    41  	// The subscriber endpoint to which exception messages are posted.
    42  	SubscriberEndpoint pulumi.StringOutput `pulumi:"subscriberEndpoint"`
    43  	// The AWS identity used to access your data.
    44  	SubscriberIdentity SubscriberSubscriberIdentityPtrOutput `pulumi:"subscriberIdentity"`
    45  	// The name of your Security Lake subscriber account.
    46  	SubscriberName pulumi.StringPtrOutput `pulumi:"subscriberName"`
    47  	// The subscriber status of the Amazon Security Lake subscriber account.
    48  	SubscriberStatus pulumi.StringOutput `pulumi:"subscriberStatus"`
    49  	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    50  	Tags pulumi.StringMapOutput `pulumi:"tags"`
    51  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
    52  	//
    53  	// Deprecated: Please use `tags` instead.
    54  	TagsAll  pulumi.StringMapOutput      `pulumi:"tagsAll"`
    55  	Timeouts SubscriberTimeoutsPtrOutput `pulumi:"timeouts"`
    56  }
    57  
    58  // NewSubscriber registers a new resource with the given unique name, arguments, and options.
    59  func NewSubscriber(ctx *pulumi.Context,
    60  	name string, args *SubscriberArgs, opts ...pulumi.ResourceOption) (*Subscriber, error) {
    61  	if args == nil {
    62  		args = &SubscriberArgs{}
    63  	}
    64  
    65  	opts = internal.PkgResourceDefaultOpts(opts)
    66  	var resource Subscriber
    67  	err := ctx.RegisterResource("aws:securitylake/subscriber:Subscriber", name, args, &resource, opts...)
    68  	if err != nil {
    69  		return nil, err
    70  	}
    71  	return &resource, nil
    72  }
    73  
    74  // GetSubscriber gets an existing Subscriber resource's state with the given name, ID, and optional
    75  // state properties that are used to uniquely qualify the lookup (nil if not required).
    76  func GetSubscriber(ctx *pulumi.Context,
    77  	name string, id pulumi.IDInput, state *SubscriberState, opts ...pulumi.ResourceOption) (*Subscriber, error) {
    78  	var resource Subscriber
    79  	err := ctx.ReadResource("aws:securitylake/subscriber:Subscriber", name, id, state, &resource, opts...)
    80  	if err != nil {
    81  		return nil, err
    82  	}
    83  	return &resource, nil
    84  }
    85  
    86  // Input properties used for looking up and filtering Subscriber resources.
    87  type subscriberState struct {
    88  	AccessType *string `pulumi:"accessType"`
    89  	// ARN of the Data Lake.
    90  	Arn *string `pulumi:"arn"`
    91  	// The Amazon Resource Name (ARN) which uniquely defines the AWS RAM resource share. Before accepting the RAM resource share invitation, you can view details related to the RAM resource share.
    92  	ResourceShareArn *string `pulumi:"resourceShareArn"`
    93  	// The name of the resource share.
    94  	ResourceShareName *string `pulumi:"resourceShareName"`
    95  	// The ARN of the IAM role to be used by the entity putting logs into your custom source partition.
    96  	RoleArn *string `pulumi:"roleArn"`
    97  	// The ARN for the Amazon Security Lake Amazon S3 bucket.
    98  	S3BucketArn *string `pulumi:"s3BucketArn"`
    99  	// The supported AWS services from which logs and events are collected. Security Lake supports log and event collection for natively supported AWS services.
   100  	Source *SubscriberSource `pulumi:"source"`
   101  	// The description for your subscriber account in Security Lake.
   102  	SubscriberDescription *string `pulumi:"subscriberDescription"`
   103  	// The subscriber endpoint to which exception messages are posted.
   104  	SubscriberEndpoint *string `pulumi:"subscriberEndpoint"`
   105  	// The AWS identity used to access your data.
   106  	SubscriberIdentity *SubscriberSubscriberIdentity `pulumi:"subscriberIdentity"`
   107  	// The name of your Security Lake subscriber account.
   108  	SubscriberName *string `pulumi:"subscriberName"`
   109  	// The subscriber status of the Amazon Security Lake subscriber account.
   110  	SubscriberStatus *string `pulumi:"subscriberStatus"`
   111  	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   112  	Tags map[string]string `pulumi:"tags"`
   113  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   114  	//
   115  	// Deprecated: Please use `tags` instead.
   116  	TagsAll  map[string]string   `pulumi:"tagsAll"`
   117  	Timeouts *SubscriberTimeouts `pulumi:"timeouts"`
   118  }
   119  
   120  type SubscriberState struct {
   121  	AccessType pulumi.StringPtrInput
   122  	// ARN of the Data Lake.
   123  	Arn pulumi.StringPtrInput
   124  	// The Amazon Resource Name (ARN) which uniquely defines the AWS RAM resource share. Before accepting the RAM resource share invitation, you can view details related to the RAM resource share.
   125  	ResourceShareArn pulumi.StringPtrInput
   126  	// The name of the resource share.
   127  	ResourceShareName pulumi.StringPtrInput
   128  	// The ARN of the IAM role to be used by the entity putting logs into your custom source partition.
   129  	RoleArn pulumi.StringPtrInput
   130  	// The ARN for the Amazon Security Lake Amazon S3 bucket.
   131  	S3BucketArn pulumi.StringPtrInput
   132  	// The supported AWS services from which logs and events are collected. Security Lake supports log and event collection for natively supported AWS services.
   133  	Source SubscriberSourcePtrInput
   134  	// The description for your subscriber account in Security Lake.
   135  	SubscriberDescription pulumi.StringPtrInput
   136  	// The subscriber endpoint to which exception messages are posted.
   137  	SubscriberEndpoint pulumi.StringPtrInput
   138  	// The AWS identity used to access your data.
   139  	SubscriberIdentity SubscriberSubscriberIdentityPtrInput
   140  	// The name of your Security Lake subscriber account.
   141  	SubscriberName pulumi.StringPtrInput
   142  	// The subscriber status of the Amazon Security Lake subscriber account.
   143  	SubscriberStatus pulumi.StringPtrInput
   144  	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   145  	Tags pulumi.StringMapInput
   146  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   147  	//
   148  	// Deprecated: Please use `tags` instead.
   149  	TagsAll  pulumi.StringMapInput
   150  	Timeouts SubscriberTimeoutsPtrInput
   151  }
   152  
   153  func (SubscriberState) ElementType() reflect.Type {
   154  	return reflect.TypeOf((*subscriberState)(nil)).Elem()
   155  }
   156  
   157  type subscriberArgs struct {
   158  	AccessType *string `pulumi:"accessType"`
   159  	// The supported AWS services from which logs and events are collected. Security Lake supports log and event collection for natively supported AWS services.
   160  	Source *SubscriberSource `pulumi:"source"`
   161  	// The description for your subscriber account in Security Lake.
   162  	SubscriberDescription *string `pulumi:"subscriberDescription"`
   163  	// The AWS identity used to access your data.
   164  	SubscriberIdentity *SubscriberSubscriberIdentity `pulumi:"subscriberIdentity"`
   165  	// The name of your Security Lake subscriber account.
   166  	SubscriberName *string `pulumi:"subscriberName"`
   167  	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   168  	Tags     map[string]string   `pulumi:"tags"`
   169  	Timeouts *SubscriberTimeouts `pulumi:"timeouts"`
   170  }
   171  
   172  // The set of arguments for constructing a Subscriber resource.
   173  type SubscriberArgs struct {
   174  	AccessType pulumi.StringPtrInput
   175  	// The supported AWS services from which logs and events are collected. Security Lake supports log and event collection for natively supported AWS services.
   176  	Source SubscriberSourcePtrInput
   177  	// The description for your subscriber account in Security Lake.
   178  	SubscriberDescription pulumi.StringPtrInput
   179  	// The AWS identity used to access your data.
   180  	SubscriberIdentity SubscriberSubscriberIdentityPtrInput
   181  	// The name of your Security Lake subscriber account.
   182  	SubscriberName pulumi.StringPtrInput
   183  	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   184  	Tags     pulumi.StringMapInput
   185  	Timeouts SubscriberTimeoutsPtrInput
   186  }
   187  
   188  func (SubscriberArgs) ElementType() reflect.Type {
   189  	return reflect.TypeOf((*subscriberArgs)(nil)).Elem()
   190  }
   191  
   192  type SubscriberInput interface {
   193  	pulumi.Input
   194  
   195  	ToSubscriberOutput() SubscriberOutput
   196  	ToSubscriberOutputWithContext(ctx context.Context) SubscriberOutput
   197  }
   198  
   199  func (*Subscriber) ElementType() reflect.Type {
   200  	return reflect.TypeOf((**Subscriber)(nil)).Elem()
   201  }
   202  
   203  func (i *Subscriber) ToSubscriberOutput() SubscriberOutput {
   204  	return i.ToSubscriberOutputWithContext(context.Background())
   205  }
   206  
   207  func (i *Subscriber) ToSubscriberOutputWithContext(ctx context.Context) SubscriberOutput {
   208  	return pulumi.ToOutputWithContext(ctx, i).(SubscriberOutput)
   209  }
   210  
   211  // SubscriberArrayInput is an input type that accepts SubscriberArray and SubscriberArrayOutput values.
   212  // You can construct a concrete instance of `SubscriberArrayInput` via:
   213  //
   214  //	SubscriberArray{ SubscriberArgs{...} }
   215  type SubscriberArrayInput interface {
   216  	pulumi.Input
   217  
   218  	ToSubscriberArrayOutput() SubscriberArrayOutput
   219  	ToSubscriberArrayOutputWithContext(context.Context) SubscriberArrayOutput
   220  }
   221  
   222  type SubscriberArray []SubscriberInput
   223  
   224  func (SubscriberArray) ElementType() reflect.Type {
   225  	return reflect.TypeOf((*[]*Subscriber)(nil)).Elem()
   226  }
   227  
   228  func (i SubscriberArray) ToSubscriberArrayOutput() SubscriberArrayOutput {
   229  	return i.ToSubscriberArrayOutputWithContext(context.Background())
   230  }
   231  
   232  func (i SubscriberArray) ToSubscriberArrayOutputWithContext(ctx context.Context) SubscriberArrayOutput {
   233  	return pulumi.ToOutputWithContext(ctx, i).(SubscriberArrayOutput)
   234  }
   235  
   236  // SubscriberMapInput is an input type that accepts SubscriberMap and SubscriberMapOutput values.
   237  // You can construct a concrete instance of `SubscriberMapInput` via:
   238  //
   239  //	SubscriberMap{ "key": SubscriberArgs{...} }
   240  type SubscriberMapInput interface {
   241  	pulumi.Input
   242  
   243  	ToSubscriberMapOutput() SubscriberMapOutput
   244  	ToSubscriberMapOutputWithContext(context.Context) SubscriberMapOutput
   245  }
   246  
   247  type SubscriberMap map[string]SubscriberInput
   248  
   249  func (SubscriberMap) ElementType() reflect.Type {
   250  	return reflect.TypeOf((*map[string]*Subscriber)(nil)).Elem()
   251  }
   252  
   253  func (i SubscriberMap) ToSubscriberMapOutput() SubscriberMapOutput {
   254  	return i.ToSubscriberMapOutputWithContext(context.Background())
   255  }
   256  
   257  func (i SubscriberMap) ToSubscriberMapOutputWithContext(ctx context.Context) SubscriberMapOutput {
   258  	return pulumi.ToOutputWithContext(ctx, i).(SubscriberMapOutput)
   259  }
   260  
   261  type SubscriberOutput struct{ *pulumi.OutputState }
   262  
   263  func (SubscriberOutput) ElementType() reflect.Type {
   264  	return reflect.TypeOf((**Subscriber)(nil)).Elem()
   265  }
   266  
   267  func (o SubscriberOutput) ToSubscriberOutput() SubscriberOutput {
   268  	return o
   269  }
   270  
   271  func (o SubscriberOutput) ToSubscriberOutputWithContext(ctx context.Context) SubscriberOutput {
   272  	return o
   273  }
   274  
   275  func (o SubscriberOutput) AccessType() pulumi.StringOutput {
   276  	return o.ApplyT(func(v *Subscriber) pulumi.StringOutput { return v.AccessType }).(pulumi.StringOutput)
   277  }
   278  
   279  // ARN of the Data Lake.
   280  func (o SubscriberOutput) Arn() pulumi.StringOutput {
   281  	return o.ApplyT(func(v *Subscriber) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   282  }
   283  
   284  // The Amazon Resource Name (ARN) which uniquely defines the AWS RAM resource share. Before accepting the RAM resource share invitation, you can view details related to the RAM resource share.
   285  func (o SubscriberOutput) ResourceShareArn() pulumi.StringOutput {
   286  	return o.ApplyT(func(v *Subscriber) pulumi.StringOutput { return v.ResourceShareArn }).(pulumi.StringOutput)
   287  }
   288  
   289  // The name of the resource share.
   290  func (o SubscriberOutput) ResourceShareName() pulumi.StringOutput {
   291  	return o.ApplyT(func(v *Subscriber) pulumi.StringOutput { return v.ResourceShareName }).(pulumi.StringOutput)
   292  }
   293  
   294  // The ARN of the IAM role to be used by the entity putting logs into your custom source partition.
   295  func (o SubscriberOutput) RoleArn() pulumi.StringOutput {
   296  	return o.ApplyT(func(v *Subscriber) pulumi.StringOutput { return v.RoleArn }).(pulumi.StringOutput)
   297  }
   298  
   299  // The ARN for the Amazon Security Lake Amazon S3 bucket.
   300  func (o SubscriberOutput) S3BucketArn() pulumi.StringOutput {
   301  	return o.ApplyT(func(v *Subscriber) pulumi.StringOutput { return v.S3BucketArn }).(pulumi.StringOutput)
   302  }
   303  
   304  // The supported AWS services from which logs and events are collected. Security Lake supports log and event collection for natively supported AWS services.
   305  func (o SubscriberOutput) Source() SubscriberSourcePtrOutput {
   306  	return o.ApplyT(func(v *Subscriber) SubscriberSourcePtrOutput { return v.Source }).(SubscriberSourcePtrOutput)
   307  }
   308  
   309  // The description for your subscriber account in Security Lake.
   310  func (o SubscriberOutput) SubscriberDescription() pulumi.StringPtrOutput {
   311  	return o.ApplyT(func(v *Subscriber) pulumi.StringPtrOutput { return v.SubscriberDescription }).(pulumi.StringPtrOutput)
   312  }
   313  
   314  // The subscriber endpoint to which exception messages are posted.
   315  func (o SubscriberOutput) SubscriberEndpoint() pulumi.StringOutput {
   316  	return o.ApplyT(func(v *Subscriber) pulumi.StringOutput { return v.SubscriberEndpoint }).(pulumi.StringOutput)
   317  }
   318  
   319  // The AWS identity used to access your data.
   320  func (o SubscriberOutput) SubscriberIdentity() SubscriberSubscriberIdentityPtrOutput {
   321  	return o.ApplyT(func(v *Subscriber) SubscriberSubscriberIdentityPtrOutput { return v.SubscriberIdentity }).(SubscriberSubscriberIdentityPtrOutput)
   322  }
   323  
   324  // The name of your Security Lake subscriber account.
   325  func (o SubscriberOutput) SubscriberName() pulumi.StringPtrOutput {
   326  	return o.ApplyT(func(v *Subscriber) pulumi.StringPtrOutput { return v.SubscriberName }).(pulumi.StringPtrOutput)
   327  }
   328  
   329  // The subscriber status of the Amazon Security Lake subscriber account.
   330  func (o SubscriberOutput) SubscriberStatus() pulumi.StringOutput {
   331  	return o.ApplyT(func(v *Subscriber) pulumi.StringOutput { return v.SubscriberStatus }).(pulumi.StringOutput)
   332  }
   333  
   334  // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   335  func (o SubscriberOutput) Tags() pulumi.StringMapOutput {
   336  	return o.ApplyT(func(v *Subscriber) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   337  }
   338  
   339  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   340  //
   341  // Deprecated: Please use `tags` instead.
   342  func (o SubscriberOutput) TagsAll() pulumi.StringMapOutput {
   343  	return o.ApplyT(func(v *Subscriber) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   344  }
   345  
   346  func (o SubscriberOutput) Timeouts() SubscriberTimeoutsPtrOutput {
   347  	return o.ApplyT(func(v *Subscriber) SubscriberTimeoutsPtrOutput { return v.Timeouts }).(SubscriberTimeoutsPtrOutput)
   348  }
   349  
   350  type SubscriberArrayOutput struct{ *pulumi.OutputState }
   351  
   352  func (SubscriberArrayOutput) ElementType() reflect.Type {
   353  	return reflect.TypeOf((*[]*Subscriber)(nil)).Elem()
   354  }
   355  
   356  func (o SubscriberArrayOutput) ToSubscriberArrayOutput() SubscriberArrayOutput {
   357  	return o
   358  }
   359  
   360  func (o SubscriberArrayOutput) ToSubscriberArrayOutputWithContext(ctx context.Context) SubscriberArrayOutput {
   361  	return o
   362  }
   363  
   364  func (o SubscriberArrayOutput) Index(i pulumi.IntInput) SubscriberOutput {
   365  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Subscriber {
   366  		return vs[0].([]*Subscriber)[vs[1].(int)]
   367  	}).(SubscriberOutput)
   368  }
   369  
   370  type SubscriberMapOutput struct{ *pulumi.OutputState }
   371  
   372  func (SubscriberMapOutput) ElementType() reflect.Type {
   373  	return reflect.TypeOf((*map[string]*Subscriber)(nil)).Elem()
   374  }
   375  
   376  func (o SubscriberMapOutput) ToSubscriberMapOutput() SubscriberMapOutput {
   377  	return o
   378  }
   379  
   380  func (o SubscriberMapOutput) ToSubscriberMapOutputWithContext(ctx context.Context) SubscriberMapOutput {
   381  	return o
   382  }
   383  
   384  func (o SubscriberMapOutput) MapIndex(k pulumi.StringInput) SubscriberOutput {
   385  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Subscriber {
   386  		return vs[0].(map[string]*Subscriber)[vs[1].(string)]
   387  	}).(SubscriberOutput)
   388  }
   389  
   390  func init() {
   391  	pulumi.RegisterInputType(reflect.TypeOf((*SubscriberInput)(nil)).Elem(), &Subscriber{})
   392  	pulumi.RegisterInputType(reflect.TypeOf((*SubscriberArrayInput)(nil)).Elem(), SubscriberArray{})
   393  	pulumi.RegisterInputType(reflect.TypeOf((*SubscriberMapInput)(nil)).Elem(), SubscriberMap{})
   394  	pulumi.RegisterOutputType(SubscriberOutput{})
   395  	pulumi.RegisterOutputType(SubscriberArrayOutput{})
   396  	pulumi.RegisterOutputType(SubscriberMapOutput{})
   397  }