{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/google-cloud-data-catalog/json-schema/google-cloud-data-catalog-google-cloud-datacatalog-lineage-configmanagement-v1-config-schema.json",
  "title": "GoogleCloudDatacatalogLineageConfigmanagementV1Config",
  "description": "Configuration for Data Lineage. Defines different configuration options for Lineage customers to control behaviour of lineage systems.",
  "x-generated": "2026-11-11",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/google-cloud-data-catalog-datalineage-folders-api-openapi.yml#/components/schemas/GoogleCloudDatacatalogLineageConfigmanagementV1Config",
  "type": "object",
  "properties": {
    "name": {
      "description": "Identifier. The resource name of the config. Format: `organizations/{organization_id}/locations/global/config` `folders/{folder_id}/locations/global/config` `projects/{project_id}/locations/global/config` `projects/{project_number}/locations/global/config`",
      "type": "string"
    },
    "etag": {
      "description": "Optional. `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a config from overwriting each other. It is required that systems make use of the `etag` in the read-modify-write cycle to perform config updates in order to avoid race conditions: An `etag` is returned in the response to `GetConfig`, and systems are expected to put that etag in the request to `UpdateConfig` to ensure that their change will be applied to the same version of the config. If an `etag` is not provided in the call to `UpdateConfig`, then the existing config, if any, will be overwritten.",
      "type": "string"
    },
    "ingestion": {
      "$ref": "#/$defs/GoogleCloudDatacatalogLineageConfigmanagementV1ConfigIngestion",
      "description": "Optional. Ingestion rule for Data Lineage ingestion."
    }
  },
  "$defs": {
    "GoogleCloudDatacatalogLineageConfigmanagementV1ConfigIngestion": {
      "description": "Defines how Lineage should be ingested for a given resource.",
      "type": "object",
      "properties": {
        "rules": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/GoogleCloudDatacatalogLineageConfigmanagementV1ConfigIngestionIngestionRule"
          },
          "description": "Optional. List of rules for Data Lineage ingestion."
        }
      }
    },
    "GoogleCloudDatacatalogLineageConfigmanagementV1ConfigIngestionIngestionRule": {
      "properties": {
        "lineageEnablement": {
          "$ref": "#/$defs/GoogleCloudDatacatalogLineageConfigmanagementV1ConfigIngestionIngestionRuleLineageEnablement",
          "description": "Required. Lineage enablement configuration. Defines configurations for the ingestion of lineage for the resource and its children. If unspecified, the ingestion will be enabled only if it was configured in the resource's parent."
        },
        "integrationSelector": {
          "$ref": "#/$defs/GoogleCloudDatacatalogLineageConfigmanagementV1ConfigIngestionIngestionRuleIntegrationSelector",
          "description": "Required. Integration selector of the rule. The rule is only applied to the Integration selected by the selector."
        }
      },
      "description": "Ingestion rule for Data Lineage ingestion.",
      "type": "object"
    },
    "GoogleCloudDatacatalogLineageConfigmanagementV1ConfigIngestionIngestionRuleIntegrationSelector": {
      "type": "object",
      "properties": {
        "integration": {
          "description": "Required. Integration to which the rule applies. This field can be used to specify the integration against which the ingestion rule should be applied.",
          "type": "string",
          "enum": [
            "INTEGRATION_UNSPECIFIED",
            "BIGQUERY",
            "DATAPROC",
            "LOOKER_CORE",
            "MANAGED_AIRFLOW"
          ]
        }
      },
      "description": "Integration selector of the rule. The rule is only applied to the Integration selected by the selector."
    },
    "GoogleCloudDatacatalogLineageConfigmanagementV1ConfigIngestionIngestionRuleLineageEnablement": {
      "description": "Lineage enablement configuration. Defines configurations for the ingestion of lineage for the resource and its children.",
      "type": "object",
      "properties": {
        "enabled": {
          "description": "Optional. If true, ingestion of lineage should be enabled. If false, it should be disabled. If unspecified, the system default value is used.",
          "type": "boolean"
        }
      }
    }
  }
}