{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/DataCollectionRule",
  "title": "DataCollectionRule",
  "type": "object",
  "properties": {
    "description": {
      "type": "string",
      "description": "Description of the data collection rule."
    },
    "immutableId": {
      "type": "string",
      "readOnly": true,
      "description": "The immutable ID of this data collection rule."
    },
    "dataCollectionEndpointId": {
      "type": "string",
      "description": "The resource ID of the data collection endpoint."
    },
    "streamDeclarations": {
      "type": "object",
      "additionalProperties": {
        "type": "object",
        "properties": {
          "columns": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "description": "The name of the column."
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "string",
                    "int",
                    "long",
                    "real",
                    "boolean",
                    "datetime",
                    "dynamic"
                  ],
                  "description": "The type of the column data."
                }
              }
            }
          }
        }
      },
      "description": "Declaration of custom streams used in this rule."
    },
    "dataSources": {
      "$ref": "#/components/schemas/DataSources"
    },
    "destinations": {
      "$ref": "#/components/schemas/Destinations"
    },
    "dataFlows": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/DataFlow"
      },
      "description": "The specification of data flows."
    },
    "provisioningState": {
      "type": "string",
      "readOnly": true,
      "enum": [
        "Creating",
        "Updating",
        "Deleting",
        "Succeeded",
        "Canceled",
        "Failed"
      ],
      "description": "The resource provisioning state."
    }
  }
}