{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "contract": {
      "type": "string",
      "const": "LegacyRouteTakeoverAuthorization"
    },
    "schemaVersion": {
      "type": "number",
      "const": 1
    },
    "routeSpaceRevisionRef": {
      "type": "object",
      "properties": {
        "kind": {
          "type": "string",
          "minLength": 1,
          "maxLength": 256
        },
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 256
        },
        "ownerRepo": {
          "type": "string",
          "minLength": 1,
          "maxLength": 256
        },
        "visibility": {
          "type": "string",
          "enum": [
            "tenant",
            "global",
            "public"
          ]
        },
        "tenantScope": {
          "type": "object",
          "properties": {
            "tenantRef": {
              "type": "object",
              "properties": {
                "kind": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "ownerRepo": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                }
              },
              "required": [
                "kind",
                "id",
                "ownerRepo"
              ],
              "additionalProperties": false
            },
            "dataSpaceRef": {
              "type": "object",
              "properties": {
                "kind": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "ownerRepo": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                }
              },
              "required": [
                "kind",
                "id",
                "ownerRepo"
              ],
              "additionalProperties": false
            },
            "teamRef": {
              "type": "object",
              "properties": {
                "kind": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "ownerRepo": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                }
              },
              "required": [
                "kind",
                "id",
                "ownerRepo"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "tenantRef",
            "dataSpaceRef"
          ],
          "additionalProperties": false
        },
        "revision": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "schemaVersion": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "contentHash": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$"
        }
      },
      "required": [
        "kind",
        "id",
        "ownerRepo",
        "visibility",
        "revision",
        "schemaVersion",
        "contentHash"
      ],
      "additionalProperties": false
    },
    "normalizedPath": {
      "type": "string",
      "pattern": "^\\/(?!\\/)"
    },
    "legacyAdapterRevisionRef": {
      "type": "object",
      "properties": {
        "kind": {
          "type": "string",
          "minLength": 1,
          "maxLength": 256
        },
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 256
        },
        "ownerRepo": {
          "type": "string",
          "minLength": 1,
          "maxLength": 256
        },
        "visibility": {
          "type": "string",
          "enum": [
            "tenant",
            "global",
            "public"
          ]
        },
        "tenantScope": {
          "type": "object",
          "properties": {
            "tenantRef": {
              "type": "object",
              "properties": {
                "kind": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "ownerRepo": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                }
              },
              "required": [
                "kind",
                "id",
                "ownerRepo"
              ],
              "additionalProperties": false
            },
            "dataSpaceRef": {
              "type": "object",
              "properties": {
                "kind": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "ownerRepo": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                }
              },
              "required": [
                "kind",
                "id",
                "ownerRepo"
              ],
              "additionalProperties": false
            },
            "teamRef": {
              "type": "object",
              "properties": {
                "kind": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "ownerRepo": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                }
              },
              "required": [
                "kind",
                "id",
                "ownerRepo"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "tenantRef",
            "dataSpaceRef"
          ],
          "additionalProperties": false
        },
        "revision": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "schemaVersion": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "contentHash": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$"
        }
      },
      "required": [
        "kind",
        "id",
        "ownerRepo",
        "visibility",
        "revision",
        "schemaVersion",
        "contentHash"
      ],
      "additionalProperties": false
    },
    "sourceRevisionRef": {
      "type": "object",
      "properties": {
        "kind": {
          "type": "string",
          "minLength": 1,
          "maxLength": 256
        },
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 256
        },
        "ownerRepo": {
          "type": "string",
          "minLength": 1,
          "maxLength": 256
        },
        "visibility": {
          "type": "string",
          "enum": [
            "tenant",
            "global",
            "public"
          ]
        },
        "tenantScope": {
          "type": "object",
          "properties": {
            "tenantRef": {
              "type": "object",
              "properties": {
                "kind": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "ownerRepo": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                }
              },
              "required": [
                "kind",
                "id",
                "ownerRepo"
              ],
              "additionalProperties": false
            },
            "dataSpaceRef": {
              "type": "object",
              "properties": {
                "kind": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "ownerRepo": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                }
              },
              "required": [
                "kind",
                "id",
                "ownerRepo"
              ],
              "additionalProperties": false
            },
            "teamRef": {
              "type": "object",
              "properties": {
                "kind": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "ownerRepo": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                }
              },
              "required": [
                "kind",
                "id",
                "ownerRepo"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "tenantRef",
            "dataSpaceRef"
          ],
          "additionalProperties": false
        },
        "revision": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "schemaVersion": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "contentHash": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$"
        }
      },
      "required": [
        "kind",
        "id",
        "ownerRepo",
        "visibility",
        "revision",
        "schemaVersion",
        "contentHash"
      ],
      "additionalProperties": false
    },
    "inspectedSourceContentHash": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "targetResourceRef": {
      "type": "object",
      "properties": {
        "kind": {
          "type": "string",
          "minLength": 1,
          "maxLength": 256
        },
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 256
        },
        "ownerRepo": {
          "type": "string",
          "minLength": 1,
          "maxLength": 256
        },
        "visibility": {
          "type": "string",
          "enum": [
            "tenant",
            "global",
            "public"
          ]
        },
        "tenantScope": {
          "type": "object",
          "properties": {
            "tenantRef": {
              "type": "object",
              "properties": {
                "kind": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "ownerRepo": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                }
              },
              "required": [
                "kind",
                "id",
                "ownerRepo"
              ],
              "additionalProperties": false
            },
            "dataSpaceRef": {
              "type": "object",
              "properties": {
                "kind": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "ownerRepo": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                }
              },
              "required": [
                "kind",
                "id",
                "ownerRepo"
              ],
              "additionalProperties": false
            },
            "teamRef": {
              "type": "object",
              "properties": {
                "kind": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "ownerRepo": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                }
              },
              "required": [
                "kind",
                "id",
                "ownerRepo"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "tenantRef",
            "dataSpaceRef"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "kind",
        "id",
        "ownerRepo",
        "visibility"
      ],
      "additionalProperties": false
    },
    "workbenchCatalogDefaults": {
      "type": "object",
      "properties": {
        "order": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "isDefaultCandidate": {
          "type": "boolean"
        }
      },
      "required": [
        "order",
        "isDefaultCandidate"
      ],
      "additionalProperties": false
    },
    "contentHash": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    }
  },
  "required": [
    "contract",
    "schemaVersion",
    "routeSpaceRevisionRef",
    "normalizedPath",
    "legacyAdapterRevisionRef",
    "sourceRevisionRef",
    "inspectedSourceContentHash",
    "targetResourceRef",
    "contentHash"
  ],
  "additionalProperties": false,
  "$id": "https://schemas.infmonkeys.com/contracts/legacy-route-takeover-authorization.schema.json",
  "title": "legacy-route-takeover-authorization"
}
