{
  "description": "LogGroup is the Schema for the LogGroups API",
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore 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.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "description": "LogGroupSpec defines the desired state of LogGroup.\n\nRepresents a log group.",
      "properties": {
        "kmsKeyID": {
          "description": "The Amazon Resource Name (ARN) of the KMS key to use when encrypting log\ndata. For more information, see Amazon Resource Names (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-kms).",
          "type": "string"
        },
        "kmsKeyRef": {
          "description": "AWSResourceReferenceWrapper provides a wrapper around *AWSResourceReference\ntype to provide more user friendly syntax for references using 'from' field\nEx:\nAPIIDRef:\n\n\tfrom:\n\t  name: my-api",
          "properties": {
            "from": {
              "description": "AWSResourceReference provides all the values necessary to reference another\nk8s resource for finding the identifier(Id/ARN/Name)",
              "properties": {
                "name": {
                  "type": "string"
                },
                "namespace": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "name": {
          "type": "string"
        },
        "retentionDays": {
          "format": "int64",
          "type": "integer"
        },
        "subscriptionFilters": {
          "items": {
            "properties": {
              "destinationARN": {
                "type": "string"
              },
              "distribution": {
                "description": "The method used to distribute log data to the destination, which can be either\nrandom or grouped by log stream.",
                "type": "string"
              },
              "filterName": {
                "type": "string"
              },
              "filterPattern": {
                "description": "A symbolic description of how CloudWatch Logs should interpret the data in\neach log event. For example, a log event can contain timestamps, IP addresses,\nstrings, and so on. You use the filter pattern to specify what to look for\nin the log event message.",
                "type": "string"
              },
              "roleARN": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The key-value pairs to use for the tags.\n\nYou can grant users access to certain log groups while preventing them from\naccessing other log groups. To do so, tag your groups and use IAM policies\nthat refer to those tags. To assign tags when you create a log group, you\nmust have either the logs:TagResource or logs:TagLogGroup permission. For\nmore information about tagging, see Tagging Amazon Web Services resources\n(https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). For more\ninformation about using tags to control access, see Controlling access to\nAmazon Web Services resources using tags (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html).",
          "type": "object"
        }
      },
      "required": [
        "name"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "LogGroupStatus defines the observed state of LogGroup",
      "properties": {
        "ackResourceMetadata": {
          "description": "All CRs managed by ACK have a common `Status.ACKResourceMetadata` member\nthat is used to contain resource sync state, account ownership,\nconstructed ARN for the resource",
          "properties": {
            "arn": {
              "description": "ARN is the Amazon Resource Name for the resource. This is a\nglobally-unique identifier and is set only by the ACK service controller\nonce the controller has orchestrated the creation of the resource OR\nwhen it has verified that an \"adopted\" resource (a resource where the\nARN annotation was set by the Kubernetes user on the CR) exists and\nmatches the supplied CR's Spec field values.\nhttps://github.com/aws/aws-controllers-k8s/issues/270",
              "type": "string"
            },
            "ownerAccountID": {
              "description": "OwnerAccountID is the AWS Account ID of the account that owns the\nbackend 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\ncontains a collection of `ackv1alpha1.Condition` objects that describe\nthe various terminal states of the CR and its backend AWS service API\nresource",
          "items": {
            "description": "Condition is the common struct used by all CRDs managed by ACK service\ncontrollers to indicate terminal states  of the CR and its backend AWS\nservice 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"
        },
        "creationTime": {
          "description": "The creation time of the log group, expressed as the number of milliseconds\nafter Jan 1, 1970 00:00:00 UTC.",
          "format": "int64",
          "type": "integer"
        },
        "dataProtectionStatus": {
          "description": "Displays whether this log group has a protection policy, or whether it had\none in the past. For more information, see PutDataProtectionPolicy (https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDataProtectionPolicy.html).",
          "type": "string"
        },
        "metricFilterCount": {
          "description": "The number of metric filters.",
          "format": "int64",
          "type": "integer"
        },
        "retentionInDays": {
          "format": "int64",
          "type": "integer"
        },
        "storedBytes": {
          "description": "The number of bytes stored.",
          "format": "int64",
          "type": "integer"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
