{
  "description": "EventDataStore is the Schema for the EventDataStores API",
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
      "type": "string"
    },
    "kind": {
      "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "description": "EventDataStoreSpec defines the desired state of EventDataStore. \n A storage lake of event data against which you can run complex SQL-based queries. An event data store can include events that you have logged on your account from the last 90 to 2555 days (about three months to up to seven years). To select events for an event data store, use advanced event selectors (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#creating-data-event-selectors-advanced).",
      "properties": {
        "advancedEventSelectors": {
          "description": "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.",
          "items": {
            "description": "Advanced event selectors let you create fine-grained selectors for the following CloudTrail event record \ufb01elds. They help you control costs by logging only those events that are important to you. For more information about advanced event selectors, see Logging data events for trails (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html) in the CloudTrail User Guide. \n - readOnly \n - eventSource \n - eventName \n - eventCategory \n - resources.type \n - resources.ARN \n You cannot apply both event selectors and advanced event selectors to a trail.",
            "properties": {
              "fieldSelectors": {
                "items": {
                  "description": "A single selector statement in an advanced event selector.",
                  "properties": {
                    "endsWith": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "equals": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "field": {
                      "type": "string"
                    },
                    "notEndsWith": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "notEquals": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "notStartsWith": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "startsWith": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "type": "array"
              },
              "name": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "multiRegionEnabled": {
          "description": "Specifies whether the event data store includes events from all regions, or only from the region in which the event data store is created.",
          "type": "boolean"
        },
        "name": {
          "description": "The name of the event data store.",
          "type": "string"
        },
        "organizationEnabled": {
          "description": "Specifies whether an event data store collects events logged for an organization in Organizations.",
          "type": "boolean"
        },
        "retentionPeriod": {
          "description": "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.",
          "format": "int64",
          "type": "integer"
        },
        "tags": {
          "items": {
            "description": "A custom key-value pair associated with a resource such as a CloudTrail trail.",
            "properties": {
              "key": {
                "type": "string"
              },
              "value": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "terminationProtectionEnabled": {
          "description": "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.",
          "type": "boolean"
        }
      },
      "required": [
        "name"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "EventDataStoreStatus defines the observed state of EventDataStore",
      "properties": {
        "ackResourceMetadata": {
          "description": "All CRs managed by ACK have a common `Status.ACKResourceMetadata` member that is used to contain resource sync state, account ownership, constructed ARN for the resource",
          "properties": {
            "arn": {
              "description": "ARN is the Amazon Resource Name for the resource. This is a globally-unique identifier and is set only by the ACK service controller once the controller has orchestrated the creation of the resource OR when it has verified that an \"adopted\" resource (a resource where the ARN annotation was set by the Kubernetes user on the CR) exists and matches the supplied CR's Spec field values. TODO(vijat@): Find a better strategy for resources that do not have ARN in CreateOutputResponse https://github.com/aws/aws-controllers-k8s/issues/270",
              "type": "string"
            },
            "ownerAccountID": {
              "description": "OwnerAccountID is the AWS Account ID of the account that owns the backend AWS service API resource.",
              "type": "string"
            },
            "region": {
              "description": "Region is the AWS region in which the resource exists or will exist.",
              "type": "string"
            }
          },
          "required": [
            "ownerAccountID",
            "region"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "conditions": {
          "description": "All CRS managed by ACK have a common `Status.Conditions` member that contains a collection of `ackv1alpha1.Condition` objects that describe the various terminal states of the CR and its backend AWS service API resource",
          "items": {
            "description": "Condition is the common struct used by all CRDs managed by ACK service controllers to indicate terminal states  of the CR and its backend AWS service API resource",
            "properties": {
              "lastTransitionTime": {
                "description": "Last time the condition transitioned from one status to another.",
                "format": "date-time",
                "type": "string"
              },
              "message": {
                "description": "A human readable message indicating details about the transition.",
                "type": "string"
              },
              "reason": {
                "description": "The reason for the condition's last transition.",
                "type": "string"
              },
              "status": {
                "description": "Status of the condition, one of True, False, Unknown.",
                "type": "string"
              },
              "type": {
                "description": "Type is the type of the Condition",
                "type": "string"
              }
            },
            "required": [
              "status",
              "type"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "createdTimestamp": {
          "description": "The timestamp that shows when the event data store was created.",
          "format": "date-time",
          "type": "string"
        },
        "status": {
          "description": "The status of event data store creation.",
          "type": "string"
        },
        "updatedTimestamp": {
          "description": "The timestamp that shows when an event data store was updated, if applicable. UpdatedTimestamp is always either the same or newer than the time shown in CreatedTimestamp.",
          "format": "date-time",
          "type": "string"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
