github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/cloudtrail/eventDataStore.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 cloudtrail
     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  // Provides a CloudTrail Event Data Store.
    15  //
    16  // More information about event data stores can be found in the [Event Data Store User Guide](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-event-data-store.html).
    17  //
    18  // > **Tip:** For an organization event data store you must create this resource in the management account.
    19  //
    20  // ## Example Usage
    21  //
    22  // ### Basic
    23  //
    24  // The most simple event data store configuration requires us to only set the `name` attribute. The event data store will automatically capture all management events. To capture management events from all the regions, `multiRegionEnabled` must be `true`.
    25  //
    26  // <!--Start PulumiCodeChooser -->
    27  // ```go
    28  // package main
    29  //
    30  // import (
    31  //
    32  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudtrail"
    33  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    34  //
    35  // )
    36  //
    37  //	func main() {
    38  //		pulumi.Run(func(ctx *pulumi.Context) error {
    39  //			_, err := cloudtrail.NewEventDataStore(ctx, "example", &cloudtrail.EventDataStoreArgs{
    40  //				Name: pulumi.String("example-event-data-store"),
    41  //			})
    42  //			if err != nil {
    43  //				return err
    44  //			}
    45  //			return nil
    46  //		})
    47  //	}
    48  //
    49  // ```
    50  // <!--End PulumiCodeChooser -->
    51  //
    52  // ### Data Event Logging
    53  //
    54  // CloudTrail can log [Data Events](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html) for certain services such as S3 bucket objects and Lambda function invocations. Additional information about data event configuration can be found in the following links:
    55  //
    56  // - [CloudTrail API AdvancedFieldSelector documentation](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_AdvancedFieldSelector.html)
    57  //
    58  // ### Log all DynamoDB PutEvent actions for a specific DynamoDB table
    59  //
    60  // <!--Start PulumiCodeChooser -->
    61  // ```go
    62  // package main
    63  //
    64  // import (
    65  //
    66  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudtrail"
    67  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/dynamodb"
    68  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    69  //
    70  // )
    71  //
    72  //	func main() {
    73  //		pulumi.Run(func(ctx *pulumi.Context) error {
    74  //			table, err := dynamodb.LookupTable(ctx, &dynamodb.LookupTableArgs{
    75  //				Name: "not-important-dynamodb-table",
    76  //			}, nil)
    77  //			if err != nil {
    78  //				return err
    79  //			}
    80  //			_, err = cloudtrail.NewEventDataStore(ctx, "example", &cloudtrail.EventDataStoreArgs{
    81  //				AdvancedEventSelectors: cloudtrail.EventDataStoreAdvancedEventSelectorArray{
    82  //					&cloudtrail.EventDataStoreAdvancedEventSelectorArgs{
    83  //						Name: pulumi.String("Log all DynamoDB PutEvent actions for a specific DynamoDB table"),
    84  //						FieldSelectors: cloudtrail.EventDataStoreAdvancedEventSelectorFieldSelectorArray{
    85  //							&cloudtrail.EventDataStoreAdvancedEventSelectorFieldSelectorArgs{
    86  //								Field: pulumi.String("eventCategory"),
    87  //								Equals: pulumi.StringArray{
    88  //									pulumi.String("Data"),
    89  //								},
    90  //							},
    91  //							&cloudtrail.EventDataStoreAdvancedEventSelectorFieldSelectorArgs{
    92  //								Field: pulumi.String("resources.type"),
    93  //								Equals: pulumi.StringArray{
    94  //									pulumi.String("AWS::DynamoDB::Table"),
    95  //								},
    96  //							},
    97  //							&cloudtrail.EventDataStoreAdvancedEventSelectorFieldSelectorArgs{
    98  //								Field: pulumi.String("eventName"),
    99  //								Equals: pulumi.StringArray{
   100  //									pulumi.String("PutItem"),
   101  //								},
   102  //							},
   103  //							&cloudtrail.EventDataStoreAdvancedEventSelectorFieldSelectorArgs{
   104  //								Field: pulumi.String("resources.ARN"),
   105  //								Equals: pulumi.StringArray{
   106  //									pulumi.String(table.Arn),
   107  //								},
   108  //							},
   109  //						},
   110  //					},
   111  //				},
   112  //			})
   113  //			if err != nil {
   114  //				return err
   115  //			}
   116  //			return nil
   117  //		})
   118  //	}
   119  //
   120  // ```
   121  // <!--End PulumiCodeChooser -->
   122  //
   123  // ## Import
   124  //
   125  // Using `pulumi import`, import event data stores using their `arn`. For example:
   126  //
   127  // ```sh
   128  // $ pulumi import aws:cloudtrail/eventDataStore:EventDataStore example arn:aws:cloudtrail:us-east-1:123456789123:eventdatastore/22333815-4414-412c-b155-dd254033gfhf
   129  // ```
   130  type EventDataStore struct {
   131  	pulumi.CustomResourceState
   132  
   133  	// The advanced event selectors to use to select the events for the data store. For more information about how to use advanced event selectors, see [Log events by using advanced event selectors](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#creating-data-event-selectors-advanced) in the CloudTrail User Guide.
   134  	AdvancedEventSelectors EventDataStoreAdvancedEventSelectorArrayOutput `pulumi:"advancedEventSelectors"`
   135  	// ARN of the event data store.
   136  	Arn pulumi.StringOutput `pulumi:"arn"`
   137  	// Specifies the AWS KMS key ID to use to encrypt the events delivered by CloudTrail. The value can be an alias name prefixed by alias/, a fully specified ARN to an alias, a fully specified ARN to a key, or a globally unique identifier.
   138  	KmsKeyId pulumi.StringPtrOutput `pulumi:"kmsKeyId"`
   139  	// Specifies whether the event data store includes events from all regions, or only from the region in which the event data store is created. Default: `true`.
   140  	MultiRegionEnabled pulumi.BoolPtrOutput `pulumi:"multiRegionEnabled"`
   141  	// The name of the event data store.
   142  	Name pulumi.StringOutput `pulumi:"name"`
   143  	// Specifies whether an event data store collects events logged for an organization in AWS Organizations. Default: `false`.
   144  	OrganizationEnabled pulumi.BoolPtrOutput `pulumi:"organizationEnabled"`
   145  	// The retention period of the event data store, in days. You can set a retention period of up to 2555 days, the equivalent of seven years. Default: `2555`.
   146  	RetentionPeriod pulumi.IntPtrOutput `pulumi:"retentionPeriod"`
   147  	// A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   148  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   149  	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   150  	//
   151  	// Deprecated: Please use `tags` instead.
   152  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   153  	// Specifies whether termination protection is enabled for the event data store. If termination protection is enabled, you cannot delete the event data store until termination protection is disabled. Default: `true`.
   154  	TerminationProtectionEnabled pulumi.BoolPtrOutput `pulumi:"terminationProtectionEnabled"`
   155  }
   156  
   157  // NewEventDataStore registers a new resource with the given unique name, arguments, and options.
   158  func NewEventDataStore(ctx *pulumi.Context,
   159  	name string, args *EventDataStoreArgs, opts ...pulumi.ResourceOption) (*EventDataStore, error) {
   160  	if args == nil {
   161  		args = &EventDataStoreArgs{}
   162  	}
   163  
   164  	opts = internal.PkgResourceDefaultOpts(opts)
   165  	var resource EventDataStore
   166  	err := ctx.RegisterResource("aws:cloudtrail/eventDataStore:EventDataStore", name, args, &resource, opts...)
   167  	if err != nil {
   168  		return nil, err
   169  	}
   170  	return &resource, nil
   171  }
   172  
   173  // GetEventDataStore gets an existing EventDataStore resource's state with the given name, ID, and optional
   174  // state properties that are used to uniquely qualify the lookup (nil if not required).
   175  func GetEventDataStore(ctx *pulumi.Context,
   176  	name string, id pulumi.IDInput, state *EventDataStoreState, opts ...pulumi.ResourceOption) (*EventDataStore, error) {
   177  	var resource EventDataStore
   178  	err := ctx.ReadResource("aws:cloudtrail/eventDataStore:EventDataStore", name, id, state, &resource, opts...)
   179  	if err != nil {
   180  		return nil, err
   181  	}
   182  	return &resource, nil
   183  }
   184  
   185  // Input properties used for looking up and filtering EventDataStore resources.
   186  type eventDataStoreState struct {
   187  	// The advanced event selectors to use to select the events for the data store. For more information about how to use advanced event selectors, see [Log events by using advanced event selectors](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#creating-data-event-selectors-advanced) in the CloudTrail User Guide.
   188  	AdvancedEventSelectors []EventDataStoreAdvancedEventSelector `pulumi:"advancedEventSelectors"`
   189  	// ARN of the event data store.
   190  	Arn *string `pulumi:"arn"`
   191  	// Specifies the AWS KMS key ID to use to encrypt the events delivered by CloudTrail. The value can be an alias name prefixed by alias/, a fully specified ARN to an alias, a fully specified ARN to a key, or a globally unique identifier.
   192  	KmsKeyId *string `pulumi:"kmsKeyId"`
   193  	// Specifies whether the event data store includes events from all regions, or only from the region in which the event data store is created. Default: `true`.
   194  	MultiRegionEnabled *bool `pulumi:"multiRegionEnabled"`
   195  	// The name of the event data store.
   196  	Name *string `pulumi:"name"`
   197  	// Specifies whether an event data store collects events logged for an organization in AWS Organizations. Default: `false`.
   198  	OrganizationEnabled *bool `pulumi:"organizationEnabled"`
   199  	// The retention period of the event data store, in days. You can set a retention period of up to 2555 days, the equivalent of seven years. Default: `2555`.
   200  	RetentionPeriod *int `pulumi:"retentionPeriod"`
   201  	// A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   202  	Tags map[string]string `pulumi:"tags"`
   203  	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   204  	//
   205  	// Deprecated: Please use `tags` instead.
   206  	TagsAll map[string]string `pulumi:"tagsAll"`
   207  	// Specifies whether termination protection is enabled for the event data store. If termination protection is enabled, you cannot delete the event data store until termination protection is disabled. Default: `true`.
   208  	TerminationProtectionEnabled *bool `pulumi:"terminationProtectionEnabled"`
   209  }
   210  
   211  type EventDataStoreState struct {
   212  	// The advanced event selectors to use to select the events for the data store. For more information about how to use advanced event selectors, see [Log events by using advanced event selectors](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#creating-data-event-selectors-advanced) in the CloudTrail User Guide.
   213  	AdvancedEventSelectors EventDataStoreAdvancedEventSelectorArrayInput
   214  	// ARN of the event data store.
   215  	Arn pulumi.StringPtrInput
   216  	// Specifies the AWS KMS key ID to use to encrypt the events delivered by CloudTrail. The value can be an alias name prefixed by alias/, a fully specified ARN to an alias, a fully specified ARN to a key, or a globally unique identifier.
   217  	KmsKeyId pulumi.StringPtrInput
   218  	// Specifies whether the event data store includes events from all regions, or only from the region in which the event data store is created. Default: `true`.
   219  	MultiRegionEnabled pulumi.BoolPtrInput
   220  	// The name of the event data store.
   221  	Name pulumi.StringPtrInput
   222  	// Specifies whether an event data store collects events logged for an organization in AWS Organizations. Default: `false`.
   223  	OrganizationEnabled pulumi.BoolPtrInput
   224  	// The retention period of the event data store, in days. You can set a retention period of up to 2555 days, the equivalent of seven years. Default: `2555`.
   225  	RetentionPeriod pulumi.IntPtrInput
   226  	// A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   227  	Tags pulumi.StringMapInput
   228  	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   229  	//
   230  	// Deprecated: Please use `tags` instead.
   231  	TagsAll pulumi.StringMapInput
   232  	// Specifies whether termination protection is enabled for the event data store. If termination protection is enabled, you cannot delete the event data store until termination protection is disabled. Default: `true`.
   233  	TerminationProtectionEnabled pulumi.BoolPtrInput
   234  }
   235  
   236  func (EventDataStoreState) ElementType() reflect.Type {
   237  	return reflect.TypeOf((*eventDataStoreState)(nil)).Elem()
   238  }
   239  
   240  type eventDataStoreArgs struct {
   241  	// The advanced event selectors to use to select the events for the data store. For more information about how to use advanced event selectors, see [Log events by using advanced event selectors](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#creating-data-event-selectors-advanced) in the CloudTrail User Guide.
   242  	AdvancedEventSelectors []EventDataStoreAdvancedEventSelector `pulumi:"advancedEventSelectors"`
   243  	// Specifies the AWS KMS key ID to use to encrypt the events delivered by CloudTrail. The value can be an alias name prefixed by alias/, a fully specified ARN to an alias, a fully specified ARN to a key, or a globally unique identifier.
   244  	KmsKeyId *string `pulumi:"kmsKeyId"`
   245  	// Specifies whether the event data store includes events from all regions, or only from the region in which the event data store is created. Default: `true`.
   246  	MultiRegionEnabled *bool `pulumi:"multiRegionEnabled"`
   247  	// The name of the event data store.
   248  	Name *string `pulumi:"name"`
   249  	// Specifies whether an event data store collects events logged for an organization in AWS Organizations. Default: `false`.
   250  	OrganizationEnabled *bool `pulumi:"organizationEnabled"`
   251  	// The retention period of the event data store, in days. You can set a retention period of up to 2555 days, the equivalent of seven years. Default: `2555`.
   252  	RetentionPeriod *int `pulumi:"retentionPeriod"`
   253  	// A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   254  	Tags map[string]string `pulumi:"tags"`
   255  	// Specifies whether termination protection is enabled for the event data store. If termination protection is enabled, you cannot delete the event data store until termination protection is disabled. Default: `true`.
   256  	TerminationProtectionEnabled *bool `pulumi:"terminationProtectionEnabled"`
   257  }
   258  
   259  // The set of arguments for constructing a EventDataStore resource.
   260  type EventDataStoreArgs struct {
   261  	// The advanced event selectors to use to select the events for the data store. For more information about how to use advanced event selectors, see [Log events by using advanced event selectors](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#creating-data-event-selectors-advanced) in the CloudTrail User Guide.
   262  	AdvancedEventSelectors EventDataStoreAdvancedEventSelectorArrayInput
   263  	// Specifies the AWS KMS key ID to use to encrypt the events delivered by CloudTrail. The value can be an alias name prefixed by alias/, a fully specified ARN to an alias, a fully specified ARN to a key, or a globally unique identifier.
   264  	KmsKeyId pulumi.StringPtrInput
   265  	// Specifies whether the event data store includes events from all regions, or only from the region in which the event data store is created. Default: `true`.
   266  	MultiRegionEnabled pulumi.BoolPtrInput
   267  	// The name of the event data store.
   268  	Name pulumi.StringPtrInput
   269  	// Specifies whether an event data store collects events logged for an organization in AWS Organizations. Default: `false`.
   270  	OrganizationEnabled pulumi.BoolPtrInput
   271  	// The retention period of the event data store, in days. You can set a retention period of up to 2555 days, the equivalent of seven years. Default: `2555`.
   272  	RetentionPeriod pulumi.IntPtrInput
   273  	// A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   274  	Tags pulumi.StringMapInput
   275  	// Specifies whether termination protection is enabled for the event data store. If termination protection is enabled, you cannot delete the event data store until termination protection is disabled. Default: `true`.
   276  	TerminationProtectionEnabled pulumi.BoolPtrInput
   277  }
   278  
   279  func (EventDataStoreArgs) ElementType() reflect.Type {
   280  	return reflect.TypeOf((*eventDataStoreArgs)(nil)).Elem()
   281  }
   282  
   283  type EventDataStoreInput interface {
   284  	pulumi.Input
   285  
   286  	ToEventDataStoreOutput() EventDataStoreOutput
   287  	ToEventDataStoreOutputWithContext(ctx context.Context) EventDataStoreOutput
   288  }
   289  
   290  func (*EventDataStore) ElementType() reflect.Type {
   291  	return reflect.TypeOf((**EventDataStore)(nil)).Elem()
   292  }
   293  
   294  func (i *EventDataStore) ToEventDataStoreOutput() EventDataStoreOutput {
   295  	return i.ToEventDataStoreOutputWithContext(context.Background())
   296  }
   297  
   298  func (i *EventDataStore) ToEventDataStoreOutputWithContext(ctx context.Context) EventDataStoreOutput {
   299  	return pulumi.ToOutputWithContext(ctx, i).(EventDataStoreOutput)
   300  }
   301  
   302  // EventDataStoreArrayInput is an input type that accepts EventDataStoreArray and EventDataStoreArrayOutput values.
   303  // You can construct a concrete instance of `EventDataStoreArrayInput` via:
   304  //
   305  //	EventDataStoreArray{ EventDataStoreArgs{...} }
   306  type EventDataStoreArrayInput interface {
   307  	pulumi.Input
   308  
   309  	ToEventDataStoreArrayOutput() EventDataStoreArrayOutput
   310  	ToEventDataStoreArrayOutputWithContext(context.Context) EventDataStoreArrayOutput
   311  }
   312  
   313  type EventDataStoreArray []EventDataStoreInput
   314  
   315  func (EventDataStoreArray) ElementType() reflect.Type {
   316  	return reflect.TypeOf((*[]*EventDataStore)(nil)).Elem()
   317  }
   318  
   319  func (i EventDataStoreArray) ToEventDataStoreArrayOutput() EventDataStoreArrayOutput {
   320  	return i.ToEventDataStoreArrayOutputWithContext(context.Background())
   321  }
   322  
   323  func (i EventDataStoreArray) ToEventDataStoreArrayOutputWithContext(ctx context.Context) EventDataStoreArrayOutput {
   324  	return pulumi.ToOutputWithContext(ctx, i).(EventDataStoreArrayOutput)
   325  }
   326  
   327  // EventDataStoreMapInput is an input type that accepts EventDataStoreMap and EventDataStoreMapOutput values.
   328  // You can construct a concrete instance of `EventDataStoreMapInput` via:
   329  //
   330  //	EventDataStoreMap{ "key": EventDataStoreArgs{...} }
   331  type EventDataStoreMapInput interface {
   332  	pulumi.Input
   333  
   334  	ToEventDataStoreMapOutput() EventDataStoreMapOutput
   335  	ToEventDataStoreMapOutputWithContext(context.Context) EventDataStoreMapOutput
   336  }
   337  
   338  type EventDataStoreMap map[string]EventDataStoreInput
   339  
   340  func (EventDataStoreMap) ElementType() reflect.Type {
   341  	return reflect.TypeOf((*map[string]*EventDataStore)(nil)).Elem()
   342  }
   343  
   344  func (i EventDataStoreMap) ToEventDataStoreMapOutput() EventDataStoreMapOutput {
   345  	return i.ToEventDataStoreMapOutputWithContext(context.Background())
   346  }
   347  
   348  func (i EventDataStoreMap) ToEventDataStoreMapOutputWithContext(ctx context.Context) EventDataStoreMapOutput {
   349  	return pulumi.ToOutputWithContext(ctx, i).(EventDataStoreMapOutput)
   350  }
   351  
   352  type EventDataStoreOutput struct{ *pulumi.OutputState }
   353  
   354  func (EventDataStoreOutput) ElementType() reflect.Type {
   355  	return reflect.TypeOf((**EventDataStore)(nil)).Elem()
   356  }
   357  
   358  func (o EventDataStoreOutput) ToEventDataStoreOutput() EventDataStoreOutput {
   359  	return o
   360  }
   361  
   362  func (o EventDataStoreOutput) ToEventDataStoreOutputWithContext(ctx context.Context) EventDataStoreOutput {
   363  	return o
   364  }
   365  
   366  // The advanced event selectors to use to select the events for the data store. For more information about how to use advanced event selectors, see [Log events by using advanced event selectors](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#creating-data-event-selectors-advanced) in the CloudTrail User Guide.
   367  func (o EventDataStoreOutput) AdvancedEventSelectors() EventDataStoreAdvancedEventSelectorArrayOutput {
   368  	return o.ApplyT(func(v *EventDataStore) EventDataStoreAdvancedEventSelectorArrayOutput {
   369  		return v.AdvancedEventSelectors
   370  	}).(EventDataStoreAdvancedEventSelectorArrayOutput)
   371  }
   372  
   373  // ARN of the event data store.
   374  func (o EventDataStoreOutput) Arn() pulumi.StringOutput {
   375  	return o.ApplyT(func(v *EventDataStore) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   376  }
   377  
   378  // Specifies the AWS KMS key ID to use to encrypt the events delivered by CloudTrail. The value can be an alias name prefixed by alias/, a fully specified ARN to an alias, a fully specified ARN to a key, or a globally unique identifier.
   379  func (o EventDataStoreOutput) KmsKeyId() pulumi.StringPtrOutput {
   380  	return o.ApplyT(func(v *EventDataStore) pulumi.StringPtrOutput { return v.KmsKeyId }).(pulumi.StringPtrOutput)
   381  }
   382  
   383  // Specifies whether the event data store includes events from all regions, or only from the region in which the event data store is created. Default: `true`.
   384  func (o EventDataStoreOutput) MultiRegionEnabled() pulumi.BoolPtrOutput {
   385  	return o.ApplyT(func(v *EventDataStore) pulumi.BoolPtrOutput { return v.MultiRegionEnabled }).(pulumi.BoolPtrOutput)
   386  }
   387  
   388  // The name of the event data store.
   389  func (o EventDataStoreOutput) Name() pulumi.StringOutput {
   390  	return o.ApplyT(func(v *EventDataStore) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   391  }
   392  
   393  // Specifies whether an event data store collects events logged for an organization in AWS Organizations. Default: `false`.
   394  func (o EventDataStoreOutput) OrganizationEnabled() pulumi.BoolPtrOutput {
   395  	return o.ApplyT(func(v *EventDataStore) pulumi.BoolPtrOutput { return v.OrganizationEnabled }).(pulumi.BoolPtrOutput)
   396  }
   397  
   398  // The retention period of the event data store, in days. You can set a retention period of up to 2555 days, the equivalent of seven years. Default: `2555`.
   399  func (o EventDataStoreOutput) RetentionPeriod() pulumi.IntPtrOutput {
   400  	return o.ApplyT(func(v *EventDataStore) pulumi.IntPtrOutput { return v.RetentionPeriod }).(pulumi.IntPtrOutput)
   401  }
   402  
   403  // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   404  func (o EventDataStoreOutput) Tags() pulumi.StringMapOutput {
   405  	return o.ApplyT(func(v *EventDataStore) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   406  }
   407  
   408  // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   409  //
   410  // Deprecated: Please use `tags` instead.
   411  func (o EventDataStoreOutput) TagsAll() pulumi.StringMapOutput {
   412  	return o.ApplyT(func(v *EventDataStore) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   413  }
   414  
   415  // Specifies whether termination protection is enabled for the event data store. If termination protection is enabled, you cannot delete the event data store until termination protection is disabled. Default: `true`.
   416  func (o EventDataStoreOutput) TerminationProtectionEnabled() pulumi.BoolPtrOutput {
   417  	return o.ApplyT(func(v *EventDataStore) pulumi.BoolPtrOutput { return v.TerminationProtectionEnabled }).(pulumi.BoolPtrOutput)
   418  }
   419  
   420  type EventDataStoreArrayOutput struct{ *pulumi.OutputState }
   421  
   422  func (EventDataStoreArrayOutput) ElementType() reflect.Type {
   423  	return reflect.TypeOf((*[]*EventDataStore)(nil)).Elem()
   424  }
   425  
   426  func (o EventDataStoreArrayOutput) ToEventDataStoreArrayOutput() EventDataStoreArrayOutput {
   427  	return o
   428  }
   429  
   430  func (o EventDataStoreArrayOutput) ToEventDataStoreArrayOutputWithContext(ctx context.Context) EventDataStoreArrayOutput {
   431  	return o
   432  }
   433  
   434  func (o EventDataStoreArrayOutput) Index(i pulumi.IntInput) EventDataStoreOutput {
   435  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *EventDataStore {
   436  		return vs[0].([]*EventDataStore)[vs[1].(int)]
   437  	}).(EventDataStoreOutput)
   438  }
   439  
   440  type EventDataStoreMapOutput struct{ *pulumi.OutputState }
   441  
   442  func (EventDataStoreMapOutput) ElementType() reflect.Type {
   443  	return reflect.TypeOf((*map[string]*EventDataStore)(nil)).Elem()
   444  }
   445  
   446  func (o EventDataStoreMapOutput) ToEventDataStoreMapOutput() EventDataStoreMapOutput {
   447  	return o
   448  }
   449  
   450  func (o EventDataStoreMapOutput) ToEventDataStoreMapOutputWithContext(ctx context.Context) EventDataStoreMapOutput {
   451  	return o
   452  }
   453  
   454  func (o EventDataStoreMapOutput) MapIndex(k pulumi.StringInput) EventDataStoreOutput {
   455  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *EventDataStore {
   456  		return vs[0].(map[string]*EventDataStore)[vs[1].(string)]
   457  	}).(EventDataStoreOutput)
   458  }
   459  
   460  func init() {
   461  	pulumi.RegisterInputType(reflect.TypeOf((*EventDataStoreInput)(nil)).Elem(), &EventDataStore{})
   462  	pulumi.RegisterInputType(reflect.TypeOf((*EventDataStoreArrayInput)(nil)).Elem(), EventDataStoreArray{})
   463  	pulumi.RegisterInputType(reflect.TypeOf((*EventDataStoreMapInput)(nil)).Elem(), EventDataStoreMap{})
   464  	pulumi.RegisterOutputType(EventDataStoreOutput{})
   465  	pulumi.RegisterOutputType(EventDataStoreArrayOutput{})
   466  	pulumi.RegisterOutputType(EventDataStoreMapOutput{})
   467  }