/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.cloudtrail.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.AmazonWebServiceRequest; /** * * @see AWS * API Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class CreateEventDataStoreRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable { /** *
* The name of the event data store. *
*/ private String name; /** ** The advanced event selectors to use to select the events for the data store. You can configure up to five * advanced event selectors for each event data store. *
** For more information about how to use advanced event selectors to log CloudTrail events, see Log events by using advanced event selectors in the CloudTrail User Guide. *
** For more information about how to use advanced event selectors to include Config configuration items in your * event data store, see Create an event data store for Config configuration items in the CloudTrail User Guide. *
** For more information about how to use advanced event selectors to include non-Amazon Web Services events in your * event data store, see Create an integration to log events from outside Amazon Web Services in the CloudTrail User Guide. *
*/ private com.amazonaws.internal.SdkInternalList* Specifies whether the event data store includes events from all Regions, or only from the Region in which the * event data store is created. *
*/ private Boolean multiRegionEnabled; /** ** Specifies whether an event data store collects events logged for an organization in Organizations. *
*/ private Boolean organizationEnabled; /** ** The retention period of the event data store, in days. You can set a retention period of up to 2557 days, the * equivalent of seven years. *
*/ private Integer retentionPeriod; /** ** 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. *
*/ private Boolean terminationProtectionEnabled; private com.amazonaws.internal.SdkInternalList
* Specifies the 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.
*
* Disabling or deleting the KMS key, or removing CloudTrail permissions on the key, prevents CloudTrail from * logging events to the event data store, and prevents users from querying the data in the event data store that * was encrypted with the key. After you associate an event data store with a KMS key, the KMS key cannot be removed * or changed. Before you disable or delete a KMS key that you are using with an event data store, delete or back up * your event data store. *
** CloudTrail also supports KMS multi-Region keys. For more information about multi-Region keys, see Using multi-Region * keys in the Key Management Service Developer Guide. *
** Examples: *
*
* alias/MyAliasName
*
* arn:aws:kms:us-east-2:123456789012:alias/MyAliasName
*
* arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012
*
* 12345678-1234-1234-1234-123456789012
*
* Specifies whether the event data store should start ingesting live events. The default is true. *
*/ private Boolean startIngestion; /** ** The name of the event data store. *
* * @param name * The name of the event data store. */ public void setName(String name) { this.name = name; } /** ** The name of the event data store. *
* * @return The name of the event data store. */ public String getName() { return this.name; } /** ** The name of the event data store. *
* * @param name * The name of the event data store. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateEventDataStoreRequest withName(String name) { setName(name); return this; } /** ** The advanced event selectors to use to select the events for the data store. You can configure up to five * advanced event selectors for each event data store. *
** For more information about how to use advanced event selectors to log CloudTrail events, see Log events by using advanced event selectors in the CloudTrail User Guide. *
** For more information about how to use advanced event selectors to include Config configuration items in your * event data store, see Create an event data store for Config configuration items in the CloudTrail User Guide. *
** For more information about how to use advanced event selectors to include non-Amazon Web Services events in your * event data store, see Create an integration to log events from outside Amazon Web Services in the CloudTrail User Guide. *
* * @return The advanced event selectors to use to select the events for the data store. You can configure up to five * advanced event selectors for each event data store. ** For more information about how to use advanced event selectors to log CloudTrail events, see Log events by using advanced event selectors in the CloudTrail User Guide. *
** For more information about how to use advanced event selectors to include Config configuration items in * your event data store, see Create an event data store for Config configuration items in the CloudTrail User Guide. *
*
* For more information about how to use advanced event selectors to include non-Amazon Web Services events
* in your event data store, see Create an integration to log events from outside Amazon Web Services in the CloudTrail User Guide.
*/
public java.util.List
* The advanced event selectors to use to select the events for the data store. You can configure up to five
* advanced event selectors for each event data store.
*
* For more information about how to use advanced event selectors to log CloudTrail events, see Log events by using advanced event selectors in the CloudTrail User Guide.
*
* For more information about how to use advanced event selectors to include Config configuration items in your
* event data store, see Create an event data store for Config configuration items in the CloudTrail User Guide.
*
* For more information about how to use advanced event selectors to include non-Amazon Web Services events in your
* event data store, see Create an integration to log events from outside Amazon Web Services in the CloudTrail User Guide.
*
* For more information about how to use advanced event selectors to log CloudTrail events, see Log events by using advanced event selectors in the CloudTrail User Guide. *
** For more information about how to use advanced event selectors to include Config configuration items in * your event data store, see Create an event data store for Config configuration items in the CloudTrail User Guide. *
*
* For more information about how to use advanced event selectors to include non-Amazon Web Services events
* in your event data store, see Create an integration to log events from outside Amazon Web Services in the CloudTrail User Guide.
*/
public void setAdvancedEventSelectors(java.util.Collection
* The advanced event selectors to use to select the events for the data store. You can configure up to five
* advanced event selectors for each event data store.
*
* For more information about how to use advanced event selectors to log CloudTrail events, see Log events by using advanced event selectors in the CloudTrail User Guide.
*
* For more information about how to use advanced event selectors to include Config configuration items in your
* event data store, see Create an event data store for Config configuration items in the CloudTrail User Guide.
*
* For more information about how to use advanced event selectors to include non-Amazon Web Services events in your
* event data store, see Create an integration to log events from outside Amazon Web Services in the CloudTrail User Guide.
*
* NOTE: This method appends the values to the existing list (if any). Use
* {@link #setAdvancedEventSelectors(java.util.Collection)} or
* {@link #withAdvancedEventSelectors(java.util.Collection)} if you want to override the existing values.
*
* For more information about how to use advanced event selectors to log CloudTrail events, see Log events by using advanced event selectors in the CloudTrail User Guide. *
** For more information about how to use advanced event selectors to include Config configuration items in * your event data store, see Create an event data store for Config configuration items in the CloudTrail User Guide. *
*
* For more information about how to use advanced event selectors to include non-Amazon Web Services events
* in your event data store, see Create an integration to log events from outside Amazon Web Services in the CloudTrail User Guide.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateEventDataStoreRequest withAdvancedEventSelectors(AdvancedEventSelector... advancedEventSelectors) {
if (this.advancedEventSelectors == null) {
setAdvancedEventSelectors(new com.amazonaws.internal.SdkInternalList
* The advanced event selectors to use to select the events for the data store. You can configure up to five
* advanced event selectors for each event data store.
*
* For more information about how to use advanced event selectors to log CloudTrail events, see Log events by using advanced event selectors in the CloudTrail User Guide.
*
* For more information about how to use advanced event selectors to include Config configuration items in your
* event data store, see Create an event data store for Config configuration items in the CloudTrail User Guide.
*
* For more information about how to use advanced event selectors to include non-Amazon Web Services events in your
* event data store, see Create an integration to log events from outside Amazon Web Services in the CloudTrail User Guide.
*
* For more information about how to use advanced event selectors to log CloudTrail events, see Log events by using advanced event selectors in the CloudTrail User Guide. *
** For more information about how to use advanced event selectors to include Config configuration items in * your event data store, see Create an event data store for Config configuration items in the CloudTrail User Guide. *
*
* For more information about how to use advanced event selectors to include non-Amazon Web Services events
* in your event data store, see Create an integration to log events from outside Amazon Web Services in the CloudTrail User Guide.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateEventDataStoreRequest withAdvancedEventSelectors(java.util.Collection
* Specifies whether the event data store includes events from all Regions, or only from the Region in which the
* event data store is created.
*
* Specifies whether the event data store includes events from all Regions, or only from the Region in which the
* event data store is created.
*
* Specifies whether the event data store includes events from all Regions, or only from the Region in which the
* event data store is created.
*
* Specifies whether the event data store includes events from all Regions, or only from the Region in which the
* event data store is created.
*
* Specifies whether an event data store collects events logged for an organization in Organizations.
*
* Specifies whether an event data store collects events logged for an organization in Organizations.
*
* Specifies whether an event data store collects events logged for an organization in Organizations.
*
* Specifies whether an event data store collects events logged for an organization in Organizations.
*
* The retention period of the event data store, in days. You can set a retention period of up to 2557 days, the
* equivalent of seven years.
*
* The retention period of the event data store, in days. You can set a retention period of up to 2557 days, the
* equivalent of seven years.
*
* The retention period of the event data store, in days. You can set a retention period of up to 2557 days, the
* equivalent of seven years.
*
* 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.
*
* 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.
*
* 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.
*
* 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.
*
* NOTE: This method appends the values to the existing list (if any). Use
* {@link #setTagsList(java.util.Collection)} or {@link #withTagsList(java.util.Collection)} if you want to override
* the existing values.
*
* Specifies the KMS key ID to use to encrypt the events delivered by CloudTrail. The value can be an alias name
* prefixed by
* Disabling or deleting the KMS key, or removing CloudTrail permissions on the key, prevents CloudTrail from
* logging events to the event data store, and prevents users from querying the data in the event data store that
* was encrypted with the key. After you associate an event data store with a KMS key, the KMS key cannot be removed
* or changed. Before you disable or delete a KMS key that you are using with an event data store, delete or back up
* your event data store.
*
* CloudTrail also supports KMS multi-Region keys. For more information about multi-Region keys, see Using multi-Region
* keys in the Key Management Service Developer Guide.
*
* Examples:
*
*
*
*
* alias/
, a fully specified ARN to an alias, a fully specified ARN to a key, or a globally
* unique identifier.
*
*
*
* @param kmsKeyId
* Specifies the KMS key ID to use to encrypt the events delivered by CloudTrail. The value can be an alias
* name prefixed by alias/MyAliasName
* arn:aws:kms:us-east-2:123456789012:alias/MyAliasName
* arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012
* 12345678-1234-1234-1234-123456789012
* alias/
, a fully specified ARN to an alias, a fully specified ARN to a key,
* or a globally unique identifier.
* Disabling or deleting the KMS key, or removing CloudTrail permissions on the key, prevents CloudTrail from * logging events to the event data store, and prevents users from querying the data in the event data store * that was encrypted with the key. After you associate an event data store with a KMS key, the KMS key * cannot be removed or changed. Before you disable or delete a KMS key that you are using with an event data * store, delete or back up your event data store. *
** CloudTrail also supports KMS multi-Region keys. For more information about multi-Region keys, see Using * multi-Region keys in the Key Management Service Developer Guide. *
** Examples: *
*
* alias/MyAliasName
*
* arn:aws:kms:us-east-2:123456789012:alias/MyAliasName
*
* arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012
*
* 12345678-1234-1234-1234-123456789012
*
* Specifies the 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.
*
* Disabling or deleting the KMS key, or removing CloudTrail permissions on the key, prevents CloudTrail from * logging events to the event data store, and prevents users from querying the data in the event data store that * was encrypted with the key. After you associate an event data store with a KMS key, the KMS key cannot be removed * or changed. Before you disable or delete a KMS key that you are using with an event data store, delete or back up * your event data store. *
** CloudTrail also supports KMS multi-Region keys. For more information about multi-Region keys, see Using multi-Region * keys in the Key Management Service Developer Guide. *
** Examples: *
*
* alias/MyAliasName
*
* arn:aws:kms:us-east-2:123456789012:alias/MyAliasName
*
* arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012
*
* 12345678-1234-1234-1234-123456789012
*
alias/
, a fully specified ARN to an alias, a fully specified ARN to a key,
* or a globally unique identifier. * Disabling or deleting the KMS key, or removing CloudTrail permissions on the key, prevents CloudTrail * from logging events to the event data store, and prevents users from querying the data in the event data * store that was encrypted with the key. After you associate an event data store with a KMS key, the KMS * key cannot be removed or changed. Before you disable or delete a KMS key that you are using with an event * data store, delete or back up your event data store. *
** CloudTrail also supports KMS multi-Region keys. For more information about multi-Region keys, see Using * multi-Region keys in the Key Management Service Developer Guide. *
** Examples: *
*
* alias/MyAliasName
*
* arn:aws:kms:us-east-2:123456789012:alias/MyAliasName
*
* arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012
*
* 12345678-1234-1234-1234-123456789012
*
* Specifies the 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.
*
* Disabling or deleting the KMS key, or removing CloudTrail permissions on the key, prevents CloudTrail from * logging events to the event data store, and prevents users from querying the data in the event data store that * was encrypted with the key. After you associate an event data store with a KMS key, the KMS key cannot be removed * or changed. Before you disable or delete a KMS key that you are using with an event data store, delete or back up * your event data store. *
** CloudTrail also supports KMS multi-Region keys. For more information about multi-Region keys, see Using multi-Region * keys in the Key Management Service Developer Guide. *
** Examples: *
*
* alias/MyAliasName
*
* arn:aws:kms:us-east-2:123456789012:alias/MyAliasName
*
* arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012
*
* 12345678-1234-1234-1234-123456789012
*
alias/
, a fully specified ARN to an alias, a fully specified ARN to a key,
* or a globally unique identifier. * Disabling or deleting the KMS key, or removing CloudTrail permissions on the key, prevents CloudTrail from * logging events to the event data store, and prevents users from querying the data in the event data store * that was encrypted with the key. After you associate an event data store with a KMS key, the KMS key * cannot be removed or changed. Before you disable or delete a KMS key that you are using with an event data * store, delete or back up your event data store. *
** CloudTrail also supports KMS multi-Region keys. For more information about multi-Region keys, see Using * multi-Region keys in the Key Management Service Developer Guide. *
** Examples: *
*
* alias/MyAliasName
*
* arn:aws:kms:us-east-2:123456789012:alias/MyAliasName
*
* arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012
*
* 12345678-1234-1234-1234-123456789012
*
* Specifies whether the event data store should start ingesting live events. The default is true. *
* * @param startIngestion * Specifies whether the event data store should start ingesting live events. The default is true. */ public void setStartIngestion(Boolean startIngestion) { this.startIngestion = startIngestion; } /** ** Specifies whether the event data store should start ingesting live events. The default is true. *
* * @return Specifies whether the event data store should start ingesting live events. The default is true. */ public Boolean getStartIngestion() { return this.startIngestion; } /** ** Specifies whether the event data store should start ingesting live events. The default is true. *
* * @param startIngestion * Specifies whether the event data store should start ingesting live events. The default is true. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateEventDataStoreRequest withStartIngestion(Boolean startIngestion) { setStartIngestion(startIngestion); return this; } /** ** Specifies whether the event data store should start ingesting live events. The default is true. *
* * @return Specifies whether the event data store should start ingesting live events. The default is true. */ public Boolean isStartIngestion() { return this.startIngestion; } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getName() != null) sb.append("Name: ").append(getName()).append(","); if (getAdvancedEventSelectors() != null) sb.append("AdvancedEventSelectors: ").append(getAdvancedEventSelectors()).append(","); if (getMultiRegionEnabled() != null) sb.append("MultiRegionEnabled: ").append(getMultiRegionEnabled()).append(","); if (getOrganizationEnabled() != null) sb.append("OrganizationEnabled: ").append(getOrganizationEnabled()).append(","); if (getRetentionPeriod() != null) sb.append("RetentionPeriod: ").append(getRetentionPeriod()).append(","); if (getTerminationProtectionEnabled() != null) sb.append("TerminationProtectionEnabled: ").append(getTerminationProtectionEnabled()).append(","); if (getTagsList() != null) sb.append("TagsList: ").append(getTagsList()).append(","); if (getKmsKeyId() != null) sb.append("KmsKeyId: ").append(getKmsKeyId()).append(","); if (getStartIngestion() != null) sb.append("StartIngestion: ").append(getStartIngestion()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof CreateEventDataStoreRequest == false) return false; CreateEventDataStoreRequest other = (CreateEventDataStoreRequest) obj; if (other.getName() == null ^ this.getName() == null) return false; if (other.getName() != null && other.getName().equals(this.getName()) == false) return false; if (other.getAdvancedEventSelectors() == null ^ this.getAdvancedEventSelectors() == null) return false; if (other.getAdvancedEventSelectors() != null && other.getAdvancedEventSelectors().equals(this.getAdvancedEventSelectors()) == false) return false; if (other.getMultiRegionEnabled() == null ^ this.getMultiRegionEnabled() == null) return false; if (other.getMultiRegionEnabled() != null && other.getMultiRegionEnabled().equals(this.getMultiRegionEnabled()) == false) return false; if (other.getOrganizationEnabled() == null ^ this.getOrganizationEnabled() == null) return false; if (other.getOrganizationEnabled() != null && other.getOrganizationEnabled().equals(this.getOrganizationEnabled()) == false) return false; if (other.getRetentionPeriod() == null ^ this.getRetentionPeriod() == null) return false; if (other.getRetentionPeriod() != null && other.getRetentionPeriod().equals(this.getRetentionPeriod()) == false) return false; if (other.getTerminationProtectionEnabled() == null ^ this.getTerminationProtectionEnabled() == null) return false; if (other.getTerminationProtectionEnabled() != null && other.getTerminationProtectionEnabled().equals(this.getTerminationProtectionEnabled()) == false) return false; if (other.getTagsList() == null ^ this.getTagsList() == null) return false; if (other.getTagsList() != null && other.getTagsList().equals(this.getTagsList()) == false) return false; if (other.getKmsKeyId() == null ^ this.getKmsKeyId() == null) return false; if (other.getKmsKeyId() != null && other.getKmsKeyId().equals(this.getKmsKeyId()) == false) return false; if (other.getStartIngestion() == null ^ this.getStartIngestion() == null) return false; if (other.getStartIngestion() != null && other.getStartIngestion().equals(this.getStartIngestion()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getName() == null) ? 0 : getName().hashCode()); hashCode = prime * hashCode + ((getAdvancedEventSelectors() == null) ? 0 : getAdvancedEventSelectors().hashCode()); hashCode = prime * hashCode + ((getMultiRegionEnabled() == null) ? 0 : getMultiRegionEnabled().hashCode()); hashCode = prime * hashCode + ((getOrganizationEnabled() == null) ? 0 : getOrganizationEnabled().hashCode()); hashCode = prime * hashCode + ((getRetentionPeriod() == null) ? 0 : getRetentionPeriod().hashCode()); hashCode = prime * hashCode + ((getTerminationProtectionEnabled() == null) ? 0 : getTerminationProtectionEnabled().hashCode()); hashCode = prime * hashCode + ((getTagsList() == null) ? 0 : getTagsList().hashCode()); hashCode = prime * hashCode + ((getKmsKeyId() == null) ? 0 : getKmsKeyId().hashCode()); hashCode = prime * hashCode + ((getStartIngestion() == null) ? 0 : getStartIngestion().hashCode()); return hashCode; } @Override public CreateEventDataStoreRequest clone() { return (CreateEventDataStoreRequest) super.clone(); } }