# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License 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.

apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    cnrm.cloud.google.com/version: 1.128.0
  creationTimestamp: null
  labels:
    cnrm.cloud.google.com/managed-by-kcc: "true"
    cnrm.cloud.google.com/system: "true"
  name: bigqueryanalyticshublistings.bigqueryanalyticshub.cnrm.cloud.google.com
spec:
  group: bigqueryanalyticshub.cnrm.cloud.google.com
  names:
    categories:
    - gcp
    kind: BigQueryAnalyticsHubListing
    listKind: BigQueryAnalyticsHubListingList
    plural: bigqueryanalyticshublistings
    shortNames:
    - gcpbigqueryanalyticshublisting
    - gcpbigqueryanalyticshublistings
    singular: bigqueryanalyticshublisting
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    - description: When 'True', the most recent reconcile of the resource succeeded
      jsonPath: .status.conditions[?(@.type=='Ready')].status
      name: Ready
      type: string
    - description: The reason for the value in 'Ready'
      jsonPath: .status.conditions[?(@.type=='Ready')].reason
      name: Status
      type: string
    - description: The last transition time for the value in 'Status'
      jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime
      name: Status Age
      type: date
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: BigQueryAnalyticsHubListing is the Schema for the BigQueryAnalyticsHubListing
          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: BigQueryAnalyticsHubListingSpec defines the desired state
              of BigQueryAnalyticsHubDataExchangeListing
            properties:
              categories:
                description: Optional. Categories of the listing. Up to two categories
                  are allowed.
                items:
                  type: string
                type: array
              dataExchangeRef:
                description: BigQueryAnalyticsHubDataExchangeRef defines the resource
                  reference to BigQueryAnalyticsHubDataExchange, which "External"
                  field holds the GCP identifier for the KRM object.
                oneOf:
                - not:
                    required:
                    - external
                  required:
                  - name
                - not:
                    anyOf:
                    - required:
                      - name
                    - required:
                      - namespace
                  required:
                  - external
                properties:
                  external:
                    description: A reference to an externally managed BigQueryAnalyticsHubDataExchange
                      resource. Should be in the format "projects/{{projectID}}/locations/{{location}}/dataexchanges/{{dataexchangeID}}".
                    type: string
                  name:
                    description: The name of a BigQueryAnalyticsHubDataExchange resource.
                    type: string
                  namespace:
                    description: The namespace of a BigQueryAnalyticsHubDataExchange
                      resource.
                    type: string
                type: object
              dataProvider:
                description: Optional. Details of the data provider who owns the source
                  data.
                properties:
                  name:
                    description: Optional. Name of the data provider.
                    type: string
                  primaryContact:
                    description: 'Optional. Email or URL of the data provider. Max
                      Length: 1000 bytes.'
                    type: string
                type: object
              description:
                description: 'Optional. Short description of the listing. The description
                  must contain only Unicode characters or tabs  (HT), new lines (LF),
                  carriage returns (CR), and page breaks (FF). Default value is an
                  empty string. Max length: 2000 bytes.'
                type: string
              discoveryType:
                description: Optional. Type of discovery of the listing on the discovery
                  page.
                type: string
              displayName:
                description: 'Required. Human-readable display name of the listing.
                  The display name must contain only Unicode letters, numbers (0-9),
                  underscores (_), dashes (-), spaces ( ), ampersands (&) and can''t
                  start or end with spaces. Default value is an empty string. Max
                  length: 63 bytes.'
                type: string
              documentation:
                description: Optional. Documentation describing the listing.
                type: string
              location:
                description: Immutable. The name of the location this data exchange.
                type: string
              primaryContact:
                description: 'Optional. Email or URL of the primary point of contact
                  of the listing. Max Length: 1000 bytes.'
                type: string
              projectRef:
                description: The Project that this resource belongs to.
                oneOf:
                - not:
                    required:
                    - external
                  required:
                  - name
                - not:
                    anyOf:
                    - required:
                      - name
                    - required:
                      - namespace
                  required:
                  - external
                properties:
                  external:
                    description: The `projectID` field of a project, when not managed
                      by Config Connector.
                    type: string
                  kind:
                    description: The kind of the Project resource; optional but must
                      be `Project` if provided.
                    type: string
                  name:
                    description: The `name` field of a `Project` resource.
                    type: string
                  namespace:
                    description: The `namespace` field of a `Project` resource.
                    type: string
                type: object
              publisher:
                description: Optional. Details of the publisher who owns the listing
                  and who can share the source data.
                properties:
                  name:
                    description: Optional. Name of the listing publisher.
                    type: string
                  primaryContact:
                    description: 'Optional. Email or URL of the listing publisher.
                      Max Length: 1000 bytes.'
                    type: string
                type: object
              requestAccess:
                description: 'Optional. Email or URL of the request access of the
                  listing. Subscribers can use this reference to request access. Max
                  Length: 1000 bytes.'
                type: string
              resourceID:
                description: Immutable. The BigQueryAnalyticsHubDataExchangeListing
                  name. If not given, the metadata.name will be used.
                type: string
                x-kubernetes-validations:
                - message: ResourceID field is immutable
                  rule: self == oldSelf
              source:
                properties:
                  bigQueryDatasetSource:
                    description: One of the following fields must be set.
                    properties:
                      datasetRef:
                        description: Resource name of the dataset source for this
                          listing. e.g. `projects/myproject/datasets/123`
                        oneOf:
                        - not:
                            required:
                            - external
                          required:
                          - name
                        - not:
                            anyOf:
                            - required:
                              - name
                            - required:
                              - namespace
                          required:
                          - external
                        properties:
                          external:
                            description: If provided must be in the format `projects/[project_id]/datasets/[dataset_id]`.
                            type: string
                          name:
                            description: The `metadata.name` field of a `BigQueryDataset`
                              resource.
                            type: string
                          namespace:
                            description: The `metadata.namespace` field of a `BigQueryDataset`
                              resource.
                            type: string
                        type: object
                      restrictedExportPolicy:
                        description: Optional. If set, restricted export policy will
                          be propagated and enforced on the linked dataset.
                        properties:
                          enabled:
                            description: Optional. If true, enable restricted export.
                            type: boolean
                          restrictDirectTableAccess:
                            description: Optional. If true, restrict direct table
                              access (read api/tabledata.list) on linked table.
                            type: boolean
                          restrictQueryResult:
                            description: Optional. If true, restrict export of query
                              result derived from restricted linked dataset table.
                            type: boolean
                        type: object
                      selectedResources:
                        description: Optional. Resources in this dataset that are
                          selectively shared. If this field is empty, then the entire
                          dataset (all resources) are shared. This field is only valid
                          for data clean room exchanges.
                        items:
                          properties:
                            tableRef:
                              description: 'Optional. A reference to a BigQueryTable.
                                Format: `projects/{projectId}/datasets/{datasetId}/tables/{tableId}`
                                Example:"projects/test_project/datasets/test_dataset/tables/test_table"'
                              oneOf:
                              - not:
                                  required:
                                  - external
                                required:
                                - name
                              - not:
                                  anyOf:
                                  - required:
                                    - name
                                  - required:
                                    - namespace
                                required:
                                - external
                              properties:
                                external:
                                  description: If provided must be in the format `projects/{projectId}/datasets/{datasetId}/tables/{tableId}`.
                                  type: string
                                name:
                                  description: The `metadata.name` field of a `BigQueryTable`
                                    resource.
                                  type: string
                                namespace:
                                  description: The `metadata.namespace` field of a
                                    `BigQueryTable` resource.
                                  type: string
                              type: object
                          type: object
                        type: array
                    required:
                    - datasetRef
                    type: object
                type: object
            required:
            - dataExchangeRef
            - displayName
            - location
            - projectRef
            - source
            type: object
          status:
            description: BigQueryAnalyticsHubListingStatus defines the config connector
              machine state of BigQueryAnalyticsHubDataExchangeListing
            properties:
              conditions:
                description: Conditions represent the latest available observations
                  of the object'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
                type: array
              externalRef:
                description: A unique specifier for the BigQueryAnalyticsHubDataExchangeListing
                  resource in GCP.
                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.
                format: int64
                type: integer
              observedState:
                description: ObservedState is the state of the resource as most recently
                  observed in GCP.
                properties:
                  state:
                    description: Output only. Current state of the listing.
                    type: string
                type: object
            type: object
        type: object
    served: true
    storage: false
    subresources:
      status: {}
  - additionalPrinterColumns:
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    - description: When 'True', the most recent reconcile of the resource succeeded
      jsonPath: .status.conditions[?(@.type=='Ready')].status
      name: Ready
      type: string
    - description: The reason for the value in 'Ready'
      jsonPath: .status.conditions[?(@.type=='Ready')].reason
      name: Status
      type: string
    - description: The last transition time for the value in 'Status'
      jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime
      name: Status Age
      type: date
    name: v1beta1
    schema:
      openAPIV3Schema:
        description: BigQueryAnalyticsHubListing is the Schema for the BigQueryAnalyticsHubListing
          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: BigQueryAnalyticsHubListingSpec defines the desired state
              of BigQueryAnalyticsHubDataExchangeListing
            properties:
              categories:
                description: Optional. Categories of the listing. Up to two categories
                  are allowed.
                items:
                  type: string
                type: array
              dataExchangeRef:
                description: BigQueryAnalyticsHubDataExchangeRef defines the resource
                  reference to BigQueryAnalyticsHubDataExchange, which "External"
                  field holds the GCP identifier for the KRM object.
                oneOf:
                - not:
                    required:
                    - external
                  required:
                  - name
                - not:
                    anyOf:
                    - required:
                      - name
                    - required:
                      - namespace
                  required:
                  - external
                properties:
                  external:
                    description: A reference to an externally managed BigQueryAnalyticsHubDataExchange
                      resource. Should be in the format "projects/{{projectID}}/locations/{{location}}/dataexchanges/{{dataexchangeID}}".
                    type: string
                  name:
                    description: The name of a BigQueryAnalyticsHubDataExchange resource.
                    type: string
                  namespace:
                    description: The namespace of a BigQueryAnalyticsHubDataExchange
                      resource.
                    type: string
                type: object
              dataProvider:
                description: Optional. Details of the data provider who owns the source
                  data.
                properties:
                  name:
                    description: Optional. Name of the data provider.
                    type: string
                  primaryContact:
                    description: 'Optional. Email or URL of the data provider. Max
                      Length: 1000 bytes.'
                    type: string
                type: object
              description:
                description: 'Optional. Short description of the listing. The description
                  must contain only Unicode characters or tabs  (HT), new lines (LF),
                  carriage returns (CR), and page breaks (FF). Default value is an
                  empty string. Max length: 2000 bytes.'
                type: string
              discoveryType:
                description: Optional. Type of discovery of the listing on the discovery
                  page.
                type: string
              displayName:
                description: 'Required. Human-readable display name of the listing.
                  The display name must contain only Unicode letters, numbers (0-9),
                  underscores (_), dashes (-), spaces ( ), ampersands (&) and can''t
                  start or end with spaces. Default value is an empty string. Max
                  length: 63 bytes.'
                type: string
              documentation:
                description: Optional. Documentation describing the listing.
                type: string
              location:
                description: Immutable. The name of the location this data exchange.
                type: string
              primaryContact:
                description: 'Optional. Email or URL of the primary point of contact
                  of the listing. Max Length: 1000 bytes.'
                type: string
              projectRef:
                description: The Project that this resource belongs to.
                oneOf:
                - not:
                    required:
                    - external
                  required:
                  - name
                - not:
                    anyOf:
                    - required:
                      - name
                    - required:
                      - namespace
                  required:
                  - external
                properties:
                  external:
                    description: The `projectID` field of a project, when not managed
                      by Config Connector.
                    type: string
                  kind:
                    description: The kind of the Project resource; optional but must
                      be `Project` if provided.
                    type: string
                  name:
                    description: The `name` field of a `Project` resource.
                    type: string
                  namespace:
                    description: The `namespace` field of a `Project` resource.
                    type: string
                type: object
              publisher:
                description: Optional. Details of the publisher who owns the listing
                  and who can share the source data.
                properties:
                  name:
                    description: Optional. Name of the listing publisher.
                    type: string
                  primaryContact:
                    description: 'Optional. Email or URL of the listing publisher.
                      Max Length: 1000 bytes.'
                    type: string
                type: object
              requestAccess:
                description: 'Optional. Email or URL of the request access of the
                  listing. Subscribers can use this reference to request access. Max
                  Length: 1000 bytes.'
                type: string
              resourceID:
                description: Immutable. The BigQueryAnalyticsHubDataExchangeListing
                  name. If not given, the metadata.name will be used.
                type: string
                x-kubernetes-validations:
                - message: ResourceID field is immutable
                  rule: self == oldSelf
              source:
                properties:
                  bigQueryDatasetSource:
                    description: One of the following fields must be set.
                    properties:
                      datasetRef:
                        description: Resource name of the dataset source for this
                          listing. e.g. `projects/myproject/datasets/123`
                        oneOf:
                        - not:
                            required:
                            - external
                          required:
                          - name
                        - not:
                            anyOf:
                            - required:
                              - name
                            - required:
                              - namespace
                          required:
                          - external
                        properties:
                          external:
                            description: If provided must be in the format `projects/[project_id]/datasets/[dataset_id]`.
                            type: string
                          name:
                            description: The `metadata.name` field of a `BigQueryDataset`
                              resource.
                            type: string
                          namespace:
                            description: The `metadata.namespace` field of a `BigQueryDataset`
                              resource.
                            type: string
                        type: object
                      restrictedExportPolicy:
                        description: Optional. If set, restricted export policy will
                          be propagated and enforced on the linked dataset.
                        properties:
                          enabled:
                            description: Optional. If true, enable restricted export.
                            type: boolean
                          restrictDirectTableAccess:
                            description: Optional. If true, restrict direct table
                              access (read api/tabledata.list) on linked table.
                            type: boolean
                          restrictQueryResult:
                            description: Optional. If true, restrict export of query
                              result derived from restricted linked dataset table.
                            type: boolean
                        type: object
                      selectedResources:
                        description: Optional. Resources in this dataset that are
                          selectively shared. If this field is empty, then the entire
                          dataset (all resources) are shared. This field is only valid
                          for data clean room exchanges.
                        items:
                          properties:
                            tableRef:
                              description: 'Optional. A reference to a BigQueryTable.
                                Format: `projects/{projectId}/datasets/{datasetId}/tables/{tableId}`
                                Example:"projects/test_project/datasets/test_dataset/tables/test_table"'
                              oneOf:
                              - not:
                                  required:
                                  - external
                                required:
                                - name
                              - not:
                                  anyOf:
                                  - required:
                                    - name
                                  - required:
                                    - namespace
                                required:
                                - external
                              properties:
                                external:
                                  description: If provided must be in the format `projects/{projectId}/datasets/{datasetId}/tables/{tableId}`.
                                  type: string
                                name:
                                  description: The `metadata.name` field of a `BigQueryTable`
                                    resource.
                                  type: string
                                namespace:
                                  description: The `metadata.namespace` field of a
                                    `BigQueryTable` resource.
                                  type: string
                              type: object
                          type: object
                        type: array
                    required:
                    - datasetRef
                    type: object
                type: object
            required:
            - dataExchangeRef
            - displayName
            - location
            - projectRef
            - source
            type: object
          status:
            description: BigQueryAnalyticsHubListingStatus defines the config connector
              machine state of BigQueryAnalyticsHubDataExchangeListing
            properties:
              conditions:
                description: Conditions represent the latest available observations
                  of the object'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
                type: array
              externalRef:
                description: A unique specifier for the BigQueryAnalyticsHubDataExchangeListing
                  resource in GCP.
                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.
                format: int64
                type: integer
              observedState:
                description: ObservedState is the state of the resource as most recently
                  observed in GCP.
                properties:
                  state:
                    description: Output only. Current state of the listing.
                    type: string
                type: object
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: null
  storedVersions: null
