{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://owlie.com/docs/schemas/connectors/manifest.schema.json",
  "title": "Owlie connector manifest",
  "description": "The manifest.json of an Owlie connector: its identity, capabilities, auth options, config, entities, grant kinds, custom operations and egress. An http connector's manifest is authored; the manifest of an ldap, scim, sql or flat-file connector is derived from its definition.json. Beyond this schema, Owlie's validation checks the manifest against the connector's handlers and its own cross-field rules.",
  "type": "object",
  "required": ["key", "version", "name", "provides", "config"],
  "properties": {
    "key": {
      "type": "string",
      "minLength": 1
    },
    "version": {
      "type": "integer",
      "minimum": 1
    },
    "name": {
      "type": "string",
      "minLength": 1
    },
    "kind": {
      "anyOf": [
        {
          "type": "string",
          "const": "http"
        },
        {
          "type": "string",
          "const": "scim"
        },
        {
          "type": "string",
          "const": "ldap"
        },
        {
          "type": "string",
          "const": "sql"
        },
        {
          "type": "string",
          "const": "flat-file"
        }
      ]
    },
    "description": {
      "type": "string"
    },
    "icon": {
      "type": "string"
    },
    "provides": {
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "string",
            "const": "provision"
          },
          {
            "type": "string",
            "const": "sync"
          },
          {
            "type": "string",
            "const": "notification"
          },
          {
            "type": "string",
            "const": "login"
          }
        ]
      }
    },
    "protocols": {
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "string",
            "const": "http"
          },
          {
            "type": "string",
            "const": "ldap"
          },
          {
            "type": "string",
            "const": "sql"
          },
          {
            "type": "string",
            "const": "s3"
          },
          {
            "type": "string",
            "const": "powershell"
          }
        ]
      },
      "minItems": 1
    },
    "execution_targets": {
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "string",
            "const": "cloud"
          },
          {
            "type": "string",
            "const": "gateway"
          }
        ]
      },
      "minItems": 1,
      "uniqueItems": true
    },
    "pagination_type": {
      "anyOf": [
        {
          "type": "string",
          "const": "next-token"
        },
        {
          "type": "string",
          "const": "cursor"
        },
        {
          "type": "string",
          "const": "offset-limit"
        },
        {
          "type": "string",
          "const": "link-header"
        },
        {
          "type": "string",
          "const": "page-number"
        }
      ]
    },
    "auth": {
      "type": "array",
      "items": {
        "type": "object",
        "required": ["key"],
        "properties": {
          "key": {
            "type": "string",
            "minLength": 1
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "enabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ]
          },
          "availability": {
            "type": "string",
            "const": "disabled"
          },
          "help_uri": {
            "type": "string",
            "format": "uri"
          },
          "config": {
            "type": "object",
            "required": ["schema"],
            "properties": {
              "title": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "schema": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "object",
                    "default": "object"
                  },
                  "title": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string"
                  },
                  "properties": {
                    "type": "object",
                    "patternProperties": {
                      "^.*$": {
                        "type": "object",
                        "properties": {
                          "type": {
                            "anyOf": [
                              {
                                "type": "string",
                                "const": "string"
                              },
                              {
                                "type": "string",
                                "const": "number"
                              },
                              {
                                "type": "string",
                                "const": "integer"
                              },
                              {
                                "type": "string",
                                "const": "boolean"
                              },
                              {
                                "type": "string",
                                "const": "array"
                              },
                              {
                                "type": "string",
                                "const": "object"
                              }
                            ]
                          },
                          "title": {
                            "type": "string"
                          },
                          "description": {
                            "type": "string"
                          },
                          "format": {
                            "type": "string"
                          },
                          "enum": {
                            "type": "array",
                            "items": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "default": {},
                          "items": {},
                          "x-suffix": {
                            "type": "string",
                            "minLength": 1
                          }
                        },
                        "additionalProperties": true
                      }
                    },
                    "default": {}
                  },
                  "required": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "additionalProperties": true
              },
              "help_uri": {
                "type": "string",
                "format": "uri"
              }
            },
            "additionalProperties": false
          },
          "connect": {
            "anyOf": [
              {
                "type": "object",
                "required": ["custom"],
                "properties": {
                  "custom": {
                    "type": "boolean",
                    "const": true
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": ["oauth2_authorization_code"],
                "properties": {
                  "oauth2_authorization_code": {
                    "type": "object",
                    "required": ["authorize_url", "token_url", "client_id"],
                    "properties": {
                      "authorize_url": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "token_url": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "issuer": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "id_token_issuer": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "client_id": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "client_secret": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "client_auth": {
                        "anyOf": [
                          {
                            "type": "string",
                            "const": "body"
                          },
                          {
                            "type": "string",
                            "const": "basic"
                          }
                        ]
                      },
                      "token_request_body": {
                        "anyOf": [
                          {
                            "type": "string",
                            "const": "form"
                          },
                          {
                            "type": "string",
                            "const": "json"
                          }
                        ]
                      },
                      "callback_validation": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["shopify_hmac"],
                            "properties": {
                              "shopify_hmac": {
                                "type": "object",
                                "required": ["shop_domain"],
                                "properties": {
                                  "shop_domain": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "required": ["literal"],
                                        "properties": {
                                          "literal": {}
                                        },
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "required": ["expr"],
                                        "properties": {
                                          "expr": {
                                            "type": "string",
                                            "minLength": 1
                                          }
                                        },
                                        "additionalProperties": false
                                      }
                                    ]
                                  }
                                },
                                "additionalProperties": false
                              }
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["intuit_realm"],
                            "properties": {
                              "intuit_realm": {
                                "type": "object",
                                "required": ["config_field"],
                                "properties": {
                                  "config_field": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 64,
                                    "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
                                  }
                                },
                                "additionalProperties": false
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "scopes": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "response_type": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "response_mode": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "redirect_uri": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "pkce": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "audience": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "token_response_format": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "extra_authorize_params": {
                        "type": "object",
                        "patternProperties": {
                          "^.*$": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": ["literal"],
                                "properties": {
                                  "literal": {}
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "required": ["expr"],
                                "properties": {
                                  "expr": {
                                    "type": "string",
                                    "minLength": 1
                                  }
                                },
                                "additionalProperties": false
                              }
                            ]
                          }
                        },
                        "default": {}
                      },
                      "extra_token_params": {
                        "type": "object",
                        "patternProperties": {
                          "^.*$": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": ["literal"],
                                "properties": {
                                  "literal": {}
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "required": ["expr"],
                                "properties": {
                                  "expr": {
                                    "type": "string",
                                    "minLength": 1
                                  }
                                },
                                "additionalProperties": false
                              }
                            ]
                          }
                        },
                        "default": {}
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": ["github_app_installation"],
                "properties": {
                  "github_app_installation": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              }
            ]
          },
          "acquire": {
            "anyOf": [
              {
                "type": "object",
                "required": ["custom"],
                "properties": {
                  "custom": {
                    "type": "boolean",
                    "const": true
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": ["oauth2_client_credentials"],
                "properties": {
                  "oauth2_client_credentials": {
                    "type": "object",
                    "required": ["token_url", "client_id", "client_secret"],
                    "properties": {
                      "token_url": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "client_id": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "client_secret": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "scope": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "audience": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "client_auth": {
                        "anyOf": [
                          {
                            "type": "string",
                            "const": "body"
                          },
                          {
                            "type": "string",
                            "const": "basic"
                          }
                        ]
                      },
                      "grant_type": {
                        "type": "string",
                        "minLength": 1
                      },
                      "extra_params": {
                        "type": "object",
                        "patternProperties": {
                          "^.*$": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": ["literal"],
                                "properties": {
                                  "literal": {}
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "required": ["expr"],
                                "properties": {
                                  "expr": {
                                    "type": "string",
                                    "minLength": 1
                                  }
                                },
                                "additionalProperties": false
                              }
                            ]
                          }
                        },
                        "default": {}
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": ["oauth2_jwt_bearer"],
                "properties": {
                  "oauth2_jwt_bearer": {
                    "type": "object",
                    "required": ["service_account_email", "private_key", "token_url"],
                    "properties": {
                      "service_account_email": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "private_key": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "delegated_admin_email": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "scopes": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "token_url": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "grant_type": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "issuer": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "subject": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "audience": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": ["oauth2_private_key_jwt"],
                "properties": {
                  "oauth2_private_key_jwt": {
                    "type": "object",
                    "required": ["token_url", "client_id", "private_key"],
                    "properties": {
                      "token_url": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "client_id": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "private_key": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "key_id": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "algorithm": {
                        "anyOf": [
                          {
                            "type": "string",
                            "const": "RS256"
                          },
                          {
                            "type": "string",
                            "const": "PS256"
                          },
                          {
                            "type": "string",
                            "const": "ES256"
                          }
                        ]
                      },
                      "scope": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "audience": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "claims": {
                        "type": "object",
                        "patternProperties": {
                          "^.*$": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": ["literal"],
                                "properties": {
                                  "literal": {}
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "required": ["expr"],
                                "properties": {
                                  "expr": {
                                    "type": "string",
                                    "minLength": 1
                                  }
                                },
                                "additionalProperties": false
                              }
                            ]
                          }
                        },
                        "default": {}
                      },
                      "extra_params": {
                        "type": "object",
                        "patternProperties": {
                          "^.*$": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": ["literal"],
                                "properties": {
                                  "literal": {}
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "required": ["expr"],
                                "properties": {
                                  "expr": {
                                    "type": "string",
                                    "minLength": 1
                                  }
                                },
                                "additionalProperties": false
                              }
                            ]
                          }
                        },
                        "default": {}
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": ["oauth2_password"],
                "properties": {
                  "oauth2_password": {
                    "type": "object",
                    "required": ["token_url", "username", "password"],
                    "properties": {
                      "token_url": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "username": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "password": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "client_id": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "client_secret": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "client_auth": {
                        "anyOf": [
                          {
                            "type": "string",
                            "const": "body"
                          },
                          {
                            "type": "string",
                            "const": "basic"
                          }
                        ]
                      },
                      "scope": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "extra_params": {
                        "type": "object",
                        "patternProperties": {
                          "^.*$": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": ["literal"],
                                "properties": {
                                  "literal": {}
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "required": ["expr"],
                                "properties": {
                                  "expr": {
                                    "type": "string",
                                    "minLength": 1
                                  }
                                },
                                "additionalProperties": false
                              }
                            ]
                          }
                        },
                        "default": {}
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              }
            ]
          },
          "credentials": {
            "anyOf": [
              {
                "type": "object",
                "required": ["custom"],
                "properties": {
                  "custom": {
                    "type": "boolean",
                    "const": true
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": ["static"],
                "properties": {
                  "static": {
                    "type": "object",
                    "patternProperties": {
                      "^.*$": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      }
                    },
                    "default": {}
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": ["oauth2_token_response"],
                "properties": {
                  "oauth2_token_response": {
                    "type": "object",
                    "properties": {
                      "access_token": {
                        "type": "string",
                        "minLength": 1
                      },
                      "refresh_token": {
                        "type": "string",
                        "minLength": 1
                      },
                      "expires_in": {
                        "type": "string",
                        "minLength": 1
                      },
                      "extra": {
                        "type": "object",
                        "patternProperties": {
                          "^.*$": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": ["literal"],
                                "properties": {
                                  "literal": {}
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "required": ["expr"],
                                "properties": {
                                  "expr": {
                                    "type": "string",
                                    "minLength": 1
                                  }
                                },
                                "additionalProperties": false
                              }
                            ]
                          }
                        },
                        "default": {}
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              }
            ]
          },
          "refresh": {
            "anyOf": [
              {
                "type": "object",
                "required": ["custom"],
                "properties": {
                  "custom": {
                    "type": "boolean",
                    "const": true
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": ["oauth2_refresh_token"],
                "properties": {
                  "oauth2_refresh_token": {
                    "type": "object",
                    "required": ["token_url", "refresh_token"],
                    "properties": {
                      "token_url": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "client_id": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "client_secret": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "refresh_token": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "scope": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "client_auth": {
                        "anyOf": [
                          {
                            "type": "string",
                            "const": "body"
                          },
                          {
                            "type": "string",
                            "const": "basic"
                          }
                        ]
                      },
                      "extra_params": {
                        "type": "object",
                        "patternProperties": {
                          "^.*$": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": ["literal"],
                                "properties": {
                                  "literal": {}
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "required": ["expr"],
                                "properties": {
                                  "expr": {
                                    "type": "string",
                                    "minLength": 1
                                  }
                                },
                                "additionalProperties": false
                              }
                            ]
                          }
                        },
                        "default": {}
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": ["oauth2_client_credentials"],
                "properties": {
                  "oauth2_client_credentials": {
                    "type": "object",
                    "required": ["token_url", "client_id", "client_secret"],
                    "properties": {
                      "token_url": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "client_id": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "client_secret": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "scope": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "audience": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "client_auth": {
                        "anyOf": [
                          {
                            "type": "string",
                            "const": "body"
                          },
                          {
                            "type": "string",
                            "const": "basic"
                          }
                        ]
                      },
                      "grant_type": {
                        "type": "string",
                        "minLength": 1
                      },
                      "extra_params": {
                        "type": "object",
                        "patternProperties": {
                          "^.*$": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": ["literal"],
                                "properties": {
                                  "literal": {}
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "required": ["expr"],
                                "properties": {
                                  "expr": {
                                    "type": "string",
                                    "minLength": 1
                                  }
                                },
                                "additionalProperties": false
                              }
                            ]
                          }
                        },
                        "default": {}
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": ["oauth2_jwt_bearer"],
                "properties": {
                  "oauth2_jwt_bearer": {
                    "type": "object",
                    "required": ["service_account_email", "private_key", "token_url"],
                    "properties": {
                      "service_account_email": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "private_key": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "delegated_admin_email": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "scopes": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "token_url": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "grant_type": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "issuer": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "subject": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "audience": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": ["oauth2_private_key_jwt"],
                "properties": {
                  "oauth2_private_key_jwt": {
                    "type": "object",
                    "required": ["token_url", "client_id", "private_key"],
                    "properties": {
                      "token_url": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "client_id": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "private_key": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "key_id": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "algorithm": {
                        "anyOf": [
                          {
                            "type": "string",
                            "const": "RS256"
                          },
                          {
                            "type": "string",
                            "const": "PS256"
                          },
                          {
                            "type": "string",
                            "const": "ES256"
                          }
                        ]
                      },
                      "scope": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "audience": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "claims": {
                        "type": "object",
                        "patternProperties": {
                          "^.*$": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": ["literal"],
                                "properties": {
                                  "literal": {}
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "required": ["expr"],
                                "properties": {
                                  "expr": {
                                    "type": "string",
                                    "minLength": 1
                                  }
                                },
                                "additionalProperties": false
                              }
                            ]
                          }
                        },
                        "default": {}
                      },
                      "extra_params": {
                        "type": "object",
                        "patternProperties": {
                          "^.*$": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": ["literal"],
                                "properties": {
                                  "literal": {}
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "required": ["expr"],
                                "properties": {
                                  "expr": {
                                    "type": "string",
                                    "minLength": 1
                                  }
                                },
                                "additionalProperties": false
                              }
                            ]
                          }
                        },
                        "default": {}
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": ["oauth2_password"],
                "properties": {
                  "oauth2_password": {
                    "type": "object",
                    "required": ["token_url", "username", "password"],
                    "properties": {
                      "token_url": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "username": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "password": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "client_id": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "client_secret": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "client_auth": {
                        "anyOf": [
                          {
                            "type": "string",
                            "const": "body"
                          },
                          {
                            "type": "string",
                            "const": "basic"
                          }
                        ]
                      },
                      "scope": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "extra_params": {
                        "type": "object",
                        "patternProperties": {
                          "^.*$": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": ["literal"],
                                "properties": {
                                  "literal": {}
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "required": ["expr"],
                                "properties": {
                                  "expr": {
                                    "type": "string",
                                    "minLength": 1
                                  }
                                },
                                "additionalProperties": false
                              }
                            ]
                          }
                        },
                        "default": {}
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              }
            ]
          },
          "apply": {
            "anyOf": [
              {
                "type": "object",
                "required": ["custom"],
                "properties": {
                  "custom": {
                    "type": "boolean",
                    "const": true
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "header": {
                    "type": "object",
                    "patternProperties": {
                      "^.*$": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      }
                    },
                    "default": {}
                  },
                  "query": {
                    "type": "object",
                    "patternProperties": {
                      "^.*$": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      }
                    },
                    "default": {}
                  },
                  "basic": {
                    "type": "object",
                    "required": ["username", "password"],
                    "properties": {
                      "username": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "password": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      }
                    },
                    "additionalProperties": false
                  },
                  "base_url": {
                    "anyOf": [
                      {
                        "type": "object",
                        "required": ["literal"],
                        "properties": {
                          "literal": {}
                        },
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "required": ["expr"],
                        "properties": {
                          "expr": {
                            "type": "string",
                            "minLength": 1
                          }
                        },
                        "additionalProperties": false
                      }
                    ]
                  },
                  "tls": {
                    "type": "object",
                    "required": ["cert", "key"],
                    "properties": {
                      "cert": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      },
                      "key": {
                        "anyOf": [
                          {
                            "type": "object",
                            "required": ["literal"],
                            "properties": {
                              "literal": {}
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": ["expr"],
                            "properties": {
                              "expr": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ]
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              }
            ]
          },
          "reject": {
            "type": "object",
            "required": ["error"],
            "properties": {
              "statuses": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "minimum": 100,
                  "maximum": 599
                },
                "minItems": 1,
                "maxItems": 8,
                "uniqueItems": true
              },
              "error": {
                "type": "object",
                "required": ["pointer", "codes"],
                "properties": {
                  "pointer": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256,
                    "pattern": "^/"
                  },
                  "match": {
                    "anyOf": [
                      {
                        "type": "string",
                        "const": "all"
                      },
                      {
                        "type": "string",
                        "const": "any"
                      }
                    ]
                  },
                  "codes": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 128
                    },
                    "minItems": 1,
                    "maxItems": 16,
                    "uniqueItems": true
                  }
                },
                "additionalProperties": false
              }
            },
            "additionalProperties": false
          }
        },
        "additionalProperties": false
      },
      "default": []
    },
    "config": {
      "type": "object",
      "required": ["schema"],
      "properties": {
        "title": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "schema": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "const": "object",
              "default": "object"
            },
            "title": {
              "type": "string"
            },
            "description": {
              "type": "string"
            },
            "properties": {
              "type": "object",
              "patternProperties": {
                "^.*$": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "anyOf": [
                        {
                          "type": "string",
                          "const": "string"
                        },
                        {
                          "type": "string",
                          "const": "number"
                        },
                        {
                          "type": "string",
                          "const": "integer"
                        },
                        {
                          "type": "string",
                          "const": "boolean"
                        },
                        {
                          "type": "string",
                          "const": "array"
                        },
                        {
                          "type": "string",
                          "const": "object"
                        }
                      ]
                    },
                    "title": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "format": {
                      "type": "string"
                    },
                    "enum": {
                      "type": "array",
                      "items": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "number"
                          },
                          {
                            "type": "boolean"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    },
                    "default": {},
                    "items": {},
                    "x-suffix": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "additionalProperties": true
                }
              },
              "default": {}
            },
            "required": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": true
        },
        "help_uri": {
          "type": "string",
          "format": "uri"
        }
      },
      "additionalProperties": false
    },
    "attribute_schema": {
      "description": "Accepted for compatibility and ignored: nothing reads it. Omit it."
    },
    "entities": {
      "type": "object",
      "patternProperties": {
        "^.*$": {
          "anyOf": [
            {
              "type": "object",
              "required": ["name", "is_account"],
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1
                },
                "identifier_paths": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "display_paths": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "description": {
                  "type": "string"
                },
                "schema": {},
                "sync_support": {
                  "type": "object",
                  "properties": {
                    "supports_deleted": {
                      "type": "boolean",
                      "default": false
                    },
                    "supports_incremental": {
                      "type": "boolean",
                      "default": false
                    },
                    "fetch_options": {
                      "type": "object",
                      "properties": {
                        "filter": {
                          "type": "object",
                          "properties": {
                            "enabled": {
                              "type": "boolean",
                              "default": true
                            },
                            "input_hint": {
                              "type": "string",
                              "minLength": 1
                            },
                            "help": {
                              "type": "string",
                              "minLength": 1
                            }
                          },
                          "additionalProperties": false
                        },
                        "fields": {
                          "type": "boolean",
                          "default": false
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "additionalProperties": false
                },
                "provisioning_profile": {
                  "type": "object",
                  "properties": {
                    "version": {
                      "type": "integer",
                      "minimum": 1
                    },
                    "operations": {
                      "type": "object",
                      "properties": {
                        "PROVISION": {
                          "type": "object",
                          "properties": {
                            "provision_mode": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "const": "direct"
                                },
                                {
                                  "type": "string",
                                  "const": "invite"
                                },
                                {
                                  "type": "string",
                                  "const": "external"
                                }
                              ]
                            },
                            "baseline": {
                              "type": "object",
                              "properties": {
                                "attributes": {
                                  "type": "object",
                                  "patternProperties": {
                                    "^.*$": {}
                                  }
                                },
                                "grants": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "required": ["kind", "target"],
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "target": {
                                        "type": "object",
                                        "required": ["entity", "external_id"],
                                        "properties": {
                                          "entity": {
                                            "type": "string",
                                            "minLength": 1
                                          },
                                          "external_id": {
                                            "type": "string",
                                            "minLength": 1
                                          }
                                        },
                                        "additionalProperties": false
                                      },
                                      "qualifiers": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        },
                                        "default": {}
                                      }
                                    },
                                    "additionalProperties": false
                                  }
                                }
                              }
                            },
                            "before": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "InvokeConnectorOp"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  },
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "OwlieFunction"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  }
                                ]
                              }
                            },
                            "after": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "InvokeConnectorOp"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  },
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "OwlieFunction"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  }
                                ]
                              }
                            }
                          },
                          "additionalProperties": true
                        },
                        "REVOKE": {
                          "type": "object",
                          "properties": {
                            "remove_managed_grants": {
                              "type": "boolean"
                            },
                            "lifecycle_state_on_revoke": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "const": "DISABLED"
                                },
                                {
                                  "type": "string",
                                  "const": "DELETED"
                                }
                              ]
                            },
                            "before": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "InvokeConnectorOp"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  },
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "OwlieFunction"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  }
                                ]
                              }
                            },
                            "after": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "InvokeConnectorOp"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  },
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "OwlieFunction"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  }
                                ]
                              }
                            }
                          },
                          "additionalProperties": true
                        },
                        "DISABLE": {
                          "type": "object",
                          "properties": {
                            "before": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "InvokeConnectorOp"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  },
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "OwlieFunction"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  }
                                ]
                              }
                            },
                            "after": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "InvokeConnectorOp"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  },
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "OwlieFunction"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  }
                                ]
                              }
                            }
                          }
                        },
                        "ENABLE": {
                          "type": "object",
                          "properties": {
                            "before": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "InvokeConnectorOp"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  },
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "OwlieFunction"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  }
                                ]
                              }
                            },
                            "after": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "InvokeConnectorOp"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  },
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "OwlieFunction"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  }
                                ]
                              }
                            }
                          }
                        },
                        "UPDATE_ATTRIBUTES": {
                          "type": "object",
                          "properties": {
                            "before": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "InvokeConnectorOp"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  },
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "OwlieFunction"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  }
                                ]
                              }
                            },
                            "after": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "InvokeConnectorOp"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  },
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "OwlieFunction"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  }
                                ]
                              }
                            }
                          }
                        },
                        "ADD_GRANTS": {
                          "type": "object",
                          "properties": {
                            "before": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "InvokeConnectorOp"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  },
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "OwlieFunction"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  }
                                ]
                              }
                            },
                            "after": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "InvokeConnectorOp"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  },
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "OwlieFunction"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  }
                                ]
                              }
                            }
                          }
                        },
                        "REMOVE_GRANTS": {
                          "type": "object",
                          "properties": {
                            "before": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "InvokeConnectorOp"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  },
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "OwlieFunction"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  }
                                ]
                              }
                            },
                            "after": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "InvokeConnectorOp"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  },
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "OwlieFunction"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  }
                                ]
                              }
                            }
                          }
                        },
                        "SET_GRANTS": {
                          "type": "object",
                          "properties": {
                            "before": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "InvokeConnectorOp"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  },
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "OwlieFunction"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  }
                                ]
                              }
                            },
                            "after": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "InvokeConnectorOp"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  },
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "OwlieFunction"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  }
                                ]
                              }
                            }
                          }
                        }
                      },
                      "additionalProperties": false
                    },
                    "password": {
                      "type": "object",
                      "required": ["paths"],
                      "properties": {
                        "paths": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1
                          },
                          "minItems": 1,
                          "maxItems": 4,
                          "uniqueItems": true
                        },
                        "initial_length": {
                          "type": "integer",
                          "minimum": 12,
                          "maximum": 128
                        },
                        "policy": {
                          "type": "object",
                          "properties": {
                            "min_length": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 128
                            },
                            "classes": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 4
                            }
                          },
                          "additionalProperties": false
                        },
                        "link": {
                          "type": "string",
                          "const": "identity"
                        },
                        "self_service": {
                          "type": "boolean",
                          "default": false
                        },
                        "on_change": {
                          "type": "object",
                          "patternProperties": {
                            "^.*$": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "boolean"
                                }
                              ]
                            }
                          }
                        },
                        "history_check": {
                          "anyOf": [
                            {
                              "type": "string",
                              "const": "person_changes"
                            },
                            {
                              "type": "string",
                              "const": "always"
                            },
                            {
                              "type": "string",
                              "const": "never"
                            }
                          ],
                          "default": "person_changes"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "additionalProperties": true
                },
                "is_account": {
                  "type": "boolean",
                  "const": true
                },
                "sync_profile": {
                  "type": "object",
                  "properties": {
                    "target": {
                      "anyOf": [
                        {
                          "type": "string",
                          "const": "IDENTITY"
                        },
                        {
                          "type": "string",
                          "const": "RESOURCE"
                        },
                        {
                          "type": "string",
                          "const": "HYBRID"
                        }
                      ]
                    },
                    "resourceId": {
                      "type": "string",
                      "minLength": 1
                    },
                    "matchingRules": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": ["identityField", "externalExpression"],
                        "properties": {
                          "identityField": {
                            "type": "string",
                            "minLength": 1
                          },
                          "externalExpression": {
                            "type": "string",
                            "minLength": 1
                          },
                          "onTerminatedMatch": {
                            "anyOf": [
                              {
                                "type": "string",
                                "const": "reactivate"
                              },
                              {
                                "type": "string",
                                "const": "create"
                              },
                              {
                                "type": "string",
                                "const": "review"
                              }
                            ]
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "onIdentityMatchWithoutAssignedResourceAction": {
                      "anyOf": [
                        {
                          "type": "string",
                          "const": "adopt"
                        },
                        {
                          "type": "string",
                          "const": "ignore"
                        },
                        {
                          "type": "string",
                          "const": "flag"
                        },
                        {
                          "type": "string",
                          "const": "review"
                        }
                      ]
                    },
                    "onMatchAction": {
                      "anyOf": [
                        {
                          "type": "string",
                          "const": "update"
                        },
                        {
                          "type": "string",
                          "const": "ignore"
                        }
                      ]
                    },
                    "onNoMatchAction": {
                      "anyOf": [
                        {
                          "type": "string",
                          "const": "create"
                        },
                        {
                          "type": "string",
                          "const": "ignore"
                        },
                        {
                          "type": "string",
                          "const": "flag"
                        }
                      ]
                    },
                    "attributeMappings": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": ["identityAttribute", "includeInCreate", "includeInUpdate"],
                        "properties": {
                          "identityAttribute": {
                            "type": "string",
                            "minLength": 1
                          },
                          "externalExpression": {
                            "type": "string",
                            "minLength": 1
                          },
                          "reference": {
                            "type": "object",
                            "required": ["sourceExpression"],
                            "properties": {
                              "sourceExpression": {
                                "type": "string",
                                "minLength": 1
                              },
                              "matchAttribute": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "additionalProperties": false
                          },
                          "includeInCreate": {
                            "type": "boolean"
                          },
                          "includeInUpdate": {
                            "type": "boolean"
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "fetchOptions": {
                      "type": "object",
                      "properties": {
                        "filter": {
                          "type": "string",
                          "minLength": 1
                        },
                        "pageSize": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "limit": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "fields": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1
                          }
                        }
                      },
                      "additionalProperties": false
                    },
                    "assignmentPolicy": {
                      "type": "object",
                      "required": ["onObservedDiffWithDesired"],
                      "properties": {
                        "onObservedDiffWithDesired": {
                          "anyOf": [
                            {
                              "type": "string",
                              "const": "ADOPT_CHANGES"
                            },
                            {
                              "type": "string",
                              "const": "FLAG"
                            },
                            {
                              "type": "string",
                              "const": "IGNORE"
                            },
                            {
                              "type": "string",
                              "const": "ENFORCE_OWLIE"
                            }
                          ]
                        },
                        "fieldOverrides": {
                          "type": "object",
                          "patternProperties": {
                            "^.*$": {
                              "type": "object",
                              "required": ["onObservedDiffWithDesired"],
                              "properties": {
                                "onObservedDiffWithDesired": {
                                  "anyOf": [
                                    {
                                      "type": "string",
                                      "const": "ADOPT_CHANGES"
                                    },
                                    {
                                      "type": "string",
                                      "const": "FLAG"
                                    },
                                    {
                                      "type": "string",
                                      "const": "IGNORE"
                                    },
                                    {
                                      "type": "string",
                                      "const": "ENFORCE_OWLIE"
                                    }
                                  ]
                                }
                              },
                              "additionalProperties": false
                            }
                          }
                        }
                      },
                      "additionalProperties": false
                    },
                    "is_active": {
                      "type": "string",
                      "minLength": 1
                    },
                    "is_deleted": {
                      "type": "string",
                      "minLength": 1
                    },
                    "is_person": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "additionalProperties": false
                },
                "create_semantics": {
                  "anyOf": [
                    {
                      "type": "string",
                      "const": "direct"
                    },
                    {
                      "type": "string",
                      "const": "invite"
                    },
                    {
                      "type": "string",
                      "const": "external"
                    }
                  ]
                },
                "invite": {
                  "type": "object",
                  "properties": {
                    "expiry_attribute": {
                      "type": "string",
                      "minLength": 1
                    },
                    "reinvite_op": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "additionalProperties": false
                },
                "identifier_transition": {
                  "type": "boolean"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": ["name"],
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1
                },
                "identifier_paths": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "display_paths": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "description": {
                  "type": "string"
                },
                "schema": {},
                "sync_support": {
                  "type": "object",
                  "properties": {
                    "supports_deleted": {
                      "type": "boolean",
                      "default": false
                    },
                    "supports_incremental": {
                      "type": "boolean",
                      "default": false
                    },
                    "fetch_options": {
                      "type": "object",
                      "properties": {
                        "filter": {
                          "type": "object",
                          "properties": {
                            "enabled": {
                              "type": "boolean",
                              "default": true
                            },
                            "input_hint": {
                              "type": "string",
                              "minLength": 1
                            },
                            "help": {
                              "type": "string",
                              "minLength": 1
                            }
                          },
                          "additionalProperties": false
                        },
                        "fields": {
                          "type": "boolean",
                          "default": false
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "additionalProperties": false
                },
                "provisioning_profile": {
                  "type": "object",
                  "properties": {
                    "version": {
                      "type": "integer",
                      "minimum": 1
                    },
                    "operations": {
                      "type": "object",
                      "properties": {
                        "PROVISION": {
                          "type": "object",
                          "properties": {
                            "provision_mode": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "const": "direct"
                                },
                                {
                                  "type": "string",
                                  "const": "invite"
                                },
                                {
                                  "type": "string",
                                  "const": "external"
                                }
                              ]
                            },
                            "baseline": {
                              "type": "object",
                              "properties": {
                                "attributes": {
                                  "type": "object",
                                  "patternProperties": {
                                    "^.*$": {}
                                  }
                                },
                                "grants": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "required": ["kind", "target"],
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "target": {
                                        "type": "object",
                                        "required": ["entity", "external_id"],
                                        "properties": {
                                          "entity": {
                                            "type": "string",
                                            "minLength": 1
                                          },
                                          "external_id": {
                                            "type": "string",
                                            "minLength": 1
                                          }
                                        },
                                        "additionalProperties": false
                                      },
                                      "qualifiers": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        },
                                        "default": {}
                                      }
                                    },
                                    "additionalProperties": false
                                  }
                                }
                              }
                            },
                            "before": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "InvokeConnectorOp"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  },
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "OwlieFunction"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  }
                                ]
                              }
                            },
                            "after": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "InvokeConnectorOp"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  },
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "OwlieFunction"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  }
                                ]
                              }
                            }
                          },
                          "additionalProperties": true
                        },
                        "REVOKE": {
                          "type": "object",
                          "properties": {
                            "remove_managed_grants": {
                              "type": "boolean"
                            },
                            "lifecycle_state_on_revoke": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "const": "DISABLED"
                                },
                                {
                                  "type": "string",
                                  "const": "DELETED"
                                }
                              ]
                            },
                            "before": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "InvokeConnectorOp"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  },
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "OwlieFunction"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  }
                                ]
                              }
                            },
                            "after": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "InvokeConnectorOp"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  },
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "OwlieFunction"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  }
                                ]
                              }
                            }
                          },
                          "additionalProperties": true
                        },
                        "DISABLE": {
                          "type": "object",
                          "properties": {
                            "before": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "InvokeConnectorOp"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  },
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "OwlieFunction"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  }
                                ]
                              }
                            },
                            "after": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "InvokeConnectorOp"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  },
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "OwlieFunction"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  }
                                ]
                              }
                            }
                          }
                        },
                        "ENABLE": {
                          "type": "object",
                          "properties": {
                            "before": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "InvokeConnectorOp"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  },
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "OwlieFunction"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  }
                                ]
                              }
                            },
                            "after": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "InvokeConnectorOp"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  },
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "OwlieFunction"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  }
                                ]
                              }
                            }
                          }
                        },
                        "UPDATE_ATTRIBUTES": {
                          "type": "object",
                          "properties": {
                            "before": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "InvokeConnectorOp"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  },
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "OwlieFunction"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  }
                                ]
                              }
                            },
                            "after": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "InvokeConnectorOp"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  },
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "OwlieFunction"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  }
                                ]
                              }
                            }
                          }
                        },
                        "ADD_GRANTS": {
                          "type": "object",
                          "properties": {
                            "before": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "InvokeConnectorOp"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  },
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "OwlieFunction"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  }
                                ]
                              }
                            },
                            "after": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "InvokeConnectorOp"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  },
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "OwlieFunction"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  }
                                ]
                              }
                            }
                          }
                        },
                        "REMOVE_GRANTS": {
                          "type": "object",
                          "properties": {
                            "before": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "InvokeConnectorOp"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  },
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "OwlieFunction"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  }
                                ]
                              }
                            },
                            "after": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "InvokeConnectorOp"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  },
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "OwlieFunction"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  }
                                ]
                              }
                            }
                          }
                        },
                        "SET_GRANTS": {
                          "type": "object",
                          "properties": {
                            "before": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "InvokeConnectorOp"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  },
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "OwlieFunction"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  }
                                ]
                              }
                            },
                            "after": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "InvokeConnectorOp"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  },
                                  {
                                    "type": "object",
                                    "required": ["type", "op"],
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "const": "OwlieFunction"
                                      },
                                      "op": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "params": {
                                        "type": "object",
                                        "patternProperties": {
                                          "^.*$": {}
                                        }
                                      },
                                      "when": {}
                                    }
                                  }
                                ]
                              }
                            }
                          }
                        }
                      },
                      "additionalProperties": false
                    },
                    "password": {
                      "type": "object",
                      "required": ["paths"],
                      "properties": {
                        "paths": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1
                          },
                          "minItems": 1,
                          "maxItems": 4,
                          "uniqueItems": true
                        },
                        "initial_length": {
                          "type": "integer",
                          "minimum": 12,
                          "maximum": 128
                        },
                        "policy": {
                          "type": "object",
                          "properties": {
                            "min_length": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 128
                            },
                            "classes": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 4
                            }
                          },
                          "additionalProperties": false
                        },
                        "link": {
                          "type": "string",
                          "const": "identity"
                        },
                        "self_service": {
                          "type": "boolean",
                          "default": false
                        },
                        "on_change": {
                          "type": "object",
                          "patternProperties": {
                            "^.*$": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "boolean"
                                }
                              ]
                            }
                          }
                        },
                        "history_check": {
                          "anyOf": [
                            {
                              "type": "string",
                              "const": "person_changes"
                            },
                            {
                              "type": "string",
                              "const": "always"
                            },
                            {
                              "type": "string",
                              "const": "never"
                            }
                          ],
                          "default": "person_changes"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "additionalProperties": true
                },
                "is_account": {
                  "type": "boolean",
                  "const": false,
                  "default": false
                },
                "sync_profile": {
                  "type": "object",
                  "properties": {
                    "attrMappings": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": ["attrKey", "externalExpression"],
                        "properties": {
                          "attrKey": {
                            "type": "string",
                            "minLength": 1
                          },
                          "externalExpression": {
                            "type": "string",
                            "minLength": 1
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "fetchOptions": {
                      "type": "object",
                      "properties": {
                        "filter": {
                          "type": "string",
                          "minLength": 1
                        },
                        "pageSize": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "limit": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "fields": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1
                          }
                        }
                      },
                      "additionalProperties": false
                    },
                    "assignmentPolicy": {
                      "type": "object",
                      "properties": {
                        "onObservedWithoutDesired": {
                          "anyOf": [
                            {
                              "type": "string",
                              "const": "ADOPT"
                            },
                            {
                              "type": "string",
                              "const": "FLAG"
                            },
                            {
                              "type": "string",
                              "const": "IGNORE"
                            },
                            {
                              "type": "string",
                              "const": "ENFORCE_OWLIE"
                            }
                          ]
                        },
                        "onObservedDiffWithDesired": {
                          "anyOf": [
                            {
                              "type": "string",
                              "const": "ADOPT_CHANGES"
                            },
                            {
                              "type": "string",
                              "const": "FLAG"
                            },
                            {
                              "type": "string",
                              "const": "IGNORE"
                            },
                            {
                              "type": "string",
                              "const": "ENFORCE_OWLIE"
                            }
                          ]
                        },
                        "fieldOverrides": {
                          "type": "object",
                          "patternProperties": {
                            "^.*$": {
                              "type": "object",
                              "required": ["onObservedDiffWithDesired"],
                              "properties": {
                                "onObservedDiffWithDesired": {
                                  "anyOf": [
                                    {
                                      "type": "string",
                                      "const": "ADOPT_CHANGES"
                                    },
                                    {
                                      "type": "string",
                                      "const": "FLAG"
                                    },
                                    {
                                      "type": "string",
                                      "const": "IGNORE"
                                    },
                                    {
                                      "type": "string",
                                      "const": "ENFORCE_OWLIE"
                                    }
                                  ]
                                }
                              },
                              "additionalProperties": false
                            }
                          }
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "additionalProperties": false
                }
              },
              "additionalProperties": false
            }
          ]
        }
      },
      "default": {}
    },
    "custom_ops": {
      "type": "array",
      "items": {
        "type": "object",
        "required": ["key"],
        "properties": {
          "key": {
            "type": "string",
            "minLength": 1
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "params_schema": {}
        },
        "additionalProperties": false
      },
      "default": []
    },
    "grant_kinds": {
      "type": "array",
      "items": {
        "type": "object",
        "required": ["key", "source", "target", "discovered_via"],
        "properties": {
          "key": {
            "type": "string",
            "minLength": 1
          },
          "source": {
            "type": "string",
            "minLength": 1
          },
          "principal_types": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "minItems": 1
          },
          "target": {
            "type": "string",
            "minLength": 1
          },
          "discovered_via": {
            "type": "string",
            "minLength": 1
          },
          "fetch_mode": {
            "anyOf": [
              {
                "type": "string",
                "const": "per-entity"
              },
              {
                "type": "string",
                "const": "embedded"
              }
            ],
            "default": "per-entity"
          },
          "qualifiers": {
            "type": "array",
            "items": {
              "type": "object",
              "required": ["name", "schema"],
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1
                },
                "schema": {
                  "anyOf": [
                    {
                      "type": "string",
                      "const": "boolean"
                    },
                    {
                      "type": "string",
                      "const": "enum"
                    },
                    {
                      "type": "string",
                      "const": "string"
                    },
                    {
                      "type": "string",
                      "const": "number"
                    },
                    {
                      "type": "string",
                      "const": "instant"
                    },
                    {
                      "type": "string",
                      "const": "duration"
                    },
                    {
                      "type": "string",
                      "const": "entity_ref"
                    },
                    {
                      "type": "string",
                      "const": "set"
                    },
                    {
                      "type": "string",
                      "const": "record"
                    }
                  ]
                },
                "required": {
                  "type": "boolean",
                  "default": false
                },
                "slot_key": {
                  "type": "boolean",
                  "default": false
                },
                "multi_valued": {
                  "type": "boolean",
                  "default": false
                },
                "values": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "order": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "default": {
                  "type": "string"
                },
                "unit": {
                  "type": "string"
                },
                "entity": {
                  "type": "string",
                  "minLength": 1
                },
                "source": {
                  "type": "string",
                  "minLength": 1
                },
                "pattern": {
                  "type": "string",
                  "minLength": 1
                },
                "examples": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1
                  },
                  "minItems": 1
                }
              },
              "additionalProperties": false
            },
            "default": []
          },
          "validators": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "object",
                  "required": ["kind", "per", "max"],
                  "properties": {
                    "kind": {
                      "type": "string",
                      "const": "cardinality"
                    },
                    "per": {
                      "anyOf": [
                        {
                          "type": "string",
                          "const": "principal"
                        },
                        {
                          "type": "string",
                          "const": "principal_target"
                        }
                      ]
                    },
                    "max": {
                      "type": "integer",
                      "minimum": 1
                    }
                  },
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "required": ["kind", "a", "b"],
                  "properties": {
                    "kind": {
                      "type": "string",
                      "const": "subset"
                    },
                    "a": {
                      "type": "string",
                      "minLength": 1
                    },
                    "b": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "required": ["kind", "a", "op", "b"],
                  "properties": {
                    "kind": {
                      "type": "string",
                      "const": "numeric_relation"
                    },
                    "a": {
                      "type": "string",
                      "minLength": 1
                    },
                    "op": {
                      "anyOf": [
                        {
                          "type": "string",
                          "const": "lt"
                        },
                        {
                          "type": "string",
                          "const": "lte"
                        },
                        {
                          "type": "string",
                          "const": "eq"
                        },
                        {
                          "type": "string",
                          "const": "gte"
                        },
                        {
                          "type": "string",
                          "const": "gt"
                        }
                      ]
                    },
                    "b": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "additionalProperties": false
                }
              ]
            },
            "default": []
          },
          "writable": {
            "type": "boolean"
          },
          "membership": {
            "type": "boolean",
            "default": false
          },
          "membership_context": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "uniqueItems": true,
            "default": []
          },
          "prerequisite": {
            "type": "object",
            "required": ["kind", "target_from_qualifier"],
            "properties": {
              "kind": {
                "type": "string",
                "minLength": 1
              },
              "target_from_qualifier": {
                "type": "string",
                "minLength": 1
              }
            },
            "additionalProperties": false
          },
          "hierarchy": {
            "type": "boolean",
            "default": false
          },
          "propagates": {
            "type": "boolean",
            "default": false
          },
          "derived": {
            "type": "boolean",
            "default": false
          },
          "via_membership": {
            "anyOf": [
              {
                "type": "string",
                "const": "transitive"
              },
              {
                "type": "string",
                "const": "direct"
              },
              {
                "type": "string",
                "const": "none"
              }
            ],
            "default": "transitive"
          },
          "effective_access": {
            "type": "boolean",
            "default": true
          }
        },
        "additionalProperties": false
      },
      "default": []
    },
    "egress": {
      "type": "object",
      "properties": {
        "auto": {
          "type": "array",
          "items": {
            "type": "object",
            "required": ["domain", "source"],
            "properties": {
              "domain": {
                "type": "string",
                "minLength": 1
              },
              "source": {
                "type": "string",
                "minLength": 1
              }
            },
            "additionalProperties": false
          }
        },
        "manual": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1
          }
        }
      },
      "additionalProperties": false
    },
    "http_rate_limits": {
      "type": "object",
      "required": ["buckets", "rules"],
      "properties": {
        "quota": {
          "type": "object",
          "required": ["namespace", "dimensions"],
          "properties": {
            "namespace": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
            },
            "dimensions": {
              "type": "array",
              "items": {
                "type": "object",
                "required": ["source", "field", "meaning"],
                "properties": {
                  "source": {
                    "anyOf": [
                      {
                        "type": "string",
                        "const": "config"
                      },
                      {
                        "type": "string",
                        "const": "binding"
                      }
                    ]
                  },
                  "field": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "pattern": "^[A-Za-z][A-Za-z0-9_]*$"
                  },
                  "meaning": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256
                  }
                },
                "additionalProperties": false
              },
              "minItems": 1,
              "maxItems": 8
            }
          },
          "additionalProperties": false
        },
        "buckets": {
          "type": "array",
          "items": {
            "anyOf": [
              {
                "type": "object",
                "required": ["key", "limit", "window_ms", "burst"],
                "properties": {
                  "key": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
                  },
                  "limit": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1000000
                  },
                  "window_ms": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 86400000
                  },
                  "burst": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1000000
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": ["key", "kind", "feedback"],
                "properties": {
                  "key": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
                  },
                  "kind": {
                    "type": "string",
                    "const": "fixed_reset"
                  },
                  "feedback": {
                    "type": "object",
                    "properties": {
                      "headers": {
                        "type": "object",
                        "properties": {
                          "limit": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 128,
                            "pattern": "^[A-Za-z][A-Za-z0-9-]*$"
                          },
                          "remaining": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 128,
                            "pattern": "^[A-Za-z][A-Za-z0-9-]*$"
                          },
                          "reset": {
                            "type": "object",
                            "required": ["name", "unit"],
                            "properties": {
                              "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 128,
                                "pattern": "^[A-Za-z][A-Za-z0-9-]*$"
                              },
                              "unit": {
                                "anyOf": [
                                  {
                                    "type": "string",
                                    "const": "delta_seconds"
                                  },
                                  {
                                    "type": "string",
                                    "const": "epoch_seconds"
                                  },
                                  {
                                    "type": "string",
                                    "const": "epoch_milliseconds"
                                  }
                                ]
                              }
                            },
                            "additionalProperties": false
                          },
                          "retry": {
                            "type": "object",
                            "required": ["name", "unit"],
                            "properties": {
                              "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 128,
                                "pattern": "^[A-Za-z][A-Za-z0-9-]*$"
                              },
                              "unit": {
                                "anyOf": [
                                  {
                                    "type": "string",
                                    "const": "delta_seconds"
                                  },
                                  {
                                    "type": "string",
                                    "const": "epoch_seconds"
                                  },
                                  {
                                    "type": "string",
                                    "const": "epoch_milliseconds"
                                  }
                                ]
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "body": {
                        "type": "object",
                        "required": ["statuses", "error"],
                        "properties": {
                          "statuses": {
                            "type": "array",
                            "items": {
                              "type": "integer",
                              "minimum": 200,
                              "maximum": 599
                            },
                            "minItems": 1,
                            "maxItems": 8,
                            "uniqueItems": true
                          },
                          "error": {
                            "type": "object",
                            "required": ["pointer", "codes"],
                            "properties": {
                              "pointer": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 256,
                                "pattern": "^/"
                              },
                              "match": {
                                "anyOf": [
                                  {
                                    "type": "string",
                                    "const": "all"
                                  },
                                  {
                                    "type": "string",
                                    "const": "any"
                                  }
                                ]
                              },
                              "codes": {
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 128
                                },
                                "minItems": 1,
                                "maxItems": 16,
                                "uniqueItems": true
                              }
                            },
                            "additionalProperties": false
                          },
                          "limit": {
                            "type": "object",
                            "required": ["pointer", "unit"],
                            "properties": {
                              "pointer": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 256,
                                "pattern": "^/"
                              },
                              "unit": {
                                "type": "string",
                                "const": "count"
                              }
                            },
                            "additionalProperties": false
                          },
                          "remaining": {
                            "type": "object",
                            "required": ["pointer", "unit"],
                            "properties": {
                              "pointer": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 256,
                                "pattern": "^/"
                              },
                              "unit": {
                                "type": "string",
                                "const": "count"
                              }
                            },
                            "additionalProperties": false
                          },
                          "reset": {
                            "type": "object",
                            "required": ["pointer", "unit"],
                            "properties": {
                              "pointer": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 256,
                                "pattern": "^/"
                              },
                              "unit": {
                                "anyOf": [
                                  {
                                    "type": "string",
                                    "const": "delta_seconds"
                                  },
                                  {
                                    "type": "string",
                                    "const": "epoch_seconds"
                                  },
                                  {
                                    "type": "string",
                                    "const": "epoch_milliseconds"
                                  }
                                ]
                              }
                            },
                            "additionalProperties": false
                          },
                          "retry": {
                            "type": "object",
                            "required": ["pointer", "unit"],
                            "properties": {
                              "pointer": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 256,
                                "pattern": "^/"
                              },
                              "unit": {
                                "anyOf": [
                                  {
                                    "type": "string",
                                    "const": "delta_seconds"
                                  },
                                  {
                                    "type": "string",
                                    "const": "epoch_seconds"
                                  },
                                  {
                                    "type": "string",
                                    "const": "epoch_milliseconds"
                                  }
                                ]
                              }
                            },
                            "additionalProperties": false
                          },
                          "default_retry_ms": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 900000
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              }
            ]
          },
          "minItems": 1,
          "maxItems": 16
        },
        "rules": {
          "type": "array",
          "items": {
            "type": "object",
            "required": ["methods", "path", "buckets"],
            "properties": {
              "methods": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 32,
                  "pattern": "^[A-Z][A-Z0-9!#$%&'*+.^_`|~-]*$"
                },
                "minItems": 1,
                "maxItems": 16,
                "uniqueItems": true
              },
              "origin": {
                "type": "string",
                "minLength": 1,
                "maxLength": 2048
              },
              "path": {
                "type": "string",
                "minLength": 1,
                "maxLength": 2048
              },
              "buckets": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 64
                },
                "minItems": 1,
                "maxItems": 16,
                "uniqueItems": true
              }
            },
            "additionalProperties": false
          },
          "minItems": 1,
          "maxItems": 64
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
