{
  "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/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/api-conventions.md#types-kinds",
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "properties": {
        "description": {
          "description": "Entry description, which can consist of several sentences or paragraphs that describe entry contents.",
          "type": "string"
        },
        "displayName": {
          "description": "Display information such as title and description. A short name to identify the entry,\nfor example, \"Analytics Data - Jan 2011\".",
          "type": "string"
        },
        "entryGroup": {
          "description": "Immutable. The name of the entry group this entry is in.",
          "type": "string"
        },
        "entryId": {
          "description": "Immutable. The id of the entry to create.",
          "type": "string"
        },
        "gcsFilesetSpec": {
          "description": "Specification that applies to a Cloud Storage fileset. This is only valid on entries of type FILESET.",
          "properties": {
            "filePatterns": {
              "description": "Patterns to identify a set of files in Google Cloud Storage.\nSee [Cloud Storage documentation](https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames)\nfor more information. Note that bucket wildcards are currently not supported. Examples of valid filePatterns:\n\n* gs://bucket_name/dir/*: matches all files within bucket_name/dir directory.\n* gs://bucket_name/dir/**: matches all files in bucket_name/dir spanning all subdirectories.\n* gs://bucket_name/file*: matches files prefixed by file in bucket_name\n* gs://bucket_name/??.txt: matches files with two characters followed by .txt in bucket_name\n* gs://bucket_name/[aeiou].txt: matches files that contain a single vowel character followed by .txt in bucket_name\n* gs://bucket_name/[a-m].txt: matches files that contain a, b, ... or m followed by .txt in bucket_name\n* gs://bucket_name/a/*/b: matches all files in bucket_name that match a/*/b pattern, such as a/c/b, a/d/b\n* gs://another_bucket/a.txt: matches gs://another_bucket/a.txt.",
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "sampleGcsFileSpecs": {
              "description": "Sample files contained in this fileset, not all files contained in this fileset are represented here.",
              "items": {
                "properties": {
                  "filePath": {
                    "description": "The full file path.",
                    "type": "string"
                  },
                  "sizeBytes": {
                    "description": "The size of the file, in bytes.",
                    "type": "integer"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            }
          },
          "required": [
            "filePatterns"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "linkedResource": {
          "description": "The resource this metadata entry refers to.\nFor Google Cloud Platform resources, linkedResource is the full name of the resource.\nFor example, the linkedResource for a table resource from BigQuery is:\n//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId\nOutput only when Entry is of type in the EntryType enum. For entries with userSpecifiedType,\nthis field is optional and defaults to an empty string.",
          "type": "string"
        },
        "resourceID": {
          "description": "Immutable. Optional. The service-generated name of the resource. Used for acquisition only. Leave unset to create a new resource.",
          "type": "string"
        },
        "schema": {
          "description": "Schema of the entry (e.g. BigQuery, GoogleSQL, Avro schema), as a json string. An entry might not have any schema\nattached to it. See\nhttps://cloud.google.com/data-catalog/docs/reference/rest/v1/projects.locations.entryGroups.entries#schema\nfor what fields this schema can contain.",
          "type": "string"
        },
        "type": {
          "description": "Immutable. The type of the entry. Only used for Entries with types in the EntryType enum.\nCurrently, only FILESET enum value is allowed. All other entries created through Data Catalog must use userSpecifiedType. Possible values: [\"FILESET\"].",
          "type": "string"
        },
        "userSpecifiedSystem": {
          "description": "This field indicates the entry's source system that Data Catalog does not integrate with.\nuserSpecifiedSystem strings must begin with a letter or underscore and can only contain letters, numbers,\nand underscores; are case-insensitive; must be at least 1 character and at most 64 characters long.",
          "type": "string"
        },
        "userSpecifiedType": {
          "description": "Entry type if it does not fit any of the input-allowed values listed in EntryType enum above.\nWhen creating an entry, users should check the enum values first, if nothing matches the entry\nto be created, then provide a custom value, for example \"my_special_type\".\nuserSpecifiedType strings must begin with a letter or underscore and can only contain letters,\nnumbers, and underscores; are case-insensitive; must be at least 1 character and at most 64 characters long.",
          "type": "string"
        }
      },
      "required": [
        "entryGroup",
        "entryId"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "properties": {
        "bigqueryDateShardedSpec": {
          "description": "Specification for a group of BigQuery tables with name pattern [prefix]YYYYMMDD.\nContext: https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding.",
          "items": {
            "properties": {
              "dataset": {
                "description": "The Data Catalog resource name of the dataset entry the current table belongs to, for example,\nprojects/{project_id}/locations/{location}/entrygroups/{entryGroupId}/entries/{entryId}.",
                "type": "string"
              },
              "shardCount": {
                "description": "Total number of shards.",
                "type": "integer"
              },
              "tablePrefix": {
                "description": "The table name prefix of the shards. The name of any given shard is [tablePrefix]YYYYMMDD,\nfor example, for shard MyTable20180101, the tablePrefix is MyTable.",
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "bigqueryTableSpec": {
          "description": "Specification that applies to a BigQuery table. This is only valid on entries of type TABLE.",
          "items": {
            "properties": {
              "tableSourceType": {
                "description": "The table source type.",
                "type": "string"
              },
              "tableSpec": {
                "description": "Spec of a BigQuery table. This field should only be populated if tableSourceType is BIGQUERY_TABLE.",
                "items": {
                  "properties": {
                    "groupedEntry": {
                      "description": "If the table is a dated shard, i.e., with name pattern [prefix]YYYYMMDD, groupedEntry is the\nData Catalog resource name of the date sharded grouped entry, for example,\nprojects/{project_id}/locations/{location}/entrygroups/{entryGroupId}/entries/{entryId}.\nOtherwise, groupedEntry is empty.",
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "type": "array"
              },
              "viewSpec": {
                "description": "Table view specification. This field should only be populated if tableSourceType is BIGQUERY_VIEW.",
                "items": {
                  "properties": {
                    "viewQuery": {
                      "description": "The query that defines the table view.",
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "type": "array"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "conditions": {
          "description": "Conditions represent the latest available observation of the resource's current state.",
          "items": {
            "properties": {
              "lastTransitionTime": {
                "description": "Last time the condition transitioned from one status to another.",
                "type": "string"
              },
              "message": {
                "description": "Human-readable message indicating details about last transition.",
                "type": "string"
              },
              "reason": {
                "description": "Unique, one-word, CamelCase reason for the condition's last transition.",
                "type": "string"
              },
              "status": {
                "description": "Status is the status of the condition. Can be True, False, Unknown.",
                "type": "string"
              },
              "type": {
                "description": "Type is the type of the condition.",
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "integratedSystem": {
          "description": "This field indicates the entry's source system that Data Catalog integrates with, such as BigQuery or Pub/Sub.",
          "type": "string"
        },
        "name": {
          "description": "The Data Catalog resource name of the entry in URL format.\nExample: projects/{project_id}/locations/{location}/entryGroups/{entryGroupId}/entries/{entryId}.\nNote that this Entry and its child resources may not actually be stored in the location in this name.",
          "type": "string"
        },
        "observedGeneration": {
          "description": "ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource.",
          "type": "integer"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "required": [
    "spec"
  ],
  "type": "object"
}
